12
1 ©2005 SysOpen Digia Plc Company Confidential Oulu Testing Seminar 26.10.2006 Petri Heiramo Process Improvement Manager SysOpen Digia Plc Agile Testing Experiences

Seminar 26.10.2006, Petri Heiramo

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Seminar 26.10.2006, Petri Heiramo

1 ©2005 SysOpen Digia Plc Company Confidential

Oulu Testing Seminar 26.10.2006

Petri HeiramoProcess Improvement Manager

SysOpen Digia Plc

Agile Testing Experiences

Page 2: Seminar 26.10.2006, Petri Heiramo

2 ©2005 SysOpen Digia Plc Company Confidential

Contents of the Presentation

• Current Agile status• Overall conclusions• Testing-related experiences

Page 3: Seminar 26.10.2006, Petri Heiramo

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

Page 4: Seminar 26.10.2006, Petri Heiramo

4 ©2005 SysOpen Digia Plc Company Confidential

Scrum Cycle

Page 5: Seminar 26.10.2006, Petri Heiramo

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

Page 6: Seminar 26.10.2006, Petri Heiramo

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

Page 7: Seminar 26.10.2006, Petri Heiramo

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

Page 8: Seminar 26.10.2006, Petri Heiramo

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

Page 9: Seminar 26.10.2006, Petri Heiramo

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

Page 10: Seminar 26.10.2006, Petri Heiramo

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

Page 11: Seminar 26.10.2006, Petri Heiramo

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

Page 12: Seminar 26.10.2006, Petri Heiramo

12 ©2005 SysOpen Digia Plc Company Confidential

Thank You!

[email protected]