Abstract
A common method to localize defects is to compare the coverage of passing and failing program runs: A method executed only in failing runs, for instance, is likely to point to the defect. However, some failures, occur only after a specific sequence of method calls, such as multiple deallocations of the same resource. Such sequences can be collected from arbitrary Java programs at low cost; comparing object-specific sequences predicts defects better than simply comparing coverage. In a controlled experiment, our technique pinpointed the defective class in 39% of all test runs.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Ammons, G., Bodík, R., Larus, J.: Mining specifications. In: Conference Record of POPL 2002: The 29th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Portland, Oregon, January 16–18, pp. 4–16 (2002)
Cleve, H., Zeller, A.: Locating causes of program failures (to appear). In: Inverardi, P., Jazayeri, M. (eds.) ICSE 2005. LNCS, vol. 4309. Springer, Heidelberg (2006)
Dahm, M.: Byte code engineering with the JavaClass API. Technical Report B-17-98, Freie Universität Berlin, Institut für Informatik, Berlin, Germany, July 2007 (1999), http://www.inf.fu-berlin.de/~dahm/JavaClass/ftp/report.ps.gz
Do, H., Elbaum, S., Rothermel, G.: Infrastructure support for controlled experimentation with software testing and regression testing techniques. In: International Symposium on Empirical Software Engineering, Redondo Beach, California, August 2004, pp. 60–70 (2004)
Ernst, M.D., Cockrell, J., Griswold, W.G., Notkin, D.: Dynamically discovering likely program invariants to support program evolution. IEEE Transactions on Software Engineering 27(2), 1–25 (2001); A previous version appeared in ICSE 1999, Proceedings of the 21st International Conference on Software Engineering, 27th edn., Los Angeles, CA, USA, May 19–21, pp. 213–224 (1999)
Forrest, S., Hofmeyr, S.A., Somayaji, A.: Computer immunology. Communications of the ACM 40(10), 88–96 (1997)
Hangal, S., Lam, M.S.: Tracking down software bugs using automatic anomaly detection. In: Proceedings of the 24th International Conference on Software Engineering (ICSE-2002), New York, May 19–25, pp. 291–301. ACM Press, New York (2002)
Harrold, M.J., Rothermel, G., Wu, R., Yi, L.: An empirical investigation of program spectra. In: ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 1998), Montreal, Canada, July 1998. ACM SIGPLAN Notices, pp. 83–90 (1998); Published as ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 1998), ACM SIGPLAN Notices, vol. 33(7)
Hofmeyr, S.A., Forrest, S., Somayaji, S.: Intrusion detection using sequences of system calls. Journal of Computer Security 6(3), 151–180 (1998)
Jones, J.A., Harrold, M.J., Stasko, J.: Visualization of test information to assist fault localization. In: Proc. International Conference on Software Engineering (ICSE), Orlando, Florida, May 2002, pp. 467–477 (2002)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
Liblit, B., Aiken, A., Zheng, A.X., Jordan, M.I.: Bug isolation via remote program sampling. In: Proc. of the SIGPLAN 2003 Conference on Programming Language Design and Implementation (PLDI), San Diego, California (June 2003)
Morgan, P.: JCoverage 1.0.5 GPL (2004), http://www.jcoverage.com/
Pytlik, B., Renieris, M., Krishnamurthi, S., Reiss, S.: Automated fault localization using potential invariants. In: Ronsse, M. (ed.) Proc. Fifth Int. Workshop on Automated and Algorithmic Debugging (AADEBUG), Ghent, Belgium (September 2003), http://xxx.lanl.gov/html/cs.SE/0309027
Reiss, S.P., Renieris, M.: Encoding program executions. In: Proceedings of the 23rd International Conference on Software Engeneering (ICSE-2001), Los Alamitos, California, May12–19, pp. 221–232. IEEE Computer Society Press, Los Alamitos (2001)
Reps, T., Ball, T., Das, M., Larus, J.: The use of program profiling for software maintenance with applications to the year 2000 problem. In: Jazayeri, M., Schauer, H. (eds.) ESEC 1997 and ESEC-FSE 1997. LNCS, vol. 1301, pp. 432–449. Springer, Heidelberg (1997)
Sekar, R., Bendre, M., Dhurjati, D., Bollineni, P.: A fast automaton-based method for detecting anomalous program behaviors. In: Titsworth, F.M. (ed.) Proceedings of the 2001 IEEE Symposium on Security and Privacy (S&P-01), Los Alamitos, CA, May 14–16, pp. 144–155. IEEE Computer Society Press, Los Alamitos (2001)
SPEC. SPEC JVM 98 benchmark suite. Standard Performance Evaluation Corporation (1998)
Zeller, A.: Isolating cause-effect chains from computer programs. In: Griswold, W.G. (ed.) Proceedings of the Tenth ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE-2002), New York, November 18–22. Software Engineering Notes, vol. 27(6), pp. 1–10. ACM Press, New York (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dallmeier, V., Lindig, C., Zeller, A. (2005). Lightweight Defect Localization for Java. In: Black, A.P. (eds) ECOOP 2005 - Object-Oriented Programming. ECOOP 2005. Lecture Notes in Computer Science, vol 3586. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11531142_23
Download citation
DOI: https://doi.org/10.1007/11531142_23
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-27992-1
Online ISBN: 978-3-540-31725-8
eBook Packages: Computer ScienceComputer Science (R0)