Enhanced Test Case Generation with the Classification Tree Method
Kruse, Peter Michael · Universitätsbibliothek der FU Berlin Hochschulschriftenstelle u. Dokumentenserver · 2014
To make a statement on software quality, a methodical approach on software testing is absolutely necessary. One common approach is the classification tree method introduced in 1993. All relevant test aspects of a system under test and their characteristics are divided into disjoint subsets. Test cases are then generated by combining specific characteristics of each aspect. Depending on the size (cardinality) and number of different aspects, the number of possible combinations grows exponentially. Therefore tools for applying the classification tree method offer coverage criteria for automated test case generation. Typically current coverage criteria are minimal or complete combination. Additionally, test case generation needs to consider specific dependencies between characteristics of test aspects. Existing approaches do not offer a prioritization of certain test aspects during test case generation. However, prioritization of test aspects is important for a number of different reasons: Test resources may be limited, testing can be expensive, as it may be destructive, or it may be desirable to only use a subset of test cases as an initial test. Current approaches can be divided into deterministic and non-deterministic techniques. The current classification tree editor uses a non-deterministic technique to generate test cases. Resulting test suites vary in size and composition. During test case generation, dependencies and the classification tree itself are stored in different data structures. Therefore, test cases additionally need to be validated against the dependency rules during test case generation. Up to now, no approach supports the automated generation of test sequences from classification trees. Test sequences can however be defined manually by the user. This work presents a new approach for qualifying the classification tree with test aspects of importance (e.g. test costs, test duration, probabilites etc.). These numbers can be used for prioritized test case generation and to optimize test suites and, therefore, to reduce their size. For dependency handling, we use an integrated data structure holding both the classification tree and its dependency rules. The data structure is also used for a new deterministic test case generation, which handles dependencies directly during the process of test case generation. The resulting test suite should be equal or smaller in size while generation should be as fast as or even faster than current generation approaches. Finally, a new approach for automatic test sequence generation from classification trees is presented as well. We identify parameters for test sequence generation and develop new dependency rules and new generation rules. Results are then compared using common algorithms and standard benchmarks.