Jump to: navigation, search

Swordfish:ProjectRules:CoDoD

Revision as of 08:04, 3 April 2009 by Juergen.kindler.sopera.de (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.