Quality assurance is a term that refers to a number of activities in the software engineering cycle that ensures everything works as it’s meant to, and to the level it’s expected to. The software should meet as well as comply with quality specifications that are either standardized, defined, or both.
Quality assurance doesn’t shouldn’t just happen after software is created; these checks must happen routinely as the software is being developed. The best quality assurance happens when software quality is tested during each phase of development, and development only moves on to the next phase once the previous phase has been assured to comply with the standards of quality it’s set to follow.
The entire premise of quality assurance is to find weaknesses in the developing process and then correct them.
Generally speaking, the quality assurance approach that is most often taken is the Agile approach, where each work cycle (sprint) has working software as a product that can then be added onto and improved upon in each iteration. This way, the QA processes are intrinsic in the development cycle. This also reduces the risk of bugs when release rolls around.
Depending on the project size, the specific methodologies used differ. Here at NerdCloud for example, we use a two-staged QA process: internal QA by our team and external QA by the client.
Other projects might utilize different approaches. Here are the most common quality assurance techniques.
The execution of tests is controlled by pre-written scripts.
This type of testing treats the system as though it were ‘closed’ so that it can test and experience it as an end user might.
In exploratory testing, the tester uses their own unique approach and creativity to find bugs and single out regressions.
Here, individual modules/components are tested together to make sure that they can connect and interact well with each other.
Negative path testing is basically where a scenario is designed that purposely produces an error state in the application or feature that’s being tested. The goal is to see if the error is handled well.
An example of this would be to input numbers into a field that’s meant for emails in a user registration form. The desired outcome is for the registration to not be accepted until an email address is used instead.
These tests are performed on a new build. They ensure that any new functionality present doesn’t accidentally break or affect any functionality that was previously tested.
This approach to testing is minimalistic. It tests that basic functionality exists before other, more in-depth tests take place. Smoke tests usually happen at the beginning of the testing and development process.
A QA engineer or tester uses pre-specified steps, conditions, and expected results to see whether or not a feature performs its task as expected.
White box tests are performed within the codebase at a structural level. Programmers check the inputs and outputs of certain components or functions.
These tests are also sometimes called transparent box, glass box, or clear box because the testers are ‘looking inside’ the system.
Some types of white box tests are:
There are three main white box test techniques:
These are just some of the ways in which quality assurance can be handled. The standards that a project’s quality must adhere to might be industry standards or client-specified standards. Either way, here at NerdCloud we know exactly how to test projects to meet them. When you work with us, you’re working with top-notch experts who deliver high-quality results, every single time.