efficient and effective mutation testing supporting the
play

Efficient and Effective Mutation Testing: Supporting the - PowerPoint PPT Presentation

Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects Gregory M. Kapfhammer Department of Computer Science Allegheny College http://www.cs.allegheny.edu/ gkapfham/


  1. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Case? Expected Expected Test Output Output Set Up Method Test Input Output Output Under Test Oracle Test Test Test Clean Up Verdict Verdict The test case fails and a defect is found! Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  2. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? T 1 T 2 Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  3. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? T 1 T 2 T 3 T 4 Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  4. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? T 1 T 2 T 3 T 4 T 5 T 6 Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  5. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  6. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  7. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  8. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 R 1 R 2 Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  9. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 R 1 R 2 R 3 R 4 Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  10. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 R 1 R 2 R 3 R 4 R 5 R 6 Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  11. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 R 1 R 2 R 3 R 4 R 5 R 6 F 1 F 2 Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  12. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 R 1 R 2 R 3 R 4 R 5 R 6 F 1 F 2 F 3 F 4 Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  13. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 R 1 R 2 R 3 R 4 R 5 R 6 F 1 F 2 F 3 F 4 B 1 B 2 Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  14. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 R 1 R 2 R 3 R 4 R 5 R 6 F 1 F 2 F 3 F 4 B 1 B 2 Requirements R = { R 1 , . . . , R 6 } , Features F = { F 1 , . . . , F 4 } , Bug Fixes B = { B 1 , B 2 } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  15. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 R 1 R 2 R 3 R 4 R 5 R 6 F 1 F 2 F 3 F 4 B 1 B 2 B 2 B 2 B 2 B 2 Requirements R = { R 1 , . . . , R 6 } , Features F = { F 1 , . . . , F 4 } , Bug Fixes B = { B 1 , B 2 } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  16. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 R 1 R 2 R 3 R 4 R 5 R 6 F 1 F 2 F 3 F 4 B 1 B 2 B 2 B 2 B 2 B 2 B 2 B 2 Requirements R = { R 1 , . . . , R 6 } , Features F = { F 1 , . . . , F 4 } , Bug Fixes B = { B 1 , B 2 } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  17. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 R 1 R 2 R 3 R 4 R 5 R 6 F 1 F 2 F 3 F 4 B 1 B 2 B 2 B 2 B 2 B 2 B 2 B 2 B 2 B 2 B 2 B 2 Requirements R = { R 1 , . . . , R 6 } , Features F = { F 1 , . . . , F 4 } , Bug Fixes B = { B 1 , B 2 } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  18. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 R 1 R 2 R 3 R 4 R 5 R 6 F 1 F 2 F 3 F 4 B 1 B 2 Requirements R = { R 1 , . . . , R 6 } , Features F = { F 1 , . . . , F 4 } , Bug Fixes B = { B 1 , B 2 } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  19. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 How Good is Test Suite T ? R 1 R 2 R 3 R 4 R 5 R 6 F 1 F 2 F 3 F 4 B 1 B 2 Requirements R = { R 1 , . . . , R 6 } , Features F = { F 1 , . . . , F 4 } , Bug Fixes B = { B 1 , B 2 } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  20. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 How Good is Test Suite T ? Coverage Analysis R 1 R 2 R 3 R 4 R 5 R 6 F 1 F 2 F 3 F 4 B 1 B 2 Requirements R = { R 1 , . . . , R 6 } , Features F = { F 1 , . . . , F 4 } , Bug Fixes B = { B 1 , B 2 } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  21. Introduction Mutation Analysis Empirical Evaluation Conclusion Software Testing What is a Test Suite? Test Suite T = � T 1 , T 2 , . . . , T 9 , T 10 � T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 How Good is Test Suite T ? Coverage Analysis Mutation Analysis R 1 R 2 R 3 R 4 R 5 R 6 F 1 F 2 F 3 F 4 B 1 B 2 Requirements R = { R 1 , . . . , R 6 } , Features F = { F 1 , . . . , F 4 } , Bug Fixes B = { B 1 , B 2 } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  22. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults if(a > 10) Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  23. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults if(a > 10) if(a >= 10) Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  24. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults if(a > 10) if(a >= 10) Implemented Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  25. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults if(a > 10) if(a >= 10) Implemented Potential Fault Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  26. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults a if(a > 10) if(a >= 10) true false Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  27. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults a a if(a > 10) if(a >= 10) true false true false Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  28. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults a a a = 0 if(a > 10) if(a >= 10) true false true false Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  29. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults a a a = 0 if(a > 10) if(a >= 10) true false false true false false Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  30. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults a a a = 15 if(a > 10) if(a >= 10) true false true false Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  31. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults a a a = 15 if(a > 10) if(a >= 10) true true false true true false Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  32. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults a a a = 10 if(a > 10) if(a >= 10) true false true false Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  33. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults a a a = 10 if(a > 10) if(a >= 10) true false false true true false Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  34. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults a a a = 10 if(a > 10) if(a >= 10) true false false true true false Can the tests differentiate between implemented and potential fault ? Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  35. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults a a a = 10 if(a > 10) if(a >= 10) true false false true true false If yes , then the tests are adequate ! Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  36. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults a a a = 10 if(a > 10) if(a >= 10) true false false true true false If no , then the tests must be improved ! Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  37. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Conceptual Faults a a a = 10 if(a > 10) if(a >= 10) true false false true true false Purposefully insert faults in order to implement quality software! Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  38. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Mutation Operator Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  39. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Mutation Mutation Operator Operator Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  40. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Mutation Mutation Mutation Mutation Operator Operator Operator Operator Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  41. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Mutation Mutation Mutation Mutation Operator Operator Operator Operator Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  42. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Mutation Mutation Mutation Mutation Operator Operator Operator Operator Methodically inject small syntactical faults into the program under test Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  43. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Mutation Mutation Mutation Mutation Operator Operator Operator Operator Methodically inject small syntactical faults into the program under test Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  44. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Mutation Mutation Mutation Mutation Operator Operator Operator Operator Methodically inject small syntactical faults into the program under test Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  45. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Mutation Mutation Mutation Mutation Operator Operator Operator Operator Methodically inject small syntactical faults into the program under test Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  46. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Mutation Mutation Mutation Mutation Operator Operator Operator Operator Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  47. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Test Case T 1 Test Case T 2 Test Case T 3 Test Case T 4 Execute the test suite after enabling a single mutant in the program under test Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  48. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Test Case T 1 Test Case T 2 Test Case T 3 Test Case T 4 Execute the test suite after enabling a single mutant in the program under test Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  49. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Test Case T 1 Test Case T 2 Test Case T 3 Test Case T 4 Execute the test suite after enabling a single mutant in the program under test Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  50. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Test Case T 1 Test Case T 2 Test Case T 3 Test Case T 4 Execute the test suite after enabling a single mutant in the program under test Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  51. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Test Case T 1 Test Case T 2 Test Case T 3 Test Case T 4 Execute the test suite after enabling a single mutant in the program under test Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  52. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Test Case T 1 Test Case T 2 Test Case T 3 Test Case T 4 Execute the test suite after enabling a single mutant in the program under test Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  53. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Test Case T 1 Test Case T 2 Test Case T 3 Test Case T 4 Execute the test suite after enabling a single mutant in the program under test Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  54. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Test Case T 1 Test Case T 2 Test Case T 3 Test Case T 4 Execute the test suite after enabling a single mutant in the program under test Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  55. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Test Case T 1 Test Case T 2 Test Case T 3 Test Case T 4 Execute the test suite after enabling a single mutant in the program under test Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  56. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Test Case T 1 Test Case T 2 Test Case T 3 Test Case T 4 The test suite Execute the cannot kill the test suite after mutant – either enabling a a test suite single mutant weakness or in the program an equivalent under test mutant! Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  57. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Overview of Mutation Analysis Test Case T 1 Test Case T 2 Test Case T 3 Test Case T 4 Repeat this Execute the process for test suite after all of the enabling a test cases single mutant and mutants in the program – calculate mutation score under test when finished Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  58. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Contributions of this Presentation Efficient Mutation Analysis Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  59. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Contributions of this Presentation Efficient Challenges Mutation Analysis Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  60. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Contributions of this Presentation Efficient Challenges Mutation Analysis Solutions Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  61. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Contributions of this Presentation Efficient Challenges Mutation Analysis Solutions Conditional Mutation Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  62. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Contributions of this Presentation Efficient Challenges Mutation Analysis Solutions Conditional Mutation Syntax Tree Transformation Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  63. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Contributions of this Presentation Efficient Challenges Mutation Analysis Solutions Conditional Mutation Syntax Tree Transformation Expressions and Statements Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  64. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Contributions of this Presentation Efficient Challenges Mutation Analysis Solutions Conditional Mutation Compiler Syntax Tree Integrated Transformation Expressions and Statements Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  65. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Contributions of this Presentation Efficient Challenges Comprehensive Mutation Empirical Study Analysis Solutions Conditional Mutation Compiler Syntax Tree Integrated Transformation Expressions and Statements Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  66. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Contributions of this Presentation Efficient Technique - Fully Integrated into the Java 6 SE Compiler Efficient Challenges Comprehensive Mutation Empirical Study Analysis Solutions Conditional Mutation Compiler Syntax Tree Integrated Transformation Expressions and Statements Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  67. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Understanding Mutation Analysis public int eval( int x){ int a=3, b=1, y; y = a * x; y += b; return y; } public int max( int a, int b){ int max = a; if (b>a){ max=b; } return max; } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  68. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Understanding Mutation Analysis public int eval( int x){ int a=3, b=1, y; y = a * x; Methodically y += b; inject small return y; } syntactical public int max( int a, int b){ faults into int max = a; the program under test if (b>a){ max=b; } return max; } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  69. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Understanding Mutation Analysis public int eval( int x){ int a=3, b=1, y; y = a * x; y += b; return y; } public int max( int a, int b){ int max = a; if (b>a){ max=b; } return max; } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  70. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Understanding Mutation Analysis public int eval( int x){ int a=3, b=1, y; • y = a - x; • y = a + x; ⇒ y = a * x; = • y = a / x; y += b; return y; } public int max( int a, int b){ int max = a; • if(b < a) • if(b != a) if (b>a){ ⇒ = max=b; • if(b == a) } return max; } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  71. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Understanding Mutation Analysis public int eval( int x){ Unbiased int a=3, b=1, y; and powerful y = a * x; method for assessing y += b; oracles and return y; } input values public int max( int a, int b){ int max = a; if (b>a){ max=b; } return max; } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  72. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Understanding Mutation Analysis public int eval( int x){ Unbiased int a=3, b=1, y; and powerful y = a * x; method for assessing y += b; oracles and return y; } input values public int max( int a, int b){ Useful method int max = a; for fault seeding if (b>a){ during the max=b; empirical study } of testing return max; techniques } Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  73. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Mutation Analysis Challenges Mutant Generation Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  74. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Mutation Analysis Challenges Mutation Mutant Operators Generation Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  75. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Mutation Analysis Challenges Program Mutation Mutant Operators Generation Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  76. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Mutation Analysis Challenges Program Mutation Mutant Mutants Operators Generation Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  77. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Mutation Analysis Challenges Often Yields a Substantial Num- Program ber of Mutants Mutation Mutant Mutants Operators Generation Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  78. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Mutation Analysis Challenges Often Yields a Substantial Num- Program ber of Mutants Mutation Mutant Mutants Operators Generation High Time Over- head for Generation Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  79. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Mutation Analysis Challenges Often Yields a Substantial Num- Program ber of Mutants Mutation Mutant Mutants Operators Generation Mutation Analysis High Time Over- head for Generation Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

  80. Introduction Mutation Analysis Empirical Evaluation Conclusion Fundamental Concepts Mutation Analysis Challenges Often Yields a Substantial Num- Program ber of Mutants Mutation Mutant Mutants Operators Generation Mutation Tests Analysis High Time Over- head for Generation Kapfhammer Allegheny College Efficient and Effective Mutation Testing: Supporting the Implementation of Quality Software by Purposefully Inserting Defects

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend