SlideShare a Scribd company logo
1 of 25
Download to read offline
MN
PM Tutorial
4/29/13 1:00PM

Acceptance Test-driven
Development: Mastering Agile Testing
Presented by:
Nate Oster
CodeSquads, LLC

Brought to you by:

340 Corporate Way, Suite 300, Orange Park, FL 32073
888-268-8770 ∙ 904-278-0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
Nate Oster
An agile player-coach and founder of CodeSquads, Nate Oster helps clients adopt lean and agile
methods. Nate builds high-performance teams that adapt to change, embrace a pragmatic philosophy of
continuous improvement, measure progress with new features, and deliver high-quality software that
delights customers. As a coach, he inspires adopters with hands-on mentoring and simulations that
provide a safe learning environment for new ideas. Nate promotes testing as a serious technical discipline.
While Nate maintains a speaking schedule at software development conferences, he spends most of his
time as a hands-on advisor to software product teams from startups to multinationals. Nate is easily
defeated at all card games. Contact him at NateOster@CodeSquads.com.
ACCEPTANCE TEST-DRIVEN DEVELOPMENT:
MASTERING AGILE TESTING

Nate Oster

NATE OSTER
Agile Player-Coach &
Founder, CodeSquads
Focused on adopting
Lean & Agile methods
Mail: Nate.Oster@codesquads.com
Twitter: nateoster
Voice: 703.930.4100
LEARNING OBJECTIVES
Stop finding bugs after development!
Shift from tests as verification to
tests as specification by learning to test first.
Simulate the feel of ATDD in a non-threatening way
Gain meaningful practice with table-based and
plain-language formats for specifying intent.
Leave empowered to advocate ATDD
with your own teams and managers!

AGENDA

Agile Testing has limits
Simulation: Tests as Verification
Intro to ATDD
Simulation: Tests as Specification
AGENDA
Specification by Example
Simulation: Examples using Tables
Break!
Simulation: Examples using Given-When-Then
Wrap-up: Action Planning, Q&A

THE PROBLEM

Finding defects is expensive
Rework, Scrap, Delays
Feedback speed is limited
SIMULATION:
TESTS AS VERIFICATION

SIMULATION:
TESTS AS VERIFICATION
Teams of 3
“Develop” an image by
punching graph paper
“Test” your solution
by fitting it over pegs
Satisfy your Customer!
RETROSPECTIVE:
TESTS AS VERIFICATION

ACCEPTANCE TESTDRIVEN DEVELOPMENT
Stop testing bugs out.
Start building quality in.
Agile&Tes)ng&Quadrants&
Business-facing Tests

Acceptance Tests

Unit & Component Tests

Automated
Frameworks

Mostly
Manual

Exploratory Tests
Usability Testing
UAT

Performance Testing
Security analysis
“-ility” tests

Tests that critique the product

Tests that support the Team

Mostly
Automated

Specialized
Tools

Technology-facing Tests

“Agile Testing,” Lisa Crispin & Janet Gregory, used with permission (originally Brian Marick, 2006)

The$Test$Automa,on$Pyramid$
Exploratory
/Manual

GUI
More business
facing, realistic

Sn

Acceptance Tests
(API Layer)

FitNesse/
Cuke

Lower-cost
Easier maintenance
Faster feedback

xUnit
Unit & Component Tests

Adapted from Mike Cohn (Automated Test Pyramid) & “Agile Testing”, Lisa Crispin & Janet Gregory..
THE TEST AUTOMATION PYRAMID

Push tests as low as
possible in the pyramid
Have tests focus on
intent, not implementation
Team decides appropriate
level for each test

