Last week, I held a talk on the software testing behavior in teams comprised of young developers. I tried to give an insight on how young software developers — such as students or applicants for an engineering position — feel when it comes to methodical and automated testing.
My colleagues Stephan, Olga, Leif and I interviewed 97 students at Leibniz Universität Hannover about their experience with testing. In our study, we were interested in why students — who have all completed at least one of the offered software engineering lectures in the curriculum — do not rigorously apply their testing knowledge and what keeps them from doing so. We found different enablers and inhibitors that influence the testing behavior. For example:
- Students perceived the application as being “too fuzzy” and changing too much — especially in the early phases of the project. Adding written tests is interpreted as “technical debt” because they need to be maintained alongside these changes. However, students then missed the opportunity to test early and did not do so during the whole project.
- Students opted to test their application manually: executing it after every change and specifically executing the changed parts by hand. They perceived manual execution to be faster and easier to accomplish than writing test code and executing a test framework. However, they were aware that this is not methodical testing. Not having built up an automated test suite was regretted later in the project — when regression testing would have come in handy.
For more information on this topic, you can watch the video of my talk — Jon Bell kindly filmed it. Also, Felienne Hermans did a nice live-blog. You can find the corresponding paper here and the slides to the talk (pdf) here.