Test Case Prioritization: A New Approach

advertisement
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?
Download