I’ve been pretty busy these past weeks starting a new project.
Since we’ve all followed Agile methodologies for a while, we wanted to have a definition of what ‘done’ means for the team.
A definition of done is useful when you want the whole team to agree when a feature is finished. It can include a mandatory code review, documentation, minimum code coverage, executable specifications, end-to-end tests… It should contain everything you need to do to get some high-quality code.
Although every one on the team is experienced, we’ve been struggling.
We all agreed that we needed to define what ‘done’ means. The content of some parts is still under discussion.
It wasn’t hard to agree on a few things:
- We use Domain Driven Design for our domain as much as possible
- The domain and non-gui modules need to be unit-tested as much as possible
- We have a test map saying which kind of tests should be done for each modules (unit, integration, end-to-end)
- We need to document our module and architecture so others can join the project with too much ramp-up.
However on the GUI side we are still debating:
- We have a GWT application and we had no experience with the framework.
- GWT tests are slow by nature so we try to write relatively few of them. However for the tests we do need to write, we do not know our test coverage yet as cobertura does not seem to support GWT out of the box. It looks possible to use Emma instead of cobertura to get the coverage reports we want. However as far as I could see this would require us to patch GWT. We haven’t tried it yet. It would help if we could find a simple tutorial instead of patches that need to be applied to specific revisions of the framework.
- End-to-end tests is an issue. Some people think it’s too early to use tools like Selenium, others think it’s past time.
Do you have experience with a project using GWT? What did you test? How? I’d appreciate if anyone could share their experience.