Abstract
This paper presents some connections between dependence analysis and mutation testing. Specifically, dependence analysis can be applied to two problems in mutation testing, captured by the questions:
-
1.
How do we avoid the creation of equivalent mutants?
-
2.
How do we generate test data that kills non-equivalent mutants?
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aho, A. V., Sethi, R., and Ullman, J. D. Compilers: Principles, techniques and tools. Addison Wesley, 1986.
Baldwin, D., and Sayward, F. Heuristics for determining equivalence of program mutations. Research Report 276, Department of Computer Science, Yale University (1979).
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.
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
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.
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.
Gallagher, K. B., and Lyle, J. R. Using program slicing in software maintenance. IEEE Transactions on Software Engineering 17, 8 (Aug. 1991), 751–761.
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.
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.
Harman, M., and Gallagher, K. B. Information and Software Technology, Special issue on program slicing, volume 40, numbers 11 and 12.
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.
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.
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.
Horwitz, S., Reps, T., and Binkley, D. Interprocedural slicing using dependence graphs. ACM Transactions on Programming Languages and Systems 12, 1 (1990), 26–61.
Howden, W. E. Weak mutation testing and completeness of test sets. IEEE Transactions on Software Engineering 8 (1982), 371379.
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.
Jones, B., Sthamer, H.-H., and Eyres, D. Automatic structural testing using genetic algorithms. The Software Engineering Journal 11 (1996), 299–306.
King, K. N., and Offutt, A. J. A Fortran language system for mutation-based software testing. Software Practice and Experience 21 (1991), 686–718.
Offutt, A. J., and Craft, W. M. Using compiler optimization techniques to detect equivalent mutants. Software Testing, Verification and Reliability 4 (1994), 131–154.
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.
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.
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.
Offutt, J., and Pan, J. Automatically detecting equivalent mutants and infeasible paths. Software Testing, Verification, and Reliability 7, 3 (Sept. 1997), 165–192.
PAN, J. Using constraints to detect equivalant mutants. Master’s thesis, George Mason University, 1994.
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.
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.
Voas, J., and Mcgraw, G. Software Fault Injection. Wiley, 1998.
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.
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.
Wegener, J., Sthamer, H., Jones, B. F., And Eyres, D. E. Testing real-time systems using genetic algorithms. Software Quality 6 (1997), 127–135.
Weiser, M. Program slicing. IEEE Transactions on Software Engineering 10, 4 (1984), 352–357.
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 ).
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.
Yur, J.-S., Ryder, B. G., Landi, W. A., And Stocks, P. Incremental analysis of side effects for C software systems. In
Proceedings of the 19th International Conference on Software Engineering (ICSE ‘87) (May 1997), IEEE Computer Society Press, Los Alamitos, California, USA, pp. 422–432.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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