Aug./Sept. 2009 Data Mutation Software Testing 1 Data Mutation Testing -- A Method for Automated Generation of Structurally Complex Test Cases Hong Zhu.

Slides:



Advertisements
Similar presentations
Symantec 2010 Windows 7 Migration Global Results.
Advertisements

Simplifications of Context-Free Grammars
Variations of the Turing Machine
ALAK ROY. Assistant Professor Dept. of CSE NIT Agartala
Adders Used to perform addition, subtraction, multiplication, and division (sometimes) Half-adder adds rightmost (least significant) bit Full-adder.
Analysis of Computer Algorithms
Chapter 7 System Models.
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
Part 3 Probabilistic Decision Models
STATISTICS POINT ESTIMATION Professor Ke-Sheng Cheng Department of Bioenvironmental Systems Engineering National Taiwan University.
David Burdett May 11, 2004 Package Binding for WS CDL.
1 RA I Sub-Regional Training Seminar on CLIMAT&CLIMAT TEMP Reporting Casablanca, Morocco, 20 – 22 December 2005 Status of observing programmes in RA I.
Sept Data Mutation Testing Applied to a Modelling Tool Hong Zhu Dept. of Computing, Oxford Brookes Univ., Oxford, UK
Programming Language Concepts
1 Outline relationship among topics secrets LP with upper bounds by Simplex method basic feasible solution (BFS) by Simplex method for bounded variables.
The 5S numbers game..
Bayesian network for gene regulatory network construction
Knowledge Extraction from Technical Documents Knowledge Extraction from Technical Documents *With first class-support for Feature Modeling Rehan Rauf,
1 OFDM Synchronization Speaker:. Wireless Access Tech. Lab. CCU Wireless Access Tech. Lab. 2 Outline OFDM System Description Synchronization What is Synchronization?
Week 2 The Object-Oriented Approach to Requirements
© Telcordia Technologies 2004 – All Rights Reserved AETG Web Service Tutorial AETG is a service mark of Telcordia Technologies. Telcordia Technologies.
The basics for simulations
Configuration management
Chapter 5 – Enterprise Analysis
Turing Machines.
Database Performance Tuning and Query Optimization
Software testing.
Testing Workflow Purpose
1 Software Unit Test Coverage And Test Adequacy Hong Zhu, Patrick A. V. Hall, John H.R. May Presented By: Arpita Gandhi.
Detection Chia-Hsin Cheng. Wireless Access Tech. Lab. CCU Wireless Access Tech. Lab. 2 Outlines Detection Theory Simple Binary Hypothesis Tests Bayes.
© Telcordia Technologies 2004 – All Rights Reserved AETG Web Service Advanced Features AETG is a service mark of Telcordia Technologies. Telcordia Technologies.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering.
MM4A6c: Apply the law of sines and the law of cosines.
Chapter 3 Basic Logic Gates 1.
Chapter 6 Data Design.
Business and Economics 6th Edition
Outline Minimum Spanning Tree Maximal Flow Algorithm LP formulation 1.
CS 6143 COMPUTER ARCHITECTURE II SPRING 2014 ACM Principles and Practice of Parallel Programming, PPoPP, 2006 Panel Presentations Parallel Processing is.
Hong Zhu Department of Computing and Communication Technologies Oxford Brookes University, Oxford OX33 1HX, UK COMPSAC 2012 PANEL.
Lecture 8: Testing, Verification and Validation
Mutation Testing Tim Dakeyne. What is Mutation? Where data is changed a small amount, which may or may not change its function Evolution of life Languages.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Synthetic.
Artificial Intelligence
When you see… Find the zeros You think….
2004 EBSCO Publishing Presentation on EBSCOadmin.
Subtraction: Adding UP
1 Non Deterministic Automata. 2 Alphabet = Nondeterministic Finite Accepter (NFA)
Chapter 2 Entity-Relationship Data Modeling: Tools and Techniques
Chapter 10: The Traditional Approach to Design
Systems Analysis and Design in a Changing World, Fifth Edition
To the Assignments – Work in Progress Online Training Course
Chapter 12 Analyzing Semistructured Decision Support Systems Systems Analysis and Design Kendall and Kendall Fifth Edition.
McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 12 View Design and Integration.
ANSC644 Bioinformatics-Database Mining 1 ANSC644 Bioinformatics §Carl J. Schmidt §051 Townsend Hall §
CSE Lecture 17 – Balanced trees
PSSA Preparation.
Chapter 11 Creating Framed Layouts Principles of Web Design, 4 th Edition.
Lial/Hungerford/Holcomb/Mullins: Mathematics with Applications 11e Finite Mathematics with Applications 11e Copyright ©2015 Pearson Education, Inc. All.
Management Information Systems, 10/e
9. Two Functions of Two Random Variables
4/4/2015Slide 1 SOLVING THE PROBLEM A one-sample t-test of a population mean requires that the variable be quantitative. A one-sample test of a population.
Languages for IT & CS Pseudo-code What HTML isn’t Early history Compiling & interpreting Classifying languages The process of programming.
From Model-based to Model-driven Design of User Interfaces.
1 Decidability continued…. 2 Theorem: For a recursively enumerable language it is undecidable to determine whether is finite Proof: We will reduce the.
1 Non Deterministic Automata. 2 Alphabet = Nondeterministic Finite Accepter (NFA)
SAT Solver CS 680 Formal Methods Jeremy Johnson. 2 Disjunctive Normal Form  A Boolean expression is a Boolean function  Any Boolean function can be.
Class Specification Implementation Graph By: Njume Njinimbam Chi-Chang Sun.
© SERG Dependable Software Systems (Mutation) Dependable Software Systems Topics in Mutation Testing and Program Perturbation Material drawn from [Offutt.
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Presentation transcript:

Aug./Sept Data Mutation Software Testing 1 Data Mutation Testing -- A Method for Automated Generation of Structurally Complex Test Cases Hong Zhu Dept. of Computing and Electronics, Oxford Brookes Univ., Oxford, OX33 1HX, UK

Aug./Sept Data Mutation Software Testing Outline Motivation Overview of existing work on software test case generation The challenges to software testing The Data Mutation Testing Method Basic ideas Process Measurements A Case study Subject software under test The mutation operators Experiment process Main results Perspectives and future works Potential applications Integration with other black box testing methods

Aug./Sept Data Mutation Software Testing Motivation Test case generation Need to meet multiple goals Reality: to represent real operation of the system Coverage: functions, program code, input/output data space, and their combinations Efficiency: not to overkill, easy to execute, etc. Effective: capable of detecting faults, which implies easy to check the correctness of programs output Externally useful: help with debugging, reliability estimation, etc. Huge impact on test effectiveness and efficiency One of the most labour intensive tasks in practices

Aug./Sept Data Mutation Software Testing Existing Work Program-based test case generation Static: analysis of code without execution, e.g. symbolic execution Path oriented Howden, W. E. (1975, 1977, 1978); Ramamoorthy, C., Ho, S. and Chen, W. (1976) ; King, J. (1975) ; Clarke, L. (1976) ; Xie T., Marinov, D., and Notkin, D. (2004); J. Zhang. (2004), Xu, Z. and Zhang, J. (2006) Goal oriented DeMillo, R. A., Guindi, D. S., McCracken, W. M., Offutt, A. J. and King, K. N. (1988) ; Pargas, R. P., Harrold, M. J. and Peck, R. R. (1999); Gupta, N., Mathur, A. P. and Soffa, M. L. (2000); Dynamic: through execution of the program Korel, B. (1990), Beydeda, S. and Gruhn, V. (2003) Hybrid: combination of dynamic execution with symbolic execution, e.g. concolic techniques Godefroid, P., Klarlund, N., and Sen, K.. (2005); Techniques: Constraint solver, Heuristic search, e.g. genetic algorithms: McMinn, P. and Holcombe, M. (2003), Survey: McMinn, P. (2004)

Aug./Sept Data Mutation Software Testing Specification-based test case generation Derive from either formal or semi-formal specifications of the required functions and/or the designs Formal specification-based: First order logic, Z spec and Logic programs: : Tai, K.-C. (1993); Stocks, P. A. and Carrington, D. A. (1993) ; Ammann, P. and Offutt, J. (1994) ; Denney, R. (1991) Algebraic specification: Bouge, L., Choquet, N., Fribourg, L. and Gaudel, M.-C. (1986) ; Doong, R. K. and Frankl, P. G. (1994) ; Chen, H. Y., Tse, T. H. and Chen, T. Y. (2001) ; Zhu (2007); Finite state machines: Fujiwara, S., et al.. (1991) ; Lee, D. and Yannakakis, M. (1996) ; Hierons, R. M. (2001) ; Zhu, H., Jin, L. & Diaper, D. (1999) ; Petri nets: Morasca, S. and Pezze, M. (eds). (1990) ; Zhu, H. and He, X. (2002) Model-based: derive from semi-formal graphic models SSADM models: Zhu, H., Jin, L. and Diaper, D. (1999, 2001); UML models: Offutt, J. and Abdurazik, A. (2000) ; Tahat, L. H., et al. (2001); Hartman, A. and Nagin, K. (2004); Li, S., Wang, J. and Qi, Z.-C. (2004) ; Techniques: Constraint solving; Theorem prover; Model-checker

Aug./Sept Data Mutation Software Testing Random testing Through random sampling over input domain based on probabilistic models of the operation of the software under test. Profile-based: Sampling over an existing operation profile at random Stochastic model based: Use a probabilistic model of software usages Markov chain: Avritzer, A. Larson, B. (1993) ; Avritzer, A. Weyuker, E. J. (1994) ; Whittaker, J. A. and Poore, J. H. (1993) ; Guen, H. L., Marie, R. and Thelin, T. (2004) ; Prowell, S. J. (2005) Stochastic automata networks: Farina, A. G., Fernandes, P. and Oliveira, F. M. (2002, 2004) ; Bayesian networks: Fine, S. and Ziv, A. (2003) Adaptive random testing: Even spread of randomly test cases ( Chen, T. Y., Leung, H. and Mak, I. K. (2004) ) Variants: Mirror, Restricted, and Probabilistic ART

Aug./Sept Data Mutation Software Testing Domain-specific techniques Database applications Zhang, J., Xu, C. and Cheung, S. C. (2001) Spreadsheets: Fisher, M., Cao, M., Rothermel, G., Cook, C. and Burnett, M. (2002) Erwig, M., Abraham, R., Cooperstein, I., and Kollmansberger S. (2005) XML Scheme: Lee, S. C. and Offutt, J. (2001) ; Li, J. B. and Miller, J. (2005) Compiler: See Boujarwah, A. S. and Saleh, K. (1997) for a survey.

Aug./Sept Data Mutation Software Testing The Challenge How to generate adequate test cases of high reality for programs that process structurally complex inputs? Structural complexity: A large number of elements A large number of possible explicitly represented relationships between the elements A large number of constraints imposed on the relationships Meaning of the data depends on not only the values of the elements, but also the relationships and thus their processing Reality: Likely or close to be a correct real input in the operation of the system Likely or close to be an input that contains errors that a user inputs to the system in operation Examples : CAD, Word processor, Web browser, Spreadsheets, Powerpoint, Software modelling tools, Language processor, Theorem provers, Model-checkers, Speech recognition, Hand writing recognition, Search engine,…

Aug./Sept Data Mutation Software Testing Basic Ideas of Data Mutation Testing 1.Preparing the seeds, i.e. a small set of test cases Contain various types of elements and relationships between them Highly close to the real input data Easy to check their correctness 2.Generating mutant test cases by modifying the seeds slightly Preserve the validity of the input Change at one place a time unless imposed by the constraints (but may use second order even higher order mutants) Make as many different mutants as possible 3.Executing the software under test on both seeds and their mutants What to observe: programs correctness on both seeds and mutants the differences of the programs behaviours on seed and their mutants Uses of metrics and measurements seeds are sufficient mutations are effective and/or sufficient Feedback to step 1 and 2 if necessary, or to improve the observation.

Aug./Sept Data Mutation Software Testing Illustrative Example Triangle classification Input: x, y, z: Natural Numbers; Output: {equilateral, isosceles, scalene, non-triangle} Seeds: The lengths of the sides The type of triangles Non-triangle(x=3, y=5, z=9)t4t4 Scalene(x=5, y=7, z=9)t3t3 Isosceles(x=5, y=5, z=7)t2t2 Equilateral(x=5, y=5, z=5)t1t1 Expected outputInputID

Aug./Sept Data Mutation Software Testing Mutation operators IVP: Increase the value of a parameter by 1; DVP: Decrease the value of a parameter by 1; SPL: Set the value of a parameter to a very large number, say ; SPZ: Set the value of a parameter to 0; SPN: Set the value of a parameter to a negative number, say - 2; WXY: Swap the values of parameters x and y; WXZ: Swap the values of parameters x and z; WYZ: Swap the values of parameters y and z; RPL: Rotate the values of parameters towards left; RPR: Rotate the values of parameters towards right.

Aug./Sept Data Mutation Software Testing Generation of mutant test cases For example, by applying the mutation operator IVP to test case t 1 on parameter x, we can obtain the following test case t 5. IVP(t 1, x) = t 5 = Input: (x=6, y=5, z=5). Total number of mutants: (5*3 +5)*4 = 80 Covering all sorts of combinations of data elements Systematically produced from the four seeds

Aug./Sept Data Mutation Software Testing Execution of program and classification of mutants A mutant is classified as dead, if the execution of the software under test on the mutant is different from the execution on the seed test case. Otherwise, the mutant is classified as alive. For example For a correctly implemented Triangle Classification program, the execution on the mutant test case t 5 will output isosceles while the execution on its seed t 1 will output equilateral. TrC(t 5 ) TrC(t 1 ) t 5 is dead It depends on how you observe the behaviour!

Aug./Sept Data Mutation Software Testing Analyse test effectiveness Reasons why a mutant can remain alive: The mutant is equivalent to the original with respect to the functionality or property of the software under test. RPL(t 1 )=t 1 The observation on the behaviour and output of the software under test is not sufficient to detect the difference RPL(t 2 )= t 6 = Input: (x=5, y=7, z=5). The software is incorrectly designed and/or implemented so that it is unable to differentiate the mutants from the original. Same output, but different execution paths for a correct program.

Aug./Sept Data Mutation Software Testing Measurements of Data Mutation Equivalent mutant score EMS: A high equivalent mutant score EMS indicates that the mutation operators have not been well designed to achieve variety in the test cases. Live mutant score LMS: A high LMS indicates that the observation on the behaviour and output of the software under test is insufficient. Typed live mutant score LMS, where is a type of mutation operators A high LMS reveals that the program is not sensitive to the type of mutation probably because a fault in design or implementation. Number of equivalent mutants Total number of mutants Number of life mutants

Aug./Sept Data Mutation Software Testing Process of Data Mutation Testing

Aug./Sept Data Mutation Software Testing Analysis of Program Correctness Can data mutation testing be helpful to the analysis of program correctness? Consider the examples in Triangle Classification: IVP or DVP to test case t 1, we can expect the output to be isosceles. For the RPL, RPR, WXY, WYZ, and WYZ mutation operators, we can expect that the program should output the same classification on a seed and its mutant test cases. If the softwares behaviour on a mutant is not as expected, an error in the software under test can be detected.

Aug./Sept Data Mutation Software Testing Case Study The subject CAMLE: Caste-centric Agent-oriented Modelling Language and Environment Automated modelling tool for agent-oriented methodology Developed at NUDT of China Potential threats to the validity of the case study Subject is developed by the tester The developer is not professional software developer Validation of the case study against the potential threats The test method is black box testing. The knowledge of the code and program structure affect the outcomes. The subject was developed before the case study and no change at all was made during the course to enable the case study to be carried out. In software testing practice, systems are often tested by the developers. The developer is a capable master degree student with sufficient training at least equivalent to an average programmer. The correctness of the programs output can be judges objectively.

Aug./Sept Data Mutation Software Testing Complexity of the Input Data Input: models in CAMLE language Multiple views: a caste diagram that describes the static structure of a multi-agent system, a set of collaboration diagrams that describe how agents collaborate with each other, a set of scenario diagrams that describe typical scenarios namely situations in the operation of the system, and a set of behaviour diagrams that define the behaviour rules of the agents in the context of various scenarios. Well-formedness constraints Each diagram has a number of different types of nodes and arcs, etc. Each diagram and the whole model must satisfy a set of well- formedness conditions to be considered as a valid input (e.g. the types of nodes and arcs must match with each other)

Aug./Sept Data Mutation Software Testing The Function to Be Tested Consistency checker Consistency constraints are formally defined in first order logic Potential threat to the validity The program is not representative. Validation of the case study The programs input is structurally complex The program is non-trivial 414Inter-model 88Inter-diagram 10Intra-diagram Intra- model GlobalLocal Vertical Consistency Horizontal Consistency Table 1. Summary of CAMLEs Consistency Constraints

Aug./Sept Data Mutation Software Testing Types of Data Mutation Operators Delete an existing env node in a sub-collaboration diagram Delete env node12 Generate a sub-collaboration diagram for an existing node Add sub diagram11 Replace an existing node with a new node of another type Change node type10 Rename an existing node in a diagramRename node9 Delete an existing node in a diagramDelete node8 Replicate an existing node in a diagramReplicate node7 Add an edge of some type to a diagramAdd edge6 Add a node and link it to an existing nodeAdd node with edge5 Add a node of some type to a diagramAdd node4 Change the title of an existing diagramRename diagram3 Delete an existing diagramDelete diagram2 Add a collaboration or behaviour or scenario diagramAdd diagram1 DescriptionOperator typeNo.

Aug./Sept Data Mutation Software Testing 13Rename env nodeRename an existing environment node in a sub- collaboration diagram 14Delete node annotationRemove an annotation on an existing node 15Replicate edgeReplicate an existing non-interaction edge 16Delete edgeDelete an existing edge in a diagram 17Change edge associationChange the Start or End node of an existing edge 18Change edge directionReverse the direction of an existing edge 19Change edge typeReplace an existing edge in a diagram with a new edge of another type 20Replicate interaction edge Replicate an existing interaction edge without Action List 21Replicate interactionReplicate an existing interaction edge with Action List 22Change edge annotationChange the Action List annotated to an existing interaction edge 23Delete edge annotationDelete the Action List of an existing interaction edge 24Change edge end to envChange the Start or End node of an existing edge to an env node

Aug./Sept Data Mutation Software Testing The Seed Test Cases Models developed in previous case studies of agent- oriented software development methodology The evolutionary multi-agent Internet information retrieval system Amalthaea (originally developed at MIT media lab); Online auction web service; The agent-oriented model of the United Nations Security Council on the organisational structure and the work procedure to pass resolutions at UNSC. All seeds passed consistency check before the case study started No change was made to these seeds in this case study

Aug./Sept Data Mutation Software Testing The Seed Test Cases and Their Mutants

Aug./Sept Data Mutation Software Testing The Results: Fault Detecting Ability 5114 (97%)61 (52%)118Total 019 (100%)12 (63%)19 Transposition of statements 114 (93%)9 (60%)15 Incorrect expression 031 (100%)13 (42%)31 Omission of statements 021 (88%)14 (58%)24 Incorrect variable Computation 217 (100%)8 (47%)17Path selection 212 (100%)5 (42%)12Missing path Domain IndigenousInserted By mutants By seeds No. of Detected Faults No. of Inserted Faults Fault Type

Aug./Sept Data Mutation Software Testing Detecting Design Errors In the case study, we found that a large number of mutants remain alive 16.47% Total 15.43% UNSC 12.94% Auction 20.11% Amalthaea %Dead#Alive#Dead#MutantSeed Table. The numbers of alive and dead mutants Review: Three possible reasons: (a) improper design of data mutation operators, (b) insufficient observation on the behaviour and output (c) defects in the software under test.

Aug./Sept Data Mutation Software Testing Statistics on Amalthaea test suite Some typed mutation score is very low Design of consistency checker has errors! Especially, the consistency constraints are weak.

Aug./Sept Data Mutation Software Testing Results: Detecting Design Errors Hypothesis Design of the tool is weak in detecting certain types of inconsistency or incompleteness Validation of the hypothesis Strengthening the well-formedness constraints Strengthening the consistency constraints: 3 constraints modified Introducing new completeness constraints: 13 new constraints introduced Test again using the same seeds and the same mutation operators A significant change in the statistic data is observed % Total 82.76% UNSC 83.33% Auction 87.83% Amalthaea %Dead#Alive#Dead#MutantSeed Table. The statistics of alive and dead mutants after modification

Aug./Sept Data Mutation Software Testing Test Adequacy Our experiments show that high test adequacy can be achieved through data mutation. Coverage of input data space Measured by the coverage of various kinds of mutants Coverage of program structure Measured by code coverage (equivalent to the branches covered) Coverage of the functions of the requirements Measured by the consistency constraints used in checking Two factors the determines the test adequacy: the seeds the mutation operators

Aug./Sept Data Mutation Software Testing Coverage of scenario diagram variants TotalUNSCAuctionAmalthaea Mutation operator type

Aug./Sept Data Mutation Software Testing Coverage of Program Structure and Functions The test data achieved 100% coverage of the functions of the consistency checker and 100% of the branches in the code.

Aug./Sept Data Mutation Software Testing Test Cost Source of costAmount in case study Design and implementation of data mutation operators 1.5 man-month Development of seed test cases0 man-month Analysis of program correctness on each test case 2 man-month (estimated) The seeds were readily available from previous case studies of the tool. Table. Summary of the test cost spent in the case study

Aug./Sept Data Mutation Software Testing Analysis Programs Correctness The experiment took the black-box approach The output on a test case consists of Whether the input (a model) is consistent and complete The error message(s) and/or warning message(s), if any The expected output on a mutant is specified 14, (Interaction edges in the main collaboration diagram) E0165 6, (Caste nodes in the main collaboration diagram) E0042 5, (Agent nodes in the main collaboration diagram) E0031 Add a new Collaboration diagram / Top of model 1 #Messages, Message Content Message ID Violated Constraint Expected Output Operator /Location Mutant No.

Aug./Sept Data Mutation Software Testing Experiments The experiments Mutants are selected at random The programs correctness on each mutant is checked manually Time is measured for how long it needs to check the correctness of the program on each test case Two experiments were conducted Experiment 1 1 mutant selected at random from each set of the mutants generated by one type of mutation operator (24 mutants in total) Detected 2 faults in the checker and 1 fault in other parts of the tool Experiment 2 22 live mutants from the Amalthaea suite selected at random Detected 2 faults in the other parts of the tool

Aug./Sept Data Mutation Software Testing The Experiment Data 211DeadNon-equivalent 11AliveNon-equivalent 00DeadEquivalent 234AliveEquivalent #Detected Faults#MutantsAlivenessType of Mutant Results: Checking correctness on dead mutants: 3 minute/per mutant Checking correctness on live mutants: 1 minute/per mutant

Aug./Sept Data Mutation Software Testing Related Works Mutation testing Program or specification is modified Used as a criteria to measure test adequacy Data mutation testing adopted the idea of mutation operators, but applied to test cases to generate test case, rather than to measure adequacy. Meek and Siu (1989) Randomisation in error seeding into programs to test compiler Adaptive Random Testing (Chen, et al. 2003, 2004) Random test cases as far apart as possible Not yet applied to structurally complex input space Data perturbation testing (Offutt, 2001) Test XML message for web services As a application specific technique and applicable to XML files Metamorphic testing (Chen, Tse, et al. 2003) As a test oracle automation technique and focus on the metamorphic relations rather than to generate test cases Could be integrated with data mutation method

Aug./Sept Data Mutation Software Testing Future Work More case studies with potential applications Security control software: Role-Base Access Control Input: Role model, User assignments <Roles, Resources, Permissions: Role Resources, Constraints Roles X Resources X Permissions> P User assignments: Users P(Roles) Virus detection Input: files infected by virus Virus are programs in assembly/binary code format One virus may have many variants obtained by equivalent transformation of the code. Spreadsheet processing software and spreadsheets applications Input: spreadsheets

Aug./Sept Data Mutation Software Testing Perspectives and Future Work Integration of data mutation testing, metamorphic testing and algebraic testing methods Letbe the program under test Data mutation testing generates test cases using a set of data mutation operators Metamorphic testing used a set of metamorphic relations to check output correctness We can use i to define metamorphic relations as follows:

Aug./Sept Data Mutation Software Testing Example Consider the Triangle Classification program P The following is a metamorphic relation P(t)= equilateral P(IPV(t))= isosceles For each of the data mutation operators = WXY, WXZ, WYZ, RPL, or RPR, the following is a metamorphic relation P( (t))=P(t) We observed in case study that data mutation operators are very helpful to find metamorphic relations.

Aug./Sept Data Mutation Software Testing Integration with Algebraic Testing In algebraic software testing, axioms are written in the form of T 1 =T 1 ^ T 2 =T 2 ^ … ^ T n =T n => T=T, Where T i, T i are terms constructed from variables and function/procedure/methods of the program under test. The integration of data mutation testing, metamorphic testing and algebraic testing by developing A black box software testing specification language An automated tool to check metamorphic relations Using observation context to check if a relation is true To allow user defined data mutation operators to be invoked To allow metamorphic relations to be specified

Aug./Sept Data Mutation Software Testing Screen Snapshot of Algebraic Testing Tool CASCAT

Aug./Sept Data Mutation Software Testing References Lijun Shan and Hong Zhu, Generating Structurally Complex Test Cases by Data Mutation: A Case Study of Testing an Automated Modelling Tool, Special Issue on Automation of Software Test, the Computer Journal, (In press). Shan, L. and Zhu, H., Testing Software Modelling Tools Using Data Mutation, Proc. of AST06, ACM Press, 2006, pp Zhu, H. and Shan, L., Caste-Centric Modelling of Multi-Agent Systems: The CAMLE Modelling Language and Automated Tools, in Beydeda, S. and Gruhn, V. (eds) Model-driven Software Development, Research and Practice in Software Engineering, Vol. II, Springer, 2005, pp Liang Kong, Hong Zhu and Bin Zhou, Automated Testing EJB Components Based on Algebraic Specifications, Proc. of TEST07, IEEE CS Press, 2007.