Annibale Panichella
Pouria Derakhshanfar
Xavier Devroey
Gilles Perrouin
Andy Zaidman
Arie van Deursen
2019-10-18
<p>Search-based crash reproduction approaches assist developers during debugging by generating a test case which reproduces a crash given its stack trace. One of the fundamental steps of this approach is creating objects needed to trigger the crash. One way to overcome this limitation is seeding: using information about the application during the search process. With seeding, the existing usages of classes can be used in the<br>
search process to produce realistic sequences of method calls which create the required objects. In this study, we introduce behavioral model seeding: a new seeding method which learns class usages from both<br>
the system under test and existing test cases. Learned usages are then synthesized in a behavioral model (state machine). Then, this model serves to guide the evolutionary process. To assess behavioral model-seeding, we evaluate it against test-seeding (the state-of-the-art technique for seeding realistic objects) and no-seeding (without seeding any class usage). For this evaluation, we use a benchmark of 122 hard-to-reproduce crashes stemming from six open-source projects. Our results indicate that behavioral model-seeding outperforms both test seeding and no-seeding by a minimum of 6% without any notable negative impact on efficiency.</p>
https://doi.org/10.5281/zenodo.3673916
oai:zenodo.org:3673916
eng
Zenodo
https://zenodo.org/communities/eu
https://doi.org/10.5281/zenodo.3673915
info:eu-repo/semantics/openAccess
Creative Commons Attribution 4.0 International
https://creativecommons.org/licenses/by/4.0/legalcode
seed learning
crash reproduction
search-based software testing
Replication package of "Search-based Crash Reproduction using Behavioral Model Seeding"
info:eu-repo/semantics/other