Symbolic execution and program testing
Communications of the ACM
Bugs as deviant behavior: a general approach to inferring errors in systems code
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Introduction to Algorithms
Fast Algorithms for Mining Association Rules in Large Databases
VLDB '94 Proceedings of the 20th International Conference on Very Large Data Bases
BIDE: Efficient Mining of Frequent Closed Sequences
ICDE '04 Proceedings of the 20th International Conference on Data Engineering
Evolutionary testing of classes
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Rostra: A Framework for Detecting Redundant Object-Oriented Unit Tests
Proceedings of the 19th IEEE international conference on Automated software engineering
JCrasher: an automatic robustness tester for Java
Software—Practice & Experience
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
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
Selective capture and replay of program executions
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Automatic test factoring for java
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
A unified fitness function calculation rule for flag conditions to improve evolutionary testing
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Carving differential unit test cases from system test cases
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Mining Interface Specifications for Generating Checkable Robustness Properties
ISSRE '06 Proceedings of the 17th International Symposium on Software Reliability Engineering
Feedback-Directed Random Test Generation
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Detecting object usage anomalies
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
A System to Generate Test Data and Symbolically Execute Programs
IEEE Transactions on Software Engineering
Parseweb: a programmer assistant for reusing open source code on the web
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
UnitPlus: assisting developer testing in Eclipse
Proceedings of the 2007 OOPSLA workshop on eclipse technology eXchange
Mining exception-handling rules as sequence association rules
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
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
Pex: white box test generation for .NET
TAP'08 Proceedings of the 2nd international conference on Tests and proofs
Eclat: automatic generation and classification of test inputs
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Mining API mapping for language migration
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Test generation through programming in UDITA
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Parameterized unit testing: theory and practice
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Random unit-test generation with MUT-aware sequence recommendation
Proceedings of the IEEE/ACM international conference on Automated software engineering
Random testing for higher-order, stateful programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Generating integration test cases automatically
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Future of developer testing: building quality in code
Proceedings of the FSE/SDP workshop on Future of software engineering research
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
MeCC: memory comparison-based clone detector
Proceedings of the 33rd International Conference on Software Engineering
Precise identification of problems for structural test generation
Proceedings of the 33rd International Conference on Software Engineering
Proceedings of the 33rd International Conference on Software Engineering
Retrofitting unit tests for parameterized unit testing
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
Combined static and dynamic automated test generation
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Automatic test suite evolution
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Synthesizing method sequences for high-coverage testing
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Sound empirical evidence in software testing
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 34th International Conference on Software Engineering
Augmenting test suites automatically
Proceedings of the 34th International Conference on Software Engineering
Puzzle-based automatic testing: bringing humans into the loop by solving puzzles
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Exposing behavioral differences in cross-language API mapping relations
FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
Hi-index | 0.00 |
An objective of unit testing is to achieve high structural coverage of the code under test. Achieving high structural overage of object-oriented code requires desirable method-call sequences that create and mutate objects. These sequences help generate target object states such as argument or receiver object states (in short as target states) of a method under test. Automatic generation of sequences for achieving target states is often challenging due to a large search space of possible sequences. On the other hand, code bases using object types (such as receiver or argument object types) include sequences that can be used to assist automatic test-generation approaches in achieving target states. In this paper, we propose a novel approach, called MSeqGen, that mines code bases and extracts sequences related to receiver or argument object types of a method under test. Our approach uses these extracted sequences to enhance two state-of-the-art test-generation approaches: random testing and dynamic symbolic execution. We conduct two evaluations to show the effectiveness of our approach. Using sequences extracted by our approach, we show that a random testing approach achieves 8.7% (with a maximum of 20.0% for one namespace) higher branch coverage and a dynamic-symbolic-execution-based approach achieves 17.4% (with a maximum of 22.5% for one namespace) higher branch coverage than without using our approach. Such an improvement is significant as the branches that are not covered by these state-of-the-art approaches are generally quite difficult to cover.