Metamorphic testing techniques to detect defects in applications without test oracles

Applications in the fields of scientific computing, simulation, optimization, machine learning, etc. are sometimes said to be "non-testable programs" because there is no reliable test oracle to indicate what the correct output should be for arbitrary input. In some cases, it may be impossible to know the program's correct output a priori; in other cases, the creation of an oracle may simply be too hard. These applications typically fall into a category of software that Weyuker describes as "Programs which were written in order to determine the answer in the first place. There would be no need to write such programs, if the correct answer were known." The absence of a test oracle clearly presents a challenge when it comes to detecting subtle errors, faults, defects or anomalies in software in these domains. As these types of programs become more and more prevalent in various aspects of everyday life, the dependability of software in these domains takes on increasing importance. Machine learning and scientific computing software may be used for critical tasks such as helping doctors perform a medical diagnosis or enabling weather forecasters to more accurately predict the paths of hurricanes; hospitals may use simulation software to understand the impact of resource allocation on the time patients spend in the emergency room. Clearly, a software defect in any of these domains can cause great inconvenience or even physical harm if not detected in a timely manner. Without a test oracle, it is impossible to know in general what the expected output should be for a given input, but it may be possible to predict how changes to the input should effect changes in the output, and thus identify expected relations among a set of inputs and among the set of their respective outputs. This approach, introduced by Chen et al., is known as "metamorphic testing". In metamorphic testing, if test case input x produces an output f(x), the function's so-called "metamorphic properties" can then be used to guide the creation of a transformation function t, which can then be applied to the input to produce t(x); this transformation then allows us to predict the expected output f(t(x)), based on the (already known) value of f(x). If the new output is as expected, it is not necessarily right, but any violation of the property indicates that one (or both) of the outputs is wrong. That is, though it may not be possible to know whether an output is correct, we can at least tell whether an output is incorrect. This thesis investigates three hypotheses. First, I claim that an automated approach to metamorphic testing will advance the state of the art in detecting defects in programs without test oracles, particularly in the domains of machine learning, simulation, and optimization. To demonstrate this, I describe a tool for test automation, and present the results of new empirical studies comparing the effectiveness of metamorphic testing to that of other techniques for testing applications that do not have an oracle. Second, I claim that conducting function-level metamorphic testing in the context of a running application will reveal defects not found by metamorphic testing using system-level properties alone, and introduce and evaluate a new testing technique called Metamorphic Runtime Checking. Third, I hypothesize that it is feasible to continue this type of testing in the deployment environment (i.e., after the software is released), with minimal impact on the user, and describe an approach called In Vivo Testing. Additionally, this thesis presents guidelines for identifying metamorphic properties, explains how metamorphic testing fits into the software development process, and discusses suggestions for both practitioners and researchers who need to test software without the help of a test oracle.

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

[2]  Richard P. Lippmann,et al.  An Overview of Issues in Testing Intrusion Detection Systems , 2003 .

[3]  Rocco A. Servedio,et al.  Martingale Boosting , 2005, COLT.

[4]  Chao Liu,et al.  SOBER: statistical model-based bug localization , 2005, ESEC/FSE-13.

[5]  Nancy G. Leveson,et al.  An experimental evaluation of the assumption of independence in multiversion programming , 1986, IEEE Transactions on Software Engineering.

[6]  Yoonsik Cheon Abstraction in Assertion-Based Test Oracles , 2007, Seventh International Conference on Quality Software (QSIC 2007).

[7]  Zhendong Su,et al.  Scalable detection of semantic clones , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[8]  Chengying Mao,et al.  Regression testing for component-based software via built-in test design , 2007, SAC '07.

[9]  Gail E. Kaiser,et al.  Configuration Fuzzing for Software Vulnerability Detection , 2010, 2010 International Conference on Availability, Reliability and Security.

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

[11]  Richard E. Fairley,et al.  Tutorial: Static Analysis and Dynamic Testing of Computer Software , 1978, Computer.

[12]  S. S. Yau,et al.  Design of self-checking software , 1975 .

[13]  Andreas Zeller,et al.  Efficient mutation testing by checking invariant violations , 2009, ISSTA.

