An experimental assessment of module documentation-based testing

Context: Testing a module that has memory using the black-box approach has been found to be expensive and relatively ineffective. Instead, testing without knowledge of the specifications (white-box approach) may not be effective in showing whether a program has been properly implemented as stated in its specifications. We propose instead a grey-box approach called Module Documentation-based Testing or MD-Test, the heart of which is an automatic generation of the test oracle from the external and internal views of the module. Objective: This paper presents an empirical analysis and comparison of MD-Test against three existing testing tools. Method: The experiment was conducted using a mutation-testing approach, in two phases that assess the capability of MD-Test in general and its capability of evaluating test results in particular. Results: The results of the general assessment indicate that MD-Test is more effective than the other three tools under comparison, where it is able to detect all faults. The second phase of the experiment, which is significant to this study, compares the capabilities of MD-Test and JUnit-black using the test evaluation results. Likewise, an analysis of the test evaluation results shows that MD-Test is more effective and efficient, where MD-Test is able to detect at least the same number of faults as, or is at par with, the black-box approach. Conclusion: It is concluded that test evaluation using grey-box approach is more effective and efficient that the black-box approach when testing a module that has memory.

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

[2]  Carlos E. Rubio-Medrano,et al.  Random Test Data Generation for Java Classes Annotated with JML Specifications , 2007, Software Engineering Research and Practice.

[3]  David Lorge Parnas,et al.  Predicate Logic for Software Engineering , 1993, IEEE Trans. Software Eng..

[4]  Li Xuandong,et al.  Generating test cases from UML activity diagram based on Gray-box method , 2004 .

[5]  Zarina Shukur,et al.  The Conceptual Design of Module Documentation Based Testing Tool , 2008 .

[6]  A. Jefferson Offutt,et al.  Evaluation of three specification-based testing criteria , 2000, Proceedings Sixth IEEE International Conference on Engineering of Complex Computer Systems. ICECCS 2000.

[7]  David S. Rosenblum Towards A Method Of Programming With Assertions , 1992, International Conference on Software Engineering.

[8]  Stephen H. Edwards,et al.  Experiences evaluating the effectiveness of JML-JUnit testing , 2004, SOEN.

[9]  David Lorge Parnas,et al.  Using Test Oracles Generated from Program Documentation , 1998, IEEE Trans. Software Eng..

[10]  Zarina Shukur,et al.  Utilizing an abstraction relation document in grey-box testing approach , 2009, 2009 International Conference on Electrical Engineering and Informatics.

[11]  Richard G. Hamlet,et al.  Automatically Checking an Implementation against Its Formal Specification , 2000, IEEE Trans. Software Eng..

[12]  Jürgen Dingel,et al.  An empirical framework for comparing effectiveness of testing and property-based formal analysis , 2005, PASTE '05.

[13]  Akbar Siami Namin,et al.  Sufficient mutation operators for measuring test effectiveness , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[14]  A. Jefferson Offutt,et al.  Investigations of the software testing coupling effect , 1992, TSEM.

[15]  David Notkin,et al.  Tool-assisted unit-test generation and selection based on operational abstractions , 2006, Automated Software Engineering.

[16]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[17]  David C. Levy,et al.  Automating the Testing of Object Behaviour: A Statechart-Driven Approach , 2007 .

[18]  David Lorge Parnas,et al.  Using information about functions in selecting test cases , 2005, ACM SIGSOFT Softw. Eng. Notes.

[19]  Tsong Yueh Chen,et al.  In black and white: an integrated approach to class-level testing of object-oriented programs , 1998, TSEM.

[20]  David J. Panzl Automatic Software Test Drivers , 1978, Computer.

[21]  David Lorge Parnas,et al.  Precise Documentation of Well-Structured Programs , 1994, IEEE Trans. Software Eng..

[22]  Antonia Bertolino,et al.  Software Testing Research: Achievements, Challenges, Dreams , 2007, Future of Software Engineering (FOSE '07).

[23]  F. Ipate,et al.  State-based Testing is Functional Testing , 2007, Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION 2007).

[24]  C. A. R. Hoare,et al.  Proof of correctness of data representations , 1972, Acta Informatica.

