How Developers Engineer Test Cases: An Observational Study

03/01/2021
by   Maurício Aniche, et al.
0

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 a general framework that explains how developers reason about testing. Second, we propose and describe in detail the three different overarching strategies that developers apply when testing. Third, we compare and relate our observations with the existing body of knowledge and propose future studies that would advance our knowledge on the topic.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/27/2021

Developer-Centric Test Amplification The Interplay Between Automatic Generation and Human Exploration

Automatically generating test cases for software has been an active rese...
research
01/19/2018

How do Developers Test Android Applications?

Enabling fully automated testing of mobile applications has recently bec...
research
11/16/2021

Automated System-Level Software Testing of Industrial Networked Embedded Systems

Embedded systems are ubiquitous and play critical roles in management sy...
research
07/21/2023

Vulnerability Detection Through an Adversarial Fuzzing Algorithm

Fuzzing is a popular vulnerability automated testing method utilized by ...
research
07/26/2018

Assurances in Software Testing: A Roadmap

As software engineering researchers, we already understand how to make t...
research
07/17/2020

Towards a Model of Testers' Cognitive Processes: Software Testing as a Problem Solving Approach

Software testing is a complex, intellectual activity based (at least) on...
research
05/15/2020

BaseSAFE: Baseband SAnitized Fuzzing through Emulation

Rogue base stations are an effective attack vector. Cellular basebands r...

Please sign up or login with your details

Forgot password? Click here to reset