optimizing your agile testing processes

24
Optimizing Your Agile Testing Processes September 23, 2008 www.uTest.com 1

Upload: stanton-champion

Post on 17-May-2015

8.104 views

Category:

Technology


0 download

DESCRIPTION

An overview of agile testing and how to incorporate it into an agile software development process. From a Webinar by uTest: http://www.utest.com/webinar_agile_testing.htm

TRANSCRIPT

Page 1: Optimizing Your Agile Testing Processes

Optimizing Your Agile Testing Processes

September 23, 2008

www.uTest.com

1

Page 2: Optimizing Your Agile Testing Processes

Agile Manifesto

• 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 3: Optimizing Your Agile Testing Processes

Standard S/W Theory

3

Requirements Analysis

System Design

Coding

QA & Bug Fixes

Release!

Page 4: Optimizing Your Agile Testing Processes

The Reality…

4

Requirements Analysis

System Design

Coding

QA

Release!

New Requirements

Redesign

Coding

Boss’s Pet Feature

Redesign

Coding

Page 5: Optimizing Your Agile Testing Processes

QA is a defensive stance…

“Protect the user” mentality

5

Page 6: Optimizing Your Agile Testing Processes

Agile Development

Short Development Cycles(aka Iteration, Sprint, etc.)-Don’t over design: Only what you need for this sprint-Testing integral to process-Focus on software, not documentation-Design / Test / Code as a team-Business User is part of cycle

Iterative Releases-2-4 weeks apart-Unique value in each release

Page 7: Optimizing Your Agile Testing Processes

7

Is Agile New?

Page 8: Optimizing Your Agile Testing Processes

8

Move the deadline up!

Kill all documentation!

Keep coding till the day of release!

This is NOT Agile!

Page 9: Optimizing Your Agile Testing Processes

Agile is VERY orderly

9

Page 10: Optimizing Your Agile Testing Processes

Test Driven Development

Write Unit Tests

Run Tests

Write Some Code

Run Tests

Fail

Fail

Yes

Pass

More Features?

No

Pass

Check-in

Page 11: Optimizing Your Agile Testing Processes

Sample JUnit Test Case

11

@Test

public void testAddition() {

assertEquals( 12 , myMathClass.add(7,5) );

}

Method in JUnit that:•Checks if the two arguments are equal•Displays message if assertion fails

Method in JUnit that:•Checks if the two arguments are equal•Displays message if assertion fails

The functionality we are about to develop, which

needs to be tested

The functionality we are about to develop, which

needs to be tested

The JUnit Test Case that we are buildingThe JUnit Test Case that we are building

Page 12: Optimizing Your Agile Testing Processes

Sample Unit Test Code

12

@Test

public void testAddition() {

assertEquals( 12 , myMathClass.add(7,5) );assertEquals( 12 , myMathClass.add(5,7) );assertEquals( 3 , myMathClass.add(3,0) );

}

Page 13: Optimizing Your Agile Testing Processes

Sample Unit Test Code

13

@Test

public void testAddition() {

assertEquals( 12 , myMathClass.add(7,5) );assertEquals( 12 , myMathClass.add(5,7) );assertEquals( 3 , myMathClass.add(3,0) );assertEquals( 2 , myMathClass.add(-5,7) );assertEquals( -2 , myMathClass.add(5,-7) );

}

Page 14: Optimizing Your Agile Testing Processes

Sample Unit Test Code

14

@Test

public void testAddition() {

assertEquals( 12 , myMathClass.add(7,5) );assertEquals( 12 , myMathClass.add(5,7) );assertEquals( 3 , myMathClass.add(3,0) );assertEquals( 2 , myMathClass.add(-5,7) );assertEquals( -2 , myMathClass.add(5,-7) );assertEquals( 133332 , myMathClass.add(55555,77777) );

}

Page 15: Optimizing Your Agile Testing Processes

Sample Unit Test Code

15

@Test

public void testAddition() {

assertEquals( 12 , myMathClass.add(7,5) );assertEquals( 12 , myMathClass.add(5,7) );assertEquals( 3 , myMathClass.add(3,0) );assertEquals( 2 , myMathClass.add(-5,7) );assertEquals( -2 , myMathClass.add(5,-7) );assertEquals( 133332 , myMathClass.add(55555,77777) );assertEquals( 6 , myMathClass.add(1,2,3) );

}

Page 16: Optimizing Your Agile Testing Processes

16

Don’t worry about that Failure…

The Feature Is Not For

This Release

Don’t worry about that Failure…

It’s a Known Bug

Page 17: Optimizing Your Agile Testing Processes

Testing Phases

17

Page 18: Optimizing Your Agile Testing Processes

Compliance Matrix Complexity

• Testing Compliance Matrix keeps getting bigger• For web apps, who is the customer in the team?

18

1997 1999 2001 2003 2005 2007 2009

Medium Complexity: OS,

Hardware, Device Drivers

High Complexity:OS,

Browser, Browser Settings/Plug-ins,

Firewall / Anti-Virus / Filtering,Connection Speed,Language/Region

Low Complexity:Browser Version

Native-Code HTML Server-side Dynamic Web Apps

Page 19: Optimizing Your Agile Testing Processes

The Tester’s RoleA. Unit Tests = Specs

• QA and PM meet early• No more SRS TP Alchemy

B. Testing is part of development process• Team development calls for testing frame of

mind • In a programming team / pair, not everyone is

homogenous

C. Acceptance Testing by Customer• Coordinating (and participating in)

customer testing / community testing

Page 20: Optimizing Your Agile Testing Processes

Case Study:Testing in Short Iterations

Page 21: Optimizing Your Agile Testing Processes

2 week development cycle

Mon - FriDevelopmentDevelop features for current Sprint cycle

Fri 5PMRelease To Testing

Post the Sprint version and test plans to Testing arena

Fri 5PM - Mon 9AMTesting

Simultaneous worldwide testing by uTest Community

Mon 9AMComplete Bug Report

R&D Reviews Bugs Identified in Sprint version

Mon - FriBug Fixing

Stabilization and Bug Fixing.No new development

Fri 5PMRelease To Testing

Post the Release Candidate to Testing arena

Fri 5PM - Mon 9AMTesting

Simultaneous worldwide testing by uTest Community

Mon 9AMVersion Release

Showstopper fixes, release decision and

post to production site

Page 22: Optimizing Your Agile Testing Processes

Scoping each Sprint

22

Fri - Mon Testing

Mon - FriBug Fixing

Fri - Mon Testing

Mon 3PMBusiness Priority

MeetingSales, Mktg, Prod Mgmt choose se 6-8 candidate

features for upcoming cycle

Tues 11AMSprint Planning

MeetingProd Mgmt presents

candidates to R&D Mgmt

Fri 10 AMR&D Response to

Biz TeamR&D analysis is presented to

business team

Fri 3PMSprint Decision Closure

List of candidate features for upcoming Sprint cycle is finalized

Wed-ThursDev Speccing

R&D Team Leaders analyze candidates for code

complexity, cost of development and risk factors

Mon - FriDevelopment

Page 23: Optimizing Your Agile Testing Processes

23

Testing and the End-User

Page 24: Optimizing Your Agile Testing Processes

Thank you!

Q&A

24

For more info:http://www.utest.com/solutions_agile_testing.htm

Download the “Agile Testing with uTest” Case Study:http://www.utest.com/downloadcs.php