Difference between revisions of "CddBranch"
(→Publications) |
(→Publications) |
||
Line 73: | Line 73: | ||
[[CDD Common Problems|Common Problems]] if you run into problems. | [[CDD Common Problems|Common Problems]] if you run into problems. | ||
− | == Publications == | + | == Related Publications == |
* Leitner, A., Ciupa, I., Oriol, M., Meyer, B., Fiva, A., "Contract Driven Development = Test Driven Development - Writing Test Cases", to appear in Proceedings of ESEC/FSE'07: European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering 2007, (Dubrovnik, Croatia), September 2007 [http://se.ethz.ch/people/leitner/publications/cdd_leitner_esec_fse_2007.pdf (pdf)] | * Leitner, A., Ciupa, I., Oriol, M., Meyer, B., Fiva, A., "Contract Driven Development = Test Driven Development - Writing Test Cases", to appear in Proceedings of ESEC/FSE'07: European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering 2007, (Dubrovnik, Croatia), September 2007 [http://se.ethz.ch/people/leitner/publications/cdd_leitner_esec_fse_2007.pdf (pdf)] | ||
− | * | + | * "reCrash: Making Crash Reproducible" by Sunghun Kim, Shay Artzi, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2007-054, (Cambridge, MA), November 20, 2007. [http://recrash.googlecode.com/files/MIT-CSAIL-TR-2007-054.pdf] |
== Project Internal Stuff == | == Project Internal Stuff == | ||
[[CddBranchInternal]] | [[CddBranchInternal]] |
Revision as of 07:08, 18 March 2008
Contents
What is the CDD EiffelStudio?
CDD (short for Contract Driven Development) is a project developed at ETH Zurich. It adds advanced support for unit testing to EiffelStudio. With CDD EiffelStudio you can
- Write test cases
- Manage test cases (using tags)
- Run test cases
- View test outcomes
- 'Automatically extract test cases'
If you have questions, feedback, or would like to report a bug please visit the CDD forum.
CDD EiffelStudio adds the following panel to regular EiffelStudio:
Download CDD
The following packages contain the full EiffelStudio 6.1 plus the CDD extension. You do not need to have EiffelStudio installed already in order to install below packages. On Windows you do have to have either the Platform SDK or Visual C++ installed. Do not use EiffelStudio with the gcc/mingw or the .Net backend.
Linux
- Full Linux version: http://se.ethz.ch/people/leitner/cdd/Eiffel61_cdd_final_5.tar.bz2
- Installation instructions: http://docs.eiffel.com/eiffelstudio/installation/studio/060_linux.html
Download the above file and install it just like you would install a EiffelStudio tar ball. Afterwards proceed to section "Using CDD". Make sure you set/update the environment variables PATH, ISE_EIFFEL, and ISE_PLATFORM according to the installation instructions.
Windows
- Full Windows version (with installer): http://n.ethz.ch/~moris/download/Eiffel61_cdd_final_5-windows.msi
- Note 1: Installation is independent of installations of official EiffelStudio 6.1 (neither overwrites nor invalidates nor is influenced by those)
- Note 2: If you have a previous installation of the CDD Edition of EiffelStudio installed, you need to uninstall it first. If you want to reuse the installation directory, you need to manually delete all EIFGENs in its subdirectories after the uninstall procedure.
- Note 3: Do not use the gcc/mingw or the .NET compiler backend. You will have to use the Microsoft C compiler. You can get it either by installing Visual C++, or via (the freely available) Microsoft Platform SDK.Have a look at http://eiffelsoftware.origo.ethz.ch/Installing_Microsoft_C_compiler to learn how to install either compiler.
Documentation
Manually Written Test Cases
CDD Eiffelstudio allows you to create a new “empty” test case. These test cases are similar to jUnit test cases. A manually written test class must start with the word “TEST” and all test routines also have to start with the word “test”. It also has to inherit from class CDD_TEST_CASE.
Extracted Test Cases
CDD EiffelStudio automatically extracts test cases whenever you run your program and an exception is triggered. This feature is novel and not yet part of any other testing environment. You will be the first to try it out.
Test outcomes
A test case checks whether your program contains a particular bug. A test cases can fail indicating that the bug is present in your program, or pass indicating your program does not contain this bug. Sometimes test cases will be unresolved, in which case the testing framework was unable to find out whether the test case passed or failed. A test case can be unresolved for several reasons. Please see the CddBranch web page for details.
Debug Test Case
Select a test case and press this button to run a test case in the debugger.
Enable/Disable Execution of Test Cases in Background
If enabled, all test cases are retested every time you press compile. If disabled not test cases are executed.
Enable/Disable automatic extraction of Test Cases
If enabled every time an exception is triggered a set of test cases that try to reproduce this exception is extracted. If disabled no test cases are extracted.
Clean up/Delete
You can use the “Clean Up/Delete” button in two different ways. By simply pressing it you will delete all unresolved test cases. By pick and dropping a test case to the “Clean up/Delete” button (right click on test case, move mouse to button and right click again) you can delete a test case. By the way, test cases are just regular classes. So you can use all existing tools that apply to classes in EiffelStudio too.
Create new manual test class
Press this button to create a empty test class. You can then edit the class to add manually written test cases.
Further Documentation and Common Problems
Please visit Using CDD for further documentation or look at Common Problems if you run into problems.
Related Publications
- Leitner, A., Ciupa, I., Oriol, M., Meyer, B., Fiva, A., "Contract Driven Development = Test Driven Development - Writing Test Cases", to appear in Proceedings of ESEC/FSE'07: European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering 2007, (Dubrovnik, Croatia), September 2007 (pdf)
- "reCrash: Making Crash Reproducible" by Sunghun Kim, Shay Artzi, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2007-054, (Cambridge, MA), November 20, 2007. [1]