Lackwit: a program understanding tool based on type inference
ICSE '97 Proceedings of the 19th international conference on Software engineering
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
The use of program profiling for software maintenance with applications to the year 2000 problem
ESEC '97/FSE-5 Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering
The concept of dynamic analysis
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
A static analyzer for finding dynamic programming errors
Software—Practice & Experience
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
Enforcing high-level protocols in low-level software
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Bugs as deviant behavior: a general approach to inferring errors in systems code
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Java Virtual Machine Specification
Java Virtual Machine Specification
Checking system rules using system-specific, programmer-written compiler extensions
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Automatic extraction of object-oriented component interfaces
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Isolating cause-effect chains from computer programs
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
From symptom to cause: localizing errors in counterexample traces
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Enhancing software reliability with speculative threads
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Isolating cause-effect chains from computer programs
ACM SIGSOFT Software Engineering Notes
End-user software engineering with assertions in the spreadsheet paradigm
Proceedings of the 25th International Conference on Software Engineering
Bug isolation via remote program sampling
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
CMC: a pragmatic approach to model checking real code
ACM SIGOPS Operating Systems Review - OSDI '02: Proceedings of the 5th symposium on Operating systems design and implementation
Joeq: a virtual machine and compiler infrastructure
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
A knowledge plane for the internet
Proceedings of the 2003 conference on Applications, technologies, architectures, and protocols for computer communications
Finding Latent Code Errors via Machine Learning over Program Executions
Proceedings of the 26th International Conference on Software Engineering
iWatcher: Efficient Architectural Support for Software Debugging
Proceedings of the 31st annual international symposium on Computer architecture
Inferring Specifications to Detect Errors in Code
Proceedings of the 19th IEEE international conference on Automated software engineering
Finding and preventing run-time error handling mistakes
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Efficient incremental algorithms for dynamic detection of likely invariants
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Correlation exploitation in error ranking
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
AccMon: Automatically Detecting Memory-Related Bugs via Program Counter-Based Invariants
Proceedings of the 37th annual IEEE/ACM International Symposium on Microarchitecture
ACM SIGPLAN Notices
CMC: a pragmatic approach to model checking real code
OSDI '02 Proceedings of the 5th symposium on Operating systems design and implementationCopyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading
Efficient and flexible architectural support for dynamic monitoring
ACM Transactions on Architecture and Code Optimization (TACO)
Verifying mutual exclusion and liveness properties with split preconditions
Journal of Computer Science and Technology
Scalable statistical bug isolation
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
IODINE: a tool to automatically infer dynamic invariants for hardware designs
Proceedings of the 42nd annual Design Automation Conference
Combining statistical monitoring and predictable recovery for self-management
WOSS '04 Proceedings of the 1st ACM SIGSOFT workshop on Self-managed systems
SOBER: statistical model-based bug localization
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Lightweight bug localization with AMPLE
Proceedings of the sixth international symposium on Automated analysis-driven debugging
Runtime specialization with optimistic heap analysis
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Relational queries over program traces
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Locating faulty code using failure-inducing chops
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
A similarity-aware approach to testing based fault localization
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Autonomous recovery in componentized Internet applications
Cluster Computing
CP-Miner: Finding Copy-Paste and Related Bugs in Large-Scale Software Code
IEEE Transactions on Software Engineering
An online evolutionary approach to developing internet services
EW 10 Proceedings of the 10th workshop on ACM SIGOPS European workshop
Artemis: practical runtime monitoring of applications for execution anomalies
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Pruning dynamic slices with confidence
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Locating faults through automated predicate switching
Proceedings of the 28th international conference on Software engineering
Dynamically discovering likely interface invariants
Proceedings of the 28th international conference on Software engineering
Testing-based interactive fault localization
Proceedings of the 28th international conference on Software engineering
Web application characterization through directed requests
Proceedings of the 2006 international workshop on Dynamic systems analysis
HeapMon: a helper-thread approach to programmable, automatic, and low-overhead memory bug detection
IBM Journal of Research and Development
DSD-Crasher: a hybrid analysis tool for bug finding
Proceedings of the 2006 international symposium on Software testing and analysis
AVIO: detecting atomicity violations via access interleaving invariants
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
HeapMD: identifying heap-based bugs using anomaly detection
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
On-line anomaly detection of deployed software: a statistical machine learning approach
Proceedings of the 3rd international workshop on Software quality assurance
PathExpander: Architectural Support for Increasing the Path Coverage of Dynamic Bug Detection
Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture
Joeq: a virtual machine and compiler infrastructure
Science of Computer Programming - Special issue on advances in interpreters, virtual machines and emulators (IVME'03)
Flashback: a lightweight extension for rollback and deterministic replay for software debugging
ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
Statistical Debugging: A Hypothesis Testing-Based Approach
IEEE Transactions on Software Engineering
Improved error reporting for software that uses black-box components
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Towards locating execution omission errors
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
CP-Miner: a tool for finding copy-paste and related bugs in operating system code
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
The Future of Programming Environments: Integration, Synergy, and Assistance
FOSE '07 2007 Future of Software Engineering
Statistical debugging using compound boolean predicates
Proceedings of the 2007 international symposium on Software testing and analysis
ACM Transactions on Autonomous and Adaptive Systems (TAAS)
Trace anomalies as precursors of field failures: an empirical study
Empirical Software Engineering
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Tracking bad apples: reporting the origin of null and undefined value errors
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
From uncertainty to belief: inferring the specification within
OSDI '06 Proceedings of the 7th symposium on Operating systems design and implementation
Efficient and Scalable Algorithms for Inferring Likely Invariants in Distributed Systems
IEEE Transactions on Knowledge and Data Engineering
An automated model-based debugging approach
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
The Daikon system for dynamic detection of likely invariants
Science of Computer Programming
Diagnosing misconfiguration with dynamic detection of configuration invariants
HotDep'07 Proceedings of the 3rd workshop on on Hot Topics in System Dependability
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
DSD-Crasher: A hybrid analysis tool for bug finding
ACM Transactions on Software Engineering and Methodology (TOSEM)
DMTracker: finding bugs in large-scale parallel programs by detecting anomaly in data movements
Proceedings of the 2007 ACM/IEEE conference on Supercomputing
Automatic software fault localization using generic program invariants
Proceedings of the 2008 ACM symposium on Applied computing
Symbolic mining of temporal specifications
Proceedings of the 30th international conference on Software engineering
Time will tell: fault localization using time spectra
Proceedings of the 30th international conference on Software engineering
DySy: dynamic symbolic execution for invariant inference
Proceedings of the 30th international conference on Software engineering
Automatic generation of software behavioral models
Proceedings of the 30th international conference on Software engineering
No bit left behind: the limits of heap data compression
Proceedings of the 7th international symposium on Memory management
On similarity-awareness in testing-based fault localization
Automated Software Engineering
Fault localization using value replacement
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Universal symbolic execution and its application to likely data structure invariant generation
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Automatic generation of complex properties for hardware designs
Proceedings of the conference on Design, automation and test in Europe
Statistical Debugging Using Latent Topic Models
ECML '07 Proceedings of the 18th European conference on Machine Learning
Dynamic Binary Instrumentation-Based Framework for Malware Defense
DIMVA '08 Proceedings of the 5th international conference on Detection of Intrusions and Malware, and Vulnerability Assessment
A Learning Approach to Early Bug Prediction in Deployed Software
AIMSA '08 Proceedings of the 13th international conference on Artificial Intelligence: Methodology, Systems, and Applications
Effective blame for information-flow violations
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Javert: fully automatic mining of general temporal properties from dynamic traces
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Using runtime testing to detect defects in applications without test oracles
Proceedings of the 2008 Foundations of Software Engineering Doctoral Symposium
Automatic software fault diagnosis by exploiting application signatures
LISA'08 Proceedings of the 22nd conference on Large installation system administration conference
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
Dynamic shape analysis via degree metrics
Proceedings of the 2009 international symposium on Memory management
Automatic dimension inference and checking for object-oriented programs
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
A toolset for automated failure analysis
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Efficient mutation testing by checking invariant violations
Proceedings of the eighteenth international symposium on Software testing and analysis
A comparative study of programmer-written and automatically inferred contracts
Proceedings of the eighteenth international symposium on Software testing and analysis
Fault localization and repair for Java runtime exceptions
Proceedings of the eighteenth international symposium on Software testing and analysis
Automatic system testing of programs without test oracles
Proceedings of the eighteenth international symposium on Software testing and analysis
AVA: automated interpretation of dynamically detected anomalies
Proceedings of the eighteenth international symposium on Software testing and analysis
Automatic Generation of Runtime Failure Detectors from Property Templates
Software Engineering for Self-Adaptive Systems
Detecting precise behavioral models
Proceedings of the doctoral symposium for ESEC/FSE on Doctoral symposium
Architecture Design for Soft Errors
Architecture Design for Soft Errors
A concurrent dynamic analysis framework for multicore hardware
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Scalable temporal order analysis for large scale debugging
Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis
Finding concurrency bugs with context-aware communication graphs
Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture
A Technique for Verifying Component-Based Software
Electronic Notes in Theoretical Computer Science (ENTCS)
Interactive fault localization using test information
Journal of Computer Science and Technology - Special section on trust and reputation management in future computing systmes and applications
Execution suppression: An automated iterative technique for locating memory errors
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamic characterization of web application interfaces
FASE'07 Proceedings of the 10th international conference on Fundamental approaches to software engineering
Generating representation invariants of structurally complex data
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Statistically regulating program behavior via mainstream computing
Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization
Cooperative bug isolation: winning thesis of the 2005 ACM doctoral dissertation competition
Cooperative bug isolation: winning thesis of the 2005 ACM doctoral dissertation competition
Online inference and enforcement of temporal properties
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
DETERMIN: inferring likely deterministic specifications of multithreaded programs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Proceedings of the 5th Workshop on Automation of Software Test
Using dynamic execution traces and program invariants to enhance behavioral model inference
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Efficient, context-sensitive detection of real-world semantic attacks
PLAS '10 Proceedings of the 5th ACM SIGPLAN Workshop on Programming Languages and Analysis for Security
Towards understanding bugs in open source router software
ACM SIGCOMM Computer Communication Review
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Detecting missing method calls in object-oriented software
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
FlowChecker: Detecting Bugs in MPI Libraries via Message Flow Checking
Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis
Predicting software bugs using ARIMA model
Proceedings of the 48th Annual Southeast Regional Conference
Efficient dynamic program monitoring on multi-core systems
Journal of Systems Architecture: the EUROMICRO Journal
Clara: partially evaluating runtime monitors at compile time tutorial supplement
RV'10 Proceedings of the First international conference on Runtime verification
Predicting defect priority based on neural networks
ADMA'10 Proceedings of the 6th international conference on Advanced data mining and applications - Volume Part II
A framework for defending embedded systems against software attacks
ACM Transactions on Embedded Computing Systems (TECS)
HotACI'06 Proceedings of the First international conference on Hot topics in autonomic computing
Which code construct metrics are symptoms of post release failures?
Proceedings of the 2nd International Workshop on Emerging Trends in Software Metrics
Proceedings of the 33rd International Conference on Software Engineering
Detecting anomalies in the order of equally-typed method arguments
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Enriching dynamically detected invariants in the case of arrays
ICCSA'11 Proceedings of the 2011 international conference on Computational science and Its applications - Volume Part V
Mining temporal specifications from object usage
Automated Software Engineering
On possibility of conditional invariant detection
KES'11 Proceedings of the 15th international conference on Knowledge-based and intelligent information and engineering systems - Volume Part II
Bug localization in test-driven development
Advances in Software Engineering
Cost-Sensitive decision tree learning for forensic classification
ECML'06 Proceedings of the 17th European conference on Machine Learning
Assuring application-level correctness against soft errors
Proceedings of the International Conference on Computer-Aided Design
Eclat: automatic generation and classification of test inputs
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Lightweight defect localization for java
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Argus: online statistical bug detection
FASE'06 Proceedings of the 9th international conference on Fundamental Approaches to Software Engineering
Automatic parallelization of fine-grained meta-functions on a chip multiprocessor
CGO '11 Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization
PRECIS: Inferring invariants using program path guided clustering
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Learning extended FSA from software: An empirical assessment
Journal of Systems and Software
Static detection of brittle parameter typing
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Measuring enforcement windows with symbolic trace interpretation: what well-behaved programs say
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Proceedings of the 34th International Conference on Software Engineering
Using dynamic analysis to discover polynomial and array invariants
Proceedings of the 34th International Conference on Software Engineering
Statically checking API protocol conformance with mined multi-object specifications
Proceedings of the 34th International Conference on Software Engineering
Runtime verification with state estimation
RV'11 Proceedings of the Second international conference on Runtime verification
JSART: javascript assertion-based regression testing
ICWE'12 Proceedings of the 12th international conference on Web Engineering
Dynamic property mining for embedded software
Proceedings of the eighth IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis
Collaborative energy debugging for mobile devices
HotDep'12 Proceedings of the Eighth USENIX conference on Hot Topics in System Dependability
Forensic debugging of model transformations
MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
Dynamic anomaly detection for more trustworthy outsourced computation
ISC'12 Proceedings of the 15th international conference on Information Security
An automated analysis methodology to detect inconsistencies in web services with WSDL interfaces
Software Testing, Verification & Reliability
Automatic inference of specifications using matching logic
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Detecting missing method calls as violations of the majority rule
ACM Transactions on Software Engineering and Methodology (TOSEM)
CONFU: Configuration Fuzzing Testing Framework for Software Vulnerability Detection
International Journal of Secure Software Engineering
Production-run software failure diagnosis via hardware performance counters
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Using likely invariants for automated software fault localization
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Safe and automatic live update for operating systems
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
eDoctor: automatically diagnosing abnormal battery drain issues on smartphones
nsdi'13 Proceedings of the 10th USENIX conference on Networked Systems Design and Implementation
Unifying FSM-inference algorithms through declarative specification
Proceedings of the 2013 International Conference on Software Engineering
A contextual approach towards more accurate duplicate bug report detection
Proceedings of the 10th Working Conference on Mining Software Repositories
Improving the energy efficiency of hardware-assisted watchpoint systems
Proceedings of the 50th Annual Design Automation Conference
Automated oracles: an empirical study on cost and effectiveness
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Second-order constraints in dynamic invariant inference
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Formal methods for ranking counterexamples through assumption mining
DATE '12 Proceedings of the Conference on Design, Automation and Test in Europe
Carat: collaborative energy diagnosis for mobile devices
Proceedings of the 11th ACM Conference on Embedded Networked Sensor Systems
ARMORY: An automatic security testing tool for buffer overflow defect detection
Computers and Electrical Engineering
Automatic parallelization of fine-grained metafunctions on a chip multiprocessor
ACM Transactions on Architecture and Code Optimization (TACO)
Back to the future: fault-tolerant live update with time-traveling state transfer
LISA'13 Proceedings of the 27th international conference on Large Installation System Administration
Improving scenario selection for simulations by run-time control-flow analysis
Proceedings of the 2013 Summer Computer Simulation Conference
Optimization of program invariants
ACM SIGSOFT Software Engineering Notes
Proceedings of International Workshop on Engineering Simulations for Cyber-Physical Systems
An approach to testing commercial embedded systems
Journal of Systems and Software
Online reliability computing of composite services based on program invariants
Information Sciences: an International Journal
Hi-index | 0.00 |
This paper introduces DIDUCE, a practical and effective tool that aids programmers in detecting complex program errors and identifying their root causes. By instrumenting a program and observing its behavior as it runs, DIDUCE dynamically formulates hypotheses of invariants obeyed by the program. DIDUCE hypothesizes the strictest invariants at the beginning, and gradually relaxes the hypothesis as violations are detected to allow for new behavior. The violations reported help users to catch software bugs as soon as they occur. They also give programmers new visibility into the behavior of the programs such as identifying rare corner cases in the program logic or even locating hidden errors that corrupt the program's results.We implemented the DIDUCE system for Java programs and applied it to four programs of significant size and complexity. DIDUCE succeeded in identifying the root causes of programming errors in each of the programs quickly and automatically. In particular, DIDUCE is effective in isolating a timing-dependent bug in a released JSSE (Java Secure Socket Extension) library, which would have taken an experienced programmer days to find. Our experience suggests that detecting and checking program invariants dynamically is a simple and effective methodology for debugging many different kinds of program errors across a wide variety of application domains.