ACM Home Page
Please provide us with feedback. Feedback
Contract driven development = test driven development - writing test cases
Full text PdfPdf (624 KB)
Source
Foundations of Software Engineering archive
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering table of contents
Dubrovnik, Croatia
SESSION: Unit and system testing table of contents
Pages: 425 - 434  
Year of Publication: 2007
ISBN:978-1-59593-811-4
Authors
Andreas Leitner  ETH Zurich, Zurich, Switzerland
Ilinca Ciupa  ETH Zurich, Zurich, Switzerland
Manuel Oriol  ETH Zurich, Zurich, Switzerland
Bertrand Meyer  ETH Zurich, Zurich, Switzerland
Arno Fiva  ETH Zurich, Zurich, Switzerland
Sponsors
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 13,   Downloads (12 Months): 173,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1287624.1287685
What is a DOI?

ABSTRACT

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Jtest. Parasoft Corporation. http://www.parasoft.com/.
 
2
ARSLAN, V., EUGSTER, P., NIENALTOWSKI, P., AND VAUCOULEUR, S. SCOOP - concurrency made easy. Dependable Systems: Software, Computing, Networks (2006).
3
4
5
6
 
7
FELDMAN, Y. A. Extreme design by contract. In Fourth Int'l Conf. Extreme Programming and Agile Processes in Software Engineering (XP 2003) (2003), Springer Verlag, pp. 261--270.
 
8
GARGANTINI, A. Using model checking to generate fault detecting tests. In Tests and Proofs (TAP 2007). Proceedings (2007), Y. Gurevich and B. Meyer, Eds., Lecture Notes in Computer Science, Springer.
9
10
 
11
 
12
 
13
MEYER, B., CIUPA, I., LEITNER, A., AND LIU, L. L. Automatic testing of object-oriented software. In Proceedings of SOFSEM 2007 (Current Trends in Theory and Practice of Computer Science) (2007), J. van Leeuwen, Ed., Lecture Notes in Computer Science, Springer-Verlag.
 
14
 
15
ORIAT, C. Jartege: a tool for random generation of unit tests for Java classes. Tech. Rep. RR-1069-I, Centre National de la Recherche Scientifique, Institut National Polytechnique de Grenoble, Universitáté Joseph Fourier Grenoble I, June 2004.
16
17
18
 
19
OSTROFF, J. S., MAKALSKY, D., AND PAIGE, R. F. Agile specification-driven development. In XP (2004), J. Eckstein and H. Baumeister, Eds., vol. 3092 of Lecture Notes in Computer Science, Springer, pp. 104--112.
 
20
PACHECO, C., AND ERNST, M. D. Eclat: Automatic generation and classification of test inputs. In ECOOP 2005 - Object-Oriented Programming, 19th European Conference (Glasgow, Scotland, July 25-29, 2005).
21
22
23
 
24
XIE, T., MARINOV, D., SCHULTE, W., AND NOTKIN, D. Symstra: A framework for generating object-oriented unit tests using symbolic execution. In Proceedings of the 11th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 05) (April 2005), pp. 365--381.


Collaborative Colleagues:
Andreas Leitner: colleagues
Ilinca Ciupa: colleagues
Manuel Oriol: colleagues
Bertrand Meyer: colleagues
Arno Fiva: colleagues