Subject | Jmeter (1.8) from SIR with 79 junit tests | |||||
Scenario | Test No. 69 passed in
the fixed code of version2-seed1 but failed in the buggy code; case study was performed on the buggy code. |
|||||
backward
failure tracing (functional sequence of events) |
test69
failed -> testStaticsCalculation() failed at assertEquals(4.0, s.getRate(), 1e-6) assertion -> actual value 0.4 != expected value 4.0 -> s.getRate()=0.4 -> in RunningSample::getRate() return counter / howLongRunning*__dummy -> __dummy=1000.00 changed to 100.0; |
|||||
sequence of
events (in terms of Jimple IR statement ids) |
34326
(1000.00 changed to 100.0) -> 34331 (calculate return value of getRate()) -> 36070 (get the return value at the caller) -> 36076 (expected cond failed) -> failure exception thrown (thrown the assertError exception) |
|||||
Statements in the failure sequence |
Ranking by different techniques | |||||
SensA_rand | SensA_inc | Static slicing | Dynamic slicing | |||
34326 | 33.5 | 33.5 | 2832.0 | 79.5 | ||
34331 | 33.5 | 33.5 | 1.0 | 1.0 | ||
36070 | 33.5 | 33.5 | 4.0 | 3.5 | ||
36076 | 33.5 | 33.5 | 559.5 | 16291.5 | ||
Average cost of inspecting the whole sequence in the ranking | 0.1031% | 0.1031% | 2.6134% | 12.6000% | ||
Number of statements to be examined in order to inspect the whole sequence | 32.0 | 32.0 | 848.0 | 4094.0 | ||