Test Types and Test Levels

Profile picture for user devraj

Test Types are categorized into functional, non-functional, white-box, and change-related tests, and Test Levels are component, integration, system, and acceptance. It is possible to perform any of the test types at any test level. However, it is not necessary for all software to have every test type represented across every level. It is essential to run applicable test types at each level, especially the earliest level where the test type occurs.

Let's understand how test types can be performed on different test levels with the help of a banking application example given in the ISTQB Syllabus.

Functional Testing

  1. Component Testing: For component testing, tests are developed on the basis of how a component should calculate compound interest.
  2. Component Integration Testing: For component integration testing, tests are designed based on how account information captured at the user interface is passed to the business logic.
  3. System Testing: For system testing, tests are created based on how account holders can apply for a line of credit on their checking accounts.
  4. System Integration Testing: For system integration testing, tests are developed based on how the system uses an external microservice to check an account holder's credit score.
  5. Acceptance Testing: For acceptance testing, tests are designed based on how the banker handles approving or declining a credit application.

Non-Functional Testing

  1. Component Testing: For component testing, performance tests are designed to evaluate the number of CPU cycles required to perform a complex total interest calculation.
  2. Component Integration Testing: For component integration testing, security tests are designed for buffer overflow vulnerabilities due to data passed from the user interface to the business logic.
  3. System Testing: For system testing, portability tests are designed to check whether the presentation layer works on all supported browsers and mobile devices.
  4. System Integration Testing: For system integration testing, reliability tests are designed to evaluate system robustness if the credit score microservice fails to respond.
  5. Acceptance Testing: For acceptance testing, usability tests are designed to evaluate the accessibility of the banker's credit processing interface for people with disabilities.

White-Box Testing

  1. Component Testing: For component testing, tests are developed to achieve complete statement and decision coverage for all components that perform financial calculations.
  2. Component Integration Testing: For component integration testing, tests are designed to exercise how each screen in the browser interface passes data to the next screen and to the business logic.
  3. System Testing: For system testing, tests are created to cover sequences of web pages that can occur during a credit line application.
  4. System Integration Testing: For system integration testing, tests are designed to exercise all possible inquiry types sent to the credit score microservice.
  5. Acceptance Testing: For acceptance testing, tests are developed to cover all supported financial data file structures and value ranges for bank-to-bank transfers.

Change-Related Testing

  1. Component Testing: For component testing, automated regression tests are built for each component and included within the continuous integration framework.
  2. Component Integration Testing: For component integration testing, tests are designed to confirm fixes to interface-related defects as the fixes are checked into the code repository.
  3. System Testing: For system testing, all tests for a given workflow are re-executed if any screen on that workflow changes.
  4. System Integration Testing: For system integration testing, tests of the application interacting with the credit scoring microservice are regularly re-executed as part of the continuous deployment of that microservice.
  5. Acceptance Testing: For acceptance testing, all previously-failed tests are re-executed after a defect found in acceptance testing is fixed.