How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process...

37
© QualSys Solutions 2009 1 How Can a Tester Cope With the Fast Paced Iterative/Incremental Process? by Timothy D. Korson Version 7.0814

Transcript of How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process...

Page 1: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 1

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

byTimothy D. Korson

Version 7.0814

Page 2: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 2

Restricted UseThis copyrighted material is provided to attendees of QualSys Solutions courses under a restricted licensing agreement exclusively for the personal

use of the attendees. QualSys Solutions retains ownership rights to the material contained in these course notes.

Please respect these rights.

Any presentation or reuse of any part of this material in any form must be approved in writing by [email protected]

Copyright © 2009 Qualsys Solutions. All rights reserved.

Page 3: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 3

Outline

• What is iterative/incremental software engineering?

• How can a tester cope?Analysis

High-level designDetailed design

ImplementationTesting

Production

Page 4: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 4

Traditional Software Engineering

The process makes it easierto specialize and handoff

Analysis

Design

Code

Test

Page 5: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 5

Over the Wall

System

ProcessTechnology

Page 6: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 6

Process Spectrum

Waterfall RUP XP

Page 7: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 7

Process Spectrum

Waterfall RUP XPAgileAgile

Page 8: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 8

Incremental Model

• An increment is some subset of the system that is “completely” coded and tested.

AnalysisHigh-level design

Detailed designImplementation

TestingProduction

Page 9: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 9

Fixed Delivery Dates• Delivery dates are fixed• Scope is negotiated as necessary

Page 10: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 10

It’s Incremental Everything

Other important documents, such as the user manual and designdocuments, are also developed, and verified incrementally.

RequirementsSpecification

DomainModel

DesignDocument

Analyze

Design

Implement

Analyze

Design

Implement

Analyze

Design

Implement

Page 11: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 11

Example• Business logic to post a simple transaction

• GUI to enter transaction data

• DBMS to persist transaction

• Log on and user authentication code

• Additional business logic to all layers

• …Multi-currency, fund accounting system

Page 12: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 12

Iteration Length

• Rational Unified Process (RUP) – Up to 6 months

• Scrum– One Month

• XP– Could be as short

as one week

Page 13: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 13

How Can I Cope?

• Process• Organization• Collaboration• Automation• Participate in

Planning• Test first development

Page 14: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 14

How Can I Cope?

• Process• Organization• Collaboration• Automation• Participate in

Planning• Test first development

Page 15: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 15

Testing Process Should Match the Development Process

• Basic development process is incremental• Iterate within increments, with prototype support as

necessary. Often this will involve reworking one piece of the system several times before an increment is finished. Previous increments are refactored as necessary.

• Testing process should be incremental• Early increments may be gray boxes• The testing perspective is black box, but an early

increment may have lots of incomplete functionality and may not be executable as a “stand alone”system.

Page 16: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 16

Testing Increments

S I1 I2 I3

S I1 I2 I3

Develop and test I1

Develop I1Test I1Develop I2

Page 17: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 17

How Can I Cope?

• Process

• Organization• Collaboration• Automation• Participate in

Planning• Test first development

Page 18: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 18

Recommended Organizational Approach

Define

Team 1

Development

Team 2 Team 3DevelopmentTesting

DevelopmentTesting

DevelopmentTesting

Testing

Page 19: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 19

How Can I Cope?

• Process• Organization

• Collaboration• Automation• Participate in

Planning• Test first development

Page 20: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 20

No One Is Done Until Everyone Is Done

Page 21: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 21

Testing Increments

S I1 I2 I3

S I1 I2 I3

Develop and test I1

Develop I1Test I1Develop I2

Page 22: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 22

Pair Programming

Guarantees 100% code inspections

Page 23: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 23

Modern Software EngineeringDomain Analysis

Application Analysis

Application Design

Class Design and

DevelopmentApplication Assembly

Testing

The process encourages integrated teams

Page 24: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 24

Requirements• RUP

– Use cases have lots of detail– Business analysts document the requirements– Testers work from written requirements

expressed as use cases• Agile

– Stories lack detail– Stories are reminders to have a conversation– The details from the conversations are recorded

directly in test cases– The test cases become the detailed specifications– Testers become business analysts

Page 25: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 25

How Can I Cope?

• Process• Organization• Collaboration

• Automation• Participate in

Planning• Test first development

Page 26: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 26

Almost Continuous Integration• Almost continuous integration avoids or detects compatibility

problems early. Integration is a "pay me now or pay me more later" kind of activity.

• Developers should be integrating and releasing code into the code repository every few hours, when ever possible. In any case never hold onto changes for more than a day.

• Each development pair is responsible for integrating their own code when ever a reasonable break presents itself.

Smoke Test

Page 27: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 27

Regression Suites

• Build smoke test• Daily test• Weekly test• Increment test

System

Tester

Page 28: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 28

Automation Tools

• Record and Playback

• Testing “Under the Interface”

Page 29: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 29

How Does One Automate?

Manual orCapture and Playback

Test Harness thatcalls the API of the Business Logic

Structured Query Language (SQL)

Testing under the interface

Page 30: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 30

How Can I Cope?

• Process• Organization• Collaboration• Automation

• Participate in Planning

• Test first development

Page 31: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 31

Including Time for Acceptance Test in Planning the Estimates

Page 32: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 32

Up-Front Tester activities

• Identifying and making explicit hidden assumptions

• Defining acceptance tests for each story• Including time for acceptance test in

planning the estimates• Enabling accurate estimates of

time and velocity

Page 33: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 33

How Can I Cope?

• Process• Organization• Collaboration• Automation• Participate in

Planning

• Test first development

Page 34: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 34

Test First• Many programmers

have adopted this approach with near religious zeal

• “Test-first design is infectious! Developers swear by it. We have yet to meet a developer who abandons test-first design after giving it an honest trial.”

Robert C. Martin

Page 35: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 35

Getting the Code Right vs. Getting the Right Code

• Test first development ensures the code is doing what the developer intended it to do

• Acceptance testing can now focus on determining how well the developer’s intent matches client’s expectations

Page 36: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 36

Agile in Action

• Process• Organization• Collaboration• Automation• Participate in

Planning• Test first development

Page 37: How Can a Tester Cope With the Fast Paced …...Testing Process Should Match the Development Process • Basic development process is incremental • Iterate within increments, with

© QualSys Solutions 2009 37

Thanks for coming• Let us know about your testing work. We’d like to hear about your

successes and your difficulties.

• My e-mail address is:[email protected]