How Developers Engineer Test Cases: An Observational Study
Maur\'icio Aniche, Christoph Treude, Andy Zaidman

TL;DR
This study observes and analyzes how developers manually engineer test cases, proposing a framework and strategies to improve understanding and effectiveness in software testing practices.
Contribution
It introduces a comprehensive framework and identifies three main strategies developers use when testing, based on observational and survey data.
Findings
Developers use three main testing strategies.
A general reasoning framework for testing was proposed.
Observations align with and extend existing testing theories.
Abstract
One of the main challenges that developers face when testing their systems lies in engineering test cases that are good enough to reveal bugs. And while our body of knowledge on software testing and automated test case generation is already quite significant, in practice, developers are still the ones responsible for engineering test cases manually. Therefore, understanding the developers' thought- and decision-making processes while engineering test cases is a fundamental step in making developers better at testing software. In this paper, we observe 13 developers thinking-aloud while testing different real-world open-source methods, and use these observations to explain how developers engineer test cases. We then challenge and augment our main findings by surveying 72 software developers on their testing practices. We discuss our results from three different angles. First, we propose…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
