Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Model checking for programming languages using VeriSoft
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Using model checking to generate tests from requirements specifications
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
Symbolic execution and program testing
Communications of the ACM
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Java Virtual Machine Specification
Java Virtual Machine Specification
A Temporal Logic Based Theory of Test Coverage and Generation
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
TVLA: A System for Implementing Static Analyses
SAS '00 Proceedings of the 7th International Symposium on Static Analysis
Using Model Checking to Generate Tests from Specifications
ICFEM '98 Proceedings of the Second IEEE International Conference on Formal Engineering Methods
Data Mining for Very Busy People
Computer
Generating Tests from Counterexamples
Proceedings of the 26th International Conference on Software Engineering
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
CUTE: a concolic unit testing engine for C
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Test input generation for java containers using state matching
Proceedings of the 2006 international symposium on Software testing and analysis
Testing, abstraction, theorem proving: better together!
Proceedings of the 2006 international symposium on Software testing and analysis
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
EXE: automatically generating inputs of death
Proceedings of the 13th ACM conference on Computer and communications security
SYNERGY: a new algorithm for property checking
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Carving differential unit test cases from system test cases
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
A System to Generate Test Data and Symbolically Execute Programs
IEEE Transactions on Software Engineering
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
Type-dependence analysis and program transformation for symbolic execution
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
JPF-SE: a symbolic execution extension to Java PathFinder
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Generalized symbolic execution for model checking and testing
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
Software verification with BLAST
SPIN'03 Proceedings of the 10th international conference on Model checking software
Symstra: a framework for generating object-oriented unit tests using symbolic execution
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Differential symbolic execution
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Efficient Testing of Concurrent Programs with Abstraction-Guided Symbolic Execution
Proceedings of the 16th International SPIN Workshop on Model Checking Software
Tool Support for Parametric Analysis of Large Software Simulation Systems
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Automated Analysis of Reo Circuits using Symbolic Execution
Electronic Notes in Theoretical Computer Science (ENTCS)
Reverse engineering of binary device drivers with RevNIC
Proceedings of the 5th European conference on Computer systems
Has the bug really been fixed?
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Towards automating the generation of mutation tests
Proceedings of the 5th Workshop on Automation of Software Test
SUDS: an infrastructure for creating dynamic software defect detection tools
Automated Software Engineering
Parallel symbolic execution for structural test generation
Proceedings of the 19th international symposium on Software testing and analysis
Symbolic PathFinder: symbolic execution of Java bytecode
Proceedings of the IEEE/ACM international conference on Automated software engineering
Practical and effective symbolic analysis for buffer overflow detection
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
SPIN'10 Proceedings of the 17th international SPIN conference on Model checking software
S2E: a platform for in-vivo multi-path analysis of software systems
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
Proceedings of the 33rd International Conference on Software Engineering
Symbolic execution for software testing in practice: preliminary assessment
Proceedings of the 33rd International Conference on Software Engineering
Palus: a hybrid automated test generation tool for java
Proceedings of the 33rd International Conference on Software Engineering
CORAL: solving complex constraints for symbolic pathfinder
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Directed incremental symbolic execution
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Symbolic execution with mixed concrete-symbolic solving
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Proceedings of the 10th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools
Automatic test suite evolution
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
PSO based pseudo dynamic method for automated test case generation using interpreter
ICSI'11 Proceedings of the Second international conference on Advances in swarm intelligence - Volume Part I
The S2E Platform: Design, Implementation, and Applications
ACM Transactions on Computer Systems (TOCS) - Special Issue APLOS 2011
Formal testing for separation assurance
Annals of Mathematics and Artificial Intelligence
A symbolic analysis framework for static analysis of imperative programming languages
Journal of Systems and Software
Modeling asynchronous message passing for c programs
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Symbolic execution of Reo circuits using constraint automata
Science of Computer Programming
Heap cloning: Enabling dynamic symbolic execution of java programs
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Automatic generation of load tests
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Integrating statechart components in polyglot
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Sound empirical evidence in software testing
Proceedings of the 34th International Conference on Software Engineering
Build code analysis with symbolic evaluation
Proceedings of the 34th International Conference on Software Engineering
Towards a unified theory of operational and axiomatic semantics
ICALP'12 Proceedings of the 39th international colloquium conference on Automata, Languages, and Programming - Volume Part II
Computing and visualizing the impact of change with Java PathFinder extensions
ACM SIGSOFT Software Engineering Notes
Symbolic execution of programs with strings
Proceedings of the South African Institute for Computer Scientists and Information Technologists Conference
Automated concolic testing of smartphone apps
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Dynamic test data generation for data intensive applications
HVC'11 Proceedings of the 7th international Haifa Verification conference on Hardware and Software: verification and testing
Proceedings of the 2013 International Conference on Software Engineering
Model-based test case generation using symbolic execution
Proceedings of the 2013 International Workshop on Joining AcadeMiA and Industry Contributions to testing Automation
Enhancing symbolic execution with built-in term rewriting and constrained lazy initialization
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
An orchestrated survey of methodologies for automated software test case generation
Journal of Systems and Software
A runtime approach for estimating resource usage
Proceedings of the Fourth Symposium on Information and Communication Technology
Maintaining the health of software monitors
Innovations in Systems and Software Engineering
Towards a lazier symbolic pathfinder
ACM SIGSOFT Software Engineering Notes
Hi-index | 0.00 |
We describe an approach to testing complex safety critical software that combines unit-level symbolic execution and system-level concrete execution for generating test cases that satisfy user-specified testing criteria. We have developed Symbolic Java PathFinder, a symbolic execution framework that implements a non-standard bytecode interpreter on top of the Java PathFinder model checking tool. The framework propagates the symbolic information via attributes associated with the program data. Furthermore, we use two techniques that leverage system-level concrete program executions to gather information about a unit's input to improve the precision of the unit-level test case generation. We applied our approach to testing a prototype NASA flight software component. Our analysis helped discover a serious bug that resulted in design changes to the software. Although we give our presentation in the context of a NASA project, we believe that our work is relevant for other critical systems that require thorough testing.