Structural Equivalence Partition and Boundary Testing

Structural (manual or automated) testing today often overlooks typical pro- gramming faults because of inherent flaws in the simple criteria applied (e.g. branch or all-uses). Dedicated testing strategies that address such faults (e.g. mutation testing) are not specifically designed for smart automatic test case generation. In this paper we present a new coverage criterion and its implementation that accomplishes both: it detects more faults and integrates easily into automated test case generation. The criterion is targeted towards unveiling faults that originate from shifts in the equiva- lence classes that are caused by small coding errors (inspired by mutation testing). On benchmark codes from the Java-API and from an open-source project we improve the fault detection capability by up to 41% compared to branch and all-use coverage.

[1]  Lee J. White,et al.  A Domain Strategy for Computer Program Testing , 1980, IEEE Transactions on Software Engineering.

[2]  Antonia Bertolino,et al.  Using Spanning Sets for Coverage Testing , 2003, IEEE Trans. Software Eng..

[3]  Peter Liggesmeyer,et al.  Software-Qualität - testen, analysieren und verifizieren von Software , 2002 .

[4]  Elaine J. Weyuker,et al.  Data flow-based test adequacy analysis for languages with pointers , 1991, TAV4.

[5]  Paolo Tonella,et al.  Evolutionary testing of classes , 2004, ISSTA '04.

[6]  A. Jefferson Offutt,et al.  An experimental mutation system for Java , 2004, SOEN.

[7]  Gary McGraw,et al.  Generating Software Test Data by Evolution , 2001, IEEE Trans. Software Eng..

[8]  Norbert Oster,et al.  Automatische Generierung optimaler modellbasierter Regressionstests , 2008, GI Jahrestagung.

[9]  Norbert Oster,et al.  Automatic Test Data Generation by Multi-objective Optimisation , 2006, SAFECOMP.

[10]  Norbert Oster Automatische Generierung optimaler struktureller Testdaten für objekt-orientierte Software mittels multi-objektiver Metaheuristiken , 2007 .

[11]  Andreas Zeller,et al.  Mutation-Driven Generation of Unit Tests and Oracles , 2012, IEEE Trans. Software Eng..

[12]  Phil McMinn,et al.  Search‐based software test data generation: a survey , 2004, Softw. Test. Verification Reliab..

[13]  Jean-Marc Jézéquel,et al.  Building trust into OO components using a genetic analogy , 2000, Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE 2000.

[14]  Guy L. Steele,et al.  Java(TM) Language Specification , 2005 .

[15]  Peter G. Bishop Estimating Residual Faults from Code Coverage , 2002, SAFECOMP.

[16]  Antonia Bertolino,et al.  Feasible test path selection by principal slicing , 1997, ESEC '97/FSE-5.

[17]  Bruno Legeard,et al.  Boundary coverage criteria for test generation from formal models , 2004, 15th International Symposium on Software Reliability Engineering.

[18]  Joachim Wegener,et al.  Automatic Test Data Generation For Structural Testing Of Embedded Software Systems By Evolutionary Testing , 2002, GECCO.