Technology

Quality Assurance

by
on
9/29/2021
Quality Assurance

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. 


  1. Automation testing

The execution of tests is controlled by pre-written scripts. 


  1. Black box

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.


  1. Exploratory testing

In exploratory testing, the tester uses their own unique approach and creativity to find bugs and single out regressions. 


  1. Integration testing

Here, individual modules/components are tested together to make sure that they can connect and interact well with each other. 


  1. Negative path testing

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. 


  1. Regression testing

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. 


  1. Smoke tests

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.


  1. Test case

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. 


  1. White box

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:

  • Unit tests – do individual units of code perform as they should?
  • Integration tests – do units/components interact with each other as they should?
  • Regression tests – do functions still work as they should when re-tested at later stages of development

There are three main white box test techniques:

  • Boundary-value analysis – chosen inputs are used to test the system to see how behaviour affects output
  • Equivalence partitioning – tested input values represent a larger input dataset
  • Cause-effect graphing – visualizations of input-output relations are used to design tests


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.