Removing redundant statements in amplified test cases

Bachelor Thesis (2021)
Author(s)

W. Oosterbroek (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Contributor(s)

C.E. Brandt – Mentor (TU Delft - Software Engineering)

Andy Zaidman – Graduation committee member (TU Delft - Software Engineering)

Przemek Przemysław – Coach (TU Delft - Embedded Systems)

Faculty
Electrical Engineering, Mathematics and Computer Science
Copyright
© 2021 Wessel Oosterbroek
More Info
expand_more
Publication Year
2021
Language
English
Copyright
© 2021 Wessel Oosterbroek
Graduation Date
30-06-2021
Awarding Institution
Delft University of Technology
Project
CSE3000 Research Project
Programme
Computer Science and Engineering
Faculty
Electrical Engineering, Mathematics and Computer Science
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Amplified test cases created by DSpot and TestCube often contain unnecessary statements that impact the readability of the tests in question. As a part of the effort to make these amplified test cases more developer-friendly, we investigate (dynamic) slicing, taint analysis and static analysis as approaches to remove redundant statements. In addition, we evaluate a simple static analysis
approach that we implemented into DSpot. Our results show that the implemented approach works well: while being rudimentary, it is able to remove a significant portion of the redundant statements in the amplified test cases. A problem with removing redundant statements is the fact that it, at least for the approaches we discuss in this paper, will take a significant amount of time depending on the size and quality of the original tests. While the removal of the statements themselves is relatively fast, especially when using our implemented static analysis approach, verifying that the tests still work as intended through mutation testing is resource-intensive.

Files

License info not available