Open Access Te Herenga Waka-Victoria University of Wellington
Browse

Investigating Configurations for Automated Crash Reproduction in JavaScript

Download (1.07 MB)
thesis
posted on 2024-11-07, 23:47 authored by Philip Oliver

Automated Crash Reproduction is the process of generating a test case which reproduces a software crash. The process usually identifies a crash as reproduced when a generated test can match an error with a similar execution context to the original crash, with most approaches aiming to match a stack trace. We present research outcomes which deepen the understanding of this area. The first is a reproduction study of the existing tool EvoCrash, providing insight into areas of Automated Crash Reproduction which require further research. The second is CrashJS: a benchmark dataset for Automated Crash Reproduction for NodeJS programs.

CrashJS contains 453 crashes from several pre-existing sources such as benchmarks for JavaScript bugs and security vulnerabilities, GitHub issues, and generated crashes from existing JavaScript test generation tools.

We present our changes to the SynTest-JavaScript test generation tool to leverage the existing framework for Automated Crash Reproduction. This resulted in the first tool for Automated Crash Reproduction for JavaScript programs. Our tool is the second for dynamically-typed languages, with most existing research focused on statically-typed languages. We present an empirical evaluation of fitness functions for Automated Crash Reproduction for NodeJS programs. We found fitness functions which can outperform the existing state of the art fitness functions for Automated Crash Reproduction, reproducing 18.9% more crashes from CrashJS, or 28.9% more crashes, if partial reproductions are included. Finally, we applied our fitness functions in EvoCrash to assess their suitability in Java. We found that our fitness functions could not reproduce more crashes than using the EvoCrash fitness function. However, we discovered our fitness functions could reproduce crashes faster than when using the EvoCrash function.

History

Copyright Date

2024-11-07

Date of Award

2024-11-07

Publisher

Te Herenga Waka—Victoria University of Wellington

Rights License

Author Retains Copyright

Degree Discipline

Software Engineering

Degree Grantor

Te Herenga Waka—Victoria University of Wellington

Degree Level

Doctoral

Degree Name

Doctor of Philosophy

ANZSRC Type Of Activity code

3 Applied research

Victoria University of Wellington Item Type

Awarded Doctoral Thesis

Language

en_NZ

Victoria University of Wellington School

School of Engineering and Computer Science

Advisors

Homer, Michael; Dietrich, Jens; Anslow, Craig