Software Testing Research: Achievements, Challenges, Dreams

Software engineering comprehends several disciplines devoted to prevent and remedy malfunctions and to warrant adequate behaviour. Testing, the subject of this paper, is a widespread validation approach in industry, but it is still largely ad hoc, expensive, and unpredictably effective. Indeed, software testing is a broad term encompassing a variety of activities along the development cycle and beyond, aimed at different goals. Hence, software testing research faces a collection of challenges. A consistent roadmap of the most relevant challenges to be addressed is here proposed. In it, the starting point is constituted by some important past achievements, while the destination consists of four identified goals to which research ultimately tends, but which remain as unreachable as dreams. The routes from the achievements to the dreams are paved by the outstanding research challenges, which are discussed in the paper along with interesting ongoing work.

[1]  Ferhat Khendek,et al.  Compositional Testing of Communication Systems , 2006, TestCom.

[2]  Hong Zhu,et al.  A Theory of Behaviour Observation in Software Testing , 1999 .

[3]  Robert V. Binder,et al.  Testing Object-Oriented Systems: Models, Patterns, and Tools , 1999 .

[4]  Boris Beizer,et al.  Software testing techniques (2. ed.) , 1990 .

[5]  Alexander L. Wolf,et al.  Simulation-based test adequacy criteria for distributed systems , 2006, SIGSOFT '06/FSE-14.

[6]  Elaine J. Weyuker,et al.  Provable Improvements on Branch Testing , 1993, IEEE Trans. Software Eng..

