The category-partition method for specifying and generating fuctional tests
Communications of the ACM
Automatic generation of test scripts from formal test specifications
TAV3 Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification
Korat: automated testing based on Java predicates
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Criteria for Generating Specification-Based Tests
ICECCS '99 Proceedings of the 5th International Conference on Engineering of Complex Computer Systems
TestEra: A Novel Framework for Automated Testing of Java Programs
Proceedings of the 16th IEEE international conference on Automated software engineering
An experimental evaluation of continuous testing during development
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Test input generation with java PathFinder
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
ACM SIGPLAN Notices
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Parameterized unit tests with unit meister
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
Isolating relevant component interactions with JINSI
Proceedings of the 2006 international workshop on Dynamic systems analysis
From daikon to agitator: lessons and challenges in building a commercial tool for developer testing
Proceedings of the 2006 international symposium on Software testing and analysis
DSD-Crasher: a hybrid analysis tool for bug finding
Proceedings of the 2006 international symposium on Software testing and analysis
Reconciling Manual and Automated Testing: The AutoTest Experience
HICSS '07 Proceedings of the 40th Annual Hawaii International Conference on System Sciences
Automatic Testing of Object-Oriented Software
SOFSEM '07 Proceedings of the 33rd conference on Current Trends in Theory and Practice of Computer Science
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
Using model checking to generate fault detecting tests
TAP'07 Proceedings of the 1st international conference on Tests and proofs
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
Eclat: automatic generation and classification of test inputs
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Dependable Systems
Eiffel as a Framework for Verification
Verified Software: Theories, Tools, Experiments
ReCrash: Making Software Failures Reproducible by Preserving Object States
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
TestFul: using a hybrid evolutionary algorithm for testing stateful systems
Proceedings of the 11th Annual conference on Genetic and evolutionary computation
Generating class contracts from UML protocol statemachines
Proceedings of the 6th International Workshop on Model-Driven Engineering, Verification and Validation
Modeling behavioral RESTful web service interfaces in UML
Proceedings of the 2011 ACM Symposium on Applied Computing
CoDeSe: fast deserialization via code generation
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Reducing the number of unit tests with design by contract
Proceedings of the 12th International Conference on Computer Systems and Technologies
Generating class contracts from deterministic UML protocol statemachines
MODELS'09 Proceedings of the 2009 international conference on Models in Software Engineering
Hi-index | 0.00 |
Although unit tests are recognized as an important tool in software development, programmers prefer to write code, rather than unit tests. Despite the emergence of tools like JUnit which automate part of the process, unit testing remains a time-consuming, resource-intensive, and not particularly appealing activity.This paper introduces a new development method, called Contract Driven Development. This development method is based on a novel mechanism that extracts test cases from failure-producing runs that the programmers trigger. It exploits actions that developers perform anyway as part of their normal process of writing code. Thus, it takes the task of writing unit tests off the developers' shoulders, while still taking advantage of their knowledge of the intended semantics and structure of the code. The approach is based on the presence of contracts in code, which act as the oracle of the test cases. The test cases are extracted completely automatically, are run in the background, and can easily be maintained over versions. The tool implementing this methodology is called Cdd and is available both in binary and in source form.