Abstract

Abstract This paper presents an empirical comparison of the growth characteristics of four code coverage measures, block, decision, c-use and p-use, as testing is increased. Due to the theoretical foundations underlying the lognormal software reliability growth model, we hypothesize that the growth for each coverage measure is lognormal. Further, since for a given program the breadth and the depth of the different coverage measures are similar, we expect that the parameters of the lognormal coverage growth model for each of the four coverage measures to be similar. We confirm these hypotheses using coverage data generated from extensive testing of an application which has 30 KLOC. We then discuss how the lognormal coverage growth function could be used to control the testing process and to guide decisions about when to stop testing, since it can provide an estimate of the marginal testing effort necessary to achieve a given level of improvement in the coverage.

Highlights

  • The growing dependence of our society on the services provided by software applications places a high premium on their reliable operation

  • We extend that research to develop a coverage growth model based on the lognormal and interpret its parameters

  • In what follows we will refer to this proposed coverage growth model as the lognormal model because it is based on an underlying lognormal distribution of execution rates, it is the Laplace transform of the lognormal

Read more

Summary

INTRODUCTION

The growing dependence of our society on the services provided by software applications places a high premium on their reliable operation. Since exhaustive testing to cover all the possible paths is infeasible in practice, all the proposed code-based criteria attempt to approximate path coverage by identifying specific elements (control flow and data flow) of a program that may be relevant for revealing defects, and by requiring that enough paths be executed to cover all such elements. In this paper we study the coverage growth of different data-flow and control-flow coverage measures as a function of testing. For each one of these measures we hypothesize the coverage growth to be lognormal, due to the theoretical foundations underpinning the lognormal software reliability growth model [26] To validate this hypothesis we generate empirical coverage data from extensive testing of a software application named SHARPE [36], which has approximately 30 KLOC.

LOGNORMAL COVERAGE GROWTH MODEL
ORIGIN OF LOGNORMAL EXECUTION RATES
INTERPRETATION OF PARAMETERS
EXPERIMENTAL SETUP
OVERVIEW OF SHARPE
COLLECTING COVERAGE MEASUREMENTS
DATA REDUCTION AND AGGREGATION
ANALYSIS AND DISCUSSION
ANALYSIS OF ENTIRE APPLICATION
ANALYSIS OF INDIVIDUAL FILES
IMPLICATIONS FOR TESTING
Findings
CONCLUSIONS AND FUTURE RESEARCH
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call