Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1572272.1572295acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Automatic system testing of programs without test oracles

Published: 19 July 2009 Publication History
  • Get Citation Alerts
  • Abstract

    Metamorphic testing has been shown to be a simple yet effective technique in addressing the quality assurance of applications that do not have test oracles, i.e., for which it is difficult or impossible to know what the correct output should be for arbitrary input. In metamorphic testing, existing test case input is modified to produce new test cases in such a manner that, when given the new input, the application should produce an output that can easily be computed based on the original output. That is, if input x produces output f(x), then we create input x' such that we can predict f(x') based on f(x); if the application does not produce the expected output, then a defect must exist, and either f(x), or f(x') (or both) is wrong.
    In practice, however, metamorphic testing can be a manually intensive technique for all but the simplest cases. The transformation of input data can be laborious for large data sets, or practically impossible for input that is not in human-readable format. Similarly, comparing the outputs can be error-prone for large result sets, especially when slight variations in the results are not actually indicative of errors (i.e., are false positives), for instance when there is non-determinism in the application and multiple outputs can be considered correct.
    In this paper, we present an approach called Automated Metamorphic System Testing. This involves the automation of metamorphic testing at the system level by checking that the metamorphic properties of the entire application hold after its execution. The tester is able to easily set up and conduct metamorphic tests with little manual intervention, and testing can continue in the field with minimal impact on the user. Additionally, we present an approach called Heuristic Metamorphic Testing which seeks to reduce false positives and address some cases of non-determinism. We also describe an implementation framework called Amsterdam, and present the results of empirical studies in which we demonstrate the effectiveness of the technique on real-world programs without test oracles.

    References

    [1]
    SVM application list. http://www.clopinet.com/isabelle/Projects/SVM/applist.html.
    [2]
    J. R. Abrial. Specification Language Z. Oxford Univ. Press, 1980.
    [3]
    J. H. Andrews, L. C. Briand, and Y. Labiche. Is mutation an appropriate tool for testing experiments? In Proc of the 27th International Conference on Software Engineering (ICSE), pages 402--411, 2005.
    [4]
    M. Blum and S. Kannan. Designing programs that check their work. Journal of the ACM, 42(1):269--291, Jan. 1995.
    [5]
    C. Boyapati, S. Khurshid, and D. Marinov. Korat: automated testing based on Java predicates. In Proc of the 2002 ACM SIGSOFT international symposium on software testing and analysis, pages 123--133, 2002.
    [6]
    T. Y. Chen, S. C. Cheung, and S. Yiu. Metamorphic testing: a new approach for generating next test cases. Technical Report HKUST-CS98-01, Dept. of Computer Science, Hong Kong Univ. of Science and Technology, 1998.
    [7]
    T. Y. Chen, T. H. Tse, and Z. Q. Zhou. Fault-based testing without the need of oracles. Information and Software Technology, 44(15):923--931, 2002.
    [8]
    T. Y. Chen, T. H. Tse, and Z. Q. Zhou. Semi-proving: an integrated method based on global symbolic evaluation and metamorphic testing. In Proc. of the ACM SIGSOFT international symposium on software testing and analysis (ISSTA), pages 191--195, 2002.
    [9]
    W. J. Cody Jr. and W. Waite. Software Manual for the Elementary Functions. Prentice Hall, 1980.
    [10]
    M. D. Davis and E. J. Weyuker. Pseudo-oracles for non-testable programs. In Proc. of the ACM '81 Conference, pages 254--257, 1981.
    [11]
    M. D. Ernst, J. Cockrell, W. G. Griswold, and D. Notkin. Dynamically discovering likely programming invariants to support program evolution. In Proc. of the 21st International Conference on Software Engineering (ICSE), pages 213--224, 1999.
    [12]
    A. Gotleib and B. Botella. Automated metamorphic testing. In Proc. of 27th annual international computer software and applications conference (COMPSAC), pages 34--40, 2003.
    [13]
    P. Gross et al. Predicting electricity distribution feeder failures using machine learning susceptibility analysis. In Proc. of the 18th Conference on Innovative Applications in Artificial Intelligence, 2006.
    [14]
    R. Guderlei and J. Mayer. Statistical metamorphic testing - testing programs with random output by means of statistical hypothesis tests and metamorphic testing. In Proc of the Seventh International Conference on Quality Software, pages 404--409, 2007.
    [15]
    S. Hangal and M. S. Lam. Tracking down software bugs using automatic anomaly detection. In Proc. of the 24th International Conference on Software Engineering (ICSE), pages 291--301, 2002.
    [16]
    J. A. Hanley and B. J. McNeil. The meaning and use of the area under a receiver operating characteristic (ROC) curve. Radiology, 143:29--36, 1982.
    [17]
    J. Henkel and A. Diwan. Discovering algebraic specifications from Java classes. In Proc. of the 17th European Conference on Object-Oriented Programming ECOOP, 2003.
    [18]
    D. Hoffman. Heuristic test oracles. Software Testing and Quality Engineering, pages 29--32, 1999.
    [19]
    D. Jackson. Alloy: a lightweight object modelling notation. ACM Transactions on Software Engineering and Methodology, 11(2):256--290, 2002.
    [20]
    J. Knight and N. Leveson. An experimental evaluation of the assumption of independence in multi-version programming. IEEE Transactions on Software Engineering, 12(1):96--109, 1986.
    [21]
    T. Mitchell. Machine Learning: An Artificial Intelligence Approach. Morgan Kaufmann, 1983.
    [22]
    C. Murphy and G. Kaiser. Improving the dependability of machine learning applications. Technical Report CUCS-49-08, Dept. of Computer Science, Columbia University, 2008.
    [23]
    C. Murphy, G. Kaiser, and M. Arias. Parameterizing random test data according to equivalence classes. In Proc of the 2nd international workshop on random testing, pages 38--41, 2007.
    [24]
    C. Murphy, G. Kaiser, M. Chu, and I. Vo. Quality assurance of software applications using the in vivo testing approach. In Proc of the Second IEEE International Conference on Software Testing, Verification and Validation (ICST), 2009.
    [25]
    C. Murphy, G. Kaiser, L. Hu, and L. Wu. Properties of machine learning applications for use in metamorphic testing. In Proc. of the 20th international conference on software engineering and knowledge engineering (SEKE), pages 867--872, 2008.
    [26]
    C. Murphy, K. Shen, and G. Kaiser. Using JML runtime assertion checking to automate metamorphic testing in applications without test oracles. In Proc of the Second IEEE International Conference on Software Testing, Verification and Validation (ICST), 2009.
    [27]
    D. J. Newman, S. Hettich, C. L. Blake, and C. J. Merz. UCI repository of machine learning databases. University of California, Dept of Information and Computer Science, 1998.
    [28]
    I. Nunes, A. Lopes, V. Vasconcelos, J. Abreu, and L. S. Reis. Checking the conformance of Java classes against algebraic specifications. In In Proceedings of ICFEM'06, volume 4260 of LNCS, pages 494--513. Springer-Verlag, 2006.
    [29]
    S. Osman, D. Subhraveti, G. Su, and J. Nieh. The design and implementation of Zap: A system for migrating computing environments. In Proc of the Fifth Symposium on Operating Systems Design and Implementation (OSDI), pages 361--376, 2002.
    [30]
    J. Platt. Fast training of support vector machines using sequential minimal optimization. Advances in Kernel Methods, Support Vector Learning, 1999.
    [31]
    J. R. Quinlan. C4.5: Programs for Machine Learning. Morgan Kaufman, 1993.
    [32]
    S. Sankar. Run-time consistency checking of algebraic specifications. In Proceedings of the 1991 international symposium on software testing, analysis, and verification, pages 123--129, 1991.
    [33]
    S. Sankar, A. Goyal, and P. Sikchi. Software testing using algebraic specification based test oracles. Technical Report CSL-TR-93-566, Dept. of Computer Science, Stanford Univ., 2003.
    [34]
    C. Spearman. Footrule for measuring correlation. British Journal of Psychology, 2:89--108, June 1906.
    [35]
    V. N. Vapnik. The Nature of Statistical Learning Theory. Springer, 1995.
    [36]
    K. Wang and S. Stolfo. Anomalous payload-based network intrusion detection. In Proc. of the Seventh International Symposium on Recent Advances in Intrusion Detection (RAID), Sept. 2004.
    [37]
    E. J. Weyuker. On testing non-testable programs. Computer Journal, 25(4):465--470, November 1982.
    [38]
    I. H. Witten and E. Frank. Data Mining: Practical Machine Learning Tools and Techniques, 2nd Edition. Morgan Kaufmann, 2005.
    [39]
    X. Xie, J. Ho, C. Murphy, G. Kaiser, B. Xu, and T. Y. Chen. Improving the quality of computational science software by using metamorphic relations to test machine learning applications. Technical Report CUCS-004-09, Dept. of Computer Science, Columbia University, January 2009.

    Cited By

    View all
    • (2024)Metamorphic relationship generation based on Faure Sequence Initialized Slime Mould Algorithm2024 IEEE 14th International Conference on Electronics Information and Emergency Communication (ICEIEC)10.1109/ICEIEC61773.2024.10561718(235-239)Online publication date: 24-May-2024
    • (2023)Evaluating Surprise Adequacy for Deep Learning System TestingACM Transactions on Software Engineering and Methodology10.1145/354694732:2(1-29)Online publication date: 29-Mar-2023
    • (2023)Performance-Driven Metamorphic Testing of Cyber-Physical SystemsIEEE Transactions on Reliability10.1109/TR.2022.319307072:2(827-845)Online publication date: Jun-2023
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ISSTA '09: Proceedings of the eighteenth international symposium on Software testing and analysis
    July 2009
    306 pages
    ISBN:9781605583389
    DOI:10.1145/1572272
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 19 July 2009

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. metamorphic testing
    2. oracle problem
    3. software testing

    Qualifiers

    • Research-article

    Conference

    ISSTA '09

    Acceptance Rates

    Overall Acceptance Rate 58 of 213 submissions, 27%

    Upcoming Conference

    ISSTA '24

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)36
    • Downloads (Last 6 weeks)4
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Metamorphic relationship generation based on Faure Sequence Initialized Slime Mould Algorithm2024 IEEE 14th International Conference on Electronics Information and Emergency Communication (ICEIEC)10.1109/ICEIEC61773.2024.10561718(235-239)Online publication date: 24-May-2024
    • (2023)Evaluating Surprise Adequacy for Deep Learning System TestingACM Transactions on Software Engineering and Methodology10.1145/354694732:2(1-29)Online publication date: 29-Mar-2023
    • (2023)Performance-Driven Metamorphic Testing of Cyber-Physical SystemsIEEE Transactions on Reliability10.1109/TR.2022.319307072:2(827-845)Online publication date: Jun-2023
    • (2023)Integration and Unit Testing of Software Energy Consumption2023 Tenth International Conference on Software Defined Systems (SDS)10.1109/SDS59856.2023.10329262(60-64)Online publication date: 23-Oct-2023
    • (2023)Using Obfuscators to Test Compilers: A Metamorphic Experience2023 IEEE 47th Annual Computers, Software, and Applications Conference (COMPSAC)10.1109/COMPSAC57700.2023.00276(1786-1791)Online publication date: Jun-2023
    • (2023)ATOM: Automated Black-Box Testing of Multi-Label Image Classification Systems2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)10.1109/ASE56229.2023.00156(230-242)Online publication date: 11-Sep-2023
    • (2022)An Empirical Investigation to Understand the Issues of Distributed Software Testing amid COVID-19 PandemicProcesses10.3390/pr1005083810:5(838)Online publication date: 24-Apr-2022
    • (2022)On the cost-effectiveness of composite metamorphic relations for testing deep learning systemsProceedings of the 7th International Workshop on Metamorphic Testing10.1145/3524846.3527335(42-47)Online publication date: 9-May-2022
    • (2022)Multi-objective metamorphic follow-up test case selection for deep learning systemsProceedings of the Genetic and Evolutionary Computation Conference10.1145/3512290.3528697(1327-1335)Online publication date: 8-Jul-2022
    • (2022)Machine Learning Testing: Survey, Landscapes and HorizonsIEEE Transactions on Software Engineering10.1109/TSE.2019.296202748:1(1-36)Online publication date: 1-Jan-2022
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media