Title :
STAR: Stack Trace Based Automatic Crash Reproduction via Symbolic Execution
Author :
Ning Chen ; Sunghun Kim
Author_Institution :
Dept. of Comput. Sci. & Eng., Hong Kong Univ. of Sci. & Technol., Kowloon, China
Abstract :
Software crash reproduction is the necessary first step for debugging. Unfortunately, crash reproduction is often labor intensive. To automate crash reproduction, many techniques have been proposed including record-replay and post-failure-process approaches. Record-replay approaches can reliably replay recorded crashes, but they incur substantial performance overhead to program executions. Alternatively, post-failure-process approaches analyse crashes only after they have occurred. Therefore they do not incur performance overhead. However, existing post-failure-process approaches still cannot reproduce many crashes in practice because of scalability issues and the object creation challenge. This paper proposes an automatic crash reproduction framework using collected crash stack traces. The proposed approach combines an efficient backward symbolic execution and a novel method sequence composition approach to generate unit test cases that can reproduce the original crashes without incurring additional runtime overhead. Our evaluation study shows that our approach successfully exploited 31 (59.6 percent) of 52 crashes in three open source projects. Among these exploitable crashes, 22 (42.3 percent) are useful reproductions of the original crashes that reveal the crash triggering bugs. A comparison study also demonstrates that our approach can effectively outperform existing crash reproduction approaches.
Keywords :
program debugging; program testing; project management; public domain software; system recovery; STAR; backward symbolic execution; crash stack traces; debugging; method sequence composition approach; object creation challenge; open source projects; post-failure-process approach; record-replay approach; scalability issues; software crash reproduction; stack trace based automatic crash reproduction; unit test case generation; Arrays; Color; Computer crashes; Explosions; Indexes; Optimization; Software; Crash reproduction; optimization; static analysis; symbolic execution; test case generation;
Journal_Title :
Software Engineering, IEEE Transactions on
DOI :
10.1109/TSE.2014.2363469