Everyone practicing Scrum is familiar with the Definition of Done. It plays quite a crucial role in your daily work. Done is DONE after all :-)
I recently wrote about Continuous Integration and whether it is possible without driving your development with tests (it is not ;-). This leads us to a bigger question. The teams overall test strategy. Does your team have one?
Within the team you have the goal of delivering potentially shippable software after every sprint. Potentially means working and useful as usual. To enable this you have to perform lot of testing, thus manual testing is out of the question (excluding exploratory testing) due to time constraints. That leaves us with test automation.
In order to deliver potentially shippable software the majority of the testing must be automated. And to achieve maximum automation you need a definition of test strategy.
Definition of Test Strategy (aka. DoTS), is simple. Agree how to automate testing on every level, for example:
- Unit testing
- Functional testing
- System/Integration testing
(There are more levels than those, pick whatever relevant levels that fits into your problem domain)
The team needs to arrive at a consensus how they want to approach and achieve test automation. How would your team answer to the following questions and more importantly would everyone else answer alike?
What is a sufficient level of unit testing? How do we write unit tests? Do we use unit test code coverage as a guide? How do we automate the testing of a single complete functionality of a single component (eg. parsing of a xml file)? can we use an existing framework for that or do we need our own? If we need to develop a test framework who takes the responsibility of developing and maintaing it? Does the framework concern others? How do we automate system or integration testing? Do we need extensive scripts in order to perform multiple complex installations on all supported platforms? Can we use existing build tools? How do we cover regression? How do we test user interfaces? How do we maintain tests?
These questions are just the tip of an iceberg. You can probably come up with more but I bet that defining the test strategy for your team will help you to create achievable goals and get you a step closer to comprehensive continuous integration. And thanks to the DoTS all of you will know how to get there :-)