ABSTRACT
As current trends in programming encourage a high degree of modularity, the number of procedure calls and returns executed in a module continues to grow. This increase in procedures mandates the efficient testing of the interactions among procedures. In this paper, we extend the utility of data flow testing to include the testing of data dependencies that exist across procedure boundaries. An interprocedural data flow analysis algorithm is first presented that enables the efficient computation of information detailing the locations of definitions and uses needed by an interprocedural data flow tester. To utilize this information, a technique to guide the selection and execution of test cases, that takes into account the various associations of names with definitions and uses across procedures, is also presented. The resulting interprocedural data flow tester handles global variables, reference parameters and recursive procedure calls, and is compatible with the current intraprocedural data flow testing techniques. The testing tool has been implemented on a Sun 3/50 Workstation.
- 1.A. V. Aho, R. Sethi, and J. D. Ullman, in Compilers, Principles, Techniques, and Tools, Addison- Wesley Publishing Company, Massachusetts, 1986. Google ScholarDigital Library
- 2.F. E. Allen, "Interprocedural data flow analysis," in IFIP Information Processing 74, North-Holland Publishing Company, 1974.Google Scholar
- 3.J. P. Banning, "An efficient way to find the side effects of procedure calls and aliases of variables," Sixth Annual ACM Symposium on Principles of Programming Languages, pp. 29-41, January 1979. Google ScholarDigital Library
- 4.J. M. Barth, "A practical interprocedural data flow analysis algorithm," CACM, vol. 21, no. 9, pp. 724-736, September 1978. Google ScholarDigital Library
- 5.D. Callahan, "The program summary graph and flow-sensitive interprocedural data flow analysis," Proceedings of the SIGPLAN'88 Conference on Programming Language Design and Implementation, pp. 47-56, Atlanta, GA, June 1988. Google ScholarDigital Library
- 6.M. D. Carroll and B. G. Ryder, "An incremental algorithm for software analysis," Proceedings of the SIGSOFTISIGPLAN Software Engineering Symposium on Practical Software Development Environments, SIGPLAN Notices, vol. 22, no. 1, January 1987. Google ScholarDigital Library
- 7.M. D. Carroll and B. G. Ryder, "Incremental data flow analysis via dominator and attribute updates," Proceedings of the Fifteenth Annual ACM SIGACTISIGPLAN Symposium on Principles of Programming Languages, San Diego, CA, January 1988. Google ScholarDigital Library
- 8.L. A. Clarke, A. Podgurski, D. Richardson, and S. Zeil, "A comparison of data flow path selection criteria," Proceedings 8th International Conference on Software Engineering, pp. 244-251, London, UK, August 1985. Google ScholarDigital Library
- 9.K. Cooper and K. Kennedy, "Interprocedural sideeffect analysis in linear time," Proceedings of the SIGPLAN'88 Conference on Programming Language Design and Implementation, pp. 57-66, Atlanta, GA, June, 1988. Google ScholarDigital Library
- 10.P. G. Frankl, S. N. Weiss, and E. J. Weyuker, "ASSET: A system to select and evaluate tests," Proceedings of the IEEE Conference on Software Tools, New York, April 1985.Google Scholar
- 11.P. G. Frankl and E. J. Weyuker, "An applicable family of data flow testing criteria," IEEE Transactions on Software Engineering, vol. 14, no. 10, pp. 1483-1498, October 1988. Google ScholarDigital Library
- 12.M. J. Harrold, "An approach to incremental testing," Technical Report 89-l Department of Computer Science, University of Pittsburgh, January 1989.Google Scholar
- 13.M. J. Harrold and M. L. Soffa, "An incremental data flow testing tool," Proceeding of the Sixth International Conference on Testing Computer Software, Washington, DC, May 1989.Google Scholar
- 14.B. Korel and J. Laski, "A tool for data flow oriented program testing," ACM Softfair Proceedings, pp. 35-37, December 1985. Google ScholarDigital Library
- 15.J. W. Laski and B. Korel, "A data flow oriented program testing strategy," IEEE Transactions on Software Engineering, vol. SE-g, no. 3, pp. 347- 354, May 1983.Google ScholarDigital Library
- 16.D. B. Lomet, "Data flow analysis in the presence of procedure calls," IBM Journal of Research and Development, vol. 21, no. 6, pp. 559-571, November 1977.Google ScholarDigital Library
- 17.E. W. Myers, "A precise inter-procedural data flow algorithm," Conference Record of the Eighth Annual ACM Symposium on Principles of Programming Languages, pp. 219-230, Williamsburg, VA, January 1981. Google ScholarDigital Library
- 18.S. C. Ntafos, "An evaluation of required element testing strategies," Proceedings 7th International Conference on Sofhvare Engineering, pp. 250-256, Orlando, Florida, March 1984. Google ScholarDigital Library
- 19.S. Rapps and E. J. Weyuker, "Selecting software test data using data flow information," IEEE Transactions of Software Engineering, vol. SE- 11, no. 4, pp. 367-375, April 1985. Google ScholarDigital Library
Index Terms
- Interprocedual data flow testing
Recommendations
A Survey on Data-Flow Testing
Data-flow testing (DFT) is a family of testing strategies designed to verify the interactions between each program variable’s definition and its uses. Such a test objective of interest is referred to as a def-use pair. DFT selects test data with respect ...
Interprocedual data flow testing
As current trends in programming encourage a high degree of modularity, the number of procedure calls and returns executed in a module continues to grow. This increase in procedures mandates the efficient testing of the interactions among procedures. In ...
Priority based data flow testing
ICSM '95: Proceedings of the International Conference on Software MaintenanceSoftware testing is an expensive component of software development and maintenance. For data flow testing, test cases must be found to test the def-use pairs in a program. Since some of the def-use pairs identified through static analysis may be ...
Comments