1 ©2005 SysOpen Digia Plc Company Confidential
Oulu Testing Seminar 26.10.2006
Petri HeiramoProcess Improvement Manager
SysOpen Digia Plc
Agile Testing Experiences
2 ©2005 SysOpen Digia Plc Company Confidential
Contents of the Presentation
• Current Agile status• Overall conclusions• Testing-related experiences
3 ©2005 SysOpen Digia Plc Company Confidential
Current Status
• Piloting Agile processes since April 2006• Majority actual customer projects
• Tested methodology – Scrum• Agile project management framework• Technical practices from XP
• Piloting has ended deployment to general use• Training and support• Recommendation to evaluate in all new projects
4 ©2005 SysOpen Digia Plc Company Confidential
Scrum Cycle
5 ©2005 SysOpen Digia Plc Company Confidential
Overall Conclusions
• Scrum improves project performance 50% increase in LOC/h
• Higher customer satisfaction• Concrete displays of progress• Better opportunities to provide feedback and control project direction• Better delivers what the customer really wants• Requires commitment from customer for best results
• Team morale improved• Improved visibility and tracking• Simpler project management
• Including requirements management• Daily Scrums are a best practice, recommendable even to non-agile
projects
6 ©2005 SysOpen Digia Plc Company Confidential
Story 1
Code
Test
Design
Specify
Story 2
Code
Test
Design
Specify
Story 3
Code
Test
Design
Specify
Waterfall Mindset
• The waterfall mindset is difficult to eliminate• People still view phases as a sequence• “Mini-waterfalls”
• Agile sprints require embedded “phases”
Specify
Design
Code
Test
Project start
Project endIncrement
startIncrement endSprintend
Sprint start
7 ©2005 SysOpen Digia Plc Company Confidential
Overall Testing Planning
• A vision of how testing is made in the project• Long-term view
• Elimination of manual regression test accumulation• Individual sprints
• Ensuring fast feedback• Testing in parallel with implementation
• Degree of automation• Tools
• Dependencies• Requirements• Addons
• Management of errors
8 ©2005 SysOpen Digia Plc Company Confidential
Testing Is a Team Effort
• An Agile team is a multi-disciplinary team for a reason• All roles can, and need to, support others
• Tests specify acceptance criteria – everyone needs to know them
• Encourage team effort in specifying and creating tests• Code is created to fulfill the tests
• Communication!• Testing must be key focus• Too easily software developers only consider their work and
sort of forget the testing• Estimation• Task planning
9 ©2005 SysOpen Digia Plc Company Confidential
Unit / Module Testing Focus
• Test at correct level• Focus on “stable” interfaces• You want to minimize rewriting tests when adding new functionality or
refactoring• Create simple tests
• Use setup and teardown functions to “hide” environmental complexity from the test
• Easy to change• Lower threshold to discard and rewrite
• Testing the UI has to be made with adequate tool• Minimize the UI layer as much as sensibly reasonable (“Thin UI”)• Start unit/module testing underneath that layer• Automate UI layer testing through the UI itself (AppTest)
• Reduce dependencies with stubs and mock objects• Preferably Test-Driven Development
10 ©2005 SysOpen Digia Plc Company Confidential
Test-Driven Development
• Design test run test implement code test refactor
• Changing the way developers work is hard
• No matter how convincing the benefits, changing people’s behaviour is difficult, even for the people themselves
• Requires effective tool support• Good OO design skills are necessary
• Creating an elegant, extendable and testable design requires effective use of OO design principles
• Greatest benefits can be reaped in long projects
11 ©2005 SysOpen Digia Plc Company Confidential
Summary
• Agile works
• Eliminate “mini-waterfalls”• Create overall vision for all testing• Make testing is a team effort• Focus tests correctly• Develop TDD culture