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 2004 Publication 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.
[2]
Binkley, D. Semantics guided regression test cost reduction. IEEE Trans. on Software Engineering 23, 8 (August 1997).
[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.
[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.
[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.
[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.
[7]
Ernst, M. D. Dynamically discovering likely program invariants. PhD thesis, University of Washington, 2000.
[8]
Gallagher, K., and Lyle, J. R. Using program slicing in software maintenance. IEEE Trans. on Software Engineering 17 (1991).
[9]
Gosling, J., Joy, B., Steele, G., and Bracha, G. The Java Language Specification (Second Edition). Addison-Wesley, 2000.
[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.
[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.
[12]
Larus, J. Whole program paths. In Proc. of the ACM SIGPLAN Conf. on Programming Language Design and Implementation (May 1999), pp. 1--11.
[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.
[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.
[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).
[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.
[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.
[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.
[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.
[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.
[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).
[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.
[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.
[24]
Thione, G. L. Detecting semantic conflicts in parallel changes, December 2002. Masters Thesis, Department of Electrical and Computer Engineering, University of Texas, Austin.
[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.
[26]
Tip, F. A survey of program slicing techniques. J. of Programming Languages 3, 3 (1995), 121--189.
[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.
[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.

Cited By

View all
  • (2024)CodePlan: Repository-Level Coding using LLMs and PlanningProceedings of the ACM on Software Engineering10.1145/36437571:FSE(675-698)Online publication date: 12-Jul-2024
  • (2024)SafeRevert: When Can Breaking Changes be Automatically Reverted?2024 IEEE Conference on Software Testing, Verification and Validation (ICST)10.1109/ICST60714.2024.00043(395-406)Online publication date: 27-May-2024
  • (2024)Revealing code change propagation channels by evolution history miningJournal of Systems and Software10.1016/j.jss.2023.111912208:COnline publication date: 1-Feb-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 2004

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. analysis of object-oriented programs
  2. change impact analysis
  3. regression test
  4. unit test

Qualifiers

  • Article

Conference

OOPSLA04

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)89
  • Downloads (Last 6 weeks)10
Reflects downloads up to 04 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)CodePlan: Repository-Level Coding using LLMs and PlanningProceedings of the ACM on Software Engineering10.1145/36437571:FSE(675-698)Online publication date: 12-Jul-2024
  • (2024)SafeRevert: When Can Breaking Changes be Automatically Reverted?2024 IEEE Conference on Software Testing, Verification and Validation (ICST)10.1109/ICST60714.2024.00043(395-406)Online publication date: 27-May-2024
  • (2024)Revealing code change propagation channels by evolution history miningJournal of Systems and Software10.1016/j.jss.2023.111912208:COnline publication date: 1-Feb-2024
  • (2023)Evolving Software: Combining Online Learning with Mutation-Based Stochastic SearchACM Transactions on Evolutionary Learning and Optimization10.1145/35976173:4(1-32)Online publication date: 23-May-2023
  • (2023)Client-Specific Upgrade Compatibility Checking via Knowledge-Guided DiscoveryACM Transactions on Software Engineering and Methodology10.1145/358256932:4(1-31)Online publication date: 26-May-2023
  • (2023)An information retrieval-based regression test selection techniqueIran Journal of Computer Science10.1007/s42044-023-00145-w6:4(365-373)Online publication date: 15-May-2023
  • (2022)Towards Group Decision Support in the Software Maintenance ProcessInternational Journal of Decision Support System Technology10.4018/IJDSST.28667714:1(1-22)Online publication date: 1-Jan-2022
  • (2021)DIFFBASE: a differential factbase for effective software evolution managementProceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3468264.3468605(503-515)Online publication date: 20-Aug-2021
  • (2021)Understanding Software-2.0ACM Transactions on Software Engineering and Methodology10.1145/345347830:4(1-42)Online publication date: Jul-2021
  • (2021)Explaining Regressions via Alignment Slicing and MendingIEEE Transactions on Software Engineering10.1109/TSE.2019.294956847:11(2421-2437)Online publication date: 1-Nov-2021
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media