Anatomy(of(an(Itera-on(
2(–(4(week(-mebox(
Define(

Define(
Build(

Define(
Build(

Build(

Test(

Define(

Test(

Build(

Test(

Define(

Define(
Build(

Define(

Test(

Build(

Test(

Define(

Test(

Build(

Test(

Itera-on(Planning…(
Retrospec-ve(
Itera-on(Demo(

Itera-on(Planning(

Feature(
Team(

Build(

Test(

a(f
(

y…
da
xt(
ne rs(
ou (
2(h ours
(h
2@4

urs

(
urs

ys(

(d a
ew

(h o
ew

a(f

(ho
2@4

(

Nate%Oster,%“The%Agile%Challenge”%Workshop,%CodeSquads%LLC.%
SIMULATION:
TESTS AS SPECIFICATION

SIMULATION:
TESTS AS SPECIFICATION
Start each story by outlining the acceptance criteria
Specify acceptance tests as concrete examples
If we don’t know when we’re done,
then why are we starting?

Hypothesize the top 3 effects of this change
RETROSPECTIVE:
TESTS AS SPECIFICATION
Reflect:
Where your
hypotheses correct?
Why or why not?

Prepare to Share:
Appoint a scribe
Share your results
at your tables
List the top
improvements

SPECIFICATION BY EXAMPLE
“An example would be helpful right about now.”
- Brian Marick
Essential

Incidental

Hat tip: Dale Emery

Agile&Tes)ng&Quadrants&
Business-facing Tests

Acceptance Tests

Unit & Component Tests

Automated
Frameworks

Exploratory Tests
Usability Testing
UAT

Performance Testing
Security analysis
“-ility” tests

Technology-facing Tests

Mostly
Manual

Tests that critique the product

Tests that support the Team

Mostly
Automated

Specialized
Tools

“Agile Testing,” Lisa Crispin & Janet Gregory, used with permission (originally Brian Marick, 2006)
We'refine'the'Product'Backlog'just2in2*me'for'
immediate'goals.'

Vision'&'Roadmap'

Release'Planning'
Itera*on'
Planning'

Next'
Release'

Future'Roadmap…'

Future'Releases'

Current'' (forecast)'
Release'
Current'
Itera*on'

?'
Itera*ons'

Es*mate'
Accuracy'

+/2'

+/2'

+/2'

+/2'

Near'Term:'Fine2Grained'

?'

Long2Term:'Coarse2Grained'

Nate%Oster,%“The%Agile%Challenge”%Workshop,%CodeSquads%LLC.%

The$Test$Automa,on$Pyramid$
Exploratory
/Manual

GUI
More business
facing, realistic

Sn

Acceptance Tests
(API Layer)

FitNesse/
Cuke

Lower-cost
Easier maintenance
Faster feedback

xUnit
Unit & Component Tests

Adapted from Mike Cohn (Automated Test Pyramid) & “Agile Testing”, Lisa Crispin & Janet Gregory..
SOME TOOLS FOR
EXECUTABLE SPECIFICATIONS
TOOL

TECHNOLOGY
SWEET SPOT

FitNesse

Java (native)
.NET (plugin)

Cucumber

Ruby (native)
Java (CucumberJVM)
.NET (plugin)

SpecFlow

.NET (native)

SIMULATION:
SPECIFICATION BY EXAMPLE
USING TABLES
TABLE-BASED
SPECIFICATIONS
(Re)-build a brokerage
pricing engine
Start with the simplest
scenarios using
realistic examples
Be customer-focused!

Pricing.Stocks
Trade Source
Internet
Internet
IVR
Broker

Ticker Buy/Sell
LXK
Buy
LXK
Sell

Order Type
Limit
Limit

Commission?
$9.99
$9.99
Pricing.Stocks
Trade Source
Internet
Internet
IVR

Ticker Buy/Sell
LXK
Buy
LXK
Sell
LXK
Buy

Order Type
Limit
Limit
Market

Commission?
$9.99
$9.99
$34.99

[expected “$34.99”, actual “$9.99”]

Pricing.MutualFunds.Buy
Test Funds
Ticker
MNTF
MNLD
MFEE

Fund Type
NTF
No-Load
Load

Load %
N/A
N/A
4% on Buy
Pricing. MutualFunds. NTF. ShortTermRedemption

No Transaction Fee
Mutual Funds
180 days or less
No commission

Ticker
MNTF
MNLD
MFEE

Fund Type
NTF
No-Load
Load

Load %
N/A
N/A
4% on Buy

$49.99 fee

WHAT IF I BUY TWICE
IN 180 DAYS?
TABLES MAY NOT BE EXPRESSIVE
ENOUGH FOR SOME SCENARIOS
What if I buy the same fund
more than once in 180 days?
What if I sell when only part
of the balance is 180 days old?

“An example would be helpful right about now.”
- Brian Marick

SIMULATION:
SPECIFICATION BY EXAMPLE
USING TEST LINGOS*
*Credit to Patrick Wilson-Welsh and Dawn Cannon
for coining the term!
LINGO-BASED
SPECIFICATIONS
Given - When - Then
GIVEN - Preconditions
WHEN - Action
THEN - Result / Postcondition

THINKING WITH
GIVEN-WHEN-THEN
Pricing. MutualFunds. Buy
Scenario: Buy a no-load fund.
Given I do not own fund MNLD
When I buy $10,000 in fund MNLD
then the commission is $49.99
and the fee is $0.00.
When I buy fund MNLD,
then the commission is $49.99.
Pricing. MutualFunds.Buy
Scenario: Buy a mutual fund.

Test Funds
Ticker
MNTF
MNLD
MFEE

Fund Type
NTF
No-Load
Load

Load %
N/A
N/A
4% on Buy

GIVEN-WHEN-THEN CAN BE MORE
EXPRESSIVE THAN TABLES
What if I buy the same fund
more than once in 180 days?
What if I sell when only part
of the balance is 180 days old?

“An example would be helpful right about now.”
- Brian Marick
Pricing. MutualFunds. NTF. ShortTermRedemption

No Transaction Fee
Mutual Funds
180 days or less
No commission

Ticker
MNTF
MNLD
MFEE

Fund Type
NTF
No-Load
Load

Load %
N/A
N/A
4% on Buy

$49.99 fee

Mutual Fund Short Term Redemptions
No transaction fee (NTF) funds held 180 days or less are
subject to a Short Term Redemption Fee of $49.99.
Scenario: Part of sale held less than 180 days charges
short term redemption fee.
Given I own 100 shares of MNTF for 181 days
and I own 100 shares of MNTF for 179 days
When I sell 101 shares of MNTF
Then I am charged a short term redemption fee of $49.99.
Scenario: ...
Scenario: Part of sale held less than 180 days charges
short term redemption fee.
Given I own MNTF
|shares| days held |
| 100 | 181 |
| 100 | 179 |
When I sell 101 shares
Then I am charged a short term redemption fee.

NEW FEATURE:
CONCIERGE LEVEL PRICING
Concierge Level pricing is a trial promotion.
It offers selected customers free internet trades if their
total assets exceed $250,000 or if a trade is for more
than $10,000.
Brainstorm acceptance tests for this feature using
tables, given-when-then, or both. Your choice!
Feature: Concierge pricing promotion.
Background:
Given the concierge pricing promotion is active.
Scenario Outline: Buying in a selected account.
Given a selected account with a balance of <total assets>,
when I buy <trade amount> of <ticker>
using source <trade source>,
then the commission is <fee>.
Examples:
| total assets | trade amount | ticker | trade source | fee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

REVIEW
WRAP-UP: CREATE AN
ACTION PLAN
What outcomes could ATDD improve
on your Feature Team?
What impediments to adopting ATDD do you
anticipate on your team?
Is there evidence these impediments can be
overcome?
What small experiments will confirm or disprove these
opportunities with the least possible risk?

EXPLORING FURTHER
Learn More:

Experiment:

Specification by Example
(Gojko Adzic)

“Pull” in support through
your Team’s retrospectives

The Cucumber Book
(Aslak Hellesoy)

People & improvement
Feedback Interactions ideas
over Processes & Tools!

Agile Testing

(Lisa Crispin & Janet Gregory)
NATE OSTER
Agile Player-Coach &
Founder, CodeSquads
Focused on adopting
Lean & Agile methods
Mail: nate.oster@codesquads.com
Twitter: nateoster
Voice: 703.930.4100

More Related Content

Viewers also liked

Presenting Test Results with Clarity and Confidence
Presenting Test Results with Clarity and ConfidencePresenting Test Results with Clarity and Confidence
Presenting Test Results with Clarity and ConfidenceTechWell
 
Find Requirements Defects to Build Better Software
Find Requirements Defects to Build Better SoftwareFind Requirements Defects to Build Better Software
Find Requirements Defects to Build Better SoftwareTechWell
 
Usability Testing: Personas, Scenarios, Use Cases, and Test Cases
Usability Testing: Personas, Scenarios, Use Cases, and Test CasesUsability Testing: Personas, Scenarios, Use Cases, and Test Cases
Usability Testing: Personas, Scenarios, Use Cases, and Test CasesTechWell
 
Leading Change―Even If You’re Not in Charge
Leading Change―Even If You’re Not in ChargeLeading Change―Even If You’re Not in Charge
Leading Change―Even If You’re Not in ChargeTechWell
 
Bad Testing Metrics—and What To Do About Them
Bad Testing Metrics—and What To Do About ThemBad Testing Metrics—and What To Do About Them
Bad Testing Metrics—and What To Do About ThemTechWell
 
Sprint Reviews that Attract, Engage, and Enlighten Stakeholders
Sprint Reviews that Attract, Engage, and Enlighten StakeholdersSprint Reviews that Attract, Engage, and Enlighten Stakeholders
Sprint Reviews that Attract, Engage, and Enlighten StakeholdersTechWell
 
Agile Estimation and Planning: Scrum, Kanban, and Beyond
Agile Estimation and Planning: Scrum, Kanban, and BeyondAgile Estimation and Planning: Scrum, Kanban, and Beyond
Agile Estimation and Planning: Scrum, Kanban, and BeyondTechWell
 
Agile Project Failures: Root Causes and Corrective Actions
Agile Project Failures: Root Causes and Corrective ActionsAgile Project Failures: Root Causes and Corrective Actions
Agile Project Failures: Root Causes and Corrective ActionsTechWell
 
Keynote: Lightning Strikes the Keynotes
Keynote: Lightning Strikes the KeynotesKeynote: Lightning Strikes the Keynotes
Keynote: Lightning Strikes the KeynotesTechWell
 
Continuous Delivery at Ancestry.com
Continuous Delivery at Ancestry.comContinuous Delivery at Ancestry.com
Continuous Delivery at Ancestry.comTechWell
 

Viewers also liked (10)

Presenting Test Results with Clarity and Confidence
Presenting Test Results with Clarity and ConfidencePresenting Test Results with Clarity and Confidence
Presenting Test Results with Clarity and Confidence
 
Find Requirements Defects to Build Better Software
Find Requirements Defects to Build Better SoftwareFind Requirements Defects to Build Better Software
Find Requirements Defects to Build Better Software
 
Usability Testing: Personas, Scenarios, Use Cases, and Test Cases
Usability Testing: Personas, Scenarios, Use Cases, and Test CasesUsability Testing: Personas, Scenarios, Use Cases, and Test Cases
Usability Testing: Personas, Scenarios, Use Cases, and Test Cases
 
Leading Change―Even If You’re Not in Charge
Leading Change―Even If You’re Not in ChargeLeading Change―Even If You’re Not in Charge
Leading Change―Even If You’re Not in Charge
 
Bad Testing Metrics—and What To Do About Them
Bad Testing Metrics—and What To Do About ThemBad Testing Metrics—and What To Do About Them
Bad Testing Metrics—and What To Do About Them
 
Sprint Reviews that Attract, Engage, and Enlighten Stakeholders
Sprint Reviews that Attract, Engage, and Enlighten StakeholdersSprint Reviews that Attract, Engage, and Enlighten Stakeholders
Sprint Reviews that Attract, Engage, and Enlighten Stakeholders
 
Agile Estimation and Planning: Scrum, Kanban, and Beyond
Agile Estimation and Planning: Scrum, Kanban, and BeyondAgile Estimation and Planning: Scrum, Kanban, and Beyond
Agile Estimation and Planning: Scrum, Kanban, and Beyond
 
Agile Project Failures: Root Causes and Corrective Actions
Agile Project Failures: Root Causes and Corrective ActionsAgile Project Failures: Root Causes and Corrective Actions
Agile Project Failures: Root Causes and Corrective Actions
 
Keynote: Lightning Strikes the Keynotes
Keynote: Lightning Strikes the KeynotesKeynote: Lightning Strikes the Keynotes
Keynote: Lightning Strikes the Keynotes
 
Continuous Delivery at Ancestry.com
Continuous Delivery at Ancestry.comContinuous Delivery at Ancestry.com
Continuous Delivery at Ancestry.com
 

Similar to Acceptance Test-driven Development: Mastering Agile Testing

Acceptance Test-Driven Development: Mastering Agile Testing
Acceptance Test-Driven Development: Mastering Agile TestingAcceptance Test-Driven Development: Mastering Agile Testing
Acceptance Test-Driven Development: Mastering Agile TestingTechWell
 
Optimizely x Live Demo
Optimizely x Live DemoOptimizely x Live Demo
Optimizely x Live DemoOptimizely
 
Building the "right" regression suite using Behavior Driven Testing (BDT)
Building the "right" regression suite using Behavior Driven Testing (BDT)Building the "right" regression suite using Behavior Driven Testing (BDT)
Building the "right" regression suite using Behavior Driven Testing (BDT)Anand Bagmar
 
MVP Design Hacks
MVP Design HacksMVP Design Hacks
MVP Design HacksNaresh Jain
 
Failure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature DeliveryFailure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature DeliveryOptimizely
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationTechWell
 
Continuous Delivery: The One Question You Must Answer
Continuous Delivery: The One Question You Must AnswerContinuous Delivery: The One Question You Must Answer
Continuous Delivery: The One Question You Must AnswerDevOps.com
 
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingDimitri Ponomareff
 
Build the Right Regression Suite with Behavior-Driven Testing
Build the Right Regression Suite with Behavior-Driven TestingBuild the Right Regression Suite with Behavior-Driven Testing
Build the Right Regression Suite with Behavior-Driven TestingTechWell
 
Smart Combinatorial Testing
Smart Combinatorial TestingSmart Combinatorial Testing
Smart Combinatorial TestingTechWell
 
Outcome-Driven Product Backlog Management by Mike Dwyer - Agile Maine Day 2016
Outcome-Driven Product Backlog Management by Mike Dwyer - Agile Maine Day 2016Outcome-Driven Product Backlog Management by Mike Dwyer - Agile Maine Day 2016
Outcome-Driven Product Backlog Management by Mike Dwyer - Agile Maine Day 2016agilemaine
 
Metrics and Analytics, Guest Lecture, UCLA
Metrics and Analytics, Guest Lecture, UCLAMetrics and Analytics, Guest Lecture, UCLA
Metrics and Analytics, Guest Lecture, UCLADarren Levy
 
Flash Series: Using Ad Testing Data To Set Up Foolproof Tests
Flash Series: Using Ad Testing Data To Set Up Foolproof TestsFlash Series: Using Ad Testing Data To Set Up Foolproof Tests
Flash Series: Using Ad Testing Data To Set Up Foolproof TestsHanapin Marketing
 
Test Everything: TrustRadius Delivers Customer Value with Experimentation
Test Everything: TrustRadius Delivers Customer Value with ExperimentationTest Everything: TrustRadius Delivers Customer Value with Experimentation
Test Everything: TrustRadius Delivers Customer Value with ExperimentationOptimizely
 
Inflectra Partner Program 2021
Inflectra Partner Program 2021Inflectra Partner Program 2021
Inflectra Partner Program 2021Inflectra
 
Test Equipment Rental
Test Equipment RentalTest Equipment Rental
Test Equipment Rentalhenharas
 
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghWorkshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghAgile ME
 
Product development
Product developmentProduct development
Product developmentAllan Tan
 

Similar to Acceptance Test-driven Development: Mastering Agile Testing (20)

Acceptance Test-Driven Development: Mastering Agile Testing
Acceptance Test-Driven Development: Mastering Agile TestingAcceptance Test-Driven Development: Mastering Agile Testing
Acceptance Test-Driven Development: Mastering Agile Testing
 
Optimizely x Live Demo
Optimizely x Live DemoOptimizely x Live Demo
Optimizely x Live Demo
 
Building the "right" regression suite using Behavior Driven Testing (BDT)
Building the "right" regression suite using Behavior Driven Testing (BDT)Building the "right" regression suite using Behavior Driven Testing (BDT)
Building the "right" regression suite using Behavior Driven Testing (BDT)
 
MVP Design Hacks
MVP Design HacksMVP Design Hacks
MVP Design Hacks
 
Failure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature DeliveryFailure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature Delivery
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber Implementation
 
Continuous Delivery: The One Question You Must Answer
Continuous Delivery: The One Question You Must AnswerContinuous Delivery: The One Question You Must Answer
Continuous Delivery: The One Question You Must Answer
 
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated Testing
 
Build the Right Regression Suite with Behavior-Driven Testing
Build the Right Regression Suite with Behavior-Driven TestingBuild the Right Regression Suite with Behavior-Driven Testing
Build the Right Regression Suite with Behavior-Driven Testing
 
Machine Learning For Stock Broking
Machine Learning For Stock BrokingMachine Learning For Stock Broking
Machine Learning For Stock Broking
 
Smart Combinatorial Testing
Smart Combinatorial TestingSmart Combinatorial Testing
Smart Combinatorial Testing
 
Outcome-Driven Product Backlog Management by Mike Dwyer - Agile Maine Day 2016
Outcome-Driven Product Backlog Management by Mike Dwyer - Agile Maine Day 2016Outcome-Driven Product Backlog Management by Mike Dwyer - Agile Maine Day 2016
Outcome-Driven Product Backlog Management by Mike Dwyer - Agile Maine Day 2016
 
Metrics and Analytics, Guest Lecture, UCLA
Metrics and Analytics, Guest Lecture, UCLAMetrics and Analytics, Guest Lecture, UCLA
Metrics and Analytics, Guest Lecture, UCLA
 
Flash Series: Using Ad Testing Data To Set Up Foolproof Tests
Flash Series: Using Ad Testing Data To Set Up Foolproof TestsFlash Series: Using Ad Testing Data To Set Up Foolproof Tests
Flash Series: Using Ad Testing Data To Set Up Foolproof Tests
 
Test Everything: TrustRadius Delivers Customer Value with Experimentation
Test Everything: TrustRadius Delivers Customer Value with ExperimentationTest Everything: TrustRadius Delivers Customer Value with Experimentation
Test Everything: TrustRadius Delivers Customer Value with Experimentation
 
Inflectra Partner Program 2021
Inflectra Partner Program 2021Inflectra Partner Program 2021
Inflectra Partner Program 2021
 
Test Equipment Rental
Test Equipment RentalTest Equipment Rental
Test Equipment Rental
 
Testers in an agile world
Testers in an agile worldTesters in an agile world
Testers in an agile world
 
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghWorkshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
 
Product development
Product developmentProduct development
Product development
 

More from TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and RecoveringTechWell
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization TechWell
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTechWell
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartTechWell
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyTechWell
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityTechWell
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyTechWell
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTechWell
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipTechWell
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsTechWell
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GameTechWell
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsTechWell
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationTechWell
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessTechWell
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateTechWell
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessTechWell
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTechWell
 

More from TechWell (20)

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
 
Ma 15
Ma 15Ma 15
Ma 15
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
 

Recently uploaded

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 

Acceptance Test-driven Development: Mastering Agile Testing

  • 1. MN PM Tutorial 4/29/13 1:00PM Acceptance Test-driven Development: Mastering Agile Testing Presented by: Nate Oster CodeSquads, LLC Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888-268-8770 ∙ 904-278-0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
  • 2. Nate Oster An agile player-coach and founder of CodeSquads, Nate Oster helps clients adopt lean and agile methods. Nate builds high-performance teams that adapt to change, embrace a pragmatic philosophy of continuous improvement, measure progress with new features, and deliver high-quality software that delights customers. As a coach, he inspires adopters with hands-on mentoring and simulations that provide a safe learning environment for new ideas. Nate promotes testing as a serious technical discipline. While Nate maintains a speaking schedule at software development conferences, he spends most of his time as a hands-on advisor to software product teams from startups to multinationals. Nate is easily defeated at all card games. Contact him at NateOster@CodeSquads.com.
  • 3. ACCEPTANCE TEST-DRIVEN DEVELOPMENT: MASTERING AGILE TESTING Nate Oster NATE OSTER Agile Player-Coach & Founder, CodeSquads Focused on adopting Lean & Agile methods Mail: Nate.Oster@codesquads.com Twitter: nateoster Voice: 703.930.4100
  • 4. LEARNING OBJECTIVES Stop finding bugs after development! Shift from tests as verification to tests as specification by learning to test first. Simulate the feel of ATDD in a non-threatening way Gain meaningful practice with table-based and plain-language formats for specifying intent. Leave empowered to advocate ATDD with your own teams and managers! AGENDA Agile Testing has limits Simulation: Tests as Verification Intro to ATDD Simulation: Tests as Specification
  • 5. AGENDA Specification by Example Simulation: Examples using Tables Break! Simulation: Examples using Given-When-Then Wrap-up: Action Planning, Q&A THE PROBLEM Finding defects is expensive Rework, Scrap, Delays Feedback speed is limited
  • 6. SIMULATION: TESTS AS VERIFICATION SIMULATION: TESTS AS VERIFICATION Teams of 3 “Develop” an image by punching graph paper “Test” your solution by fitting it over pegs Satisfy your Customer!
  • 7. RETROSPECTIVE: TESTS AS VERIFICATION ACCEPTANCE TESTDRIVEN DEVELOPMENT Stop testing bugs out. Start building quality in.
  • 8. Agile&Tes)ng&Quadrants& Business-facing Tests Acceptance Tests Unit & Component Tests Automated Frameworks Mostly Manual Exploratory Tests Usability Testing UAT Performance Testing Security analysis “-ility” tests Tests that critique the product Tests that support the Team Mostly Automated Specialized Tools Technology-facing Tests “Agile Testing,” Lisa Crispin & Janet Gregory, used with permission (originally Brian Marick, 2006) The$Test$Automa,on$Pyramid$ Exploratory /Manual GUI More business facing, realistic Sn Acceptance Tests (API Layer) FitNesse/ Cuke Lower-cost Easier maintenance Faster feedback xUnit Unit & Component Tests Adapted from Mike Cohn (Automated Test Pyramid) & “Agile Testing”, Lisa Crispin & Janet Gregory..
  • 9. THE TEST AUTOMATION PYRAMID Push tests as low as possible in the pyramid Have tests focus on intent, not implementation Team decides appropriate level for each test Anatomy(of(an(Itera-on( 2(–(4(week(-mebox( Define( Define( Build( Define( Build( Build( Test( Define( Test( Build( Test( Define( Define( Build( Define( Test( Build( Test( Define( Test( Build( Test( Itera-on(Planning…( Retrospec-ve( Itera-on(Demo( Itera-on(Planning( Feature( Team( Build( Test( a(f ( y… da xt( ne rs( ou ( 2(h ours (h 2@4 urs ( urs ys( (d a ew (h o ew a(f (ho 2@4 ( Nate%Oster,%“The%Agile%Challenge”%Workshop,%CodeSquads%LLC.%
  • 10. SIMULATION: TESTS AS SPECIFICATION SIMULATION: TESTS AS SPECIFICATION Start each story by outlining the acceptance criteria Specify acceptance tests as concrete examples If we don’t know when we’re done, then why are we starting? Hypothesize the top 3 effects of this change
  • 11. RETROSPECTIVE: TESTS AS SPECIFICATION Reflect: Where your hypotheses correct? Why or why not? Prepare to Share: Appoint a scribe Share your results at your tables List the top improvements SPECIFICATION BY EXAMPLE “An example would be helpful right about now.” - Brian Marick
  • 12. Essential Incidental Hat tip: Dale Emery Agile&Tes)ng&Quadrants& Business-facing Tests Acceptance Tests Unit & Component Tests Automated Frameworks Exploratory Tests Usability Testing UAT Performance Testing Security analysis “-ility” tests Technology-facing Tests Mostly Manual Tests that critique the product Tests that support the Team Mostly Automated Specialized Tools “Agile Testing,” Lisa Crispin & Janet Gregory, used with permission (originally Brian Marick, 2006)
  • 14. SOME TOOLS FOR EXECUTABLE SPECIFICATIONS TOOL TECHNOLOGY SWEET SPOT FitNesse Java (native) .NET (plugin) Cucumber Ruby (native) Java (CucumberJVM) .NET (plugin) SpecFlow .NET (native) SIMULATION: SPECIFICATION BY EXAMPLE USING TABLES
  • 15. TABLE-BASED SPECIFICATIONS (Re)-build a brokerage pricing engine Start with the simplest scenarios using realistic examples Be customer-focused! Pricing.Stocks Trade Source Internet Internet IVR Broker Ticker Buy/Sell LXK Buy LXK Sell Order Type Limit Limit Commission? $9.99 $9.99
  • 16. Pricing.Stocks Trade Source Internet Internet IVR Ticker Buy/Sell LXK Buy LXK Sell LXK Buy Order Type Limit Limit Market Commission? $9.99 $9.99 $34.99 [expected “$34.99”, actual “$9.99”] Pricing.MutualFunds.Buy Test Funds Ticker MNTF MNLD MFEE Fund Type NTF No-Load Load Load % N/A N/A 4% on Buy
  • 17. Pricing. MutualFunds. NTF. ShortTermRedemption No Transaction Fee Mutual Funds 180 days or less No commission Ticker MNTF MNLD MFEE Fund Type NTF No-Load Load Load % N/A N/A 4% on Buy $49.99 fee WHAT IF I BUY TWICE IN 180 DAYS?
  • 18. TABLES MAY NOT BE EXPRESSIVE ENOUGH FOR SOME SCENARIOS What if I buy the same fund more than once in 180 days? What if I sell when only part of the balance is 180 days old? “An example would be helpful right about now.” - Brian Marick SIMULATION: SPECIFICATION BY EXAMPLE USING TEST LINGOS* *Credit to Patrick Wilson-Welsh and Dawn Cannon for coining the term!
  • 19. LINGO-BASED SPECIFICATIONS Given - When - Then GIVEN - Preconditions WHEN - Action THEN - Result / Postcondition THINKING WITH GIVEN-WHEN-THEN Pricing. MutualFunds. Buy Scenario: Buy a no-load fund. Given I do not own fund MNLD When I buy $10,000 in fund MNLD then the commission is $49.99 and the fee is $0.00. When I buy fund MNLD, then the commission is $49.99.
  • 20. Pricing. MutualFunds.Buy Scenario: Buy a mutual fund. Test Funds Ticker MNTF MNLD MFEE Fund Type NTF No-Load Load Load % N/A N/A 4% on Buy GIVEN-WHEN-THEN CAN BE MORE EXPRESSIVE THAN TABLES What if I buy the same fund more than once in 180 days? What if I sell when only part of the balance is 180 days old? “An example would be helpful right about now.” - Brian Marick
  • 21. Pricing. MutualFunds. NTF. ShortTermRedemption No Transaction Fee Mutual Funds 180 days or less No commission Ticker MNTF MNLD MFEE Fund Type NTF No-Load Load Load % N/A N/A 4% on Buy $49.99 fee Mutual Fund Short Term Redemptions No transaction fee (NTF) funds held 180 days or less are subject to a Short Term Redemption Fee of $49.99. Scenario: Part of sale held less than 180 days charges short term redemption fee. Given I own 100 shares of MNTF for 181 days and I own 100 shares of MNTF for 179 days When I sell 101 shares of MNTF Then I am charged a short term redemption fee of $49.99. Scenario: ...
  • 22. Scenario: Part of sale held less than 180 days charges short term redemption fee. Given I own MNTF |shares| days held | | 100 | 181 | | 100 | 179 | When I sell 101 shares Then I am charged a short term redemption fee. NEW FEATURE: CONCIERGE LEVEL PRICING Concierge Level pricing is a trial promotion. It offers selected customers free internet trades if their total assets exceed $250,000 or if a trade is for more than $10,000. Brainstorm acceptance tests for this feature using tables, given-when-then, or both. Your choice!
  • 23. Feature: Concierge pricing promotion. Background: Given the concierge pricing promotion is active. Scenario Outline: Buying in a selected account. Given a selected account with a balance of <total assets>, when I buy <trade amount> of <ticker> using source <trade source>, then the commission is <fee>. Examples: | total assets | trade amount | ticker | trade source | fee | | | | | | | | | | | | | | | | | | | REVIEW
  • 24. WRAP-UP: CREATE AN ACTION PLAN What outcomes could ATDD improve on your Feature Team? What impediments to adopting ATDD do you anticipate on your team? Is there evidence these impediments can be overcome? What small experiments will confirm or disprove these opportunities with the least possible risk? EXPLORING FURTHER Learn More: Experiment: Specification by Example (Gojko Adzic) “Pull” in support through your Team’s retrospectives The Cucumber Book (Aslak Hellesoy) People & improvement Feedback Interactions ideas over Processes & Tools! Agile Testing (Lisa Crispin & Janet Gregory)
  • 25. NATE OSTER Agile Player-Coach & Founder, CodeSquads Focused on adopting Lean & Agile methods Mail: nate.oster@codesquads.com Twitter: nateoster Voice: 703.930.4100