Testing , why it should be fully integrated in the application lifecycle ?

25
Interoperability Testing, why it should be fully integrated in the application lifecycle? Danny Crone - nFocus

description

Testing , why it should be fully integrated in the application lifecycle ?. Danny Crone - nFocus. Overview. What is testing? Where have we come from? Where are we now? Why is nFocus at MSAIC?. minimise tech support costs. prove it is secure. Why do we test?. find bugs. - PowerPoint PPT Presentation

Transcript of Testing , why it should be fully integrated in the application lifecycle ?

Page 1: Testing , why it should be fully integrated in the application  lifecycle ?

Interoperability

Testing, why it should be fully integrated in

the application lifecycle?

Danny Crone - nFocus

Page 2: Testing , why it should be fully integrated in the application  lifecycle ?

• What is testing?• Where have we come from?• Where are we now?

Why is nFocus at MSAIC?

Overview

Page 3: Testing , why it should be fully integrated in the application  lifecycle ?

Why do we test?

prove it works

to see if it is quick

enough

check that changes haven’t

broken it

find bugs

minimise tech support

costs

is it usable

is it reliablecheck

conformance with

regulations

prove it is secure

ensure we can install it

Page 4: Testing , why it should be fully integrated in the application  lifecycle ?

Testing is many things to many different people but we believe that testing:• Reduces the risk of failure• Increases the confidence of success• Supplies key information to make decisions

What is testing?

Page 5: Testing , why it should be fully integrated in the application  lifecycle ?

Testing is a balancing act

Cost

Time

Quality

Page 6: Testing , why it should be fully integrated in the application  lifecycle ?

• Waterfall• Testing at the end

Where have we come from?

Page 7: Testing , why it should be fully integrated in the application  lifecycle ?

Waterfall Model (planned)

Requirements

Design

Implementation

Testing

Maintenance

Page 8: Testing , why it should be fully integrated in the application  lifecycle ?

Waterfall Model (reality)

Requirements

Design

Implementation

Testing

Maintenance

Squeeze Squeeze

Page 9: Testing , why it should be fully integrated in the application  lifecycle ?

• Waterfall• Testing at the end• Mostly manual testing• Automated testing was difficult – Got bad press (record/playback)

• Often seen as a cost– Tick in the box– Didn’t understand inherent value in testing

Where have we come from?

Page 10: Testing , why it should be fully integrated in the application  lifecycle ?

• What is agile?• How do we test using agile principles?• What does “done” look like?

Where are we now?

Page 11: Testing , why it should be fully integrated in the application  lifecycle ?

• Agile and nFocus• Manifesto – principles and intentions

What is agile?

Page 12: Testing , why it should be fully integrated in the application  lifecycle ?

Manifesto for Agile Software Development

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

That is, while there is value in the items on the right, we value the items on the left more.

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

Page 13: Testing , why it should be fully integrated in the application  lifecycle ?

• Agile and nFocus• Manifesto – principles and intentions• Short iterations – Sprints in Scrum• Works for development but challenges for test– Growing regression bucket– Agile embraces change but change can de-stabilise

• Highly people focused

What is agile?

Page 14: Testing , why it should be fully integrated in the application  lifecycle ?

• Plan and design for testing– Don’t assume it will be easy

• Use the quadrants, Luke

How do we test using agile principles?

Page 15: Testing , why it should be fully integrated in the application  lifecycle ?

Functional TestsExamples

Story TestsPrototypesSimulations

Q2

Exploratory TestingScenarios

Usability TestingUAT (User Acceptance Testing)

Alpha/BetaQ3

Q1

Unit TestsComponent Tests

Q4

Performance & Load TestingSecurity Testing“illity” Testing

Automated& Manual

Manual

ToolsAutomatedTechnology-Facing

Business-FacingSu

ppor

ting

the

Team Critique Product

Agile Testing Quadrants

Original idea by Brian Marick, www.exampler.com

Page 16: Testing , why it should be fully integrated in the application  lifecycle ?

Functional TestsExamples

Story TestsPrototypesSimulations

Q2

Exploratory TestingScenarios

Usability TestingUAT (User Acceptance Testing)

