Locating fault-inducing patterns from structural inputs

In this paper, we propose a new fault localization technique for testing software which requires structured input data. We adopt a symbolic grammar to represent structured data input, and use an automatic grammar-based test generator to produce a set of well-distributed test cases, each of which is equipped with a set of structural features. We show that structural features can be effectively used as test coverage criteria for test suite reduction. By learning structural features associated with failed test cases, we present an automatic fault localization approach to find out software defects which result in the testing failures. Preliminary experiments justify that our fault localization approach is able to accurately locate fault-inducing patterns.

[1]  Ralf Lämmel,et al.  Towards an engineering discipline for GRAMMARWARE Draft as of August 17 , 2003 , 2003 .

[2]  Nicolas Halbwachs,et al.  Automatic testing of reactive systems , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[3]  Ben Liblit,et al.  Adaptive bug isolation , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[4]  Haiming Chen,et al.  A Systematic Framework for Grammar Testing , 2009, 2009 Eighth IEEE/ACIS International Conference on Computer and Information Science.

[5]  Vasek Chvátal,et al.  A Greedy Heuristic for the Set-Covering Problem , 1979, Math. Oper. Res..

[6]  L. Shepp Probability Essentials , 2002 .

[7]  Rupak Majumdar,et al.  Directed test generation using symbolic grammars , 2007, ESEC-FSE companion '07.

[8]  Peter M. Maurer,et al.  The design and implementation of a grammar‐based data generator , 1992, Softw. Pract. Exp..

[9]  Andreas Zeller,et al.  Simplifying and Isolating Failure-Inducing Input , 2002, IEEE Trans. Software Eng..

[10]  Rajiv Gupta,et al.  A methodology for controlling the size of a test suite , 1990, Proceedings. Conference on Software Maintenance 1990.

[11]  Mark Harman,et al.  Regression testing minimization, selection and prioritization: a survey , 2012, Softw. Test. Verification Reliab..

[12]  W. Eric Wong,et al.  A consensus‐based strategy to improve the quality of fault localization , 2013, Softw. Pract. Exp..

[13]  J Hayhurst Kelly,et al.  A Practical Tutorial on Modified Condition/Decision Coverage , 2001 .

[14]  Elaine J. Weyuker,et al.  An Applicable Family of Data Flow Testing Criteria , 1988, IEEE Trans. Software Eng..

[15]  Paul A. Strooper,et al.  Grammar‐based test generation with YouGen , 2011, Softw. Pract. Exp..

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

[17]  Adam Kiezun,et al.  Grammar-based whitebox fuzzing , 2008, PLDI '08.

[18]  Dragan Gasevic,et al.  Grammar-based test generation for software product line feature models , 2012, CASCON.

[19]  Xiaofeng Xu,et al.  A Grouping-Based Strategy to Improve the Effectiveness of Fault Localization Techniques , 2010, 2010 10th International Conference on Quality Software.

[20]  Gopal Gupta,et al.  Simplifying dynamic programming via mode‐directed tabling , 2008, Softw. Pract. Exp..

[21]  Clifford J. Maloney,et al.  Systematic mistake analysis of digital computer programs , 1963, CACM.

[22]  Zongyan Qiu,et al.  Automatic Grammar-Based Test Generation , 2013, ICTSS.

[23]  Xiangyu Zhang,et al.  Locating faults through automated predicate switching , 2006, ICSE.