Which Generated Test Failures Are Fault Revealing? Prioritizing Failures Based on Inferred Precondition Violations using PAF
Automated unit testing tools, such as Randoop, have been developed to produce failing tests as means of finding faults.
However, these tools often produce false alarms, so are not widely used in practice.
The main reason for a false alarm is that the generated failing test violates an implicit precondition of the method under test, such as a field should not be null at the entry of the method. This condition is not explicitly programmed or documented but implicitly assumed by developers.
To address this limitation, we propose a technique called PAF to cluster generated test failures due to the same cause and reorder them based on their likelihood of violating an implicit precondition of the method under test.
From various test executions, PAF observes their dataflows to the variables whose values are used when the program fails. Based on the dataflow similarity and where these values are originated, PAF clusters failures and determines their likelihood of being fault revealing.
We integrated PAF into Randoop. Our empirical results on open-source projects show that PAF effectively clusters fault revealing tests arising from the same fault and successfully prioritizes the fault-revealing ones.
Thu 8 NovDisplayed time zone: Guadalajara, Mexico City, Monterrey change
15:30 - 17:00
|On the correctness of electronic documents: studying, finding, and localizing inconsistency bugs in PDF readers and files|
Tomasz Kuchta , Thibaud Lutellier , Edmund Wong , Lin Tan University of Waterloo , Cristian Cadar Imperial College LondonDOI
|Optimizing Test Prioritization via Test Distribution Analysis|
|How Well Are Regular Expressions Tested in the Wild?|
|Which Generated Test Failures Are Fault Revealing? Prioritizing Failures Based on Inferred Precondition Violations using PAF|