1. The document discusses agile testing practices, including that testing is not a separate phase but is integrated throughout development.
2. Testing is a shared responsibility of all team members, with developers automating unit and integration tests.
3. Automated testing should start on the first day of development using techniques like test-driven development.
2. While we wait for the
session to start, meet your
neighbors and discuss …
AGILE TESTING @fadistephan | @excellaco | excella.com
• Do you currently work on an Agile team?
• Does your team include testers?
• What testing challenges are you facing?
3. • Consultant @ Excella
• Software Development
Practice Lead
• Agile Coach and Trainer
• 20 years of experience in
software development
• Co-organizer of the DC
Scrum User Group
• linkedin.com/in/fadistephan
• @FadiStephan
FADI STEPHAN
AGILE TESTING @fadistephan | @excellaco | excella.com
6. AGILE TESTING @fadistephan | @excellaco | excella.com
Code 1 Code 2
Test 1 Test 2
2 Weeks 2 Weeks 2 Weeks 2 Weeks
Code 3 Code 4
Test 3
7. AGILE TESTING @fadistephan | @excellaco | excella.com
2 Weeks
Requirement
Design
Code
Test
Story 1 Story 1
Story 3
Story 4
Story 6
Story 2
Story 1
Story 2
Story 3
Story 5
Story
Story 4
Story 1
Story 2
Story 3
Story 5
Story 4
Story 1
Story 2
Story 3
Story 5
Story 6
Story 7
Day 2 Day 3 Day 6 Day 7 Day 10
11. “Our highest priority is to satisfy the
customer through early and continuous
delivery of valuable software.”
“Deliver working software frequently,
from a couple of weeks to a couple
of months, with a preference to the
shorter timescale.”
- First and third of the Twelve Principles behind the Agile Manifesto
A LEANER PMO IN THE FEDERAL GOVERNMENTAGILE TESTING @fadistephan | @excellaco | excella.com
15. Brainstorm with your
neighbors …
AGILE TESTING @fadistephan | @excellaco | excella.com
What are all the types of testing that
you currently do or should be doing?
16. Functional Tests
Acceptance Tests
Unit Tests
Integration Test
Component Tests
System Tests
Exploratory Tests
Usability Tests
Performance Tests
Load Tests
Stress Tests
Security Tests
Types of Testing
AGILE TESTING @fadistephan | @excellaco | excella.com
24. WHEN DO WE START
TESTING?
AGILE TESTING @fadistephan | @excellaco | excella.com
25. Task Board
AGILE TESTING @fadistephan | @excellaco | excella.com
To Do In Progress Testing Done
User
Story
User
Story
User
Story
Task Task Task
Task Task
Task Task
Task Task
26. TESTING IS NOT A
PHASE
AGILE TESTING @fadistephan | @excellaco | excella.com
27. Task Board
AGILE TESTING @fadistephan | @excellaco | excella.com
To Do In Progress Done
User
Story
User
Story
User
Story
Task Task Task
Task Task
Task Task
Task Task
28. WHO IS DOING THE
TESTING?
AGILE TESTING @fadistephan | @excellaco | excella.com
35. DO NOT DO
FUNCTIONAL TESTING
VIA THE UI
AGILE TESTING @fadistephan | @excellaco | excella.com
36. Brainstorm with your
neighbors …
AGILE TESTING @fadistephan | @excellaco | excella.com
The vending machine accepts pennies,
nickels, dimes and quarters. The vending
machine always returns change using the
least amount of coins.
1¢ 5¢ 10¢ 25¢
What are the change test scenarios that
you can think of?
37. AGILE TESTING @fadistephan | @excellaco | excella.com
Business Layer
Web Layer
Browser
Data Layer
Code
Code
Code
Code
Database
Code
Code
Code
Code
42. AGILE TESTING @fadistephan | @excellaco | excella.com
As a customer I want to collect books in a shopping
cart So that I can order several books at once.
• Books can be added to the shopping basket
• Books can be removed from the shopping basket
• Shopping basket is initially empty
• The same book can be added multiple times to
the shopping basket
User Story
43. AGILE TESTING @fadistephan | @excellaco | excella.com
• Requirements and tests are just two sides of
the same coin
– You can’t have a user story (requirement) without
acceptance criteria (test)
• Agile testing focuses on melding requirements
and tests into executable specifications
Executable Specifications
44. AGILE TESTING @fadistephan | @excellaco | excella.com
As a customer I want to collect books in a shopping
cart So that I can order several books at once.
• Books can be added to the shopping basket
– Given my shopping basket is empty
– When I add the book “Harry Potter” to my shopping
basket
– Then my shopping basket should contain 1 copy of
“Harry Potter”
Specification by Example
45. AGILE TESTING @fadistephan | @excellaco | excella.com
As a potential customer I want to collect books in a
shopping cart So that I can order several books at once.
• The same book can be added multiple times to the
shopping basket
– Given my shopping basket contains 1 copy of “Harry
Potter”
– When I add the book “Harry Potter” to my shopping
basket
– Then my shopping basket should contain 2 copies of
“Harry Potter”
Specification by Example
46. AGILE TESTING @fadistephan | @excellaco | excella.com
Green Documents
• Use Specification by Example to create “green documents”
– Less Likely to rot
– Not write once documents
– Help people think and collaborate
– Communicate what the product really does
– Become automated acceptance tests
– Become part of regression test suite
47. AGILE TESTING @fadistephan | @excellaco | excella.com
PASS
REFACTOR CODE
FAIL
FAIL
PASS
Automated Acceptance Test Automated Unit Test
User Story
Acceptance Criteria
Back
Acceptance Test Driven
Development (ATDD)
62. AGILE TESTING @fadistephan | @excellaco | excella.com
Exploratory Testing
• A sophisticated, thoughtful approach to
testing without a script
• Enables going beyond the obvious variations
that have already been tested
• Combines learning, test design and test
execution into one test approach
• Applies heuristics and techniques in a
disciplined way
63. AGILE TESTING @fadistephan | @excellaco | excella.com
Session Based Testing
• Time-boxed and structured
• Mission/charter based
• Look for patterns that do not look right
• Divert from the mission if necessary
• Report on your results
65. SUMMARY
1. Testing in not a phase
2. Testing is everyone’s responsibility
3. Testing starts on day 1
4. Do automate all scripted tests
5. Developers are the one’s doing most of the
automation
6. Do use executable documentation
7. Do not automate functional testing via the UI
8. Save most manual testing for usability and
exploratory testing
AGILE TESTING @fadistephan | @excellaco | excella.com