continuous testing for continuous delivery

30
Continuous Delivery with Smarter Testing

Upload: david-hart

Post on 14-May-2015

487 views

Category:

Technology


7 download

DESCRIPTION

The slides from my 2013 agile cambridge conference

TRANSCRIPT

Page 1: Continuous testing for continuous delivery

Continuous Delivery with Smarter Testing

Page 2: Continuous testing for continuous delivery

Me

Dave Hart – Lead Developer in Test @ IBM

[email protected]

@DeveloperInTest

http://developerintest.blogspot.com/

Page 3: Continuous testing for continuous delivery

Agenda

• Continuous delivery

• Smarter story level testing

• Smarter product level testing

• Automation

• One team

• Stories +

• Conclusion

• Questions

Page 4: Continuous testing for continuous delivery

Continuous Delivery

Page 5: Continuous testing for continuous delivery

The Agile ideal

The twelve principles of agile software:

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

7. Working software is the primary measure of progress.

Page 6: Continuous testing for continuous delivery

Where we can fall short

Test in agile teams– Can still be silo’d

– Let test lag behind development

Story focused– Our week by week work is blinkered – strong focus on individual

stories

– Lots of testing not necessarily story related gets neglected• System Quality Testing (Installers, performance, deployment,

compatibility, stress, release hardening, globalisation etc etc)

Page 7: Continuous testing for continuous delivery

What can we do?

• Develop a ‘Test Runway’

• Be a team

Page 8: Continuous testing for continuous delivery

Smarter TestingStory Level

Page 9: Continuous testing for continuous delivery

Smarter testing – story level

• Start testing earlier– Requirements and design– TDD, BDD– Alongside development

Page 10: Continuous testing for continuous delivery

Smarter testing – story level

• Minimise test documentation– Guidelines over precise steps– Completed stories and running tests primary

measure of testing performed

• Know your features– Understand the purpose of the story deliverable– Know how it fits in the wider product– Be involved in the design

• Prioritise the scenarios– Attempt to understand how a feature will be used– Break it down into common, occasional and possibly

never scenarios, and prioritise accordingly

Page 11: Continuous testing for continuous delivery

Smarter testing – story level

• Reduce test duplication– Know who is testing what– What is tested at the unit level, integration

system etc

• Utilise test metrics– Coverage statistics– Defect route cause analysis– In sprint defects raised

Page 12: Continuous testing for continuous delivery

Smarter TestingProduct Level

Page 13: Continuous testing for continuous delivery

Smarter testing – product level

• Minimise Test documentation– Approach and strategy over detailed plan– Guidelines for common areas– The backlog state is our measure of progress

• Know your customers– Understand how and why they use your

software– Understand the day to day routes through

your software– Prioritise the bits that are important over the

rarely used (test for the 80%)

Page 14: Continuous testing for continuous delivery

Smarter testing – product level

• Have an idea of all the parts of your release

• Know what is tested where– Reduce duplication– Identify bits that fall between teams/stories– Define a test strategy / approach so we have

an idea of the confidence we can derive from the various testing activities

• Choose your test technologies carefully

Page 15: Continuous testing for continuous delivery

Smarter testing – an example

Web Service Application

Client

Unit

UnitUnit

Unit

Unit

Unit

Component

Component

Unit

Unit

Unit

Component

Page 16: Continuous testing for continuous delivery

Smarter Testing - Automation

Page 17: Continuous testing for continuous delivery

Automation

• Regression, regression, regression– Continuous feedback of continued operation– Run often (continuous integration builds ideal)

• Build in testability– At code level– At UI level– Architect and model for code re-use

• Automate what you can

Page 18: Continuous testing for continuous delivery

Automation

Diagram from Agile Testing – Lisa Crispin & Janet Gregory

Page 19: Continuous testing for continuous delivery

One Team to Rule them All

Page 20: Continuous testing for continuous delivery

One team

• Commit as a team, deliver as a team

• Support specialism's

• Develop a quality culture

Page 21: Continuous testing for continuous delivery

Stories +

Page 22: Continuous testing for continuous delivery

Stories + - infrastructure

Infrastructure is Key!

Build systems– Fast feedback– Track failures back to source easily– Configurable triggers

Page 23: Continuous testing for continuous delivery

Stories+ - DevOps

• Automate your deployments– Link it into your build system– Make it available– Consider build frequency

Web ServicesApplication

CustomCode

Web Server

HardwareConfiguration

Environment

CustomerConfiguration

Deployment

Page 24: Continuous testing for continuous delivery

Stories + - DevOps

• Enables– Cutting edge software for demonstration– Fast, usable feedback – at all levels

Page 25: Continuous testing for continuous delivery

Stories + - DevOps

Testability

CodeCodeTestsCodeTests

Deployment

ConfigurationTesting

PerformanceTesting

User testingAPI testingGlobalisation

Testing

Enables

Page 26: Continuous testing for continuous delivery

Smarter Testing – An example

Web Service Application

Client

Unit

UnitUnit

Unit

Unit

Unit

Component

Component

Unit

UnitUnit

Component

DeployedSmoke test

Deploy

PerformanceFully System

UI test

Page 27: Continuous testing for continuous delivery

Conclusions

Page 28: Continuous testing for continuous delivery

Conclusions

• Start at the design

• Automation and regression

• Testing Runway

– Step back– Inspect– Plan

• Know your product

• Invest

Page 29: Continuous testing for continuous delivery

Conclusions

Recommended Reading

• Agile Software Requirements – Dean Leffingwell

• Agile Testing – Lisa Crispin, Janet Gregory

• Continuous Delivery – Jez Humble, David Farley

• Cartoon tester: http://cartoontester.blogspot.com/

Page 30: Continuous testing for continuous delivery

Any Questions?