During the various iterations of software development, test case prioritization generally schedules test cases in order to increase test efficiency as soon as possible without reducing the scale of the test. It is noted that currently, many prioritization techniques are usually based on the assumption that the test cases are independent so as to reduce testing effort. However in the actual test, the dependencies and relations exist between the test cases. In this paper, we propose a new type of prioritization technique based on the relationship of dependencies between test cases. We gather the dependency information of a test suite and then put forward a weighted depth-first search algorithm to determine the most effective order. To assess our approach, an academic feasibility study and three industrial experiments are conducted. Evaluation results indicate that our proposed method can be used to improve the fault detection effectiveness when compared with random ordering and some existed prioritization techniques which are based on function coverage.
Read full abstract