Lackwit: a program understanding tool based on type inference
ICSE '97 Proceedings of the 19th international conference on Software engineering
Experiments of the effectiveness of dataflow- and controlflow-based test adequacy criteria
ICSE '94 Proceedings of the 16th international conference on Software engineering
Empirical Studies of a Safe Regression Test Selection Technique
IEEE Transactions on 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
The Science of Programming
Automatic Information Organization and Retrieval.
Automatic Information Organization and Retrieval.
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Automatic generation of program specifications
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Role-based exploration of object-oriented programs
Proceedings of the 24th International Conference on Software Engineering
Invariant inference for static checking:
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
Invariant inference for static checking: an empirical evaluation
ACM SIGSOFT Software Engineering Notes
Applications of Extended Static Checking
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
Extended Static Checking: A Ten-Year Perspective
Informatics - 10 Years Back. 10 Years Ahead.
Houdini, an Annotation Assistant for ESC/Java
FME '01 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods for Increasing Software Productivity
Improving test suites via operational abstraction
Proceedings of the 25th International Conference on Software Engineering
Computer-assisted assume/guarantee reasoning with VeriSoft
Proceedings of the 25th International Conference on Software Engineering
Summary of Dynamically discovering likely program invariants
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Automated Support for Program Refactoring using Invariants
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Predicting problems caused by component upgrades
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Learning programs from traces using version space algebra
Proceedings of the 2nd international conference on Knowledge capture
Acceptability-oriented computing
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Acceptability-oriented computing
ACM SIGPLAN Notices
Automatic software model checking via constraint logic
Science of Computer Programming - Special issue on 12th European symposium on programming (ESOP 2003)
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
Building an infrastructure to support experimentation with software testing techniques
ACM SIGSOFT Software Engineering Notes
Efficient incremental algorithms for dynamic detection of likely invariants
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
The science of deriving dense linear algebra algorithms
ACM Transactions on Mathematical Software (TOMS)
Efficient and flexible architectural support for dynamic monitoring
ACM Transactions on Architecture and Code Optimization (TACO)
Cost-based analysis of probabilistic programs mechanised in HOL
Nordic Journal of Computing
LearnLib: a library for automata learning and experimentation
Proceedings of the 10th international workshop on Formal methods for industrial critical systems
Empirical Software Engineering
Finding application errors and security flaws using PQL: a program query language
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Artemis: practical runtime monitoring of applications for execution anomalies
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Model-based debugging with high-level observations
Intelligent information processing II
Extending separation logic with fixpoints and postponed substitution
Theoretical Computer Science - Algebraic methodology and software technology
Inference and enforcement of data structure consistency specifications
Proceedings of the 2006 international symposium on Software testing and analysis
Dynamic inference of abstract types
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
Exterminator: automatically correcting memory errors with high probability
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Automated response using system-call delays
SSYM'00 Proceedings of the 9th conference on USENIX Security Symposium - Volume 9
Formal Software Analysis Emerging Trends in Software Model Checking
FOSE '07 2007 Future of Software Engineering
Variably interprocedural program analysis for runtime error detection
Proceedings of the 2007 international symposium on Software testing and analysis
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
/*icomment: bugs or bad comments?*/
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
From developer's head to developer tests: characterization, theories, and preventing one more bug
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
Context-aware statistical debugging: from bug predictors to faulty control flow paths
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Diagnosing misconfiguration with dynamic detection of configuration invariants
HotDep'07 Proceedings of the 3rd workshop on on Hot Topics in System Dependability
Hotcomments: how to make program comments more useful?
HOTOS'07 Proceedings of the 11th USENIX workshop on Hot topics in operating systems
Symbolic mining of temporal specifications
Proceedings of the 30th international conference on Software engineering
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
Bristlecone: A Language for Robust Software Systems
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Javert: fully automatic mining of general temporal properties from dynamic traces
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
AutoISES: automatically inferring security specifications and detecting violations
SS'08 Proceedings of the 17th conference on Security symposium
Intelligate: Scalable Dynamic Invariant Learning for Power Reduction
Integrated Circuit and System Design. Power and Timing Modeling, Optimization and Simulation
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
Finding causes of program output with the Java Whyline
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Dynamic shape analysis via degree metrics
Proceedings of the 2009 international symposium on Memory management
Abstract interpretation of programs for model-based debugging
IJCAI'07 Proceedings of the 20th international joint conference on Artifical intelligence
Finding concurrency bugs with context-aware communication graphs
Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture
Automatic software model checking using CLP
ESOP'03 Proceedings of the 12th European conference on Programming
Dynamic testing via automata learning
HVC'07 Proceedings of the 3rd international Haifa verification conference on Hardware and software: verification and testing
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
Mechanical inference of invariants for FOR-loops
Journal of Symbolic Computation
ConSeq: detecting concurrency bugs through sequential errors
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
Proceedings of the sixth conference on Computer systems
aComment: mining annotations from comments and code to detect interrupt related concurrency bugs
Proceedings of the 33rd International Conference on Software Engineering
Mining parametric specifications
Proceedings of the 33rd International Conference on Software Engineering
Debug determinism: the sweet spot for replay-based debugging
HotOS'13 Proceedings of the 13th USENIX conference on Hot topics in operating systems
Searching for invariants using genetic programming and mutation testing
Proceedings of the 13th annual conference on Genetic and evolutionary computation
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
Concrete model checking with abstract matching and refinement
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Argus: online statistical bug detection
FASE'06 Proceedings of the 9th international conference on Fundamental Approaches to Software Engineering
Understanding and detecting real-world performance bugs
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Understanding user understanding: determining correctness of generated program invariants
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Be conservative: enhancing failure diagnosis with proactive logging
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of 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
ConAir: featherweight concurrency bug recovery via single-threaded idempotent execution
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Proceedings of the 2013 International Conference on Software Engineering
Learning universally quantified invariants of linear data structures
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Hi-index | 0.00 |
Explicitly stated program invariants can help programmers by characterizing certain aspects of program execution and identifying program properties that must be preserved when modifying code. Unfortunately, these invariants are usually absent from code. Previous work showed how to dynamically detect invariants from program traces by looking for patterns in and relationships among variable values. A prototype implementation, Daikon, accurately recovered invariants from formally-specified programs, and the invariants it detected in other programs assisted programmers in a software evolution task. However, Daikon suffered from reporting too many invariants, many of which were not useful, and also failed to report some desired invariants.This paper presents, and gives experimental evidence of the efficacy of, four approaches for increasing the relevance of invariants reported by a dynamic invariant detector. One of them — exploiting unused polymorphism — adds desired invariants to the output. The other three — suppressing implied invariants, limiting which variables are compared to one another, and ignoring unchanged values — eliminate undesired invariants from the output and also improve runtime by reducing the work done by the invariant detector.