1.6 The box approach : White Box Testing

22518 Software Testing MSBTE CO IT 1.6 The box approach : White Box Testing: Inspections, Walkthroughs, Technical Reviews, Functional Testing, Code Coverage Testing, Code Complexity Testing.


White Box Software Testing

            White box testing, also known as clear box testing, transparent box testing, or structural testing, is a method of software testing where the internal structure/design/implementation of the item being tested is known to the tester.

            This testing method is named as such because it sees the inner workings of the software, like looking inside a transparent box. The tester has knowledge of the source code and can test particular parts of the code that might be vulnerable to bugs, such as complex conditional loops and branches.

White box testing involves several techniques:

  1. Statement Coverage: Every possible statement in the code should be executed at least once. This ensures that there are no lines of code that are left untested.
  2. Branch Coverage: Every possible branch from each decision point (e.g., if-else conditions) is executed at least once. This ensures that no branch leads to untested parts of the code.
  3. Path Coverage: This tests every possible path through the program. It's the most comprehensive type of white box testing, but also the most complex, as large programs can have a near-infinite number of possible paths.
  4. Function Coverage: Every function in the code should be tested.
  5. Loop Coverage: Every loop in the code should be tested.


Advantages of white box testing include:

  • It can be started even if the GUI is not available.
  • It helps in optimizing the code.
  • It is exhaustive and thorough as it covers all the paths of the code.


However, white box testing also has some disadvantages:

  • It can be very complex for large systems.
  • It requires deep knowledge of the code, as the test cases are based on the internal structure of the system.

In spite of its challenges, white box testing is an essential part of any thorough software testing strategy and helps ensure that the system's internal workings function as intended.

 

 

White Box Software Testing : Inspections, Walkthroughs, Technical Reviews, Functional Testing, Code Coverage Testing, Code Complexity Testing.

            White box testing, also known as clear box testing or structural testing, involves testing the internal workings of a software application. The tester is aware of the internal structure of the code. This is different from black box testing, where the tester is only concerned with the input and the output, not the internal workings. Here's a breakdown of each of the techniques you've mentioned in the context of white box testing:

  1. Inspections: This process involves a careful examination of program code, typically by a team. They aim to find bugs or irregularities and can inspect the code for adherence to standards and design guidelines.
  2. Walkthroughs: This is a type of peer review where the creator of the artifact (code, design, requirements etc.) leads the review process. The code or the functionality is explained step-by-step to the audience to gather feedback.
  3. Technical Reviews: These are peer reviews of a product conducted by personnel who have technical competence in the technology used, they are able to evaluate the product, identify defects, and suggest improvements.
  4. Functional Testing: This type of testing, in the context of white box testing, can mean testing the individual functions of a codebase. This involves the tester knowing what the function is supposed to do (from the requirements or design documents), and making sure it does it correctly.
  5. Code Coverage Testing: This is a measure of how much of the code's logic has been tested. This can involve statement coverage (every line of code has been executed), branch coverage (every branch of each control structure has been executed), function coverage (every function has been called), etc.
  6. Code Complexity Testing: This involves testing the complexity of the code to see if it can be simplified. More complex code can be harder to maintain and can be more prone to bugs. Tools can be used to calculate metrics like cyclomatic complexity, which can give an indication of code complexity.

All these techniques can be employed during white box testing to improve the quality of the end product. They help ensure the code is well-structured, adheres to standards, is well-documented, and has been thoroughly tested, all of which can lead to a more maintainable and reliable software product.

Post a Comment

Previous Post Next Post