Sleeping with the enemy: The agile affair between developers and testers
For the 83rd SPIN meeting on Wednesday 17th October , Karen Greaves (@karen_greaves) and Sam Laing (@samlaing) of Growing Agile (@GrowingAgile) gave a presentation entitled Sleeping with the enemy: The agile affair between developers and testers. They delivered the presentation in a relaxed, informal, and conversational way and had some great audience input. They told a story about how Acme Co had employed them as agile spies, to go to other companies and see how agile was working. Below are my brief notes from their talk.
- Karen and Sam asked the audience: What does testing mean to you? They answered: bugs, quality, boring, time-consuming, unclear, afterthought, takes as long as development, automated, done badly, confidence-building, sleeping well, proof of fitness, critical, exploratory.
- There's a big difference between testing and checking.
- A strong focus on defect prevention can be beneficial.
- A whole team approach is important. This can cause role boundaries to blur.
- Testers need deep domain knowledge to test effectively.
- Testing should be done at a sustainable pace (without the need for working evenings and weekends!)
- Developers and testers should sit side-by-side, and collaborate on the test. The developer can write the test fixture and the tester can write the test case. They can peer review each other's work.
- Automation is important. Consider the pyramid (see presentation for diagram). From the base up: Unit / Component tests; Acceptance tests (API layer); GUI tests; manual tests (very few). Doing automated testing creates time for exploratory testing.
- Share the pain: having developers do testing helps them appreciate the value of automated testing.
- Take a zero tolerance approach to bugs can be beneficial. Use bright pinky stick notes to highlight them when they occur. Can up mostly just tracking customer reported bugs, and so may need a less complex bug tracking system.
- Using a whiteboard for test reports gives product status at a glance.
- Developers can teach testers to do some fixes as they occur, so that the tester can fix these bug themselves next time.
- Karen and Sam asked the audience: what sticks out about agile testing to you? They answered: group accountability, collaboration, built-in tests, automation, mind shift, visible, informal.
The presentation was followed with a brief Q&A. Some points that came up:
- Pairing developers with testers can have many benefits.
- Testers bring a dramatically different viewpoint. They think differently to developers and consider the users more often.
- Developers can benefit from being challenged.
- Testers need to have a good depth of knowledge for the product.
- Analysts make great testers and vice versa.