QA–QC Arena – Software Testing Home for beginners and experts

Test Levels–Test Types–Testing

In the last couple of posts I have covered Test Levels and Test Types. Now in this post I am covering the mapping of Test Levels, Test Types and associated Testing.

Remember, understanding the Test Levels, Test Types and relevant Testing performed under those Levels and Types plays a vital role in Test Planning, Test Estimation.

Test Levels
Test Types
Testing
Component Testing (Unit/Module/Program Testing)
Functional Testing
  • Suitability
  • Interoperability
  • Security
  • Accuracy
  • Compliance
Non–Functional Testing
  • Performance Testing
  • Load Testing
  • Stress Testing
  • Usability Testing
  • Maintainability Testing
  • Reliability Testing
  • Portability Testing
Structural Testing
  • Decision Coverage
  • Code Coverage
  • Statement Coverage
Regression Testing
  • Combination of Functional and Non–Functional Test Type (Testing)
Integration Testing
Functional Testing
  • Suitability
  • Interoperability
  • Security
  • Accuracy
  • Compliance
Non–Functional Testing
  • Performance Testing
  • Load Testing
  • Stress Testing
  • Usability Testing
  • Maintainability Testing
  • Reliability Testing
  • Portability Testing
Structural Testing
  • Decision Coverage
  • Code Coverage
  • Statement Coverage
Regression Testing
  • Combination of Functional and Non–Functional Test Type (Testing)
System Testing
Functional Testing
  • Suitability
  • Interoperability
  • Security
  • Accuracy
  • Compliance
Non–Functional Testing
  • Performance Testing
  • Load Testing
  • Stress Testing
  • Usability Testing
  • Maintainability Testing
  • Reliability Testing
  • Portability Testing
Regression Testing
  • Combination of Functional and Non–Functional Test Type (Testing)
Acceptance Testing
Functional Testing
  • Suitability
  • Interoperability
  • Security
  • Accuracy
  • Compliance
Non–Functional Testing
  • Performance Testing
  • Load Testing
  • Stress Testing
  • Usability Testing
  • Maintainability Testing
  • Reliability Testing
  • Portability Testing

In my future post I will cover how to apply the above template to a Windows Application, Web Application, and Mobile Application.

Test Types

Test Type
Details
Functional Testing (Testing of function)
Target of Functional Testing is the testing of specified behavior (in a requirements specification or in a functional specification or in use cases).

Functional testing is often referred to as Black-Box testing.

Functional Testing is performed at all test levels.

Functional Testing includes Suitability, Interoperability, Security, Accuracy and Compliance.

Functional Testing can be done from two perspectives –
Requirements–based & Business–process–based.
  • Requirements–based testing uses a specification of the functional requirements for the system as the basis for designing tests.
  • Business–process–based testing uses knowledge of the business processes which describe the scenarios involved in the day-to-day business use of the system.
Specification–based & Experienced–based techniques can be used for functional testing.
Non–functional Testing (Testing of software product characteristics)
Target of Non–functional Testing is the testing of quality characteristics or non-functional attributes of the system or component or integration group.

It is the testing of 'how well' the system works.

Non–functional Testing is performed at all test levels.

Non-functional testing includes performance testing, load testing, stress testing, usability testing, maintainability testing, reliability testing and portability testing.
Structural Testing (Testing of Software Structure/Architecture)
Target of Structural Testing is the testing of system or component architecture.

Structural Testing is often referred to as White-Box or Glass-Box testing.

Structural Testing is performed mostly at Component and Integration test levels.

The techniques used for structural testing are Structure–based techniques, also referred to as White–Box techniques.

Control flow models are often used to support structural testing.
Confirmation and Regression testing (Testing related to changes)
Target of Confirmation and Regression Testing is the testing of changes.

Confirmation Testing (Re–Testing) –
Executing the same test again (using the same inputs, data and environment) with a new version of the software (that has had the defect fixed) to confirm that the defect has indeed been fixed.

Regression Testing
The purpose of regression testing is to verify that modifications in the software or the environment have not caused unintended adverse side effects and that the system still meets its requirements.

It is appropriate to have a regression test suite at every level of testing (Component Testing, Integration Testing, System Testing, etc.)

Regression tests are executed whenever the software changes, either as a result of fixes or new or changed functionality.

It is also a good idea to execute them when some aspect of the environment changes (when a new version of a database management system is introduced or a new version of a source code compiler is used).