You are on page 1of 26

Agile QA

A Practical Guide to implementing Agile QA process on Scrum Projects


Syed Rayhan
Co-founder, Code71, Inc.
Contact: srayhan@code71.com Blog: http://blog.syedrayhan.com Company: http://www.code71.com Product: http://www.scrumpad.com

My Background

Career

Co-founder, Code71, Inc. 13+ years of total experience Co-author of Enterprise Java with UML

Expertis e

Iterative incremental development Technology planning and architecture On-shore/Off-shore software development using Agile/Scrum Cultural aspect of self-organizing team Scrum for projects delivered remotely Agile engineering practices
Copyright 2004-2008 Code71, Inc.
2

Interes ts

www.Code71.com

www.ScrumPad.com

Agenda

Section 1 Section 2 Section 3 Section 4 Section 5 Section 6

Introduction Holistic View of QA Individual Practices A Case Study Recap Q&A

www.Code71.com

Copyright 2004-2008 Code71, Inc.


3

www.ScrumPad.com

What to Expect
Context Teams and organizations are adopting Agile/Scrum Teams struggle with making the transition from waterfall to Agile/Scrum

Focus

Build common base of understanding Develop a set of gudielines- process, roles, and team composition Address typical questions asked

Key Takeaways

How to perform QA on an Agile/Scrum project Agile/QA best practices


Copyright 2004-2008 Code71, Inc.
4

www.Code71.com

www.ScrumPad.com

Agenda

Section 1 Section 2 Section 3 Section 4 Section 5 Section 6

Introduction Holistic View of QA Individual Practices A Case Study Recap Q&A

www.Code71.com

Copyright 2004-2008 Code71, Inc.


5

www.ScrumPad.com

The challenges?
Is QA part of the development team? Can we fit QA in the same iteration as development? Who does QA? Does QA costs more in Agile as product seems to change from sprint to sprint? How can we scale Agile QA? Do we need test plan? Who defines test cases? Are story acceptance tests enough? When do we know testing is done? Do we need to track bugs?
www.Code71.com
Copyright 2004-2008 Code71, Inc.
6

www.ScrumPad.com

What is QA (Quality Assurance)?

To ensure Software is working right

How?

Test, Test, Test

www.Code71.com

Copyright 2004-2008 Code71, Inc.


7

www.ScrumPad.com

Types of Testing?

White Box

Unit Testing

Regression Testing Black Box

Integration Testing

Acceptance Testing

Functional Testing System Testing

Load Testing

Smoke Testing

www.Code71.com

Copyright 2004-2008 Code71, Inc.


8

www.ScrumPad.com

Who Performs What?


What? Unit Testing Integration Testing System Testing Regression Testing Acceptance Testing Smoke Testing Load Testing
www.Code71.com

Who? Developer Developer Tester Developer/Tester Client/Users Tester/Support Engineer Performance Engineer
Copyright 2004-2008 Code71, Inc.
9

When? Coding Coding Test Build/Test Deployment/ Delivery Deployment Deployment

Automation? Always Always Possible Possible Possible Possible Always

www.ScrumPad.com

Right tools for right tests?


Test Unit Testing Integration Testing Tool NUnit, JUnit, Mock, DBUnit Unit test tools, HttpUnit, SoapUI, RESTClient Selenium, Fit, WET, Watir, WatiN Unit test tools, System test tools FIT, FitNesse Regression test tools JMeter, Httperf

System Testing Regression Testing Acceptance Testing Smoke Testing Load Testing

www.Code71.com

Copyright 2004-2008 Code71, Inc.


10

www.ScrumPad.com

What is missing?
1. Right Spec Assumptions 2. Right Design 3. Right amount of Tests 4. Right Tests Reality? Assumptions are farther from truth

Spec Measures Design Code Test


www.Code71.com

Spec review Design review Code review Test Coverage


www.ScrumPad.com

Copyright 2004-2008 Code71, Inc.


11

Team Composition?
region Dev 1 Test Prod region Dev 2 Test Prod iteration 1 1 1 2 2 2 3 3 In-Cycle iteration 1 2 1 3 2 1 3 2 Out-of-Cycle

We will primarily focus on single-team model for our discussion


www.Code71.com
Copyright 2004-2008 Code71, Inc.
12

www.ScrumPad.com

Team Dynamics

Developers

Product owners Acceptance tests

