The complementary aspect of automatically and manually generated test case sets

The test is a mandatory activity for software quality assurance. The knowledge about the software under testing is necessary to generate high-quality test cases, but to execute more than 80% of its source code is not an easy task, and demands an in-depth knowledge of the business rules it implements. In this article, we investigate the adequacy, effectiveness, and cost of manually generated test sets versus automatically generated test sets for Java programs. We observed that, in general, manual test sets determine higher statement coverage and mutation score than automatically generated test sets. But one interesting aspect recognized is that the automatically generated test sets are complementary to the manual test set. When we combined manual with automated test sets, the resultant test sets overcame in more that 10%, on average, statement coverage and mutation score when compared to the rates of manual test set, keeping a reasonable cost. Therefore, we advocate that we should concentrate the use of manually generated test sets on testing essential and critical parts of the software.

[1]  Bertrand Meyer,et al.  Reconciling Manual and Automated Testing: The AutoTest Experience , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[2]  Lionel C. Briand,et al.  Is mutation an appropriate tool for testing experiments? , 2005, ICSE.

[3]  Barry W. Boehm,et al.  Software Defect Reduction Top 10 List , 2001, Computer.

[4]  Simone do Rocio Senger de Souza,et al.  An Experimental Study to Evaluate the Impact of the Programming Paradigm in the Testing Activity , 2012, CLEI Electron. J..

[5]  Yong Rae Kwon,et al.  MuJava: an automated class mutation system: Research Articles , 2005 .

[6]  A. Jefferson Offutt,et al.  MuJava: an automated class mutation system , 2005, Softw. Test. Verification Reliab..

[7]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[8]  Pankaj Mudholkar,et al.  Software Testing , 2002, Computer.

[9]  Barry Boehm,et al.  Top 10 list [software development] , 2001 .

[10]  Kristen Walcott-Justice,et al.  Empirically Evaluating the Quality of Automatically Generated and Manually Written Test Suites , 2014, 2014 14th International Conference on Quality Software.

[11]  Anthony J H Simons,et al.  Automated Unit Testing with Randoop, JWalk and μJava versus Manual JUnit Testing , 2010 .

[12]  Anthony J. H. Simons,et al.  JWalk: a tool for lazy, systematic testing of java classes by design introspection and user interaction , 2007, Automated Software Engineering.

[13]  Gordon Fraser,et al.  EvoSuite at the SBST 2016 Tool Competition , 2016, 2016 IEEE/ACM 9th International Workshop on Search-Based Software Testing (SBST).

[14]  Lionel C. Briand,et al.  Using Mutation Analysis for Assessing and Comparing Testing Coverage Criteria , 2006, IEEE Transactions on Software Engineering.

[15]  Richard J. Lipton,et al.  Theoretical and empirical studies on using program mutation to test the functional correctness of programs , 1980, POPL '80.

[16]  Gordon Fraser,et al.  Sound empirical evidence in software testing , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[17]  Auri Marcelo Rizzo Vincenzi,et al.  Evaluating N -selective mutation for C programs: unit and integration testing , 2001 .

[18]  Michael D. Ernst,et al.  Randoop: feedback-directed random testing for Java , 2007, OOPSLA '07.