ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
Efficient recompilation of module interfaces in a software development environment
SDE 2 Proceedings of the second ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Interprocedural optimization: eliminating unnecessary recompilation
ACM Transactions on Programming Languages and Systems (TOPLAS)
The cost of selective recompilation and environment processing
ACM Transactions on Software Engineering and Methodology (TOSEM)
A framework for selective recompilation in the presence of complex intermodule dependencies
Proceedings of the 17th international conference on Software engineering
Critical slicing for software fault localization
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
Yesterday, my program worked. Today, it does not. Why?
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
Change impact analysis for object-oriented programs
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Language-specific make technology for the Java programming language
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Change Impact Identification in Object Oriented Software Maintenance
ICSM '94 Proceedings of the International Conference on Software Maintenance
Whole program Path-Based dynamic impact analysis
Proceedings of the 25th International Conference on Software Engineering
Algorithmic Analysis of the Impacts of Changes to Object-Oriented Software
TOOLS '00 Proceedings of the Technology of Object-Oriented Languages and Systems (TOOLS 34'00)
Using a Concept Lattice of Decomposition Slices for Program Understanding and Impact Analysis
IEEE Transactions on Software Engineering
JTracker - A Tool for Change Propagation in Java
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
Leveraging field data for impact analysis and regression testing
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
A Classification of Unanticipated Runtime Software Changes in Java
ICSM '03 Proceedings of the International Conference on Software Maintenance
An Empirical Comparison of Dynamic Impact Analysis Algorithms
Proceedings of the 26th International Conference on Software Engineering
Incremental Change in Object-Oriented Programming
IEEE Software
Chianti: a tool for change impact analysis of java programs
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
JRipples: A Tool for Program Comprehension during Incremental Change
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Crisp: A Debugging Tool for Java Programs
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Locating faulty code using failure-inducing chops
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Crisp--A Fault Localization Tool for Java Programs
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Heuristic ranking of java program edits for fault localization
Proceedings of the 2007 international symposium on Software testing and analysis
Unweaving the impact of aspect changes in AspectJ
Proceedings of the 2009 workshop on Foundations of aspect-oriented languages
Projecting code changes onto execution traces to support localization of recently introduced bugs
Proceedings of the 2009 ACM symposium on Applied Computing
Safe-commit analysis to facilitate team software development
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
JUnitMX - A change-aware unit testing tool
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Dependence clusters in source code
ACM Transactions on Programming Languages and Systems (TOPLAS)
Identifying program, test, and environmental changes that affect behaviour
Proceedings of the 33rd International Conference on Software Engineering
Firewall policy change-impact analysis
ACM Transactions on Internet Technology (TOIT)
Analyzing the impact of change in multi-threaded programs
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
Change-impact analysis of firewall policies
ESORICS'07 Proceedings of the 12th European conference on Research in Computer Security
Understanding regression failures through test-passing and test-failing code changes
Proceedings of the 2013 International Conference on Software Engineering
Coherent clusters in source code
Journal of Systems and Software
Hi-index | 0.00 |
During program maintenance, a programmer may make changes that enhance program functionality or fix bugs in code. Then, the programmer usually will run unit/regression tests to prevent invalidation of previously tested functionality. If a test fails unexpectedly, the programmer needs to explore the edit to find the failure-inducing changes for that test. Crisp uses results from Chianti, a tool that performs semantic change impact analysis [1], to allow the programmer to examine those parts of the edit that affect the failing test. Crisp then builds a compilable intermediate version of the program by adding a programmer-selected partial edit to the original code, augmenting the selection as necessary to ensure compilation. The programmer can reexecute the test on the intermediate version in order to locate the exact reasons for the failure by concentrating on the specific changes that were applied. In nine initial case studies on pairs of versions from two real Java programs, Daikon [2] and Eclipse jdt compiler [3], we were able to use Crisp to identify the failure-inducing changes for all but 1 of 68 failing tests. On average, 33 changes were found to affect each failing test (of the 67), but only 1-4 of these changes were found to be actually failure-inducing.