What we know about software testability: a survey

01/07/2018
by   Vahid Garousi, et al.
0

Software testability is the degree to which a software system or a unit under test supports its own testing. To predict and improve software testability, a large number of techniques and metrics have been proposed by both practitioners and researchers in the last several decades. Reviewing and getting an overview of the entire state-of-the-art and -practice in this area is often challenging for a practitioner or a new researcher. Our objective is to summarize the state-of-the-art and -practice in this area and to benefit the readers (both practitioners and researchers) in preparing, measuring and improving software testability. To address the above need, we conducted a survey in the form of a systematic literature mapping (classification) in this area. After compiling an initial pool of 303 papers, a systematic voting was conducted among the authors, and our final pool included 208 papers. The area of software testability has been comprehensively studied by researchers and practitioners. Approaches for measurement of testability and improvement of testability are the most-frequently addressed in the papers. The two most often mentioned factors affecting testability are observability and controllability. Common ways to improve testability are testability transformation, improving observability, adding assertions, and improving controllability. The results could help practitioners measure and improve software testability in their projects. To assess potential benefits of this review paper, we shared its draft version with two of our industrial collaborators. They mentioned that they found the review useful and beneficial in their testing activities. Our results can also benefit researchers in observing the trends in this area and identify the topics which need further investigations.

READ FULL TEXT

page 19

page 22

research
06/02/2018

NLP-assisted software testing: a systematic review

Context: To reduce manual effort of extracting test cases from natural-l...
research
03/08/2020

Software-testing education: A systematic literature mapping

Context: With the rising complexity and scale of software systems, there...
research
09/24/2019

A Systematic Literature Review of Test Breakage Prevention and Repair Techniques

Context: When an application evolves, some of the developed test cases b...
research
06/11/2018

The History of Software Architecture - In the Eye of the Practitioner

Software architecture (SA) is celebrating 25 years. This is so if we con...
research
10/05/2018

Compiler Testing: A Systematic Literature Analysis

Compilers are widely-used infrastructures in accelerating the software d...
research
01/15/2019

100+ Metrics for Software Startups - A Multi-Vocal Literature Review

Metrics can be used by businesses to make more objective decisions based...
research
05/31/2023

Serious Games: An Updated Systematic Literature Review

Serious games are simulation software designed to assist people in learn...

Please sign up or login with your details

Forgot password? Click here to reset