Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Swordfish:ProjectRules:CoDoD"
(New page: ==Common definition of "Done" for Swordfish project== '''Code is created/refactored and checked to the subversion repository''' * Code formatting according to the Eclipse build-in formatt...) |
(→Unit tests are created/refactored and checked to the subversion repository) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | ==Common definition of "Done" for Swordfish project== | + | ==Developer Agreement: Common definition of "Done" for Swordfish project== |
− | + | === Code is created/refactored and checked to the subversion repository === | |
* Code formatting according to the Eclipse build-in formatting rules | * Code formatting according to the Eclipse build-in formatting rules | ||
* JavaDocs are in place where required (e.g. public methods, constants, etc.) | * JavaDocs are in place where required (e.g. public methods, constants, etc.) | ||
Line 8: | Line 8: | ||
− | + | === Unit tests are created/refactored and checked to the subversion repository === | |
* Only created code should be tested. | * Only created code should be tested. | ||
* Tests should concentrate on the code internals and not on the interfaces | * Tests should concentrate on the code internals and not on the interfaces | ||
Line 24: | Line 24: | ||
** Network, servers | ** Network, servers | ||
* Tests should have a short run time (<1 second per test) | * Tests should have a short run time (<1 second per test) | ||
− | * Unit tests should cover | + | * Unit tests should cover 70% of the production code |
− | + | === Integration tests are created and checked to the subversion repository === | |
− | + | ||
* Should minimize scope to subsystem under test | * Should minimize scope to subsystem under test | ||
* Should be portable - should be runnable on developer PC with some setup required | * Should be portable - should be runnable on developer PC with some setup required | ||
Line 35: | Line 34: | ||
− | + | ===Continuous integration build is successful=== | |
+ | * It is very important that after each checkin to the trunk developer waits till the notification from continuos integration server. | ||
+ | * We will try our best to keep the build times short that you wold be able to get a fast feedback. | ||
+ | * Please avoid "checkin and immediately go home/on the weekend/on vacation/around the world in only 90 days" anti-pattern. | ||
+ | |||
+ | === To be done later === | ||
* System tests are created and checked to the subversion repository. | * System tests are created and checked to the subversion repository. | ||
* Peer code review | * Peer code review | ||
* User acceptance tests | * User acceptance tests | ||
− | + | ||
+ | Related Topic: <br/> | ||
+ | See also the default [[Swordfish_Documentation:_Feature_Completenes_Definition | feature completeness criteria]] in the Swordfish Documentation Wiki. |
Latest revision as of 09:04, 3 April 2009
Developer Agreement: Common definition of "Done" for Swordfish project
Code is created/refactored and checked to the subversion repository
- Code formatting according to the Eclipse build-in formatting rules
- JavaDocs are in place where required (e.g. public methods, constants, etc.)
- Copyright headers are in place (AP: create Eclipse template and check to repository)
- Cyclomatic complexity should be <= 10 at most 15
Unit tests are created/refactored and checked to the subversion repository
- Only created code should be tested.
- Tests should concentrate on the code internals and not on the interfaces
- Treat test code as production code (e.g. refactoring, modularity, etc).
- Minimize setup/teardown parts of unit tests
- No external setup required to run tests. Tests should be runnable in:
- Eclipse
- Command line (mvn)
- Continuous integration environment
- Tests should be independent of:
- File system
- Operating system
- Timing
- Threading
- Network, servers
- Tests should have a short run time (<1 second per test)
- Unit tests should cover 70% of the production code
Integration tests are created and checked to the subversion repository
- Should minimize scope to subsystem under test
- Should be portable - should be runnable on developer PC with some setup required
- Required setup should be reasonably simple
- Mocks should be shared, before creating a new one please have a look on existing
- Mocks should be not stubs - http://martinfowler.com/articles/mocksArentStubs.html
Continuous integration build is successful
- It is very important that after each checkin to the trunk developer waits till the notification from continuos integration server.
- We will try our best to keep the build times short that you wold be able to get a fast feedback.
- Please avoid "checkin and immediately go home/on the weekend/on vacation/around the world in only 90 days" anti-pattern.
To be done later
- System tests are created and checked to the subversion repository.
- Peer code review
- User acceptance tests
Related Topic:
See also the default feature completeness criteria in the Swordfish Documentation Wiki.