Font Size: a A A

The Improvement And Implementation Of Test Case Prioritization In Regression Testing

Posted on:2013-06-16Degree:MasterType:Thesis
Country:ChinaCandidate:K WuFull Text:PDF
GTID:2248330371488313Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
With the development of software technology, the size and complexity of the software systems increase gradually, which leads to the increment of faults and defects. Therefore, software testing becomes more and more important in order for quality assurance. Regression testing is one of the most important methods for software testing. It aims to assure that the modification of the software systems do not influence the correctness of the original functions. Naturally, regression testing asks for retesting all of the test cases, which is impractical and the cost is huge. Therefore, decreasing the cost of the regression testing and increasing the efficiency of it is necessary and meaningful. Many techniques have been proposed to solve this problem partially, one of which is test case prioritization. Test case prioritization rearranges test cases according to some criteria, so that test cases with a higher priority are executed earlier in order to meet some goals, for example, to increase the rate of fault detection.Similarity-based test case prioritization is one of the most widely-used methods in these days. The basic idea is that: rearranging test cases in such a manner as to maximize diversity of test cases with respect to the similarity measure of the features of test cases. The three main points of the similarity-based test case prioritization is that: the information of test cases that need to be evaluated, the method how this evaluation should be done and the strategy for maximizing test cases. Previous studies used the code coverage information as the feature of test cases, and ignored the contributions of the relative execution counts of program elements. In this paper, we consider this factor and propose a new technique called "test case prioritization utilizing relative execution counts of program elements", which improves the current similarity-based test case prioritization techniques from the following three points. For the new technique, we characterize each execution profile as the sorted sequence of its elements, where the sorting key is the number of times each element executed, and use edit distance as the dissimilarity metric in order to emphasize the ordering within each execution profile. At the same time, we use farthest-first algorithm as the strategy to maximize test cases. In this paper, we conduct three experiments for comparing the efficiency between the new technique and other test case prioritization techniques, including other similarity-based test case prioritization techniques and the traditional coverage-based test case prioritization techniques. The empirical study shows that: our new technique can significantly increase the rate of fault detection and detect the bugs in loops more quickly than other techniques. Meanwhile, our new technique is complementary with the coverage-based test case prioritization techniques.Finally, we implement an eclipse plug-in called TCP plug-in, to support test case prioritization techniques. The TCP plug-in is implemented on the basis of the previous implementation and has a significant improvement. The improved TCP plug-in integrates the new proposed technique and can be used to support the industry projects and huge test suites.
Keywords/Search Tags:Test Case Prioritization, Relative Execution Counts, Edit Distance, Farthest-first Algorithm
PDF Full Text Request
Related items