[14]  Yingxu Wang,et al.  On built-in test reuse in object-oriented framework design , 2000, CSUR.

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

[16]  Tsong Yueh Chen,et al.  Automated functional testing of web search engines in the absence of an oracle , 2007 .

[17]  Chengying Mao,et al.  AOP-based Testability Improvement for Component-based Software , 2007, 31st Annual International Computer Software and Applications Conference (COMPSAC 2007).

[18]  Aiko M. Hormann,et al.  Programs for Machine Learning. Part I , 1962, Inf. Control..

[19]  Lori A. Clarke,et al.  Simulating patient flow through an Emergency Department using process-driven discrete event simulation , 2009, 2009 ICSE Workshop on Software Engineering in Health Care.

[20]  Yuanyuan Zhou,et al.  AVIO: Detecting Atomicity Violations via Access-Interleaving Invariants , 2007, IEEE Micro.

[21]  Nancy G. Leveson,et al.  The Use of Self Checks and Voting in Software Error Detection: An Empirical Study , 1990, IEEE Trans. Software Eng..

[22]  Amer Diwan,et al.  Discovering Algebraic Specifications from Java Classes , 2003, ECOOP.

[23]  Student,et al.  THE PROBABLE ERROR OF A MEAN , 1908 .

[24]  Ian H. Witten,et al.  Data mining: practical machine learning tools and techniques, 3rd Edition , 1999 .

[25]  R. Hamlet RANDOM TESTING , 1994 .

[26]  John R. Anderson,et al.  MACHINE LEARNING An Artificial Intelligence Approach , 2009 .

[27]  Volker Gruhn,et al.  The Self-Testing COTS Components ( STECC ) Strategy – a new form of improving component testability ∗ , 2003 .

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

[29]  David S. Rosenblum,et al.  A historical perspective on runtime assertion checking in software development , 2006, SOEN.

[30]  Suzanne M. Embury,et al.  An intensional approach to the specification of test cases for database applications , 2006, ICSE '06.

[31]  Pedram Amini,et al.  Fuzzing: Brute Force Vulnerability Discovery , 2007 .

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

[33]  Eric Van Wyk,et al.  Proving correctness of compiler optimizations by temporal logic , 2002, POPL '02.

[34]  Johannes Mayer,et al.  Statistical Metamorphic Testing Testing Programs with Random Output by Means of Statistical Hypothesis Tests and Metamorphic Testing , 2007 .

[35]  Peter Norvig,et al.  Techniques for Automatic Memoization with Applications to Context-Free Parsing , 1991, CL.

[36]  Bharat B. Madan,et al.  A method for modeling and quantifying the security attributes of intrusion tolerant systems , 2004, Perform. Evaluation.

[37]  Biswanath Mukherjee,et al.  A Methodology for Testing Intrusion Detection Systems , 1996, IEEE Trans. Software Eng..

[38]  Sriram Sankar Run-time consistency checking of algebraic specifications , 1991, TAV4.

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

[40]  J.H. Andrews,et al.  Is mutation an appropriate tool for testing experiments? [software testing] , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[41]  Jack P. C. Kleijnen,et al.  EUROPEAN JOURNAL OF OPERATIONAL , 1992 .

[42]  Carl E. Landwehr,et al.  Basic concepts and taxonomy of dependable and secure computing , 2004, IEEE Transactions on Dependable and Secure Computing.

[43]  Michael A. Heroux,et al.  Barely sufficient software engineering: 10 practices to improve your CSE software , 2009, 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering.

[44]  Richard J. Lipton,et al.  New Directions In Testing , 1989, Distributed Computing And Cryptography.

[45]  George S. Avrunin,et al.  Using model checking with symbolic execution to verify parallel numerical programs , 2006, ISSTA '06.

[46]  R. A. Leibler,et al.  On Information and Sufficiency , 1951 .

[47]  M. Young Test Oracles , 2001 .

[48]  Atif M. Memon,et al.  What test oracle should I use for effective GUI testing? , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[49]  Janice Singer,et al.  How do scientists develop and use scientific software? , 2009, 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering.

