Skip to main content
Log in

Measuring and specifying combinatorial coverage of test input configurations

  • Original Paper
  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

Abstract

A key issue in testing is how many tests are needed for a required level of coverage or fault detection. Estimates are often based on error rates in initial testing, or on code coverage. For example, tests may be run until a desired level of statement or branch coverage is achieved. Combinatorial methods present an opportunity for a different approach to estimating required test set size, using characteristics of the test set. This paper describes methods for estimating the coverage of, and ability to detect, t-way interaction faults of a test set based on a covering array. We also develop a connection between (static) combinatorial coverage and (dynamic) code coverage, such that if a specific condition is satisfied, 100 % branch coverage is assured. Using these results, we propose practical recommendations for using combinatorial coverage in specifying test requirements, and for improving estimates of the fault detection capacity of a test set.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

References

  1. Dunietz S, Ehrlich WK, Szablak BD, Mallows CL, Iannino A (1997) Applying design of experiments to software testing. In: Proc. Intl. Conf. on Software Engineering, (ICSE ’97), pp 205–215

  2. Grindal M, Offutt J, Andler SF (2005) Combination testing strategies: a survey. Softw Test Verif Reliab 15:167–199

    Article  Google Scholar 

  3. Lei Y, Kacker R, Kuhn DR, Okun V, Lawrence J (2007) IPOG: a general strategy for \(t\)-way software testing. In: Proc., IEEE Engineering of computer based systems, pp 549–556

  4. Kuhn DR, Kacker RN, Lei Y (2010) Practical combinatorial testing. NIST SP 800–142

  5. Kuhn DR, Wallace DR, Gallo AM Jr (2004) Software fault interactions and implications for software testing. IEEE Trans Softw Eng 30(6):418–421

    Article  Google Scholar 

  6. Bryce R, Colbourn CJ, Cohen MB (2005) A framework of greedy methods for constructing interaction tests. In: The 27th international conference on software engineering (ICSE), St. Louis, Missouri, pp 146–155

  7. Kuhn DR, Kacker R, Lei Y (2012) Combinatorial coverage measurement. NIST IR 7878

  8. Kuhn DR, Dominguez Mendoza I, Kacker RN, Lei Y (2013) Combinatorial coverage measurement concepts and applications. In: Proc. IEEE sixth intl conf on software testing, verification and validation workshops (IWCT). IEEE, pp 352–361

  9. Maximoff JR, Trela MD, Kuhn DR, Kacker R (2010) A method for analyzing system state-space coverage within a \(t\)-wise testing framework. IEEE International Systems Conference 2010. Apr. 4–11, San Diego

  10. Kuhn DR, Kacker RN (2012) Measuring combinatorial coverage of system state-space for IV&V. NASA IV&V Workshop

  11. Price C, Kuhn R, Forquer R, Lagoy A, Kacker R (2013) Evaluating the \(t\)-way combinatorial technique for determining the thoroughness of a test suite. NASA IV&V Workshop

  12. Arcuri A, Briand L (2011) Formal analysis of the probability of interaction fault detection using random testing. IEEE Trans. Software Engineering. IEEE Computer Society

  13. Lyu MR (1996) Handbook of software reliability engineering, vol 222. IEEE Computer Society Press, CA

  14. Bell KZ, Vouk Mladen A (2005) On effectiveness of pairwise methodology for testing network-centric software. In: Proceedings of the ITI third IEEE intl conf. information & communications technology. Cairo, Egypt, 2005, pp 221–235

  15. du Bousquet L, Ledru Y, Maury O, Oriat C, Lanet J-L (2004) A case study in JML-based software validation. In: Proc. 19th Int. IEEE Conf. on automated sofware engineering. Linz, 2004, pp 294–297

  16. Ammann P, Offutt J (2008) Introduction to software testing. Cambridge University Press, Cambridge, UK

    Book  MATH  Google Scholar 

  17. Montanez C, Kuhn DR, Brady M, Rivello RM, Reyes J, Michael K (2012) Evaluation of fault detection effectiveness for combinatorial and exhaustive selection of discretized test inputs. Softw Qual Prof Mag 14(3):32–38

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to D. Richard Kuhn.

Appendices

Appendix 1: Ancillary coverage, (\(t+1\))-way and (\(t+2\))-way for n-variable covering arrays

figure c

Appendix 2

Explanation of charts: Lower and upper bounds on fault coverage are estimated for n-variable covering arrays, using ancillary \((t+1)\)-way and \((t+2)\)-way coverage for t-way arrays, for \(t=2\) through 5. For example, the first column below indicates that a 2-way covering array provides 100 % 1-way and 100 % 2-way coverage, 76.8 % 3-way coverage, and 46.1 % 4-way coverage. Similarly, the second column shows 100 % coverage of 1-way through 3-way for a 3-way array, with 83.5 and 53.5 % 4-way and 5-way coverage. Lower and upper bounds are then computed using the empirical data from Table 1 (reproduced in first two columns below) and expression (2) for \(\mathrm{Fault\,coverage}=\sum \nolimits _{1\le t\le k} F_t \times S_t\).

figure d
figure e
figure f
figure g

Appendix 3

Explanation of charts: Comparison of fault coverage for two different hypothetical distributions of faults in 10-variable covering arrays, using \((t+1)\)-way and \((t+2)\)-way coverage for t-way arrays, for \(t=2\) through 5. For example, the first column below indicates that a 2-way covering array provides 100 % 1-way and 100 % 2-way coverage, 76.8 % 3-way coverage, and 46.1 % 4-way coverage, resulting in 2-way fault coverage of 49.9 % for distribution 1 (right) and 23.1 % for distribution 2.

figure h
figure i

Appendix 4

The left panel of Table 4 shows the combinatorial coverage of 7489 tests for a NASA spacecraft documented in [9]. The test set was developed using conventional methods and analyzed to determine the level of combinatorial coverage. The right panel shows fault coverage estimated using expression (2) under various possible hypothetical fault profiles.

Profile \({P}_{1}\) is approximately the upper bound from Table 2, representing an average of fault distributions for previously reported data [5]. \({P}_{2}\) assumes an application for which single-value faults have been removed. \({P}_{3}\) assumes an application has been thoroughly tested and all single-value and 2-way faults have been removed. Fault coverage declines because t-way combinatorial coverage decreases with increasing t. A fault profile such as \({P}_{1}\) might be expected in an average application, while \({P}_{2}\) and \({P}_{3}\) might be seen in more well-tested applications. Note that these figures estimate only the proportion of fault coverage; a previously untested application could be expected to have a higher absolute number of faults than those that have been used and tested extensively.

Table 4 Fault coverage under various assumptions

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Kuhn, D.R., Kacker, R.N. & Lei, Y. Measuring and specifying combinatorial coverage of test input configurations. Innovations Syst Softw Eng 12, 249–261 (2016). https://doi.org/10.1007/s11334-015-0266-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-015-0266-2

Keywords

Navigation