As we all know in a typical software system or application, there exist so many possible paths between the entry and exit of the paths and the number of such potential paths is doubled by every decision that comes in the way.
On top of this every case statements adds to the number of the potential paths by multiplying the number of cases with the number of potential paths and this is further incremented by the loops which multiply all the different possible iteration values with the number of potential paths.
So you see with so many paths all over, a single unit of the code makes it extremely difficult to provide a 100 percent coverage to that unit. This can be illustrated by the following example:
- Consider a software program consisting a straight line code having only a single loop that is to be executed 50 times.
- For such a code we can easily make out that it will have 50 paths.
- Like all the other processes, the testing also does not have any unlimited amount of resources.
- There are a limited number of people to perform testing, limited resources, time, efforts and equipment to make up to the successful testing in a stipulated period of time.
- The testing processes always face a challenge of covering all the possible paths without going out of the specified limits.
- But this seems like very difficult to be achieved!
"This all can be possibly achieved if all the redundancy is eliminated from the source code to the maximum extent that is possible and at the same time, adequate coverage must be maintained."
How was basis path testing developed?
- Basis path testing was developed as a hybrid between the two testings namely the path testing and the branch testing.
- The path testing is the testing methodology that has been defined to execute paths all over a computer program whether all or selected and the branch testing is the testing methodology that has been defined for the execution of all the outcomes of every decision in a software source code.
- It can be thought of as a testing methodology that tests every branch and also all the independent paths throughout the software program.
- A path can be a sequence of statements or instructions to the system that starts at one junction and ends at the other and in between it may encounter several other junctions.
- An independent path is a bit different from the normal path in the way that it introduces a new set of processing statements or conditions.
What steps are involved in basis path testing?
It is a path that takes in to account only the paths with the linear combination of the iterations and in no other way. The following steps are involved in the basis path testing:
1. Drawing out of the control flow graph
2. Calculation of the cyclomatic complexity
3. A basis set of paths is chosen
4. Generation of the test cases for the execution of each and every path in the code
Benefits of Basis Path Testing
1. It clearly defines the number of the independent paths and the number of the test cases required.
2. It executes every statement at least once.
3. It executes every condition for both outcomes i.e., true and false at least once.
4. It pays attention to the logic of the program.
5. It facilitates the arbitrary test case design in contrast to the analytical test case design.
Basis path testing is a white box testing technique since one requires an in-depth knowledge of the program.
Tuesday, March 20, 2012
Basis Path Testing is a white box testing technique - Explain?
Posted by Sunflower at 3/20/2012 08:48:00 PM
Labels: Adequate, Application, Basis Path Testing, Code, Conditions, Coverage, Decision, Execute, Independent, Methodology, Paths, Software testing, Source, Statements, Steps, Test cases, White box testing
Subscribe by Email |
|
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment