An automated framework for software test oracle

Context: One of the important issues of software testing is to provide an automated test oracle. Test oracles are reliable sources of how the software under test must operate. In particular, they are used to evaluate the actual results that produced by the software. However, in order to generate an automated test oracle, oracle challenges need to be addressed. These challenges are output-domain generation, input domain to output domain mapping, and a comparator to decide on the accuracy of the actual outputs. Objective: This paper proposes an automated test oracle framework to address all of these challenges. Method: I/O Relationship Analysis is used to generate the output domain automatically and Multi-Networks Oracles based on artificial neural networks are introduced to handle the second challenge. The last challenge is addressed using an automated comparator that adjusts the oracle precision by defining the comparison tolerance. The proposed approach was evaluated using an industry strength case study, which was injected with some faults. The quality of the proposed oracle was measured by assessing its accuracy, precision, misclassification error and practicality. Mutation testing was considered to provide the evaluation framework by implementing two different versions of the case study: a Golden Version and a Mutated Version. Furthermore, a comparative study between the existing automated oracles and the proposed one is provided based on which challenges they can automate. Results: Results indicate that the proposed approach automated the oracle generation process 97% in this experiment. Accuracy of the proposed oracle was up to 98.26%, and the oracle detected up to 97.7% of the injected faults. Conclusion: Consequently, the results of the study highlight the practicality of the proposed oracle in addition to the automation it offers.

[1]  Abraham Kandel,et al.  Artificial intelligence methods in software testing , 2004 .

[2]  Paul C. Jorgensen,et al.  Software Testing: A Craftsman's Approach , 1995 .

[3]  S. R. Shahamiri,et al.  An automated oracle approach to test decision-making structures , 2010, 2010 3rd International Conference on Computer Science and Information Technology.

[4]  Mary Lou Soffa,et al.  Automated test oracles for GUIs , 2000, SIGSOFT '00/FSE-8.

[5]  Martin R. Woodward,et al.  On the relationship between two control-flow coverage criteria: all JJ-paths and MCDC , 2006, Inf. Softw. Technol..

[6]  Taghi M. Khoshgoftaar,et al.  Predicting testability of program modules using a neural network , 2000, Proceedings 3rd IEEE Symposium on Application-Specific Systems and Software Engineering Technology.

[7]  Curtis E. Dyreson,et al.  Building test cases and oracles to automate the testing of web database applications , 2009, Inf. Softw. Technol..

[8]  Suhaimi Ibrahim,et al.  A Single-Network ANN-based Oracle to verify logical software modules , 2010, 2010 2nd International Conference on Software Technology and Engineering.

[9]  Atif M. Memon,et al.  Automating regression testing for evolving GUI software: Research Articles , 2005 .

[10]  Bogdan Korel,et al.  Generating expected results for automated black-box testing , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[11]  Andreas S. Andreou,et al.  Automatic, evolutionary test data generation for dynamic software testing , 2008, J. Syst. Softw..

[12]  Mao Ye,et al.  Oracle Model Based on RBF Neural Networks for Automated Software Testing , 2007 .

[13]  A. Jefferson Offutt,et al.  Introduction to Software Testing , 2008 .

[14]  Atif M. Memon AUTOMATED GUI REGRESSION TESTING USING AI PLANNING , 2004 .

[15]  Chin-Yu Huang,et al.  Neural-network-based approaches for software reliability estimation using dynamic weighted combinational models , 2007, J. Syst. Softw..

[16]  Debra J. Richardson,et al.  Specification-based test oracles for reactive systems , 1992, International Conference on Software Engineering.

[17]  Taghi M. Khoshgoftaar,et al.  Exploring the behaviour of neural network software quality models , 1995, Softw. Eng. J..

[18]  Glenford J. Myers,et al.  Art of Software Testing , 1979 .

[19]  Bogdan Korel,et al.  Maintaining the Quality of Black-Box Testing , 2001 .

[20]  Abraham Kandel,et al.  Test case generation and reduction by automated input-output analysis , 2003, SMC'03 Conference Proceedings. 2003 IEEE International Conference on Systems, Man and Cybernetics. Conference Theme - System Security and Assurance (Cat. No.03CH37483).

