2015 · 37 citations · 21 references
ComputingComputer EngineeringComputer ScienceFormal MethodsOperating SystemsSoftware EngineeringCrash TestingSoftware MaintenanceSoftware TestingAutomated Bug FindingCrash AnalysisRoot CausesStatic Bug Detection
Due to their inherent complexity, software systems are pledged to be released with bugs. These bugs manifest themselves on client's computers, causing crashes and undesired behaviors. Field crashes, in particular, are challenging to understand and fix as the information provided by the impacted customers are often scarce and inaccurate. To address this issue, there is a need to find ways for automatically reproducing the crash in a lab environment in order to fully understand its root causes. Crash reproduction is also an important step towards developing adequate patches. In this paper, we propose a novel crash reproduction approach, called JCHARMING (Java CrasH Automatic Reproduction by directed Model checkING). JCHARMING uses crash traces and model checking to identify program statements needed to reproduce a crash. Our approach takes advantage of the completeness provided by model checking while ignoring unneeded system states by means of information found in crash traces combined with static slices. We show the effectiveness of JCHARMING by applying it to seven different open source programs cumulating more than one million lines of code scattered in around 7000 classes. Overall, JCHARMING was able to reproduce 85% of the submitted bugs.
21
Gerard J. Holzmann · IEEE Transactions on Software Engineering · 1997 · 3.8K citations
Willem Visser, Klaus Havelund, Guillaume Brat et al. · Automated Software Engineering · 2003 · 1.4K citations
Nicolas Bettenburg, Sascha Just, Adrian Schröter et al. · 2008 · 603 citations
Bruno Dutertre, Leonardo de Moura · 2006 · 483 citations
How Long Will It Take to Fix This Bug?
Rahul Premraj, Thomas Zimmermann, Andreas Zeller · 2007 · 379 citations