A methodology for controlling the size of a test suite
ACM Transactions on Software Engineering and Methodology (TOSEM)
Analyzing Regression Test Selection Techniques
IEEE Transactions on Software Engineering
A visual test development environment for GUI systems
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
Prioritizing Test Cases For Regression Testing
IEEE Transactions on Software Engineering
Effectively prioritizing tests in development environment
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
A Study of Effective Regression Testing in Practice
ISSRE '97 Proceedings of the Eighth International Symposium on Software Reliability Engineering
Reducing wasted development time via continuous testing
ISSRE '03 Proceedings of the 14th International Symposium on Software Reliability Engineering
Mock object creation for test factoring
Proceedings of the 5th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Working Effectively with Legacy Code
Working Effectively with Legacy Code
Selective capture and replay of program executions
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Isolating relevant component interactions with JINSI
Proceedings of the 2006 international workshop on Dynamic systems analysis
Substra: a framework for automatic generation of integration tests
Proceedings of the 2006 international workshop on Automation of software test
Dynamic inference of abstract types
Proceedings of the 2006 international symposium on Software testing and analysis
Transparent program transformations in the presence of opaque code
Proceedings of the 5th international conference on Generative programming and component engineering
Dynamic slicing long running programs through execution fast forwarding
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 Technique for Enabling and Supporting Debugging of Field Failures
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Software Testing Research: Achievements, Challenges, Dreams
FOSE '07 2007 Future of Software Engineering
Towards a Framework for Differential Unit Testing of Object-Oriented Programs
AST '07 Proceedings of the Second International Workshop on Automation of Software Test
Efficient checkpointing of java software using context-sensitive capture and replay
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Differential testing: a new approach to change detection
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Differential testing: a new approach to change detection
The 6th Joint Meeting on European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering: companion papers
Refactoring test suites versus test behaviour: a TTCN-3 perspective
Fourth international workshop on Software quality assurance: in conjunction with the 6th ESEC/FSE joint meeting
Using coverage effectiveness to evaluate test suite prioritizations
Proceedings of the 1st ACM international workshop on Empirical assessment of software engineering languages and technologies: held in conjunction with the 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE) 2007
BERT: BEhavioral Regression Testing
WODA '08 Proceedings of the 2008 international workshop on dynamic analysis: held in conjunction with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2008)
Replaying and isolating failing multi-object interactions
WODA '08 Proceedings of the 2008 international workshop on dynamic analysis: held in conjunction with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2008)
ReCrash: Making Software Failures Reproducible by Preserving Object States
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
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
Classifying Java class transformations for pervasive virtualized access
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Increasing Test Granularity by Aggregating Unit Tests
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
VCR: Virtual Capture and Replay for Performance Testing
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Test input reduction for result inspection to facilitate fault localization
Automated Software Engineering
GenUTest: a unit test and mock aspect generation tool
HVC'07 Proceedings of the 3rd international Haifa verification conference on Hardware and software: verification and testing
Parameterized unit testing with Pex
TAP'08 Proceedings of the 2nd international conference on Tests and proofs
Proceedings of the 5th Workshop on Automation of Software Test
BERT: a tool for behavioral regression testing
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Moles: tool-assisted environment isolation with closures
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Generating regression unit tests using a combination of verification and capture & replay
TAP'10 Proceedings of the 4th international conference on Tests and proofs
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
Testing techniques in software engineering
Testing techniques in software engineering
Minimizing reproduction of software failures
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Combined static and dynamic automated test generation
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Generating parameterized unit tests
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Augmenting automatically generated unit-test suites with regression oracle checking
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Using AOP for discovering and defining executable test cases
PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
Heap cloning: Enabling dynamic symbolic execution of java programs
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Jalangi: a selective record-replay and dynamic analysis framework for JavaScript
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
ShadowVM: robust and comprehensive dynamic program analysis for the java platform
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Hi-index | 0.00 |
Test factoring creates fast, focused unit tests from slow system-wide tests; each new unit test exercises only a subset of the functionality exercised by the system test. Augmenting a test suite with factored unit tests should catch errors earlier in a test run.One way to factor a test is to introduce mock objects. If a test exercises a component T, which interacts with another component E (the "environment"), the implementation of E can be replaced by a mock. The mock checks that T's calls to E are as expected, and it simulates E's behavior in response. We introduce an automatic technique for test factoring. Given a system test for T and E, and a record of T's and E's behavior when the system test is run, test factoring generates unit tests for T in which E is mocked. The factored tests can isolate bugs in T from bugs in E and, if E is slow or expensive, improve test performance or cost.Our implementation of automatic dynamic test factoring for the Java language reduces the running time of a system test suite by up to an order of magnitude.