Skip to main content

Feasible test path selection by principal slicing

  • Regular Sessions
  • Conference paper
  • First Online:
Book cover Software Engineering — ESEC/FSE'97 (ESEC 1997, SIGSOFT FSE 1997)

Abstract

We propose to improve current path-wise methods for automatic test data generation by using a new method named principal slicing. This method statically derives program slices with a near minimum number of influencing predicates, using both control and data flow information. Paths derived on principal slices to reach a certain program point are therefore very likely to be feasible. We discuss how our method improves on earlier proposed approaches, both static and dynamic. We also provide an algorithm for deriving principal slices. Then we illustrate the application of principal slicing to testing, considering a specific test criterion as an example, namely branch coverage. The example provided is an optimised method for automated branch testing: not only do we use principal slicing to obtain feasible test paths, but also we use the concept of spanning sets of branches to guide the selection of each next path, which prevents the generation of redundant tests.

Reseach was supported in part by Hungarian National Foundation, grants 7314, 023307, by Soros Foundation, and in part by OLOS HCM Network under EC Contract No. CHRX-CT94-0577.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. H. Agrawal, J.R. Horgan, E.W. Krauser and S.A. London. Incremental regression testing, Proc. of the 1993 IEEE Conf, on Software Maintenance, Montreal, Canada, 348–357 (1993)

    Google Scholar 

  2. B. Beizer. Software Testing Techniques, Second Edition. Van Nostrand Reinhold, New York. 1990.

    Google Scholar 

  3. A. Bertolino and M. Marre. Automatic generation of path covers based on the control flow analysis of computer programs. IEEE Trans. on Software Eng., 20(12):885–899, (1994).

    Google Scholar 

  4. L. A. Clarke. A system to generate test data and simbolically execute programs. IEEE Trans. on Software Eng., 2(3):215–222, (1976).

    Google Scholar 

  5. R. Conradi, Experience with FORTRAN VERIFIER — A tool for documentation an error diagnosis of FORTRAN-77 programs Proc. 1st European Software Engineering Conference, Strasburg, France 8–11 Sept. 263-275 Springer Verlag LNCS 289 (1987)

    Google Scholar 

  6. R. A. DeMillo and A.J. Offutt. Constraint-based automatic test generation. IEEE Trans. on Software Eng., 17(9):900–910, (1991).

    Google Scholar 

  7. R. Ferguson and B. Korel. The chaining approach for software test data generation. ACM Trans. on Software Eng. and Meth., 5(1):63–86, (1996)

    Google Scholar 

  8. S. Horwitz, T. Reps and D. Binkley. Interprocedural slicing using dependence graphs. ACM Trans. Progr. Lang. Syst., 12(1):26–61, (1990).

    Google Scholar 

  9. W. E. Howden. Symbolic testing and the DISSECT symbolic evaluation system. IEEE Trans. on Software Eng., 3(4):266–278, (1977).

    Google Scholar 

  10. M. Kamkar. An overview and comparative classification of program slicing techniques. Journal of Systems and Software, 31(3):197–214, (1995)

    Google Scholar 

  11. B. Korel. Automated software test data generation. IEEE Trans. on Software Eng., 16(8):870–879, (1990).

    Google Scholar 

  12. B. Korel. Dynamic method for software test data generation. J. Softw. Testing Verif. Reliab. 2(4):203–213, (1992)

    Google Scholar 

  13. B. Korel and J. Laski. Dynamic slicing of computer programs. Journal of Systems and Software, 13(3):187–195, (1990)

    Google Scholar 

  14. M. Marre and A. Bertolino. Reducing and estimating the cost of test coverage criteria. In Proc. ACM/IEEE Int. Conf. Software Eng. ICSE-18, pages 486–494, Berlin, Germany, March 1996.

    Google Scholar 

  15. K.J. Ottenstein and L.M. Ottenstein. The program dependence graph in a software development environment. ACM SIGPLAN Notices, 19(5):177–184, (1984)

    Google Scholar 

  16. G.A. Venkatesh. The semantic approach to program slicing Proc. of the ACM SIGPLAN'91 Conference on Programming Language Design and Implementation Toronto, Canada, 107–119 (1991)

    Google Scholar 

  17. M. Weiser. Program slicing. IEEE Trans. on Software Eng., 10(4):352–357, (1984).

    Google Scholar 

  18. E. Weyuker. Translatability and decidability questions for restricted classes of program schemas. SIAM Journal on Computers, 8(4):587–598, (1979)

    Google Scholar 

  19. L. J. White and E. I. Cohen. A domain strategy for computer program testing. IEEE Trans. on Software Eng., 6(3):247–257, (1980).

    Google Scholar 

  20. D. F. Yates and N. Malevris. Reducing the effects of infeasible paths in branch testing. ACM SIGSOFT Software Engineering Notes, 14(8):48–54, (1989).

    Google Scholar 

  21. D. F. Yates and N. Malevris. The effort required by LCSAJ testing: an assessment via a new path generation strategy. Software Quality J., 4(3):227–242, (1995).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mehdi Jazayeri Helmut Schauer

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Forgács, I., Bertolino, A. (1997). Feasible test path selection by principal slicing. In: Jazayeri, M., Schauer, H. (eds) Software Engineering — ESEC/FSE'97. ESEC SIGSOFT FSE 1997 1997. Lecture Notes in Computer Science, vol 1301. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-63531-9_26

Download citation

  • DOI: https://doi.org/10.1007/3-540-63531-9_26

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63531-4

  • Online ISBN: 978-3-540-69592-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics