Minimum Number of Test Paths for Prime Path and other Structural Coverage Criteria
This work addresses the challenge of efficient test suite generation for software engineers, though it appears incremental as it builds on existing flow-based methods for specific coverage criteria.
The paper tackles the problem of minimizing the number of test paths required to cover various structural coverage criteria in software testing, such as Prime Path and Edge-Pair, by transforming the graph into a flow graph and solving a minimum flow problem with an algorithm of complexity O(|V| |E|). It evaluates the method on actual software graphs and random graphs, measuring metrics like the number and length of test paths, lower bounds, and execution time.
The software system under test can be modeled as a graph comprising of a set of vertices, (V) and a set of edges, (E). Test Cases are Test Paths over the graph meeting a particular test criterion. In this paper, we present a method to achieve the minimum number of Test Paths needed to cover different structural coverage criteria. Our method can accommodate Prime Path, Edge-Pair, Simple & Complete Round Trip, Edge and Node coverage criteria. Our method obtains the optimal solution by transforming the graph into a flow graph and solving the minimum flow problem. We present an algorithm for the minimum flow problem that matches the best known solution complexity of $O(|V| |E|)$. Our method is evaluated through two sets of tests. In the first, we test against graphs representing actual software. In the second test, we create random graphs of varying complexity. In each test we measure the number of Test Paths, the length of Test Paths, the lower bound on minimum number of Test Paths and the execution time.