Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1181775.1181783acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article

Finding failure-inducing changes in java programs using change classification

Published: 05 November 2006 Publication History

Abstract

Testing and code editing are interleaved activities during program development. When tests fail unexpectedly, the changes that caused the failure(s) are not always easy to find. We explore how change classification can focus programmer attention on failure-inducing changes by automatically labeling changes Red, Yellow, or Green, indicating the likelihood that they have contributed to a test failure. We implemented our change classification tool JUnit/CIA as an ex-tension to the JUnit component within Eclipse, and evaluated its effectiveness in two case studies. Our results indicate that change classification is an effective technique for finding failure-inducing changes.

References

[1]
BECK, K. Extreme Programming Explained: Embrace Change. Addison-Wesley, 1999.
[2]
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.
[3]
CHESLEY, O., REN, X., AND RYDER, B. G. Crisp: A debugging tool for Java programs. In 21st IEEE International Conference on Software Maintenance (ICSM), Budapest, Hungary (September 2005), pp. 401--410.
[4]
CHOI, J.-D., AND ZELLER, A. Isolating failure-inducing thread schedules. In Proc. ACM SIGSOFT Int. Symp. on Softw. Testing and Analysis (ISSTA 2002) (Rome, Italy, 2002), pp. 210--220.
[5]
CLEVE, H., AND ZELLER, A. Locating causes of program failures. In Proc. 27th Int. Conf. on Softw. Engineering (ICSE 2005) (St. Louis, MO, 2005).
[6]
DALLMEIER,V.,LINDIG, C., AND ZELLER, A. Lightweight defect localization for Java. In Proc. 19th European Conf. on Object- Oriented Programming (ECOOP'05) (Glasgow, Scotland, 2005).
[7]
DEMILLO,R.A., PAN, H., AND SPAFFORD, E. H. Critical slicing for software fault localization. In ISSTA '96: Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis (New York, NY, USA, 1996), ACM Press, pp. 121--134.
[8]
ERNST, M.D. Dynamically discovering likely program invariants. PhD thesis, University of Washington, 2000.
[9]
GUPTA, N., HE, H., ZHANG, X., AND GUPTA, R. Locating faulty code using failure-inducing chops. In 20th IEEE/ACM International Conference on Automated Software Engineering (ASE 2005) (Long Beach, California, November 2005), pp. 263--272.
[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]
HARROLD, M. J., ROTHERMEL, G., WU, R., AND YI, L. An empirical investigation of program spectra. In Proc. of the ACM SIGPLAN Workshop on Program Analysis for Softw. Tools and Engineering (PASTE'98) (Montreal, Canada, 1998), pp. 83--90.
[12]
JONES, J.A., AND HARROLD, M. J. Empirical evaluation of the Tarantula automatic fault-localization technique. In 20th IEEE/ACM International Conference on Automated Software Engineering (ASE 2005) (Long Beach, California, November 2005), pp. 273--282.
[13]
JONES, J.A., HARROLD, M.J., AND STASKO, J. Visualization of test information to assist fault localization. In Proc. Int. Conf. on Softw. Engineering (ICSE'02) (Orlando, FL, 2002), pp. 467--477.
[14]
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 Int. Conf. on Softw. Maintenance (1994), pp. 202--211.
[15]
LAW, J., AND ROTHERMEL, G. Whole program path-based dynamic impact analysis. In Proc. of the Int. Conf. on Softw. Engineering (2003), pp. 308--318.
[16]
LEE, M., OFFUTT, A.J., AND ALEXANDER, R. T. Algorithmic analysis of the impacts of changes to object-oriented software. In Proc. 34th Int. Conf. on Technology of Object-Oriented Languages and Systems (TOOLS USA'00) (Santa Barbara, CA, 2000).
[17]
LIBLIT, B., AIKEN, A., ZHENG, A. X., AND JORDAN, M. I. Bug isolation via remote program sampling. In Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI'03) (San Diego, CA, 2003), pp. 141--154.
[18]
LIBLIT, B., NAIK, M., ZHENG, A. X., AIKEN, A., AND JORDAN, M.I. Scalable statistical bug isolation. In Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI'05) (Chicago, IL, 2005).
[19]
LIU, C., YAN, X., FEI, L., HAN, J., AND MIDKIFF, S. P. Sober: statistical model-based bug localization. In ESEC/FSE-13: Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering (New York, NY, USA, 2005), ACM Press, pp. 286--295.
[20]
LYLE, J., AND WEISER, M. Automatic bug location by program slicing. In Proceedings of the Second International Conference on Computers and Applications (Beijing (Peking), China, 1987), pp. 877--883.
[21]
ORSO, A., APIWATTANAPONG, T., AND HARROLD, M. J. Leveraging field data for impact analysis and regression testing. In Proc. of European Softw. Engineering Conf. and ACM SIGSOFT Symp. on the Foundations of Softw. Engineering (ESEC/FSE'03) (Helsinki, Finland, September 2003).
[22]
ORSO, A., APIWATTANAPONG, T., LAW, J., ROTHERMEL, G., AND HARROLD, M. J. An empirical comparison of dynamic impact analysis algorithms. In Proc. of the Int. Conf. on Softw. Engineering (ICSE'04) (Edinburgh, Scotland, 2004), pp. 491--500.
[23]
REN, X., CHESLEY, O., AND RYDER, B. G. Crisp: A debugging tool for Java programs. IEEE Transactions on Software Engineering (April 2006). In press.
[24]
REN, X., SHAH,F., TIP, F., RYDER, B. G., AND CHESLEY, O. Chianti: a tool for change impact analysis of Java programs. In Proc. of the ACM SIGPLAN Conf. on Object Oriented Programming Languages and Systems (OOPSLA'04) (Vancouver, Canada, October 2004), pp. 432--448.
[25]
RENIERIS, M., AND REISS, S. Fault localization with nearest neighbor queries. In In Proceedings of the 18th IEEE International Conference on Automated Software Engineering (Montreal, Quebec, Canada, October 2003), pp. 30--39.
[26]
REPS, T., BALL, T., DAS, M., AND LARUS, J. The use of program profiling for software maintenance with applications to the year 2000 problem. In Proc. of the 6th European Softw. Conf. (ESEC/FSE'97) (1997), pp. 432--449. Springer-Verlag LNCS Vol. 1013.
[27]
RUTHRUFF, J. R., BURNETT, M., AND ROTHERMEL, G. An empirical study of fault localization for end-user programmers. In ICSE '05: Proceedings of the 27th international conference on Software engineering (New York, NY, USA, 2005), ACM Press, pp. 352--361.
[28]
RYDER, B. G., AND TIP, F. Change impact for object oriented programs. In Proc. of the ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Softw. Tools and Engineering (PASTE'01) (June 2001).
[29]
SAFF, D., AND ERNST, M. D. Reducing wasted development time via continuous testing. In Fourteenth Int. Symp. on Softw. Reliability Engineering (Denver, CO, November 17-20, 2003), pp. 281--292.
[30]
SAFF, D., AND ERNST, M. D. Automatic mock object creation for test factoring. In ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Softw. Tools and Engineering (PASTE'04) (Washington, DC, USA, June 7-8, 2004), pp. 49--51.
[31]
SAFF, D., AND ERNST, M. D. Continuous testing in eclipse. In Proc. of the 26th Int. Conf. on Softw. Engineering (ICSE'05) (St. Louis, MO, USA, May 2005).
[32]
STOERZER, M., RYDER, B. G., REN, X., AND TIP, F. Finding failure-inducing changes using change classification. Tech. Rep. DCS-TR-582, Rutgers University Department of Computer Science, September 2005.
[33]
TIP, F. A survey of program slicing techniques. J. of Programming Languages 3, 3 (1995), 121--189.
[34]
TIP, F., SWEENEY, P.F., LAFFRA, C., EISMA, A., AND STREETER, D. Practical extraction techniques for Java. ACM Trans. on Programming Languages and Systems 24, 6 (2002), 625--666.
[35]
TONELLA, P. Using a concept lattice of decomposition slices for program understanding and impact analysis. IEEE Trans. on Softw. Engineering 29,6 (2003), 495--509.
[36]
VAN RIJSBERGEN, C. Information Retrieval. Butterworths, London, 1979.
[37]
WEISER, M. Program slices: formal, psychological, and practical investigations of an automatic program abstraction method. PhD thesis, University of Michigan, Ann Arbor, 1979.
[38]
ZELLER, A. Yesterday my program worked. Today, it does not. Why? In Proc. of the 7th European Softw. Engineering Conf./7th ACM SIGSOFT Symp. on the Foundations of Softw. Engineering (ESEC/FSE'99) (Toulouse, France, 1999), pp. 253--267.
[39]
ZELLER, A. Making students read and review code. In ITiCSE '00: Proc. of the 5th annual SIGCSE/SIGCUE ITiCSE Conf. on Innovation and technology in computer science education (2000), ACM Press, pp. 89--92.
[40]
ZELLER, A. Isolating cause-effect chains from computer programs. In Proc. ACM SIGSOFT 10th Int. Symp. on the Foundations of Softw. Engineering (FSE 2002) (Charleston, SC, 2002), pp. 1--10.
[41]
ZELLER, A., AND HILDEBRANDT, R. Simplifying and isolating failure-inducing input. IEEE Trans. on Softw. Eng. 28, 2 (2002), 183--200. USA

Cited By

View all
  • (2024)A Meta-Study of Software-Change IntentionsACM Computing Surveys10.1145/366148456:12(1-41)Online publication date: 25-Apr-2024
  • (2018)Change Taxonomy: A Fine-Grained Classification of Software ChangeIT Professional10.1109/MITP.2018.04314166620:4(28-36)Online publication date: Jul-2018
  • (2018)Do code data sharing dependencies support an early prediction of software actual change impact set?Journal of Software: Evolution and Process10.1002/smr.196030:11Online publication date: 14-Nov-2018
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SIGSOFT '06/FSE-14: Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
November 2006
298 pages
ISBN:1595934685
DOI:10.1145/1181775
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: 05 November 2006

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. change impact analysis
  2. debugging
  3. fault localization
  4. testing
  5. version control

Qualifiers

  • Article

Conference

SIGSOFT06/FSE-14
Sponsor:

Acceptance Rates

Overall Acceptance Rate 17 of 128 submissions, 13%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)2
Reflects downloads up to 27 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)A Meta-Study of Software-Change IntentionsACM Computing Surveys10.1145/366148456:12(1-41)Online publication date: 25-Apr-2024
  • (2018)Change Taxonomy: A Fine-Grained Classification of Software ChangeIT Professional10.1109/MITP.2018.04314166620:4(28-36)Online publication date: Jul-2018
  • (2018)Do code data sharing dependencies support an early prediction of software actual change impact set?Journal of Software: Evolution and Process10.1002/smr.196030:11Online publication date: 14-Nov-2018
  • (2017)Changes as First-Class CitizensACM Computing Surveys10.1145/303892650:2(1-38)Online publication date: 6-Apr-2017
  • (2016)Automatic clustering of code changesProceedings of the 13th International Conference on Mining Software Repositories10.1145/2901739.2901749(61-72)Online publication date: 14-May-2016
  • (2016)Mapping Bug Reports to Relevant FilesIEEE Transactions on Software Engineering10.1109/TSE.2015.247923242:4(379-402)Online publication date: 1-Apr-2016
  • (2016)High-confidence software evolutionScience China Information Sciences10.1007/s11432-016-5572-259:7Online publication date: 13-Jun-2016
  • (2016)The impact of tangled code changes on defect prediction modelsEmpirical Software Engineering10.1007/s10664-015-9376-621:2(303-336)Online publication date: 1-Apr-2016
  • (2016)Prioritizing test cases for early detection of refactoring faultsSoftware Testing, Verification & Reliability10.1002/stvr.160326:5(402-426)Online publication date: 1-Aug-2016
  • (2015)Will This Bug-Fixing Change Break Regression Testing?2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)10.1109/ESEM.2015.7321218(1-10)Online publication date: Oct-2015
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media