Path Testing & Basis Path Testing

What is Path Testing?

Path testing is a structural testing method that involves using the source code of a program in order to find every possible executable path. It helps to determine all faults lying within a piece of code. This method is designed to execute all or selected path through a computer program.

Any software program includes, multiple entry and exit points. Testing each of these points is a challenging as well as time consuming. In order to reduce the redundant tests and to achieve maximum test coverage, basis path testing is used.

What is Basis Path Testing?

The basis path testing is same, but it is based on a white box testing method, that defines test cases based on the flows or logical path that can be taken through the program. Basis path testing involves execution of all possible blocks in a program and achieves maximum path coverage with least number of test cases. It is a hybrid of branch testing and path testing methods.

The objective behind basis path testing is that it defines the number of independent paths, thus the number of test cases needed can be defined explicitly (maximizes the coverage of each test case).

Here we will take a simple example, to get better idea what is basis path testing include

Path Testing & Basis Path Testing

In the above example, we can see there are few conditional statements that is executed depending on what condition it suffice. Here there are 3 path or condition that need to be tested to get the output,

  • Path 1: 1,2,3,4,5,6, 7
  • Path 2: 1,2,4,5,6, 7
  • Path 3: 1, 6, 7

Steps for Basis Path testing

The basic steps involved in basis path testing include

  • Draw a control graph (to determine different program paths)
  • Calculate Cyclomatic complexity (metrics to determine the number of independent paths)
  • Find a basis set of paths
  • Generate test cases to exercise each path

Benefits of basis path testing

  • It helps to reduce the redundant tests
  • It focuses attention on program logic
  • It helps facilitates analytical versus arbitrary case design
  • Test cases which exercise basis set will execute every statement in program at least once


Basis path testing helps to determine all faults lying within a piece of code.


Tutorial Index