# Foundations On Software Testing
Quality Assurance (QA) also known as QA Tests is an activity that guarantees the best possible quality for the product provided by a company to the final consumer
The QA test in a software involves the testing of:
- Performance
- Adaptability
- Functionality
However, software quality assurance extends beyond the quality of the software itself. The activity also encompasses the quality of the process:
- Development
- Testing
- Deployment
# Quality Assurance (QA) in Software Development
Quality Assurance (QA) focuses on the development cycle, which includes software requirements management, design, coding, testing, and release.
Let's understand the fundamentals of software testing and how to apply them in our daily lives.
# What is Quality?
Quality can be simply defined as "fit for use or function". The idea is to meet customers' needs and expectations regarding functionality, design, reliability, durability, and product price.
# What is Assurance?
Assurance is nothing more than a positive statement about a product or service that conveys confidence. It is the assurance that a product or service provides, indicating that it will function exactly as intended.
Assurance ensures that it will work without any problems according to expectations and requirements.
# Quality Assurance in Software Testing
Quality Assurance in testing is defined as a procedure to ensure the quality of software products or services provided to customers by a company.
QA focuses on improving the software development process, making it efficient and effective according to the defined quality parameters for software products.
# Error, Defect, and Failure
- Error: Human action that produces incorrect results.
- Defect: Manifestation of the error in the software, also known as a bug.
- Failure: Undesirable difference between observed and expected behavior (defect found).
A person makes an error, which creates a defect in the software, which may or may not cause a failure in operation.
# Testing Mindset
As a QA engineer, your job is to look for failure points in a product, whatever it may be, and report them so they can be fixed, ensuring the highest quality product.
To perform your function successfully, it's necessary to have the right mindset:
- Think as destructively and creatively as possible
Important points:
- Know the product you are testing.
- Don't be afraid to think outside the box while testing it.
- Don't be afraid to use it in the most incorrect way possible.
- The software is guilty until proven innocent.
- QA is responsible for proving the software is guilty.