Software reliability: measurement, prediction, application
Software reliability: measurement, prediction, application
Interprocedural side-effect analysis in linear time
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Checking C programs with lint
An interval-based approach to exhaustive and incremental interprocedural data-flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Verifying temporal properties of systems
Verifying temporal properties of systems
Larch: languages and tools for formal specification
Larch: languages and tools for formal specification
LCLint: a tool for using specifications to check code
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Data Flow Analysis in Software Reliability
ACM Computing Surveys (CSUR)
An Introduction to Proving the Correctness of Programs
ACM Computing Surveys (CSUR)
Handbook of Walkthroughs, Inspections, and Technical Reviews: Evaluating Programs, Projects, and Products
Extending Typestate Checking Using Conditional Liveness Analysis
IEEE Transactions on Software Engineering
Combining Slicing and Constraint Solving for Validation of Measurement Software
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Verification Tools for Finite-State Concurrent Systems
A Decade of Concurrency, Reflections and Perspectives, REX School/Symposium
Towards automation of checklist-based code-reviews
ISSRE '96 Proceedings of the The Seventh International Symposium on Software Reliability Engineering
Design and code inspections to reduce errors in program development
IBM Systems Journal
Using SCL to Specify and Check Design Intent in Source Code
IEEE Transactions on Software Engineering
Flexible pointer analysis using assign-fetch graphs
Proceedings of the 2008 ACM symposium on Applied computing
Finding bugs in java native interface programs
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Software debugging, testing, and verification
IBM Systems Journal
A novel analysis space for pointer analysis and its application for bug finding
Science of Computer Programming
Orion: high-precision methods for static error analysis of c and c++ programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Hi-index | 0.00 |
A falsifier is a tool for discovering errors by static source-code analysis. Its goal is to discover them while requiring minimal programmer's effort. In contrast to lint-like tools or verifiers, which try to maximize the number of errors reported at the expense of allowing 驴false errors驴, falsifier's goal is to guarantee no false errors. To further minimize programmer's effort, no specification or extra information about his program is required. That, however, does not preclude project specific information from being built in. The class of errors detectable without any specification is important not only because of the low cost of detection, but also because it includes errors of portability, irreproducible behavior, etc, which are very expensive to detect by testing. This paper describes the design and implementation of such a falsifier, and reports on the experience with its use for design automation software. The main contribution of this work lies in combining data-flow analysis with symbolic execution to take advantage of their relative advantages.