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
Automatic extraction of object-oriented component interfaces
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Tracking down software bugs using automatic anomaly detection
Proceedings of the 24th International Conference on Software Engineering
Soot - a Java bytecode optimization framework
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
JCrasher: an automatic robustness tester for Java
Software—Practice & Experience
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Adding trace matching with free variables to AspectJ
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
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
Tool-assisted unit-test generation and selection based on operational abstractions
Automated Software Engineering
The DaCapo benchmarks: java benchmarking development and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Feedback-Directed Random Test Generation
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Static specification mining using automata-based abstractions
Proceedings of the 2007 international symposium on Software testing and analysis
Mop: an efficient and generic runtime verification framework
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
ARTOO: adaptive random testing for object-oriented software
Proceedings of the 30th international conference on Software engineering
Automatic generation of software behavioral models
Proceedings of the 30th international conference on Software engineering
On the Predictability of Random Tests for Object-Oriented Software
ICST '08 Proceedings of the 2008 International Conference on Software Testing, Verification, and Validation
Finding errors in .net with feedback-directed random testing
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Javert: fully automatic mining of general temporal properties from dynamic traces
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Automatically finding patches using genetic programming
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Mining exception-handling rules as sequence association rules
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
MSeqGen: object-oriented unit-test generation via mining source code
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Graph-based mining of multiple object usage patterns
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
A few billion lines of code later: using static analysis to find bugs in the real world
Communications of the ACM
Mining Temporal Specifications from Object Usage
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Inferring Resource Specifications from Natural Language API Documentation
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Automatic Generation of Object Usage Specifications from Large Method Traces
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Online inference and enforcement of temporal properties
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Automated Behavioral Regression Testing
ICST '10 Proceedings of the 2010 Third International Conference on Software Testing, Verification and Validation
Automated fixing of programs with contracts
Proceedings of the 19th international symposium on Software testing and analysis
Generating test cases for specification mining
Proceedings of the 19th international symposium on Software testing and analysis
Random unit-test generation with MUT-aware sequence recommendation
Proceedings of the IEEE/ACM international conference on Automated software engineering
Detecting missing method calls in object-oriented software
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
DyGen: automatic generation of high-coverage tests via mining gigabytes of dynamic traces
TAP'10 Proceedings of the 4th international conference on Tests and proofs
GenRed: A Tool for Generating and Reducing Object-Oriented Test Cases
COMPSAC '10 Proceedings of the 2010 IEEE 34th Annual Computer Software and Applications Conference
A framework for the evaluation of specification miners based on finite state machines
ICSM '10 Proceedings of the 2010 IEEE International Conference on Software Maintenance
Mining parametric specifications
Proceedings of the 33rd International Conference on Software Engineering
Combined static and dynamic automated test generation
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Dynamic Analysis for Diagnosing Integration Faults
IEEE Transactions on Software Engineering
Lightweight defect localization for java
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Statically checking API protocol conformance with mined multi-object specifications
Proceedings of the 34th International Conference on Software Engineering
Static detection of brittle parameter typing
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Statically checking API protocol conformance with mined multi-object specifications
Proceedings of the 34th International Conference on Software Engineering
Inferring dependency constraints on parameters for web services
Proceedings of the 22nd international conference on World Wide Web
Hi-index | 0.00 |
Mining specifications and using them for bug detection is a promising way to reveal bugs in programs. Existing approaches suffer from two problems. First, dynamic specification miners require input that drives a program to generate common usage patterns. Second, existing approaches report false positives, that is, spurious warnings that mislead developers and reduce the practicability of the approach. We present a novel technique for dynamically mining and checking specifications without relying on existing input to drive a program and without reporting false positives. Our technique leverages automatically generated tests in two ways: Passing tests drive the program during specification mining, and failing test executions are checked against the mined specifications. The output are warnings that show with concrete test cases how the program violates commonly accepted specifications. Our implementation reports no false positives and 54 true positives in ten well-tested Java programs.