2 research outputs found
Search-based crash reproduction using behavioural model seeding
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 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 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 124 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