5. 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
10. Story
TDD
Create Login
Page
(1) Email has testEmailFormat()
correct format
(2) Password testPasswordRequired()
required
...
Acceptance
Criteria
Le Spec Le Test
Automate
Tested
#2 fail.
Oh...
setup
wrong
B****
PLEASE !!
QA DEV
11. [Code 1]
[Code 2]
[Code 3]
Req? Code?
Interface
● Specific
● Measurable
● Actionable
T ● Realistic
EN
R EM ● Time-bound
UI
RE
Q ●
Test
https://github.com/varokas/tdd-examples/blob/master/src/test/java/com/huskycode/stack/StackImplTest.java
12. Bug
TDD
? ??
F***
YEAH!! Mismatch Not in Spec
Spec
14. QA... U MAD ??
public billing() {
date = new Date(); //Get Today
if(date == endOfMonth)
sendBillToCustomer();
}
QA
15. 1. Let todayService.getToday == 30
2. runTest --> billing(todayService)
3. SUCCESS !!
Le Test Code
MO K
CK EA
TW Le QA
Le Dev
public billing(dateService) {
date = dateService.getToday();
if(date == endOfMonth)
sendBillToCustomer();
}
17. Bug
???
Exploratory
Testing
Spec Not in Spec
Mismatch
18. Story (Spec) Writing
SPEC
PM #2 Conflict with ...
(1) HAPPY PATH
(2) HAPPY PATH
(3) SAD PATH
DEV (4) EDGE CASE
(5) EXCEPTION
What about ...
QA
19. QA Like a Sir
Agile All The Way
Quality
Up Front
1. PM & Dev & QA Write Story
2. QA Review Acceptance Criteria [ TESTs !!! ]
3. Dev implement Story
4. QA Exploratory Test
DONE !!!
Regression
Test
22. "Responding to Change
over Following a Plan"
- Agile Manifesto #4 -
http://agilemanifesto.org/
23. Following Big Plan...
week 1 Bug in legacy
code found !! H
ANC
week 2 Need fix in 1 BR MER
GE
week
Order Management
ION
System ESS
R EGR G
TIN HOT
TES FIX
RELEASE SCHEDULED
[Release 1] PLANNING DOWNTIME
REPLAN !!!
User Management
System
LL
RE-ESTIMATE S TA H
TE NC
A
[Release 2] BR
Big Gigantic Module
System Thingie
..
..
..
24. Responding to Change Weekly
Releases
week 1 View All Orders
week 2
Add Order
Deliver
Value
week 3
Cancel Order Over
Time
P1 Bug ... Have
to fix in 1 week !!
PM
Fix Shuffle priorities
Bug like a sir
DEV QA
week 4
Cancel Order
week 5
Edit Order
...
...
32. 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"