Developer Testing in the IDE: Patterns, Beliefs, and Behavior

by Moritz Beller, Georgius Gousios, Annibale Panichella, Sebastian Proksch, Sven Amann, and Andy Zaidman

Abstract: Software testing is one of the key activities to achieve software quality in practice. Despite its importance, however, we have a remarkable lack of knowledge on how developers test in real-world projects. In this paper, we report on a large-scale field study with 2,443 software engineers whose development activities we closely monitored over 2.5 years in four integrated development environments (IDEs). Our findings, which largely generalized across the studied IDEs and programming languages Java and C#, question several commonly shared assumptions and beliefs about developer testing: half of the developers in our study do not test; developers rarely run their tests in the IDE; most programming sessions end without any test execution; only once they start testing, do developers do it extensively; a quarter of test cases is responsible for three quarters of all test failures; 12% of tests show flaky behavior; Test-Driven Development (TDD) is not widely practiced; and software developers only spend a quarter of their time engineering tests, whereas they think they test half of their time. We compile these practices of loosely guiding one’s development efforts with the help of testing in an initial summary on Test-Guided Development (TGD), a behavior we argue to be closer to the development reality of most developers than TDD.

Resources

BibTeX

@article {BGPP+17,
  title = {{Developer Testing in the IDE: Patterns, Beliefs, and Behavior}},
  author = {Beller, Moritz and Gousios, Georgius and Panichella, Annibale and Proksch, Sebastian and Amann, Sven and Zaidman, Andy},
  journal = {{IEEE Transactions on Software Engineering}},
  series = {TSE},
  year = {2017},
}