Font Size: a A A

Test case prioritization

Posted on:2005-03-18Degree:Ph.DType:Thesis
University:Oregon State UniversityCandidate:Malishevsky, Alexey GrigorievichFull Text:PDF
GTID:2458390008994668Subject:Computer Science
Abstract/Summary:
Regression testing is an expensive software engineering activity intended to provide confidence that modifications to a software system have not introduced faults. Test case prioritization techniques help to reduce regression testing cost by ordering test cases in a way that better achieves testing objectives. In this thesis, we are interested in prioritizing to maximize a test suite's rate of fault detection, measured by a metric, APFD, trying to detect regression faults as early as possible during testing.; In previous work, several prioritization techniques using low-level code coverage information had been developed. These techniques try to maximize APFD over a sequence of software releases, not targeting a particular release. These techniques' effectiveness was empirically evaluated.; We present a larger set of prioritization techniques that use information at arbitrary granularity levels and incorporate modification information, targeting prioritization at a particular software release. Our empirical studies show significant improvements in the rate of fault detection over randomly ordered test suites.; Previous work on prioritization assumed uniform test costs and fault severities, which might not be realistic in many practical cases. We present a new cost-cognizant metric, APFDC, and prioritization techniques, together with approaches for measuring and estimating these costs. Our empirical studies evaluate prioritization in a cost-cognizant environment.; Prioritization techniques have been developed independently with little consideration of their similarities. We present a general prioritization framework that allows us to express existing prioritization techniques by a framework algorithm using parameters and specific functions.; Previous research assumed that prioritization was always beneficial if it improves the APFD metric. We introduce a prioritization cost-benefit model that more accurately captures relevant cost and benefit factors, and allows practitioners to assess whether it is economical to employ prioritization.; Prioritization effectiveness varies across programs, versions, and test suites. We empirically investigate several of these factors on substantial software systems and present a classification-tree-based predictor that can help select the most appropriate prioritization technique in advance.; Together, these results improve our understanding of test case prioritization and of the processes by which it is performed.
Keywords/Search Tags:Prioritization, Test, Software, APFD
Related items