36  Chapter 5: Test Design Techniques

Test design techniques are methods used to create test cases that cover all possible scenarios and use cases of the software application being tested.

36.1 Black-Box Testing

Software testing technique in which the internal workings of the system being tested are not known to the tester. It can be applied on various levels inclusing unit, integration, system, and acceptance testing.

36.1.1 Black-Box Testing Design Techniques

  • Equivalence Partitioning: Dividing input data into groups (partitions) that are expected to behave similarly, so only one value from each group is tested
  • Boundary Value Analysis: Testing values at the edges of input ranges where errors are most likely to occur. In BVA, you test (might come in the exam as short answer):
    • The minimum boundary value
    • The maximum boundary value
    • Just above the minimum boundary value
    • Just below the minimum boundary value
    • Just below the minimum boundary value
    • Just above the minimum boundary value
  • Use-Case Testing: Testing based on real user scenarios and interactions with the system
  • Pairwise Testing: Testing all possible pairs of input combinations instead of all combinations to reduce test cases while maintaining coverage
  • Error Guessing: Using experience and intuition to predict where defects are likely to occur
  • Random Testing: Providing random inputs to check how the system handles unexpected data

Might come in the exam as short answer

36.2 White Box Testing

Software testing approach that focuses on evaluating the internal structure and logic of a program.

36.2.1 White-box Testing Techniques

36.2.1.1 Statement Coverage

ensures that each line or statement in the source code is executed at least once during testing

36.2.1.2 Branch Coverage

tests every decision point, checking that each possible outcome has been exercised

36.2.1.3 Condition Coverage

the goal is to test all conditions in the code, ensuring that each condition evaluates to both true and false during the test process

36.2.1.4 Loop Testing

analyzing loops in the code to confirm they function correctly across all expected scenarios

36.3 Static Testing

Static testing is a software quality assurance technique that involves analyzing the application’s code, design, and documentation without running the program.

36.3.1 Static Testing Methods

  • Code Reviews: In this manual process, developers or peers inspect the source code to identify bugs, logic errors, or violations of coding standards
  • Pair Programming: This approach involves two programmers working together at one workstation. While one writes the code, the other reviews it.