[21]  Simeon C. Ntafos,et al.  On Comparisons of Random, Partition, and Proportional Partition Testing , 2001, IEEE Trans. Software Eng..

[22]  Paul Jorgensen,et al.  Software Testing: A Craftman's Approach , 2001 .

[23]  K. K. Aggarwal,et al.  A neural net based approach to Test Oracle , 2004, SOEN.

[24]  James A. Whittaker,et al.  What is software testing? And why is it so hard? , 2000 .

[25]  Derrick G. Kourie,et al.  Software testing using model programs , 2001, Softw. Pract. Exp..

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

[27]  B. Eng,et al.  GENERATING A TEST ORACLE FROM PROGRAM DOCUMENTATION , 1995 .

[28]  Abraham Kandel,et al.  Using a neural network in the software testing process , 2002, Int. J. Intell. Syst..

[29]  Shari Lawrence Pfleeger,et al.  Investigating the Influence of Formal Methods , 1997, Computer.

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

[31]  Mao Ye,et al.  Neural Networks Based Automated Test Oracle for Software Testing , 2006, ICONIP.

[32]  Bogdan Korel,et al.  Black-box test reduction using input-output analysis , 2000, ISSTA '00.

[33]  James D. McCaffrey Software Testing: Fundamental Principles and Essential Knowledge , 2009 .

[34]  Siti Zaiton Mohd Hashim,et al.  Artificial neural networks as multi-networks automated test oracle , 2011, Automated Software Engineering.

[35]  Atif M. Memon,et al.  Automating regression testing for evolving GUI software , 2005, J. Softw. Maintenance Res. Pract..

[36]  Abhijit S. Pandya,et al.  A neural network approach for predicting software development faults , 1992, [1992] Proceedings Third International Symposium on Software Reliability Engineering.

[37]  Anne Mette Jonassen Hass Guide to Advanced Software Testing , 2008 .

[38]  Lionel C. Briand,et al.  Automating regression test selection based on UML designs , 2009, Inf. Softw. Technol..

[39]  Siti Zaiton Mohd Hashim,et al.  A Comparative Study on Automated Software Test Oracle Methods , 2009, 2009 Fourth International Conference on Software Engineering Advances.

[40]  Madhaw S. Phadke Planning efficient software tests , 1999 .

[41]  Abbas Heiat,et al.  Comparison of artificial neural network and regression models for estimating software development effort , 2002, Inf. Softw. Technol..

[42]  Robert J. Schalkoff,et al.  Artificial neural networks , 1997 .

[43]  Abraham Kandel,et al.  Using Data Mining For Automated Software Testing , 2004, Int. J. Softw. Eng. Knowl. Eng..

[44]  David Lorge Parnas,et al.  Generating a test oracle from program documentation: work in progress , 1994, ISSTA '94.

[45]  Yi Wang,et al.  Artificial Neural Network for Automatic Test Oracles Generation , 2008, 2008 International Conference on Computer Science and Software Engineering.

[46]  Tsong Yueh Chen,et al.  On the Expected Number of Failures Detected by Subdomain Testing and Random Testing , 1996, IEEE Trans. Software Eng..

[47]  Wan Mohd. Nasir Wan Kadir,et al.  Intelligent and automated software testing methods classification , 2008 .

[48]  M. R. Woodward,et al.  Mutation testing - its origin and evolution , 1993, Inf. Softw. Technol..

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

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

[51]  Ashish Jain,et al.  Model-based testing of a highly programmable system , 1998, Proceedings Ninth International Symposium on Software Reliability Engineering (Cat. No.98TB100257).

[52]  Menahem Friedman BLACK-BOX TESTING WITH INFO-FUZZY NETWORKS , 2004 .

[53]  Gary McGraw,et al.  Automated software test data generation for complex programs , 1998, Proceedings 13th IEEE International Conference on Automated Software Engineering (Cat. No.98EX239).

[54]  Atif M. Memon,et al.  Designing and comparing automated test oracles for GUI-based software applications , 2007, TSEM.