skip to main content
10.1145/1028976.1029012acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Chianti: a tool for change impact analysis of java programs

Published:01 October 2004Publication History

ABSTRACT

This paper reports on the design and implementation of Chianti, a change impact analysis tool for Java that is implemented in the context of the Eclipse environment. Chianti analyzes two versions of an application and decomposes their difference into a set of atomic changes. Change impact is then reported in terms of affected (regression or unit) tests whose execution behavior may have been modified by the applied changes. For each affected test, Chianti also determines a set of affecting changes that were responsible for the test's modified behavior. This latter step of isolating the changes that induce the failure of one specific test from those changes that only affect other tests can be used as a debugging technique in situations where a test fails unexpectedly after a long editing session. We evaluated Chianti on a year (2002) of CVS data from M. Ernst's Daikon system, and found that, on average, 52% of Daikon's unit tests are affected. Furthermore, each affected unit test, on average, is affected by only 3.95% of the atomic changes. These findings suggest that our change impact analysis is a promising technique for assisting developers with program understanding and debugging.

References

  1. Bates, S., and Horwitz, S. Incremental program testing using program dependence graphs. In Proc. of the ACM SIGPLAN-SIGACT Conf. on Principles of Programming Languages (POPL'93) (Charleston, SC, 1993), pp. 384--396. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Binkley, D. Semantics guided regression test cost reduction. IEEE Trans. on Software Engineering 23, 8 (August 1997). Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bohner, S. A., and Arnold, R. S. An introduction to software change impact analysis. In Software Change Impact Analysis, S. A. Bohner and R. S. Arnold, Eds. IEEE Computer Society Press, 1996, pp. 1--26.Google ScholarGoogle Scholar
  4. Chen, Y., Rosenblum, D., and Vo, K. Testtube: A system for selective regression testing. In Proc. of the 16th Int. Conf. on Software Engineering (1994), pp. 211--220. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Eidorff, P. H., Henglein, F., Mossin, C., Niss, H., Sorensen, M. H., and Tofte, M. AnnoDomini: From type theory to year 2000 conversion. In Proc. of the ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages (January 1999), pp. 11--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Elbaum, S., Kallakuri, P., Malishevsky, A. G., Rothermel, G., and Kanduri, S. Understanding the effects of changes on the cost-effectiveness of regression testing techniques. Journal of Software Testing, Verification, and Reliability (2003). To appear.Google ScholarGoogle Scholar
  7. Ernst, M. D. Dynamically discovering likely program invariants. PhD thesis, University of Washington, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Gallagher, K., and Lyle, J. R. Using program slicing in software maintenance. IEEE Trans. on Software Engineering 17 (1991). Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Gosling, J., Joy, B., Steele, G., and Bracha, G. The Java Language Specification (Second Edition). Addison-Wesley, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Harrold, M. J., Jones, J. A., Li, T., Liang, D., Orso, A., Pennings, M., Sinha, S., Spoon, S. A., and Gujarathi, A. Regression test selection for Java software. In Proc. of the ACM SIGPLAN Conf. on Object Oriented Programming Languages and Systems (OOPSLA'01) (October 2001), pp. 312--326. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Kung, D. C., Gao, J., Hsia, P., Wen, F., Toyoshima, Y., and Chen, C. Change impact identification in object oriented software maintenance. In Proc. of the International Conf. on Software Maintenance (1994), pp. 202--211. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Larus, J. Whole program paths. In Proc. of the ACM SIGPLAN Conf. on Programming Language Design and Implementation (May 1999), pp. 1--11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Law, J., and Rothermel, G. Whole program path-based dynamic impact analysis. In Proc. of the International Conf. on Software Engineering (2003), pp. 308--318. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Milanova, A., Rountev, A., and Ryder, B. G. Precise call graphs for C programs with function pointers. Journal for Automated Software Engineering (2004). Special issue on Source Code Analysis and Manipulation. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Orso, A., Apiwattanapong, T., and Harrold, M. J. Leveraging field data for impact analysis and regression testing. In Proc. of European Software Engineering Conf. and ACM SIGSOFT Symp. on the Foundations of Software Engineering (ESEC/FSE'03) (Helsinki, Finland, September 2003). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Orso, A., Apiwattanapong, T., Law, J., Rothermel, G., and Harrold, M. J. An empirical comparison of dynamic impact analysis algorithms. In Proc. of the International Conf. on Software Engineering (ICSE'04) (Edinburgh, Scotland, 2004), pp. 491--500. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Orso, A., Shi, N., and Harrold, M. J. Scaling regression testing to large software systems. In Proceedings of the 12th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE 2004) (Newport Beach, CA, 2004). To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Ramalingam, G., Field, J., and Tip, F. Aggregate structure identification and its application to program analysis. In Proc. of the ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages (January 1999), pp. 119--132. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Ren, X., Shah, F., Tip, F., Ryder, B. G., Chesley, O., and Dolby, J. Chianti: A prototype change impact analysis tool for Java. Tech. Rep. DCS-TR-533, Rutgers University Department of Computer Science, September 2003.Google ScholarGoogle Scholar
  20. Rothermel, G., and Harrold, M. J. A safe, efficient regression test selection technique. ACM Trans. on Software Engineering and Methodology 6, 2 (April 1997), 173--210. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Ryder, B. G., and Tip, F. Change impact for object oriented programs. In Proc. of the ACM SIGPLAN/SIGSOFT Workshop on Program Analysis and Software Testing (PASTE01) (June 2001). Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Sarma, A., Noroozi, Z., and van der Hoek, A. Palantir: Raising awareness among configuration management workspaces. In Proc. of the International Conf. on Software Engineering (2003), pp. 444--454. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Steyaert, P., Lucas, C., Mens, K., and D'Hondt, T. Reuse contracts: Managing the evolution of reusable assets. In Proc. of the Conf. on Object-Oriented Programming, Systems, Languages and Applications (1996), pp. 268--285. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Thione, G. L. Detecting semantic conflicts in parallel changes, December 2002. Masters Thesis, Department of Electrical and Computer Engineering, University of Texas, Austin.Google ScholarGoogle Scholar
  25. Thione, G. L., and Perry, D. E. Parallel changes: Detecting semantic interference. Tech. Rep. ESEL-2003-DSI-1, Experimental Software Engineering Laboratory, University of Texas, Austin, September 2003.Google ScholarGoogle Scholar
  26. Tip, F. A survey of program slicing techniques. J. of Programming Languages 3, 3 (1995), 121--189.Google ScholarGoogle Scholar
  27. Tonella, P. Using a concept lattice of decomposition slices for program understanding and impact analysis. IEEE Trans. on Software Engineering 29, 6 (2003), 495--509. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Zeller, A. Yesterday my program worked. Today, it does not. Why? In Proc. of the 7th European Software Engineering Conf./7th ACM SIGSOFT Symp. on the Foundations of Software Engineering (ESEC/FSE'99) (Toulouse, France, 1999), pp. 253--267. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Chianti: a tool for change impact analysis of java programs

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            OOPSLA '04: Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
            October 2004
            462 pages
            ISBN:1581138318
            DOI:10.1145/1028976
            • cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 39, Issue 10
              OOPSLA '04
              October 2004
              448 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/1035292
              Issue’s Table of Contents

            Copyright © 2004 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 1 October 2004

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

            Acceptance Rates

            Overall Acceptance Rate268of1,244submissions,22%

            Upcoming Conference

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader