Skip to main content

The Relationship Between Program Dependence and Mutation Analysis

  • Chapter
Mutation Testing for the New Century

Abstract

This paper presents some connections between dependence anal­ysis and mutation testing. Specifically, dependence analysis can be applied to two problems in mutation testing, captured by the questions:

  1. 1.

    How do we avoid the creation of equivalent mutants?

  2. 2.

    How do we generate test data that kills non-equivalent mu­tants?

The theoretical connections described here suggest ways in which a dependence analysis tool might be used, in combination with existing tools for mutation testing, for test-data generation and equivalent-mutant detection.

In this paper the variable orientated, fine grained dependence framework of Jackson and Rollins is used to achieve these two goals. Yhis framework of dependence analysis appears to be better suited to mutation testing than the more traditional, Program Dependence Graph (PDG) approach, used in slicing and other forms of program analysis.

The relationship between dependence analysis and muataion testing is used to defined an augmented mutation testing process, with starts and ends with dependence analysis phases. The pre-analysis removes a class of equivalent mutants from further analysis, while the post-analysis phase is used to simplify the human effort required ti study the few mutants that evade the automated phases of the process.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Aho, A. V., Sethi, R., and Ullman, J. D. Compilers: Principles, techniques and tools. Addison Wesley, 1986.

    Google Scholar 

  2. Baldwin, D., and Sayward, F. Heuristics for determining equivalence of program mutations. Research Report 276, Department of Computer Science, Yale University (1979).

    Google Scholar 

  3. Binkley, D. W. Computing amorphous program slices using dependence graphs and a data-flow model. In ACM Symposium on Applied Computing (The Menger, San Antonio, Texas, U.S.A., 1999 ), ACM Press, New York, NY, USA, pp. 519–525.

    Google Scholar 

  4. Danicic, S. Dataflow Minimal Slicing. PhD thesis, University of North London, UK, School of Informatics, Apr. 1999. Figure 4: A Mutation Testing Process which Combines Dependence and Constraint Analysis

    Google Scholar 

  5. Ferrante, J., Ottenstein, K. J., and Warren, J. D. The program dependence graph and its use in optimization. ACM Transactions on Programming Languages and Systems 9, 3 (July 1987), 319–349.

    Article  MATH  Google Scholar 

  6. Frankl, P. G., Weiss, S. N., and Hu, C. All-uses vs mutation testing: An experimental comparison of effectiveness. Journal of Systems Software 38 (1997), 235–253.

    Article  Google Scholar 

  7. Gallagher, K. B., and Lyle, J. R. Using program slicing in software maintenance. IEEE Transactions on Software Engineering 17, 8 (Aug. 1991), 751–761.

    Article  Google Scholar 

  8. Harman, M., and Danicic, S. Amorphous program slicing. In 5th IEEE International Workshop on Program Comprehesion (IWPC’97) (Dearborn, Michigan, USA, May 1997 ), IEEE Computer Society Press, Los Alamitos, California, USA, pp. 70–79.

    Google Scholar 

  9. Harman, M., Fox, C., Hierons, R. M., Binkley, D., and Danicic, S. Program simplification as a means of approximating undecidable propositions. In 7 th IEEE International Workshop on Program Comprehesion (IWPC’99) (Pittsburgh, Pennsylvania, USA, May 1999), IEEE Computer Society Press, Los Alamitos, California, USA, pp. 208–217.

    Google Scholar 

  10. Harman, M., and Gallagher, K. B. Information and Software Technology, Special issue on program slicing, volume 40, numbers 11 and 12.

    Google Scholar 

  11. Harman, M., Sivagurunathan, Y., and Danicic, S. Analysis of dynamic memory access using amorphous slicing. In IEEE International Conference on Software Maintenance (ICSM’98) (Bethesda, Maryland, USA, Nov. 1998), IEEE Computer Society Press, Los Alamitos, California, USA, pp. 336–345.

    Google Scholar 

  12. Hierons, R. M., Harman, M., and Danicic, S. Using program slicing to assist in the detection of equivalent mutants. Software Testing, Verification and Reliability 9, 4 (1999), 233–262.

    Article  Google Scholar 

  13. Horwitz, S., and Reps, T. The use of program dependence graphs in software engineering. In 14th International Conference on Software Engineering (Melbourne, Australia, 1992), pp. 392411.

    Google Scholar 

  14. Horwitz, S., Reps, T., and Binkley, D. Interprocedural slicing using dependence graphs. ACM Transactions on Programming Languages and Systems 12, 1 (1990), 26–61.

    Article  Google Scholar 

  15. Howden, W. E. Weak mutation testing and completeness of test sets. IEEE Transactions on Software Engineering 8 (1982), 371379.

    Google Scholar 

  16. Jackson, D., and Rollins, E. J. Chopping: A generalisation of slicing. Tech. Rep. CMU-CS-94–169, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, July 1994.

    Google Scholar 

  17. Jones, B., Sthamer, H.-H., and Eyres, D. Automatic structural testing using genetic algorithms. The Software Engineering Journal 11 (1996), 299–306.

    Article  Google Scholar 

  18. King, K. N., and Offutt, A. J. A Fortran language system for mutation-based software testing. Software Practice and Experience 21 (1991), 686–718.

    Article  Google Scholar 

  19. Offutt, A. J., and Craft, W. M. Using compiler optimization techniques to detect equivalent mutants. Software Testing, Verification and Reliability 4 (1994), 131–154.

    Article  Google Scholar 

  20. Offutt, A. J., Jin, Z., and Pan, J. The dynamic domain reduction approach to test data generation. Software Practice and Experience 29, 2 (January 1999), 167–193.

    Article  Google Scholar 

  21. Offutt, A. J., and Pan, J. Detecting equivalent mutants and the feasible path problem. In Annual Conference on Computer Assurance (COMPASS 96), IEEE Computer Society Press ( Gaithersburg, MD, June 1996 ), pp. 224–236.

    Google Scholar 

  22. Offutt, A. J., Pan, J., Tewary, K., and Zhang, T. An experimental evalutation of data flow and mutation testing. Software Practice and Experience 26 (1996), 165–176.

    Article  Google Scholar 

  23. Offutt, J., and Pan, J. Automatically detecting equivalent mutants and infeasible paths. Software Testing, Verification, and Reliability 7, 3 (Sept. 1997), 165–192.

    Article  Google Scholar 

  24. PAN, J. Using constraints to detect equivalant mutants. Master’s thesis, George Mason University, 1994.

    Google Scholar 

  25. Pargas, R. P., Harrold, M. J., AND PECK, R. R. Test-data generation using genetic algorithms. The Journal of Software Testing, Verification and Reliability 9, 4 (1999), 263–282.

    Article  Google Scholar 

  26. Tracey, N., Clark, J., And Mander, K. Automated program flaw finding using simulated annealing. In International Symposium on Software Testing and Analysis (March 1998), ACM/SIGSOFT, pp. 73–81.

    Google Scholar 

  27. Voas, J., and Mcgraw, G. Software Fault Injection. Wiley, 1998.

    Google Scholar 

  28. Wagner, T. A., And Graham, S. L. Integrating incremental analysis with version management. In Proceedings of the 5 th European Software Engineering Conference (ESEC’95) (Sept. 1995), W. Schäfer and P. Botella, Eds., Lecture Notes in Computer Science Nr. 989, Springer-Verlag, pp. 205–218.

    Google Scholar 

  29. Wagner, T. A., and Graham, S. L. Incremental analysis of real programming languages. In Proceedings of the ACM SIG-PLAN Conference on Programming Language Design and Implementation (PLDI-97) (New York, June 15–18 1997), vol. 32, 5 of ACM SIGPLANNotices, ACM Press, pp. 31–43.

    Google Scholar 

  30. Wegener, J., Sthamer, H., Jones, B. F., And Eyres, D. E. Testing real-time systems using genetic algorithms. Software Quality 6 (1997), 127–135.

    Article  Google Scholar 

  31. Weiser, M. Program slicing. IEEE Transactions on Software Engineering 10, 4 (1984), 352–357.

    Article  MATH  Google Scholar 

  32. Woodward, M. R., And Halewood, K. From weak to strong, dead or alive? an analysis of some mutation testing issues. In Proceedings of the Second Workshop on Software Testing, Verification, and Analysis ( Banff, Canada, July 1988 ).

    Google Scholar 

  33. Yur, J., Ryder, B. G., And Landi, W. A. An incremental flow-and context-sensitive pointer aliasing analysis. In Proceedings of the 21st International Conference on Software Engineering (May 1999), IEEE Computer Society Press, Los Alamitos, California, USA, pp. 442–452.

    Google Scholar 

  34. Yur, J.-S., Ryder, B. G., Landi, W. A., And Stocks, P. Incremental analysis of side effects for C software systems. In

    Google Scholar 

  35. Proceedings of the 19th International Conference on Software Engineering (ICSE ‘87) (May 1997), IEEE Computer Society Press, Los Alamitos, California, USA, pp. 422–432.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer Science+Business Media New York

About this chapter

Cite this chapter

Harman, M., Hierons, R., Danicic, S. (2001). The Relationship Between Program Dependence and Mutation Analysis. In: Wong, W.E. (eds) Mutation Testing for the New Century. The Springer International Series on Advances in Database Systems, vol 24. Springer, Boston, MA. https://doi.org/10.1007/978-1-4757-5939-6_4

Download citation

  • DOI: https://doi.org/10.1007/978-1-4757-5939-6_4

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4419-4888-5

  • Online ISBN: 978-1-4757-5939-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics