TY - GEN
T1 - SimRacer
T2 - 22nd International Symposium on Software Testing and Analysis, ISSTA 2013
AU - Yu, Tingting
AU - Srisa-An, Witawas
AU - Rothermel, Gregg
N1 - Copyright:
Copyright 2013 Elsevier B.V., All rights reserved.
PY - 2013
Y1 - 2013
N2 - Faults introduced by races are difficult to detect because they usually occur only under specific execution interleavings. Numerous program analysis and testing techniques have been proposed to detect races between threads. Little work, however, has addressed the problem of detecting and testing for process-level races, in which two processes access a shared resource without proper synchronization. In this paper, we present SIMRACER, a novel testing-based framework that allows engineers to effectively test for process-level races. SIMRACER first computes potential races based on runtime traces obtained by running existing tests on target processes, and then it controls process scheduling relative to the potential races so that real races can be created. We implemented SIMRACER on a commercial virtual platform that is widely used to support hardware/software co-design. We then evaluated its effectiveness on sixteen real-world applications containing known process-level races. Our results show that SIMRACER is effective at detecting process-level races, and more effective than traditional stress testing techniques at detecting faults caused by those races.
AB - Faults introduced by races are difficult to detect because they usually occur only under specific execution interleavings. Numerous program analysis and testing techniques have been proposed to detect races between threads. Little work, however, has addressed the problem of detecting and testing for process-level races, in which two processes access a shared resource without proper synchronization. In this paper, we present SIMRACER, a novel testing-based framework that allows engineers to effectively test for process-level races. SIMRACER first computes potential races based on runtime traces obtained by running existing tests on target processes, and then it controls process scheduling relative to the potential races so that real races can be created. We implemented SIMRACER on a commercial virtual platform that is widely used to support hardware/software co-design. We then evaluated its effectiveness on sixteen real-world applications containing known process-level races. Our results show that SIMRACER is effective at detecting process-level races, and more effective than traditional stress testing techniques at detecting faults caused by those races.
KW - Concurrency
KW - Data Race
KW - Kernels
KW - Processes
KW - Testing
UR - http://www.scopus.com/inward/record.url?scp=84881273371&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84881273371&partnerID=8YFLogxK
U2 - 10.1145/2483760.2483771
DO - 10.1145/2483760.2483771
M3 - Conference contribution
AN - SCOPUS:84881273371
SN - 9781450321594
T3 - 2013 International Symposium on Software Testing and Analysis, ISSTA 2013 - Proceedings
SP - 167
EP - 177
BT - 2013 International Symposium on Software Testing and Analysis, ISSTA 2013 - Proceedings
Y2 - 15 July 2013 through 20 July 2013
ER -