[7]  Gerardo Canfora,et al.  New Frontiers of Reverse Engineering , 2007, Future of Software Engineering (FOSE '07).

[8]  Antonia Bertolino ISSTA 2002 panel: is ISSTA research relevant to industrial users? , 2002, ISSTA '02.

[9]  Stephen McCamant,et al.  The Daikon system for dynamic detection of likely invariants , 2007, Sci. Comput. Program..

[10]  Richard G. Hamlet,et al.  Theory of software reliability based on components , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[11]  William E. Howden,et al.  Reliability of the Path Analysis Testing Strategy , 1976, IEEE Transactions on Software Engineering.

[12]  Michael D. Ernst,et al.  Automatic test factoring for java , 2005, ASE '05.

[13]  Manfred Broy,et al.  Model-Based Testing of Reactive Systems: Advanced Lectures (Lecture Notes in Computer Science) , 2005 .

[14]  Aniruddha S. Gokhale,et al.  Preserving distributed systems critical properties: a model-driven approach , 2004, IEEE Software.

[15]  Hong Zhu,et al.  A Formal Analysis of the Subsume Relation Between Software Test Adequacy Criteria , 1996, IEEE Trans. Software Eng..

[16]  Barry W. Boehm,et al.  Value-based software engineering: reinventing , 2003, SOEN.

[17]  de Arjen Vries,et al.  Co-creation in ambient narratives, in Ambient Intelligence in Everyday Life , 2006 .

[18]  Natalia Juristo Juzgado,et al.  Packaging experiences for improving testing technique selection , 2006, J. Syst. Softw..

[19]  Richard G. Hamlet,et al.  Partition Testing Does Not Inspire Confidence , 1990, IEEE Trans. Software Eng..

[20]  Lionel C. Briand,et al.  Automated, contract-based user testing of commercial-off-the-shelf components , 2006, ICSE '06.

[21]  Debra J. Richardson,et al.  Siddhartha: a method for developing domain-specific test driver generators , 1999, 14th IEEE International Conference on Automated Software Engineering.

[22]  M. Young Test Oracles , 2001 .

[23]  Sungwon Kang,et al.  Generating Test Cases for Web Services Using Extended Finite State Machine , 2006, TestCom.

[24]  Ana R. Cavalli,et al.  A passive testing approach based on invariants: application to the WAP , 2005, Comput. Networks.

[25]  Edsger W. Dijkstra,et al.  Notes on structured programming , 1970 .

[26]  S. L. Gerhart,et al.  Toward a theory of test data selection , 1975, IEEE Transactions on Software Engineering.

[27]  Elaine J. Weyuker,et al.  Experience with Performance Testing of Software Systems: Issues, an Approach, and Case Study , 2000, IEEE Trans. Software Eng..

[28]  Lionel C. Briand,et al.  An Investigation of Graph-Based Class Integration Test Order Strategies , 2003, IEEE Trans. Software Eng..

[29]  Paola Inverardi,et al.  Towards Anti-Model-based Testing , 2004 .

[30]  Andrea Polini,et al.  Testing software components for integration: a survey of issues and techniques , 2007, Softw. Test. Verification Reliab..

[31]  Alessandro Orso,et al.  Selective capture and replay of program executions , 2005, WODA '05.

[32]  Leonardo Mariani,et al.  Dynamic Detection of COTS Component Incompatibility , 2007, IEEE Software.

[33]  Jan Tretmans,et al.  Test Generation with Inputs, Outputs and Repetitive Quiescence , 1996, Softw. Concepts Tools.

[34]  Wolfgang Grieskamp,et al.  Multi-paradigmatic Model-Based Testing , 2006, FATES/RV.

[35]  Koushik Sen,et al.  DART: directed automated random testing , 2005, PLDI '05.

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

[37]  Dorina C. Petriu,et al.  The Future of Software Performance Engineering , 2007, Future of Software Engineering (FOSE '07).

[38]  Michael D. Ernst,et al.  An experimental evaluation of continuous testing during development , 2004, ISSTA '04.

[39]  Carol S. Smidts,et al.  HOTTest: A model-based test design technique for enhanced testing of domain-specific applications , 2006, TSEM.

[40]  Alexandre Petrenko,et al.  Protocol testing: review of methods and relevance for software testing , 1994, ISSTA '94.

[41]  Wei Sun,et al.  BPEL4WS unit testing: framework and implementation , 2005, IEEE International Conference on Web Services (ICWS'05).

[42]  Matthew B. Dwyer,et al.  Carving differential unit test cases from system test cases , 2006, SIGSOFT '06/FSE-14.

[43]  Tore Dybå,et al.  The Future of Empirical Methods in Software Engineering Research , 2007, Future of Software Engineering (FOSE '07).

[44]  Nikolai Tillmann,et al.  Unit tests reloaded: parameterized unit testing with symbolic execution , 2006, IEEE Software.

[45]  David E. Culler,et al.  A blueprint for introducing disruptive technology into the Internet , 2003, CCRV.

[46]  Matthias Grochtmann,et al.  Verifying Timing Constraints of Real-Time Systems by Means of Evolutionary Testing , 1998, Real-Time Systems.

[47]  David S. Janzen,et al.  Test-driven development concepts, taxonomy, and future direction , 2005, Computer.

[48]  Jan Tretmans,et al.  Towards Model-Based Testing of Web Services , 2006 .

[49]  Jan Tretmans,et al.  A Symbolic Framework for Model-Based Testing , 2006, FATES/RV.

[50]  McMinnPhil Search-based software test data generation: a survey , 2004 .

[51]  Jesse H. Poore,et al.  Planning and certifying software system reliability , 1993, IEEE Software.

[52]  Natalia Juristo Juzgado,et al.  Reviewing 25 Years of Testing Technique Experiments , 2004, Empirical Software Engineering.

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

[54]  Marie-Claude Gaudel,et al.  Software testing based on formal specifications: a theory and a tool , 1991, Softw. Eng. J..

[55]  Daniel Mossé,et al.  Testing in resource constrained execution environments , 2005, ASE '05.

[56]  Jean-Marc Jézéquel,et al.  Design by Contract to Improve Software Vigilance , 2006, IEEE Transactions on Software Engineering.

[57]  Mark Harman,et al.  The Current State and Future of Search Based Software Engineering , 2007, Future of Software Engineering (FOSE '07).

[58]  Kim G. Larsen,et al.  Testing real-time embedded software using UPPAAL-TRON: an industrial case study , 2005, EMSOFT.

[59]  Arend Rensink,et al.  Compositional Testing with ioco , 2003, FATES.

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

[61]  Gerardo Canfora,et al.  Testing services and service-centric systems: challenges and opportunities , 2006, IT Professional.

[62]  Ann Q. Gates,et al.  A taxonomy and catalog of runtime software-fault monitoring tools , 2004, IEEE Transactions on Software Engineering.

[63]  Jorge L. Díaz-Herrera,et al.  Improving software practice through education: Challenges and future trends , 2007, Future of Software Engineering (FOSE '07).

[64]  Elaine J. Weyuker,et al.  Predicting the location and number of faults in large software systems , 2005, IEEE Transactions on Software Engineering.

[65]  Eda Marchetti,et al.  Introducing a Reasonably Complete and Coherent Approach for Model-based Testing , 2005, TACoS.

[66]  Michael R. Lyu Software Reliability Engineering: A Roadmap , 2007, Future of Software Engineering (FOSE '07).

[67]  Andrea Polini,et al.  The audition framework for testing Web services interoperability , 2005, 31st EUROMICRO Conference on Software Engineering and Advanced Applications.

[68]  Koushik Sen,et al.  CUTE: a concolic unit testing engine for C , 2005, ESEC/FSE-13.

[69]  John Morris,et al.  Using symbolic execution to guide test generation , 2005, Softw. Test. Verification Reliab..

[70]  Sigrid Eldh Software Testing Techniques , 2007 .

[71]  Mary Jean Harrold,et al.  Testing: a roadmap , 2000, ICSE '00.

[72]  Gregory Tassey,et al.  Prepared for what , 2007 .

[73]  Dick Hamlet Subdomain testing of units and systems with state , 2006, ISSTA '06.

[74]  Michael D. Ernst,et al.  Feedback-Directed Random Test Generation , 2007, 29th International Conference on Software Engineering (ICSE'07).

[75]  Elaine J. Weyuker,et al.  On Testing Non-Testable Programs , 1982, Comput. J..

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

[77]  Edsger W. Dijkstra EWD 1308: What Led to "Notes on Structured Programming" , 2002, Software Pioneers.

[78]  S. Berner,et al.  Observations and lessons learned from automated testing , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[79]  Marat Boshernitsan,et al.  From daikon to agitator: lessons and challenges in building a commercial tool for developer testing , 2006, ISSTA '06.

[80]  William C. Hetzel,et al.  The complete guide to software testing , 1984 .

[81]  Michael I. Jordan,et al.  Bug isolation via remote program sampling , 2003, PLDI.

[82]  Marie-Claude Gaudel,et al.  Formal Methods and Testing: Hypotheses, and Correctness Approximations , 2005, FM.

[83]  Manfred Broy,et al.  Model-Based Testing of Reactive Systems, Advanced Lectures , 2005 .

[84]  Matthew B. Dwyer,et al.  Formal Software Analysis Emerging Trends in Software Model Checking , 2007, Future of Software Engineering (FOSE '07).

[85]  C. Pasareanu,et al.  Assume-guarantee testing , 2006, SAVCBS '05.

[86]  Stefan Biffl,et al.  Value-Based Management of Software Testing , 2006, Value-Based Software Engineering.

[87]  Edward F. Moore,et al.  Gedanken-Experiments on Sequential Machines , 1956 .

[88]  Christian Schallhart,et al.  Tools for Test Case Generation , 2004, Model-Based Testing of Reactive Systems.

[89]  Gareth Lee,et al.  Using symbolic execution to guide test generation: Research Articles , 2005 .

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