Test Case Prioritization: A New Approach By Otto Borchert Motivation • Most companies are under heavy time and resource constraints when it comes to testing • Test case prioritization allows the most useful tests to be executed first, exposing faults earlier in the testing process Research Question • Are there any more methods of performing test case prioritization? Approach • Most recent approaches involve no memory of previous test suite execution • This approach uses previous test “runs”, not just previous test cases, to prioritize the test cases Approach • For the first test run, use some old prioritization methods (Ex: Random, FEP, statement, branch coverage) • For 2..n test runs, prioritize test cases based on whether they have been run before • Also give higher priority to test cases that exercise the same branches (Called Fault-Finding) • You could also decrease test case priority based on whether it had been done before (Called FaultAvoiding) Example A 1 2 3 4 B x x x x C x x D(*) x x x x E x x Letters – CFG nodes Numbers – Test Cases x – Test case goes through that node Fault-Finding = 1, 4, 2, 3 Fault-Avoiding = 2, 3, 1, 4 x x x x Potential Experiments • Run experiments using free and open source software, commercial partners, or preexisting software testing programs (Siemens, Space, etc) • Test the two new methods against each other (for Fault Age and Total Effort) • Against other current methods Questions?