[50]  A. Jefferson Offutt,et al.  MuJava: an automated class mutation system , 2005, Softw. Test. Verification Reliab..

[51]  Chang Liu,et al.  RAIC: Architecting Dependable Systems through Redundancy and Just-In-Time Testing , 2002 .

[52]  Jonathan Vincent,et al.  Principles of Built-In-Test for Run-Time-Testability in Component-Based Software Systems , 2002, Software Quality Journal.

[53]  Dawson R. Engler,et al.  Bugs as deviant behavior: a general approach to inferring errors in systems code , 2001, SOSP.

[54]  Huai Liu,et al.  Conformance Testing of Network Simulators Based on Metamorphic Testing Technique , 2009, FMOODS/FORTE.

[55]  Chang Liu,et al.  Software Components with Retrospectors , 1998 .

[56]  Lionel C. Briand Novel Applications of Machine Learning in Software Testing , 2008, 2008 The Eighth International Conference on Quality Software.

[57]  Michael D. Ernst,et al.  Invariant inference for static checking: an empirical evaluation , 2002, SOEN.

[58]  Chih-Jen Lin,et al.  LIBSVM: A library for support vector machines , 2011, TIST.

[59]  Myra B. Cohen,et al.  Testing across configurations: implications for combinatorial testing , 2006, SOEN.

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

[61]  Aurobindo Sundaram,et al.  An introduction to intrusion detection , 1996, CROS.

[62]  Leon J. Osterweil,et al.  Little-JIL/Juliette: a process definition language and interpreter , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[63]  Nancy G. Leveson,et al.  The Consistent Comparison Problem in N-Version Software , 1989, IEEE Trans. Software Eng..

[64]  Diane Kelly,et al.  Testing for trustworthiness in scientific software , 2009, 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering.

[65]  Gail E. Kaiser,et al.  Using JML Runtime Assertion Checking to Automate Metamorphic Testing in Applications without Test Oracles , 2009, 2009 International Conference on Software Testing Verification and Validation.

[66]  Gail E. Kaiser,et al.  Quality Assurance of Software Applications Using the In Vivo Testing Approach , 2009, 2009 International Conference on Software Testing Verification and Validation.

[67]  Duncan Clarke,et al.  STG: a tool for generating symbolic test programs and oracles from operational specifications , 2001, ESEC/FSE-9.

[68]  David S. Rosenblum A Practical Approach to Programming With Assertions , 1995, IEEE Trans. Software Eng..

[69]  Jeffrey C. Carver Report from the Second International Workshop on Software Engineering for Computational Science and Engineering (SE-CSE 09) , 2009 .

[70]  Elaine J. Weyuker,et al.  Pseudo-oracles for non-testable programs , 1981, ACM '81.

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

[72]  Sriram Sankar,et al.  ADL—an interface definition language for specifying and testing software , 1994 .

[73]  Barak A. Pearlmutter,et al.  Detecting intrusions using system calls: alternative data models , 1999, Proceedings of the 1999 IEEE Symposium on Security and Privacy (Cat. No.99CB36344).

[74]  Tsong Yueh Chen,et al.  Case studies on the selection of useful relations in metamorphic testing , 2004 .

[75]  Stephan Merz,et al.  Model Checking , 2000 .

[76]  Jungsoon P. Yoo,et al.  Software testing: a machine learning experiment , 1995, CSC '95.

[77]  David C. Luckham,et al.  An Overview of Anna, a Specification Language for Ada , 1985, IEEE Software.

[78]  Zongyuan Yang,et al.  Metamorphic Testing and Its Applications , 2004 .

[79]  D. J. Robson,et al.  State-Based Testing and Inheritance , 1993 .

[80]  Michael D. Ernst,et al.  Reducing wasted development time via continuous testing , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[81]  H. Lilliefors On the Kolmogorov-Smirnov Test for Normality with Mean and Variance Unknown , 1967 .

[82]  Dawson R. Engler,et al.  A system and language for building system-specific, static analyses , 2002, PLDI '02.

[83]  Gail E. Kaiser,et al.  A Runtime Adaptation Framework for Native C and Bytecode Applications , 2006, 2006 IEEE International Conference on Autonomic Computing.