Team review Testers

Additional tests backlog


www.Code71.com
Copyright 2004-2008 Code71, Inc.
13

www.ScrumPad.com

Quality Funnel
Backlog Review Design Review Unit & Int. Test, CI Code Review System Test

bugs

QG#1 bugs

QG#2

QG#3

QG#4

QG#5

www.Code71.com

Copyright 2004-2008 Code71, Inc.


14

www.ScrumPad.com

Agenda

Section 1 Section 2 Section 3 Section 4 Section 5 Section 6

Introduction Holistic View of QA Individual Practices A Case Study Recap Q&A

www.Code71.com

Copyright 2004-2008 Code71, Inc.


15

www.ScrumPad.com

Test Coverage
Definition A measure of the proportion of a program exercised by a test suite, usually expressed as a percentage.

Measure

Usually expressed as a percentage

Function coverage Types of coverage Path coverage Statement coverage

Tests coverage metrics can tell you what code is not tested
Copyright 2004-2008 Code71, Inc.
16

www.Code71.com

www.ScrumPad.com

Continuous Integration as the Glue

Report

Monitor Source Code

Build

Regression Test

Test Coverage

Continuous Integration is Continuous QA

www.Code71.com

Copyright 2004-2008 Code71, Inc.


17

www.ScrumPad.com

Test Case Prioritization


Frequency of use
high

normal

hot
high

Risk of having bugs

low

cold

warm

low

www.Code71.com

Copyright 2004-2008 Code71, Inc.


18

www.ScrumPad.com

Inspect and Adapt through QA Lens


Five whys of root cause analysis Prioritize bugs over stories Log bugs found by testers

Defect Rate Defect Density

Quality Metrics Bug count per iteration Bug count per module Bug count per function point

www.Code71.com

Copyright 2004-2008 Code71, Inc.


19

www.ScrumPad.com

How to Scale?

Presentation Application#1 Business SOA Service#1 Data Service#2 Service#3 Application#2

www.Code71.com

Copyright 2004-2008 Code71, Inc.


20

www.ScrumPad.com

Agenda

Section 1 Section 2 Section 3 Section 4 Section 5 Section 6

Introduction Holistic View of QA Individual Practices A Case Study Recap Q&A

www.Code71.com

Copyright 2004-2008 Code71, Inc.


21

www.ScrumPad.com

A Case Study
Project A large enterprise system that includes technologies like ASP.Net, BizTalk, Workflow, Scanning, SQL Server, Data Warehouse, and Mainframe 2 product owners, 1 scrum master, 1 architect, 5 developers, 1 QA tester

Team

Sprint

2 weeks
Day 1, 2 Day 3, 4 Day 5-8 Day 9 Day 10

QA Process

Refine scope, acceptance test cases

Identify UI elements, test data QA schedule

Write test scripts test data

Final Test & Fix

Demo & Acceptanc e Test

www.Code71.com

Copyright 2004-2008 Code71, Inc.


22

www.ScrumPad.com

Agenda

Section 1 Section 2 Section 3 Section 4 Section 5 Section 6

Introduction Holistic View of QA Individual Practices A Case Study Recap Q&A

www.Code71.com

Copyright 2004-2008 Code71, Inc.


23

www.ScrumPad.com

Recap
In-cycle QA is critical to the success of a project

System testing is not the only quality gate, it includes all types of testing and reviews

Test automation is critical to in-cycle QA

Target at least 90% test coverage

Continuous Integration is Continuous QA

Prioritize test cases based on risk and frequency of usage


Copyright 2004-2008 Code71, Inc.
24

www.Code71.com

www.ScrumPad.com

Recap contd.
All known bugs should be fixed first

Right size story with well-thought out acceptance tests improves quality

Include all Quality Gates as part of definition of Done

Analyze each bug to understand where (Quality Gate) it should have been caught and improve (Inspect and adapt)

QA is not a designated persons responsibility, it is a teams responsibility (self-organizing team)

www.Code71.com

Copyright 2004-2008 Code71, Inc.


25

www.ScrumPad.com

Q&A
QA is making sure right software works right QA is not an act, but a habit

Contact: srayhan@code71.com Blog: http://blog.syedrayhan.com Company: http://www.code71.com Product: http://www.scrumpad.com

www.Code71.com

Copyright 2004-2008 Code71, Inc.


26

www.ScrumPad.com