An assessment of operational coverage as both an adequacy and a selection criterion for operational profile based testing

While the relation between code coverage measures and fault detection is actively studied, only few works have investigated the correlation between measures of coverage and of reliability. In this work, we introduce a novel approach to measuring code coverage, called the operational coverage, that takes into account how much the program’s entities are exercised so to reflect the profile of usage into the measure of coverage. Operational coverage is proposed as (i) an adequacy criterion, i.e., to assess the thoroughness of a black box test suite derived from the operational profile, and as (ii) a selection criterion, i.e., to select test cases for operational profile-based testing. Our empirical evaluation showed that operational coverage is better correlated than traditional coverage with the probability that the next test case derived according to the user’s profile will not fail. This result suggests that our approach could provide a good stopping rule for operational profile-based testing. With respect to test case selection, our investigations revealed that operational coverage outperformed the traditional one in terms of test suite size and fault detection capability when we look at the average results.

[1]  Brian Marick How to Misuse Code Coverage , 1999 .

[2]  Stefano Russo,et al.  Adaptive Coverage and Operational Profile-Based Testing for Reliability Improvement , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

[3]  Jeffrey M. Voas,et al.  Predicting where faults can hide from testing , 1991, IEEE Software.

[4]  Antonia Bertolino,et al.  Software Testing Research: Achievements, Challenges, Dreams , 2007, Future of Software Engineering (FOSE '07).

[5]  Alex Groce,et al.  Code coverage for suite evaluation by developers , 2014, ICSE.

[6]  Bertrand Meyer,et al.  Is Branch Coverage a Good Measure of Testing Effectiveness? , 2010, LASER Summer School.

[7]  Joseph Robert Horgan,et al.  Effect of test set size and block coverage on the fault detection effectiveness , 1994, Proceedings of 1994 IEEE International Symposium on Software Reliability Engineering.

[8]  Hong Zhu,et al.  Software unit test coverage and adequacy , 1997, ACM Comput. Surv..

[9]  Antonia Bertolino,et al.  Does code coverage provide a good stopping rule for operational profile based testing? , 2016, AST@ICSE.

[10]  Gregory Gay,et al.  On the Danger of Coverage Directed Test Case Generation , 2012, FASE.

[11]  Thomas Ball,et al.  Edge profiling versus path profiling: the showdown , 1998, POPL '98.

[12]  Gregg Rothermel,et al.  Supporting Controlled Experimentation with Testing Techniques: An Infrastructure and its Potential Impact , 2005, Empirical Software Engineering.

[13]  Michael R. Lyu,et al.  Handbook of software reliability engineering , 1996 .

[14]  John D. Musa,et al.  Operational profiles in software-reliability engineering , 1993, IEEE Software.

[15]  Gregg Rothermel,et al.  An empirical investigation of program spectra , 1998, PASTE '98.

[16]  Madeline Diep,et al.  Profiling deployed software: assessing strategies and testing opportunities , 2005, IEEE Transactions on Software Engineering.

[17]  David Notkin,et al.  Checking inside the black box: regression testing by comparing value spectra , 2005, IEEE Transactions on Software Engineering.

[18]  Antonia Bertolino,et al.  Social coverage for customized test adequacy and selection criteria , 2014, AST 2014.

[19]  Alessandro Orso Monitoring, analysis, and testing of deployed software , 2010, FoSER '10.

[20]  Antonia Bertolino,et al.  Scope-aided test prioritization, selection and minimization for software reuse , 2017, J. Syst. Softw..

[21]  Alessandro Orso,et al.  Leveraging field data for impact analysis and regression testing , 2003, ESEC/FSE-11.

[22]  Alessandro Orso,et al.  Gamma system: continuous evolution of software after deployment , 2002, ISSTA '02.

[23]  Rui Abreu,et al.  A Survey on Software Fault Localization , 2016, IEEE Transactions on Software Engineering.

[24]  Alessandro Orso,et al.  F3: fault localization for field failures , 2013, ISSTA.

[25]  Yan Li,et al.  Approaches for the combined use of risk analysis and testing: a systematic literature review , 2014, International Journal on Software Tools for Technology Transfer.

[26]  Michael Felderer,et al.  Integrating risk-based testing in industrial test processes , 2013, Software Quality Journal.

[27]  Breno Miranda A proposal for revisiting coverage testing metrics , 2014, ASE.

[28]  Eda Marchetti,et al.  Whitening SOA testing , 2009, ESEC/FSE '09.

[29]  Bev Littlewood,et al.  Evaluating Testing Methods by Delivered Reliability , 1998, IEEE Trans. Software Eng..

[30]  David Lo,et al.  Code coverage and test suite effectiveness: Empirical study with real bugs in large systems , 2015, 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[31]  Fabio Del Frate,et al.  On the correlation between code coverage and software reliability , 1995, Proceedings of Sixth International Symposium on Software Reliability Engineering. ISSRE'95.

[32]  Victor R. Basili,et al.  Comparing the Effectiveness of Software Testing Strategies , 1987, IEEE Transactions on Software Engineering.

[33]  A. Jefferson Offutt,et al.  Introduction to Software Testing , 2008 .

[34]  Antonia Bertolino,et al.  Improving Test Coverage Measurement for Reused Software , 2015, 2015 41st Euromicro Conference on Software Engineering and Advanced Applications.

[35]  Michael D. Ernst,et al.  Improving test suites via operational abstraction , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[36]  Reid Holmes,et al.  Coverage is not strongly correlated with test suite effectiveness , 2014, ICSE.