[25]  Jonathan P. Bowen,et al.  From MC/DC to RC/DC: formalization and analysis of control-flow testing criteria , 2006, Formal Aspects of Computing.

[26]  Patrícia Duarte de Lima Machado Testing from structured algebraic specifications : the oracle problem , 2000 .

[27]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[28]  Edward R. Scheinerman Mathematics: A Discrete Introduction , 2000 .

[29]  David Lorge Parnas,et al.  Fault Propagation in Tabular Expression-Based Specifications , 2008, 2008 32nd Annual IEEE International Computer Software and Applications Conference.

[30]  David Lorge Parnas,et al.  Functional Documents for Computer Systems , 1995, Sci. Comput. Program..

[31]  Debra J. Richardson,et al.  TAOS: Testing with Analysis and Oracle Support , 1994, ISSTA '94.

[32]  Michael Hackett,et al.  Testing Applications on the Web: Test Planning for Mobile and Internet-Based Systems , 2003 .

[33]  Zarina Shukur,et al.  Module documentation based testing using Grey-Box approach , 2008, 2008 International Symposium on Information Technology.

[34]  Phyllis G. Frankl,et al.  The ASTOOT approach to testing object-oriented programs , 1994, TSEM.

[35]  James H. Andrews,et al.  General Test Result Checking with Log File Analysis , 2003, IEEE Trans. Software Eng..

[36]  David Lorge Parnas A generalized control structure and its formal definition , 1983, CACM.

[37]  Shaoying Liu,et al.  A relation-based method combining functional and structural testing for test case generation , 2008, J. Syst. Softw..

[38]  David Lorge Parnas,et al.  Specification of Software Component Requirements Using the Trace Function Method , 2006, 2006 International Conference on Software Engineering Advances (ICSEA'06).

[39]  A. Offutt The coupling effect: fact or fiction , 1989 .

[40]  Tanja E. J. Vos,et al.  Trace-based Reflexive Testing of OO Programs with T2 , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[41]  Gary T. Leavens,et al.  A Simple and Practical Approach to Unit Testing: The JML and JUnit Way , 2002, ECOOP.

[42]  Victor R. Basili,et al.  Comparing the Effectiveness of Software Testing Strategies , 1987, IEEE Transactions on Software Engineering.

[43]  T. H. Tse,et al.  An empirical comparison between direct and indirect test result checking approaches , 2006, SOQUA '06.

[44]  Jeremy S. Bradbury Using program mutation for the empirical assessment of fault detection techniques: a comparison of concurrency testing and model checking , 2007 .

[45]  Harlan D. Mills,et al.  Theory of Modules , 1987, IEEE Transactions on Software Engineering.

[46]  Yoonsik Cheon Automated Random Testing to Detect Specification-Code Inconsistencies , 2007, SETP.

[47]  Richard G. Hamlet,et al.  Data Abstraction, Implementation, Specification, and Testing , 1981, TOPL.

[48]  Boris Beizer,et al.  Software Testing Techniques , 1983 .

[49]  David Chapman A program testing assistant , 1982, CACM.

[50]  Hung Quoc Nguyen,et al.  Testing Applications on the Web: Test Planning for Internet-Based Systems , 2000 .

[51]  Richard G. Hamlet,et al.  Testing Programs with the Aid of a Compiler , 1977, IEEE Transactions on Software Engineering.

[52]  D. C. Luckham ANNA, a language for annotating Ada programs: reference manual , 1987 .

[53]  Johannes Mayer,et al.  An empirical analysis and comparison of random testing techniques , 2006, ISESE '06.

[54]  Mahesh Babu Mungara A Method for Systematically Generating Tests from Object-Oriented Class Interfaces , 2003 .

[55]  Laurent Fribourg,et al.  Test sets generation from algebraic specifications using logic programming , 1986, J. Syst. Softw..

[56]  Daniel J. Paulish,et al.  An empirical investigation of software fault distribution , 1993, [1993] Proceedings First International Software Metrics Symposium.

[57]  Steve Schneider The B-method - an introduction , 2001, The cornerstones of computing series.

[58]  David A. Carrington,et al.  A Framework for Specification-Based Testing , 1996, IEEE Trans. Software Eng..