Alpha/BetaQ3

Q1

Unit TestsComponent Tests

Q4

Performance & Load TestingSecurity Testing“illity” Testing

Automated& Manual

Manual

ToolsAutomatedTechnology-Facing

Business-FacingSu

ppor

ting

the

Team Critique Product

Agile Testing Quadrants

Original idea by Brian Marick, www.exampler.com

Page 17: Testing , why it should be fully integrated in the application  lifecycle ?

Functional TestsExamples

Story TestsPrototypesSimulations

Q2

Exploratory TestingScenarios

Usability TestingUAT (User Acceptance Testing)

Alpha/BetaQ3

Q1

Unit TestsComponent Tests

Q4

Performance & Load TestingSecurity Testing“illity” Testing

Automated& Manual

Manual

ToolsAutomatedTechnology-Facing

Business-FacingSu

ppor

ting

the

Team Critique Product

Agile Testing Quadrants

Original idea by Brian Marick, www.exampler.com

Page 18: Testing , why it should be fully integrated in the application  lifecycle ?

Functional TestsExamples

Story TestsPrototypesSimulations

Q2

Exploratory TestingScenarios

Usability TestingUAT (User Acceptance Testing)

Alpha/BetaQ3

Q1

Unit TestsComponent Tests

Q4

Performance & Load TestingSecurity Testing“illity” Testing

Automated& Manual

Manual

ToolsAutomatedTechnology-Facing

Business-FacingSu

ppor

ting

the

Team Critique Product

Agile Testing Quadrants

Original idea by Brian Marick, www.exampler.com

Page 19: Testing , why it should be fully integrated in the application  lifecycle ?

• Automation– Goes someway to solve challenges– Automate as much as is feasibly possible– Just software too– Code architecture needs to support automation– Layered architectures work best– Bake into build and deploy process (twitter)

How do we test using agile principles?

Page 20: Testing , why it should be fully integrated in the application  lifecycle ?

• Manual testing– Exploratory testing– Frameworks help single definition– Adds value but long term becomes cost

• Always pick the right tools for the right job– Is VS2010 the right tools??

How do we test using agile principles?

Page 21: Testing , why it should be fully integrated in the application  lifecycle ?

• We know that testing is infinite• So we must prioritise– Most important – Most difficult

• Testing forms a large part of what “done” looks like

• Bring on the “done” thinking grid

What does “done” look like?

Page 22: Testing , why it should be fully integrated in the application  lifecycle ?

“done” thinking grid

User story clarity

Tasks identified

Build setup changes

Product owner approval

Product backlog updated

Environment ready

Design complete

Unit test cases written

Documentation

Pre-release builds

Code complete

Unit tests executed

Refactoring

Code checkin

Code merging and tagging

Automated code review

Peer review

Code coverage

Burndown chart ready

Release build

Functional testing

Regression testing

Performance testing

Acceptance testing

Closure

• Testing play a key part in “doneness”

Page 23: Testing , why it should be fully integrated in the application  lifecycle ?

• Agile represents progress• Agile is a mindset that embraces change• Testing solves some of the agile challenges– “Done”, Information, Culture, Working software

• Whole team approach to quality (test-infected)– Includes architects– Solution needs to be testable– Architecture needs to enable automation

• Reflect• Why nFocus at MSAIC

Summary

Page 24: Testing , why it should be fully integrated in the application  lifecycle ?

• Agile Manifesto – http://agilemanifesto.org

• Definition of Done– http://www.scrumalliance.org/articles/106-

definition-of-done-a-reference

• Agile testing quadrants– http://www.exampler.com

• nFocus Blog– http://blog.nfocus.co.uk

• Danny Crone

[email protected]

– @dannycrone

Resources

Page 25: Testing , why it should be fully integrated in the application  lifecycle ?

• We've come a long way from the days of testing coming last after report generation within the development lifecycle. Agile development practices and tooling have reaped many benefits but how do we ensure that testing is integrated end-end through out the lifecycle? How can testing become a first class citizen and what is the role of the architect in ensuring testing is made so?

Testing, why it should be fully integrated in the application lifecycle?