achieving zero defect with agile methods bugday bangkok 2012 โดย varokas panusuwan (agile66)

47
Achieving Zero Defect with Agile Methods Varokas Panusuwan (Agile66) - Bug Day Bangkok 2012 -

Upload: prathan-d

Post on 01-Nov-2014

1.534 views

Category:

Technology


0 download

DESCRIPTION

Achieving Zero Defect with Agile Methods BugDay Bangkok 2012 โดย Varokas Panusuwan (Agile66)

TRANSCRIPT

Page 1: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Achieving Zero Defect with Agile Methods

Varokas Panusuwan (Agile66)- Bug Day Bangkok 2012 -

Page 2: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Agenda

● Context● TDD● QA Role in Agile● Continuous Delivery● Q & A

Page 3: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

About My Team

Page 4: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)
Page 5: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

My Team

● 10 Devs (5+5)● 2 Product Owner● 3 QAs● Agile !! -- 2 Years from 0 ● Inherited Legacy code● Web Application● Release Weekly● Zero Defect*

PMs Love Us !! * in TDDed code

Page 6: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Zero Defect

Page 7: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Test Driven Development

Page 8: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Test Driven Development (TDD)

<Test 1><Test 2><Test 3>

#1

[Code 1][Code 2][Code 3]

Le Write Code

<Test 1><Test 2><Test 3>

Test Failed !!

#2

#3

<Test 1><Test 2><Test 3>

Test Passed!!

#4

Le Write Test

Writing Code Like a Sir

Code Always Tested

Page 9: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

TDD == Testable Specification

Page 10: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Create Login Page(1) Email has correct format(2) Password required...

Le Spec

Story

Acceptance Criteria

testEmailFormat() testPasswordRequired()

Le Test

TDD

QA DEV

#2 fail.

B**** PLEASE !!

Automate Tested

Oh... setup wrong

Page 11: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Interface

Code?

[Code 1][Code 2][Code 3]

Req?

Test

REQUIREMENT

● Specific● Measurable● Actionable● Realistic● Time-bound●

https://github.com/varokas/tdd-examples/blob/master/src/test/java/com/huskycode/stack/StackImplTest.java

Page 12: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Bug

MismatchSpec

Not in Spec

TDD ???

F***

YEAH!!

Page 13: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

TDD == Better Modular Design == Easier to Test

Page 14: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

public billing() {date = new Date(); //Get Todayif(date == endOfMonth)

sendBillToCustomer();}

QA... U MAD ??

QA

Page 15: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

public billing(dateService) {date = dateService.getToday();if(date == endOfMonth)

sendBillToCustomer();}

Le Dev

MOCK

1. Let todayService.getToday == 302. runTest --> billing(todayService)3. SUCCESS !!

Le Test Code

Le QATWEAK

Page 16: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

QA Role in Agile Team?

Page 17: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Bug

Spec Mismatch

Not in Spec

???Exploratory Testing

Page 18: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Story (Spec) Writing

PM

DEV(3) SAD PATH(4) EDGE CASE(5) EXCEPTION

SPEC (1) HAPPY PATH(2) HAPPY PATH

QA

#2 Conflict with ...

What about ...

Page 19: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

1. PM & Dev & QA Write Story2. QA Review Acceptance Criteria [ TESTs !!! ]3. Dev implement Story4. QA Exploratory TestDONE !!!

Agile All The Way

Regression Test

QA Like a Sir

Quality Up Front

Page 20: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

QA >> Testing

Page 21: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Continuous Delivery

Page 22: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

"Responding to Change over Following a Plan"

- Agile Manifesto #4 -

http://agilemanifesto.org/

Page 23: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Order Management System

User Management System

Following Big Plan...

Big Gigantic Module System Thingie

..

..

..

BRANCHMERGE

REGRESSION

TESTING HOTFIX

RELEASE PLANNING

SCHEDULED DOWNTIME

REPLAN !!!

RE-ESTIMATE TEST ALL

BRANCH

week 1

week 2

Bug in legacy code found !!Need fix in 1 week

[Release 1]

[Release 2]

Page 24: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Cancel Order

Add Order

Responding to Change

week 1

week 2

Weekly Releases

week 3

week 4

week 5

...

...

Edit Order

P1 Bug ... Have to fix in 1 week !!

Cancel Order

DEV QA

PM

DeliverValue OverTime

View All Orders

Fix Bug

Shuffle priorities like a sir

Page 25: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

One Thing At A Time

Page 26: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Devs

QAs

PM

Work 1

Work 2

Work 3

Page 27: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Devs

QAs

PM

Work 1

Work 2

Work 3

Page 28: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Code Review / Pair Programming

Page 29: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

"given enough eyeballs, all bugs are shallow"

- Linus' Law -

Page 30: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Pair Programming == Real time code review

Does not have to be all the time !!

Page 31: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

● Test Harder?● Test More?● Don't Change Anything?

Better Quality

Page 32: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Agile == Simplify

● No spec mismatch● 100% code coverage● Document always match code● Automated regression test● Less bug inducing activities/useless tasks,

More delivering good quality code.● "Do the right thing, at the right time"

Page 33: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

"The only way to go fast is to go well."

Uncle Bob

Page 34: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Agile66: www.facebook.com/groups/agile66

Thank you !!

Me:www.facebook.com/varokas

Questions?

Page 35: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Please:

Feel free to view and distribute

Use/Modify this slide only under permission from the author

Page 36: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Additional Topics

Page 37: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

More About Agile ??

Agile Thailand 2012

(17/06/2012)http://agilethailand2k12.eventbrite.com/

Page 38: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

TDD == 100% Coverage

Page 39: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Test 1

Test 2

Test 3

Le Code

Code 1

Code 2

Code 3

.....

.....(Le Wild Code appears)

....

....

Y UNO TEST?

Page 40: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Incremental Design

Page 41: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)
Page 42: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)
Page 43: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)
Page 44: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Trunk development?

Page 45: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

You Ain't Gonna Need It

Page 46: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

TDD == Safety Net

Page 47: Achieving Zero Defect with Agile Methods BugDay Bangkok 2012  โดย Varokas Panusuwan (Agile66)

Whole Team == reduced bug