Abstract
Regression testing is a commonly used activity whose purpose is to determine whether the modifications made to a software system have introduced new faults. For many large, complex, software systems the retest all strategy is not practical: the resources required to reexecute and verify all available test cases (i.e., time and human effort) are prohibitive. Ad hoc methods are not desirable, as they can compromise the reliability of the regression test activity and consequently the reliability of the software system being tested. In this paper we present a new technique for selecting regression test cases based on the modifications that have been made on the program. The technique, which is based on the idea of directly comparing source files from the old and the new version of the program, has been implemented in a tool called Pythia. A novel characteristic of Pythia, which is capable of analyzing large software systems written in C, is that it has been implemented primarily through the integration of standard, well known, UNIX1 programs.
Chapter PDF
References
Agrawal, H., J.R. Horgan, E.W. Krauser, and S.A. London. “Incremental Regression Testing”, Proc. Conf. on Software Maintenance 1993, pp. 348–357, [ Sep. 1993 ].
Bates, S., and S. Horowitz. “Incremental Program Testing Using Program Dependence Graphs”, Proc. 20th ACM Symp. on Principles of Programming Languages, 9 (9), pp. 384–396, [ Jan. 1993 ].
Benedusi, P., A. Cimitile, and U. De Carlini. “Post-maintenance Testing Based on Path Change Analysis”, Proc. Conf. on Software Maintenance 1988, pp. 352–361, [ Oct. 1988 ].
Binkley, D. “Using Semantic Differencing to Reduce the Cost of Regression Testing”, Proc. Conf. on Software Maintenance, pp. 41–50, [ Nov. 1992 ].
Bolsky, M.I., and D.G. Korn. The Korn Shell Command and Programming Language. Prentice-Hall, Inc., Englewood Cliffs, NJ, [ 1989 ].
Chen, Y-F., D.S. Rosenblum, and K-P. Vo. “TestTube: A System for Selective Rgression Testing”, Proc. 16th Int. Conf. on Software Engineering, pp. 211–220, [ May 1994 ].
Chen, Y-F., M. Nishimoto, and C.V. Ramamoorthy. “The C Information Abstraction System”, IEEE Transactions on Software Engineering, SE-16(3), pp. 325–334, [ March 1990 ].
Dunietz, I.S. The addmon Family of Tools“, ATandT Bell Laboratories Technical Memorandum, 103122000–930426–01TMS, [ May 1993 ].
Fisher, K., F. Raji, and A. Chruscicki. “A Methodology for Retesting Modified Software”, Proc. National Telecommunications Conf. 1981, pp. B6.3.1-B6. 3. 6, [ Nov. 1981 ].
Gupta, R., M.J. Harrold, and M.L. Soffa. “An Approach to Regression Testing using Slicing”, Proc. Conf. on Software Maintenance, pp. 299–308, [ Nov. 1992 ].
Harrold, M.J., and M.L. Soffa. “An Incremental Approach to Unit Testing During Main- tenance”, Proc. Conf. on Software Maintenance 1988, pp. 362–367, [ Oct. 1988 ].
Hartmann, J., and D.J. Robson. “Approaches to Regression Testing”, Proc. Conf. on Software Maintenance 1988, pp. 368–372, [ Oct. 1988 ].
Techniques for Selective Revalidation“, IEEE Software, 7(1):31–36,[Jan. 1990].
Horwitz, S. “Identifying the Semantic and Textual Differences between Two Versions of a Program”, Computer Science Technical Report #895, Univ. of Wisconsin, [ Nov. 1989 ].
Hunt, J.W., and M.D. Mcllroy. “An Algorithm for Differential File Comparison”, Computer Science Technical Report 41, Bell Laboratories, [ 1975 ].
Hunt, J.W., and T.G. Szymanski. “A Fast Algorithm for Computing Longest Common Subsequences”, Comm. ACM, 20 (5), pp. 350–353, [ May 1977 ].
Kernighan, B.W., and D.M. Ritchie. The C Programming Language. Prentice-Hall, Englewood Cliffs, NJ, [ 1978 ].
Laski, J., and W. Szermer. “Identification of Program Modifications and its Application in Software Maintenance”, Proc. Conf. on Software Maintenance 1992, pp. 282–290, [ Nov. 1992 ].
Leung, H.K.N., and L. White. “A Study of Integration Testing and Software Regression at the Integration Level”, Proc. Conf. on Software Maintenance 1990, pp. 290–301, [ Nov. 1990 ].
Insights into Testing and Regression Testing Global Variables“, Journal of Soft-ware Maintenance,2, pp. 209–222, [Dec. 1990].
A Cost Model to Compare Regression Test Strategies“, Proc. Conf. on Software Maintenance 1991,pp. 201–208, [Oct. 1991].
Ostrand, T.J., and E.J. Weyuker. “Using Data Flow Analysis for Regression Testing”, Proc. 6th Annual Pacific Northwest Software Quality Conf., pp. 233–247, [ Sep. 1988 ].
Rosenblum, D.S. “Towards a Method of Programming With Assertions”, Proc. 14th Int. Conference on Software Engineering, pp. 92–104, [ May 1992 ].
Rothermel, G, and M.J. Harrold. “A Safe, Efficient Regression Test Selection Technique”, Ohio State University Technical Report,OSU-CISRC-4/96-TR25, to appear in: ACM TOSEM
Analyzing Regression Test Selection Techniques“, to appear in: IEEE Transac-tions on Software Engineering,1996.
Sherlund, B., and B. Korel. “Modification Oriented Regression Testing”, Conf. Proc. Quality Week 1991, pp. 1–17, [ May 1991 ].
Vokolos, F.I. “A Regression Test Selection Technique Based on Textual Differencing”, Ph.D. diss., Polytechnic University, (in preparation).
Wall, L., and R.L. Schwartz. Programming per 1. O’Reilly and Associates, Inc., Sebastopol, CA, [ Jan. 1991 ].
White, L.J. et al. “Test Manager: A Regression Testing Tool”, Proc. Conf. on Software Maintenance 1993, pp. 338–347, [ Sep. 1993 ].
Yang, W. “Identifying Syntactic Differences Between Two Programs”, Software — Practice and Experience, 21 (7), pp. 739–755, [ July 1991 ].
Yau, S.S., and Z. Kishimoto. “A Method for Revalidating Modified Programs in the Maintenance Phase”, COMPSAC ‘87: The 11th Annual Int. Computer Software and Applications Conf, pp. 272–277, [ Oct. 1987 ].
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1997 Springer Science+Business Media Dordrecht
About this chapter
Cite this chapter
Vokolos, F.I., Frankl, P.G. (1997). Pythia: A regression test selection tool based on textual differencing. In: Gritzalis, D. (eds) Reliability, Quality and Safety of Software-Intensive Systems. IFIP — The International Federation for Information Processing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-35097-4_1
Download citation
DOI: https://doi.org/10.1007/978-0-387-35097-4_1
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4757-6399-7
Online ISBN: 978-0-387-35097-4
eBook Packages: Springer Book Archive