[84]  Nicolas Belloir,et al.  Component behavior prediction and monitoring through built-in test , 2003, 10th IEEE International Conference and Workshop on the Engineering of Computer-Based Systems, 2003. Proceedings..

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

[86]  Lori L. Pollock,et al.  Automated Oracle Comparators for TestingWeb Applications , 2007, The 18th IEEE International Symposium on Software Reliability (ISSRE '07).

[87]  João Abreu,et al.  Checking the Conformance of Java Classes Against Algebraic Specifications , 2006, ICFEM.

[88]  Yingjun Zhang,et al.  Broad-spectrum studies of log file analysis , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[89]  Gail E. Kaiser,et al.  Improving the Dependability of Machine Learning Applications , 2008 .

[90]  Raymond A. Paul,et al.  Simulation verification and validation by dynamic policy enforcement , 2005, 38th Annual Simulation Symposium.

[91]  Mauro Pezzè,et al.  Software testing and analysis - process, principles and techniques , 2007 .

[92]  Sami Beydeda Self-Metamorphic-Testing Components , 2006, 30th Annual International Computer Software and Applications Conference (COMPSAC'06).

[93]  Baowen Xu,et al.  Application of Metamorphic Testing to Supervised Classifiers , 2009, 2009 Ninth International Conference on Quality Software.

[94]  A. Zeller Isolating cause-effect chains from computer programs , 2002, SIGSOFT '02/FSE-10.

[95]  Gregg Rothermel,et al.  On the Use of Mutation Faults in Empirical Assessments of Test Case Prioritization Techniques , 2006, IEEE Transactions on Software Engineering.

[96]  Angelos D. Keromytis,et al.  Software Self-Healing Using Collaborative Application Communities , 2006, NDSS.

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

[98]  Catherine Blake,et al.  UCI Repository of machine learning databases , 1998 .

[99]  Andy Roberts,et al.  How Accurate Is Scientific Software? , 1994, IEEE Trans. Software Eng..

[100]  Sorin Lerner,et al.  Automatically proving the correctness of compiler optimizations , 2003, PLDI '03.

[101]  Alan Freedman The Computer Desktop Encyclopedia , 1996 .

[102]  Debra J. Richardson,et al.  Multiply-deployed residual testing at the object level , 2004, IASTED Conf. on Software Engineering.

[103]  M. Lam,et al.  Tracking down software bugs using automatic anomaly detection , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[104]  C. D. dos Remedios,et al.  Customising an antibody leukocyte capture microarray for systemic lupus erythematosus: Beyond biomarker discovery , 2010, Proteomics. Clinical applications.

[105]  Giovanni Denaro,et al.  Self-Test Components for Highly Reconfigurable Systems , 2003, TACoS.

[106]  Raymond McLeod,et al.  Software Testing: Testing Across the Entire Software Development Life Cycle , 2007 .

[107]  Albert L. Baker,et al.  Preliminary design of JML: a behavioral interface specification language for java , 2006, SOEN.

[108]  Osman Balci,et al.  Verification, Validation And Accreditation Of Simulation Models , 1997, Winter Simulation Conference Proceedings,.

[109]  David Coppit,et al.  On the Use of Specification-Based Assertions as Test Oracles , 2005, 29th Annual IEEE/NASA Software Engineering Workshop.

[110]  Angelos Stavrou,et al.  From STEM to SEAD: Speculative Execution for Automated Defense , 2007, USENIX Annual Technical Conference.

[111]  Tsong Yueh Chen,et al.  Semi-proving: an integrated method based on global symbolic evaluation and metamorphic testing , 2002, ISSTA '02.

[112]  Salvatore J. Stolfo,et al.  Modeling system calls for intrusion detection with dynamic window sizes , 2001, Proceedings DARPA Information Survivability Conference and Exposition II. DISCEX'01.

[113]  M. Momotko,et al.  Component+ built-in testing a technology for testing software components , 2004 .

[114]  R. Suganya,et al.  Data Mining Concepts and Techniques , 2010 .

[115]  Sami Beydeda Research in testing COTS components - built-in testing approaches , 2005, The 3rd ACS/IEEE International Conference onComputer Systems and Applications, 2005..

[116]  Bertrand Meyer,et al.  A comparative study of programmer-written and automatically inferred contracts , 2009, ISSTA.

[117]  Suzanne M. Embury,et al.  A safe regression test selection technique for database-driven applications , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[118]  Christian Murphy,et al.  Parameterizing random test data according to equivalence classes , 2007, RT '07.

[119]  Hermann Kopetz,et al.  Fault tolerance, principles and practice , 1990 .

[120]  Michael Pidd,et al.  Computer Simulation in Management Science (3rd Edition) , 1998 .

[121]  Colin Atkinson,et al.  Built-in Contract Testing in Model-driven , Component-Based Development , 2002 .

[122]  Junfeng Yang,et al.  Distributed eXplode: A High-Performance Model Checking Engine to Scale Up State-Space Coverage , 2008 .

[123]  Gail E. Kaiser,et al.  Distributed In Vivo Testing of Software Applications , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[124]  Jeffrey J. P. Tsai,et al.  Machine Learning and Software Engineering , 2002, 14th IEEE International Conference on Tools with Artificial Intelligence, 2002. (ICTAI 2002). Proceedings..

[125]  Tsong Yueh Chen,et al.  Metamorphic testing and beyond , 2003, Eleventh Annual International Workshop on Software Technology and Engineering Practice.

[126]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[127]  Peter J. Stuckey,et al.  Programming with Constraints: An Introduction , 1998 .

[128]  W. Chan,et al.  A Metamorphic Testing Approach for Online Testing of Service-Oriented Software Applications , 2007, Int. J. Web Serv. Res..

[129]  Jason Nieh,et al.  Proceedings of the 5th Symposium on Operating Systems Design and Implementation , 2022 .

[130]  Martin Rinard,et al.  Automatic Data Structure Repair for Self-Healing Systems , 2003 .

[131]  Michael D. Ernst,et al.  Automatic generation of program specifications , 2002, ISSTA '02.

[132]  Colin Atkinson,et al.  Reducing Verification Effort in Component-Based Software Engineering through Built-In Testing , 2006, 2006 10th IEEE International Enterprise Distributed Object Computing Conference (EDOC'06).

[133]  John Riedl,et al.  GroupLens: an open architecture for collaborative filtering of netnews , 1994, CSCW '94.

[134]  Douglas C. Schmidt,et al.  Skoll: distributed continuous quality assurance , 2004, Proceedings. 26th International Conference on Software Engineering.

[135]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[136]  Philip M. Long,et al.  Predicting Electricity Distribution Feeder Failures Using Machine Learning Susceptibility Analysis , 2006, AAAI.

[137]  Salvatore J. Stolfo,et al.  Detecting Malicious Software by Monitoring Anomalous Windows Registry Accesses , 2002, RAID.

[138]  Xin Wang,et al.  Automatic Generation of Run-Time Test Oracles for Distributed Real-Time Systems , 2004, FORTE.

[139]  Angelos D. Keromytis,et al.  ASSURE: automatic software self-healing using rescue points , 2009, ASPLOS.

[140]  Jean-Marc Jézéquel,et al.  Increase software trustability with self-testable classes in Java , 2001, Proceedings 2001 Australian Software Engineering Conference.

[141]  Arnaud Gotlieb,et al.  Automated metamorphic testing , 2003, Proceedings 27th Annual International Computer Software and Applications Conference. COMPAC 2003.

[142]  Sergey Brin,et al.  The Anatomy of a Large-Scale Hypertextual Web Search Engine , 1998, Comput. Networks.

[143]  Michael McGill,et al.  Introduction to Modern Information Retrieval , 1983 .

[144]  Alessandro Orso,et al.  Gamma system: continuous evolution of software after deployment , 2002, ISSTA '02.

[145]  Alexander G. Gray,et al.  On-line anomaly detection of deployed software: a statistical machine learning approach , 2006, SOQUA '06.

[146]  Douglas C. Schmidt,et al.  A Distributed Continuous Quality Assurance Process to Manage Variability in Performance-intensive Software , 2004 .

[147]  Gerald W. Evans,et al.  A simulation model for evaluating personnel schedules in a hospital emergency department , 1996, Winter Simulation Conference.

[148]  Alessandro Orso,et al.  A Technique for Enabling and Supporting Debugging of Field Failures , 2007, 29th International Conference on Software Engineering (ICSE'07).

[149]  Gail E. Kaiser,et al.  Empirical Evaluation of Approaches to Testing Applications without Test Oracles , 2010 .

[150]  William M. Waite,et al.  Software manual for the elementary functions , 1980 .

[151]  Colin Atkinson,et al.  Ubiquitous RATs: how resource-aware run-time tests can improve ubiquitous software systems , 2006, SEM '06.

[152]  Nikolai Tillmann,et al.  Parameterized unit tests , 2005, ESEC/FSE-13.

[153]  Susan Horwitz,et al.  Using Static Analysis to Reduce Dynamic Analysis Overhead , 2005, Formal Methods Syst. Des..

[154]  Gail E. Kaiser,et al.  Properties of Machine Learning Applications for Use in Metamorphic Testing , 2008, SEKE.

[155]  Michal Young,et al.  Residual test coverage monitoring , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[156]  Kellen Petersen August Real Analysis , 2009 .

[157]  Hervé Debar An Introduction to Intrusion-Detection Systems , 2000 .

[158]  J. Hanley,et al.  The meaning and use of the area under a receiver operating characteristic (ROC) curve. , 1982, Radiology.

[159]  Huai Liu,et al.  An innovative approach for testing bioinformatics programs using metamorphic testing , 2009, BMC Bioinformatics.

[160]  Christopher Krügel,et al.  Saner: Composing Static and Dynamic Analysis to Validate Sanitization in Web Applications , 2008, 2008 IEEE Symposium on Security and Privacy (sp 2008).

[161]  Sebastian G. Elbaum,et al.  An empirical study of profiling strategies for released software and their impact on testing activities , 2004, ISSTA '04.

[162]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[163]  Liming Chen,et al.  N-VERSION PROGRAMMINC: A FAULT-TOLERANCE APPROACH TO RELlABlLlTY OF SOFTWARE OPERATlON , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing, 1995, ' Highlights from Twenty-Five Years'..

[164]  Joachim Biskup Security in Computing Systems - Challenges, Approaches and Solutions , 2008 .

[165]  Gail E. Kaiser,et al.  Automatic detection of previously-unseen application states for deployment environment testing and analysis , 2010, AST '10.

[166]  Tsong Yueh Chen,et al.  Fault-based testing without the need of oracles , 2003, Inf. Softw. Technol..

[167]  Pat Langley,et al.  Estimating Continuous Distributions in Bayesian Classifiers , 1995, UAI.

[168]  Jean-Raymond Abrial The specification language Z , 1980 .

[169]  P. Mahalanobis On the generalized distance in statistics , 1936 .

[170]  Blaz Zupan,et al.  Orange: From Experimental Machine Learning to Interactive Data Mining , 2004, PKDD.

[171]  Leila Naslavsky Distributed expectation-driven residual testing , 2004, ICSE 2004.

[172]  Les Hatton The Chimera of Software Quality , 2007, Computer.

[173]  James H. Andrews,et al.  Industrial Evaluation of a Log File Analysis Methodology , 2007, Fifth International Workshop on Dynamic Analysis (WODA '07).

[174]  Leonardo Mariani,et al.  Generation of Integration Tests for Self-Testing Components , 2004, FORTE Workshops.

[175]  Ferhat Khendek,et al.  Test Selection Based on Finite State Models , 1991, IEEE Trans. Software Eng..

[176]  Salvatore J. Stolfo,et al.  Anomalous Payload-Based Network Intrusion Detection , 2004, RAID.

[177]  Lionel C. Briand,et al.  Is mutation an appropriate tool for testing experiments? , 2005, ICSE.

[178]  Vladimir N. Vapnik,et al.  The Nature of Statistical Learning Theory , 2000, Statistics for Engineering and Information Science.

[179]  C. Spearman ‘FOOTRULE’ FOR MEASURING CORRELATION , 1906 .