Basis path testing
In software engineering, basis path testing, or structured testing,{{cite web|
url=http://www.mccabe.com/pdf/mccabe-nist235r.pdf| title=Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric| author=Arthur H. Watson and Thomas J. McCabe| year=1996|publisher=NIST Special Publication 500-235}} is a white box method for designing test cases. The method analyzes the control-flow graph of a program to find a set of linearly independent paths of execution. The method normally uses McCabe cyclomatic complexity to determine the number of linearly independent paths and then generates test cases for each path thus obtained.{{cite book|author=Linda Westfall|title=The Certified Software Quality Engineer Handbook|year=2008|publisher=ASQ Quality Press|isbn=978-0-87389-730-3|pages=436–437}} Basis path testing guarantees complete branch coverage (all edges of the control-flow graph), but achieves that without covering all possible paths of the control-flow graph{{snd}} the latter is usually too costly.{{cite book|author1=Y.N. Srikant|author2=Priti Shankar|title=The Compiler Design Handbook: Optimizations and Machine Code Generation|year=2002|publisher=CRC Press|isbn=978-1-4200-4057-9|page=249}} Basis path testing has been widely used and studied.{{cite book|author=Robert V. Binder|title=Testing Object-oriented Systems: Models, Patterns, and Tools|year=2000|publisher=Addison-Wesley Professional|isbn=978-0-201-80938-1|page=[https://archive.org/details/testingobjectori00bind/page/378 378]|url-access=registration|url=https://archive.org/details/testingobjectori00bind/page/378}}
See also
- DD-path testing
References
{{reflist}}
Further reading
- {{cite book|author=Paul C. Jorgensen|title=Software Testing: A Craftsman's Approach, Second Edition|year=2002|publisher=CRC Press|isbn=978-0-8493-0809-3|pages=146–150}}
- {{cite book|author1=Alan Page|author2=Ken Johnston|author3=Bj Rollison|title=How We Test Software at Microsoft|year=2008|publisher=Microsoft Press|isbn=978-0-7356-3831-0|at=chapter 6}}
{{Software-eng-stub}}