The synthesis of loop predicates
Communications of the ACM
Communications of the ACM
Communications of the ACM
A new approach to program testing
Proceedings of the international conference on Reliable software
Automatic program verification I: a logical basis and its implementation.
Automatic program verification I: a logical basis and its implementation.
A program verifier
Combining Static Concurrency Analysis with Symbolic Execution
IEEE Transactions on Software Engineering
Automated Software Test Data Generation
IEEE Transactions on Software Engineering
An experimental comparison of the effectiveness of the all-uses and all-edges adequacy criteria
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Path feasibility, linear optimizers and the evaluate standard form
ACM SIGPLAN Notices
A verification helper for task specifications
SAC '93 Proceedings of the 1993 ACM/SIGAPP symposium on Applied computing: states of the art and practice
Applications of feasible path analysis to program testing
ISSTA '94 Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis
The chaining approach for software test data generation
ACM Transactions on Software Engineering and Methodology (TOSEM)
Critical slicing for software fault localization
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
Automated test data generation for programs with procedures
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
Assertion-oriented automated test data generation
Proceedings of the 18th international conference on Software engineering
Dynamic Verification of C++ Generic Algorithms
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Automatic test data generation using constraint solving techniques
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
Automated regression test generation
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
Assignment Commands with Array References
Journal of the ACM (JACM)
Two Algorithms for Determining Volumes of Convex Polyhedra
Journal of the ACM (JACM)
An Introduction to Proving the Correctness of Programs
ACM Computing Surveys (CSUR)
Validation, Verification, and Testing of Computer Software
ACM Computing Surveys (CSUR)
Validation of Scientific Programs
ACM Computing Surveys (CSUR)
Applicability of Software Validation Techniques to Scientific Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Computer-assisted microanalysis of programs
Communications of the ACM
Test data as an aid in proving program correctness
Communications of the ACM
Symbolic execution and program testing
Communications of the ACM
Using symbolic execution for verifying safety-critical systems
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An Experimental Comparison of the Effectiveness of Branch Testing and Data Flow Testing
IEEE Transactions on Software Engineering
ICSE '81 Proceedings of the 5th international conference on Software engineering
A partition analysis method to increase program reliability
ICSE '81 Proceedings of the 5th international conference on Software engineering
An interactive tool for program manipulation
ICSE '81 Proceedings of the 5th international conference on Software engineering
Pragmatic techniques for program analysis and verification
ICSE '79 Proceedings of the 4th international conference on Software engineering
Computer-aided micro-analysis of programs
ICSE '79 Proceedings of the 4th international conference on Software engineering
A flexible environment for program development based on a symbolic interpreter
ICSE '79 Proceedings of the 4th international conference on Software engineering
Theoretical and empirical studies of program testing
ICSE '78 Proceedings of the 3rd international conference on Software engineering
Symbolic interpretation and tracing of PASCAL-programs
ICSE '78 Proceedings of the 3rd international conference on Software engineering
Allegations as aids to static program testing
ACM '76 Proceedings of the 1976 annual conference
ACM '76 Proceedings of the 1976 annual conference
Symbolic evaluation of programs: a look at loop analysis
SYMSAC '76 Proceedings of the third ACM symposium on Symbolic and algebraic computation
Using tools for verification, documentation and testing
Proceedings of the SIGNUM Conference on the Programming Environment for Development of Numerical Software
Program testing techniques using simulated execution
ANSS '76 Proceedings of the 4th symposium on Simulation of computer systems
Data flow analysis techniques for test data selection
ICSE '82 Proceedings of the 6th international conference on Software engineering
The application of error-sensitive testing strategies to debugging
SIGSOFT '83 Proceedings of the ACM SIGSOFT/SIGPLAN software engineering symposium on High-level debugging
Static analysis of programs as an aid to debugging
SIGSOFT '83 Proceedings of the ACM SIGSOFT/SIGPLAN software engineering symposium on High-level debugging
Test data as an aid in proving program correctness
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
Symbolic Execution of Program Paths Involving Pointer and Structure Variables
QSIC '04 Proceedings of the Quality Software, Fourth International Conference
Generalizing symbolic execution to library classes
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Using model checking with symbolic execution to verify parallel numerical programs
Proceedings of the 2006 international symposium on Software testing and analysis
A new script language applicable to symbolic execution systems
International Journal of Computers and Applications
EXE: automatically generating inputs of death
Proceedings of the 13th ACM conference on Computer and communications security
Classics in software engineering
Variably interprocedural program analysis for runtime error detection
Proceedings of the 2007 international symposium on Software testing and analysis
Programming Languages The First 25 Years
IEEE Transactions on Computers
IEEE Transactions on Computers
Flayer: exposing application internals
WOOT '07 Proceedings of the first USENIX workshop on Offensive Technologies
Combining symbolic execution with model checking to verify parallel numerical programs
ACM Transactions on Software Engineering and Methodology (TOSEM)
Constraint Solving and Symbolic Execution
Verified Software: Theories, Tools, Experiments
Towards Automation of Testing High-Level Security Properties
Proceeedings of the 22nd annual IFIP WG 11.3 working conference on Data and Applications Security
Vigilante: End-to-end containment of Internet worm epidemics
ACM Transactions on Computer Systems (TOCS)
EXE: Automatically Generating Inputs of Death
ACM Transactions on Information and System Security (TISSEC)
Failure-tolerant parallel programming and its supporting system architecture
AFIPS '76 Proceedings of the June 7-10, 1976, national computer conference and exposition
Experiments with a symbolic evaluation system
AFIPS '76 Proceedings of the June 7-10, 1976, national computer conference and exposition
Empirical evaluation of a nesting testability transformation for evolutionary testing
ACM Transactions on Software Engineering and Methodology (TOSEM)
Symbolic Model-based Test Selection
Electronic Notes in Theoretical Computer Science (ENTCS)
Dynamic Symbolic Execution of Distributed Concurrent Objects
FMOODS '09/FORTE '09 Proceedings of the Joint 11th IFIP WG 6.1 International Conference FMOODS '09 and 29th IFIP WG 6.1 International Conference FORTE '09 on Formal Techniques for Distributed Systems
Dynamic Symbolic Execution for Testing Distributed Objects
TAP '09 Proceedings of the 3rd International Conference on Tests and Proofs
Automated deduction for verification
ACM Computing Surveys (CSUR)
Meta-interpretation of recursive list-processing programs
IJCAI'79 Proceedings of the 6th international joint conference on Artificial intelligence - Volume 2
Meta-evaluation as a tool for program understanding
IJCAI'77 Proceedings of the 5th international joint conference on Artificial intelligence - Volume 1
Symbolic execution in algorithm design
IJCAI'85 Proceedings of the 9th international joint conference on Artificial intelligence - Volume 1
A Synergy between Static and Dynamic Analysis for the Detection of Software Security Vulnerabilities
OTM '09 Proceedings of the Confederated International Conferences, CoopIS, DOA, IS, and ODBASE 2009 on On the Move to Meaningful Internet Systems: Part II
Model-based test selection for infinite-state reactive systems
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
Coverage criteria for state based specifications
Formal methods and testing
Functional test generation of digital LSI/VLSI systems using machine symbolic execution technique
ITC'84 Proceedings of the 1984 international test conference on The three faces of test: design, characterization, production
Symbolic execution for software testing in practice: preliminary assessment
Proceedings of the 33rd International Conference on Software Engineering
Concolic testing and constraint satisfaction
SAT'11 Proceedings of the 14th international conference on Theory and application of satisfiability testing
Enhancing structural software coverage by incrementally computing branch executability
Software Quality Control
SAS'11 Proceedings of the 18th international conference on Static analysis
A theory of predicate-complete test coverage and generation
FMCO'04 Proceedings of the Third international conference on Formal Methods for Components and Objects
Execution generated test cases: how to make systems code crash itself
SPIN'05 Proceedings of the 12th international conference on Model Checking Software
Symbolic execution of Reo circuits using constraint automata
Science of Computer Programming
Efficient state merging in symbolic execution
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Mutation based test case generation via a path selection strategy
Information and Software Technology
SymDrive: testing drivers without devices
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
Test-case generation and bug-finding through symbolic execution
Proceedings of the South African Institute for Computer Scientists and Information Technologists Conference
Symbolic execution for software testing: three decades later
Communications of the ACM
Communications of the ACM
Hi-index | 0.08 |
SELECT is an experimental system for assisting in the formal systematic debugging of programs. It is intended to be a compromise between an automated program proving system and the current ad hoc debugging practice, and is similar to a system being developed by King et al. of IBM. SELECT systematically handles the paths of programs written in a LISP subset that includes arrays. For each execution path SELECT returns simplified conditions on input variables that cause the path to be executed, and simplified symbolic values for program variables at the path output. For conditions which form a system of linear equalities and inequalities SELECT will return input variable values that can serve as sample test data. The user can insert constraint conditions, at any point in the program including the output, in the form of symbolically executable assertions. These conditions can induce the system to select test data in user-specified regions. SELECT can also determine if the path is correct with respect to an output assertion. We present four examples demonstrating the various modes of system operation and their effectiveness in finding bugs. In some examples, SELECT was successful in automatically finding useful test data. In others, user interaction was required in the form of output assertions. SELECT appears to be a useful tool for rapidly revealing program errors, but for the future there is a need to expand its expressive and deductive power.