SlideShare a Scribd company logo
1 of 28
Download to read offline
TDD vs. ATDD
What, Why, Which, When & Where?
@daniel_davis
- Business Improvement Consultant, Agile Practitioner

- Innovator, Life Hacker, Maker

- Professional Snowboard Instructor
TDD vs. ATDD
A little about me…
Discussion over Presentation
Principles over Prescription
Focus For The Session -
TDD vs. ATDD
Seeding A Question -
TDD vs. ATDD
Would you prefer to…
build the thing right
or build the right thing?
Before we get into the “Which, When & Where” first
lets cover the high level “What & Why” of each to
understand the base differences.
TDD vs. ATDD
What -
TDD or Test Driven Development is a software
development approach where a developer writes a
test before writing any code. The test is then be used
to build only the code needed to pass it. Once the
new code passes the test, it can then be refactored to
an acceptable standard as needed.
TDD vs. ATDD
What -
TDD ensures that the source code is thoroughly
unit tested and helps lead to modularized, flexible
and extensible code. By focusing on writing only
the code necessary to pass the tests, we are
inherently making the design simple and clear.
TDD vs. ATDD
What -
ATDD or Acceptance Test Driven Development is
also a software development approach where the
tests are written before the code. However, these
tests are generally written and supported by the
testers or stakeholders.
TDD vs. ATDD
What -
ATDD ensures that the folks creating the system
(i.e., the developers) identify the appropriate code
to write, that is, code that reflects the outcomes
desired. It is meant to ensure that the business
value of the system is being met.
TDD vs. ATDD
What -
BDD or Behavior Driven Development has a very
similar context to ATDD, however these tests tend
to be driven out by the developers themselves. For
today’s talk we’ll consider them one and the same,
as they both intend to achieve the same goal.
TDD vs. ATDD
What -
The shared practice of - Red - Green - Refactor
TDD vs. ATDD
Visualizing Them -
- Using the blank side of the 3x5 card in front of you as an example.
- Spend a couple minutes brainstorming ways that the following
requirement could be TDD’d.
- “I need parallel lines drawn on one side of a 3x5 card.”
- Discuss ideas as a group.
- Assert the card orientation.
- Assert first line direction.
- Assert first line length.
- Assert second line length.
- Assert second lines distance away from the first.
- Assert the color of the lines.
- etc…
- Flip the card over.
- Discuss how the ruled side of the card has already been ATDD’d for us.
TDD vs. ATDD
Experimentation Exercise -
Scope Creep.
From what you ask…
TDD vs. ATDD
Why -
PROTECTION!
Anything and Everything!
Changing Requirements.
Missed Requirements.
& most importantly… YOURSELF!
Goldplating.
- To help us build in small, incremental and
iterative steps.
- Supply us with really fast feedback and a more
direct path to our failure points. (Think 2 lines
over 2000)
- Provide us with a security blanket, protecting us
from changes in the future.
- Supply us with living documentation that
changes as the system does.
TDD vs. ATDD
Why -
With TDD the purpose is to assert that the
product, system or process is being built
correctly. It’s testing the independent small
units or objects to make sure each works as
intended.
It depends on your testing purpose…
TDD vs. ATDD
Which, When & Where -
With ATDD however, the intent is broader, as the
purpose is to assert that the product, system or
process being built is actually correct. It’s a
mechanism to facilitate the conversation
between developers and product owners about
the requirements and validate the expected
business value is met.
It depends on your testing purpose…
TDD vs. ATDD
Which, When & Where -
ATDD is often considered a superset of TDD, not
a replacement for it. If your goals are only to
assert the validity of the independent small units
or objects then TDD should suffice.
It also depends on your testing goals…
TDD vs. ATDD
Which, When & Where -
Yet, if your goals are to also focus on the
expectations of your users/stakeholders, then
ATDD should be used preceding TDD. You’re no
longer starting with small unit tests, but rather
you’re documenting executable specifications
that prove out the product, system or process.
TDD vs. ATDD
Which, When & Where -
It also depends on your testing goals…
x
TDD Pro TDD Con ATDD Pro ATDD Con
Complex X X
Verbose X X
Reuse/Inherit X X
Plain Text X X
Maintainable X X
Creates Focus X X
TDD vs. ATDD
Advantages & Dis-Avantages
Tools used for TDD…

- Unit Frameworks

- JUnit (Java)

- xUnit or nUnit (C, .Net, etc…)
Tools used for ATDD…

- Cucumber, SpecFlow, JBehave, Fit/FitNesse
Tools used for either/both…

- RSpec (Ruby)

- Jasmine (JavaScript)

- Selenium (Web)
TDD vs. ATDD
A Few Common Tools
Code Katas -
Helps hone skills through practice and repetition.
- cyber-dojo.org
- codekata.com
- Robert C. Martin 

(Uncle Bob)

Clean Coder Series
TDD vs. ATDD
Ways To Learn & Support
TDD vs. ATDD
Ways To Learn & Support
Pair Programming -
Drives shared knowledge and collective understanding.
Allows for focused learning in collaboration with an
instant feedback loop.
- Across the experience:
• Expert with Expert
• Expert with Novice
• Novice with Novice
- Amongst the team:
• Business with Development
• Development with Testing
• Testing with Business
TDD vs. ATDD
Ways To Learn & Support
Online Training -
skillshare - Master real-world skills with
hands-on projects. Hundreds of online
classes to chose from.
pluralsight - A rich library of full-length
online training courses for developers
and IT pros, created by the best authors
in the industry.
Local Training -
Ann Arbor Code Craftsman Saturdays (CodeRetreats) - Every month, on
the 2nd Saturday, software devs of every level get together for a full day
of pairing, test driving, food, and fun. No presentations, no vendors,
and no recruiters, just software craftspeople learning from each other.
Your Local User Groups ????
• A simple view towards the difference could be
that ATDD is looking at it from “Outside In”
where as TDD is looking at it from the “Inside
Out”.
• With respect to aspects like…
- Code Craftsmanship

- Test Coverage

- Cyclomatic Complexity

- etc…
it’s my belief that a high value is usually put on
TDD, but we usually lack in what ATDD offers.
TDD vs. ATDD
Noteworthy Points
Would you prefer to…
build the thing right
or build the right thing?
Both of course!
It’s just knowing which to use where and when.
ATDD
TDD
So to answer our original seeded question…
TDD vs. ATDD
Answering The Question
Q & A
TDD vs. ATDD
Business Solutions Consultancy

For those who value... value.
Clients collaborate with us to solve
business problems.
The first step is figuring out how we can
either make or save them money.
BUSINESS AGILITY
Thank you!
Daniel Davis
ddavis@pillartechnology.com
daniel.davis.tech@gmail.com
@daniel_davis
linkedin.com/in/davisdaniel
TDD vs. ATDD

More Related Content

What's hot

Implementing Kanban to Improve your Workflow
Implementing Kanban to Improve your WorkflowImplementing Kanban to Improve your Workflow
Implementing Kanban to Improve your WorkflowJennifer Davis
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven DevelopmentMike Douglas
 
CI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality EngineeringCI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality EngineeringSushma
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projectssriks7
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test AutomationNaveen Kumar Singh
 
Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Kari Kakkonen
 
Agile Testing Strategy
Agile Testing StrategyAgile Testing Strategy
Agile Testing Strategytharindakasun
 
Agile Transformation Defined
Agile Transformation DefinedAgile Transformation Defined
Agile Transformation DefinedChristoph Mathis
 
Introduction to Kanban boards
Introduction to Kanban boardsIntroduction to Kanban boards
Introduction to Kanban boardsProofHub
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentTung Nguyen Thanh
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing processGloria Stoilova
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterDeclan Whelan
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010guest5639fa9
 

What's hot (20)

Implementing Kanban to Improve your Workflow
Implementing Kanban to Improve your WorkflowImplementing Kanban to Improve your Workflow
Implementing Kanban to Improve your Workflow
 
Kanban
Kanban Kanban
Kanban
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
CI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality EngineeringCI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality Engineering
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projects
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
 
Kanban Workshop
Kanban WorkshopKanban Workshop
Kanban Workshop
 
Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle
 
Meetup #4 Testing Manifesto
Meetup #4 Testing ManifestoMeetup #4 Testing Manifesto
Meetup #4 Testing Manifesto
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
 
Agile
AgileAgile
Agile
 
Agile Testing Strategy
Agile Testing StrategyAgile Testing Strategy
Agile Testing Strategy
 
Agile Transformation Defined
Agile Transformation DefinedAgile Transformation Defined
Agile Transformation Defined
 
The shift left strategy
The shift left strategy The shift left strategy
The shift left strategy
 
Introduction to Kanban boards
Introduction to Kanban boardsIntroduction to Kanban boards
Introduction to Kanban boards
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing process
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 

Viewers also liked

ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in PracticeSteven Mak
 
ATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven DevelopmentATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven DevelopmentNaresh Jain
 
Agile Test Driven Development
Agile Test Driven DevelopmentAgile Test Driven Development
Agile Test Driven DevelopmentViraf Karai
 
Introduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentIntroduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentElisabeth Hendrickson
 
Sprint3r tpse2014-atdd-with-robot-framework
Sprint3r tpse2014-atdd-with-robot-frameworkSprint3r tpse2014-atdd-with-robot-framework
Sprint3r tpse2014-atdd-with-robot-frameworkThawatchai Jong
 
Storytelling: Discover the Big Picture for Agile Efforts Webinar - Tom Cagley...
Storytelling: Discover the Big Picture for Agile Efforts Webinar - Tom Cagley...Storytelling: Discover the Big Picture for Agile Efforts Webinar - Tom Cagley...
Storytelling: Discover the Big Picture for Agile Efforts Webinar - Tom Cagley...XBOSoft
 
Getting Comfortable with BDD
Getting Comfortable with BDDGetting Comfortable with BDD
Getting Comfortable with BDDAlex Sharp
 
Unit Testing, TDD and ATDD
Unit Testing, TDD and ATDDUnit Testing, TDD and ATDD
Unit Testing, TDD and ATDDArnon Axelrod
 
Taming robotframework
Taming robotframeworkTaming robotframework
Taming robotframework泰 増田
 
The WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecThe WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecBen Mabey
 
BDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right SoftwareBDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right SoftwareJohn Ferguson Smart Limited
 
Unit testing and TDD
Unit testing and TDDUnit testing and TDD
Unit testing and TDDDavid Bottiau
 

Viewers also liked (16)

ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in Practice
 
ATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven DevelopmentATDD - Acceptance Test Driven Development
ATDD - Acceptance Test Driven Development
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Agile Test Driven Development
Agile Test Driven DevelopmentAgile Test Driven Development
Agile Test Driven Development
 
Introduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven DevelopmentIntroduction to Acceptance Test Driven Development
Introduction to Acceptance Test Driven Development
 
Sprint3r tpse2014-atdd-with-robot-framework
Sprint3r tpse2014-atdd-with-robot-frameworkSprint3r tpse2014-atdd-with-robot-framework
Sprint3r tpse2014-atdd-with-robot-framework
 
Atdd half day_new_1_up
Atdd half day_new_1_upAtdd half day_new_1_up
Atdd half day_new_1_up
 
Storytelling: Discover the Big Picture for Agile Efforts Webinar - Tom Cagley...
Storytelling: Discover the Big Picture for Agile Efforts Webinar - Tom Cagley...Storytelling: Discover the Big Picture for Agile Efforts Webinar - Tom Cagley...
Storytelling: Discover the Big Picture for Agile Efforts Webinar - Tom Cagley...
 
Getting Comfortable with BDD
Getting Comfortable with BDDGetting Comfortable with BDD
Getting Comfortable with BDD
 
Unit Testing, TDD and ATDD
Unit Testing, TDD and ATDDUnit Testing, TDD and ATDD
Unit Testing, TDD and ATDD
 
Taming robotframework
Taming robotframeworkTaming robotframework
Taming robotframework
 
TDD Overview
TDD OverviewTDD Overview
TDD Overview
 
The WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpecThe WHY behind TDD/BDD and the HOW with RSpec
The WHY behind TDD/BDD and the HOW with RSpec
 
BDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right SoftwareBDD in Action: Building Software Right and Building the Right Software
BDD in Action: Building Software Right and Building the Right Software
 
BDD in Action - building software that matters
BDD in Action - building software that mattersBDD in Action - building software that matters
BDD in Action - building software that matters
 
Unit testing and TDD
Unit testing and TDDUnit testing and TDD
Unit testing and TDD
 

Similar to TDD vs. ATDD - What, Why, Which, When & Where

Bdd - L'arte di non farsi i fatti propri
Bdd - L'arte di non farsi i fatti propriBdd - L'arte di non farsi i fatti propri
Bdd - L'arte di non farsi i fatti propriCommit University
 
Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd Sakares Saengkaew
 
Architecting Solutions and Systems – Randy’s Secrets to Success
Architecting Solutions and Systems – Randy’s Secrets to SuccessArchitecting Solutions and Systems – Randy’s Secrets to Success
Architecting Solutions and Systems – Randy’s Secrets to SuccessRandy Williams
 
Approaching ATDD/BDD
Approaching ATDD/BDDApproaching ATDD/BDD
Approaching ATDD/BDDDhaval Dalal
 
Understanding Why Testing is Importaint
Understanding Why Testing is ImportaintUnderstanding Why Testing is Importaint
Understanding Why Testing is ImportaintSana Nasar
 
Myths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven DevelopmentMyths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven DevelopmentPankaj Nakhat
 
BDD presentation
BDD presentationBDD presentation
BDD presentationtemebele
 
The Power of BDD
The Power of BDDThe Power of BDD
The Power of BDDNancy Cai
 
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Abdelkrim Boujraf
 
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019Jason Tice
 
Real developers-dont-need-unit-tests
Real developers-dont-need-unit-testsReal developers-dont-need-unit-tests
Real developers-dont-need-unit-testsSkills Matter
 
Real developers-dont-need-unit-tests
Real developers-dont-need-unit-testsReal developers-dont-need-unit-tests
Real developers-dont-need-unit-testsSkills Matter
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia eventXebia India
 
Topic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionTopic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionHoa Le
 
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...Katy Slemon
 
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...BA and Beyond
 

Similar to TDD vs. ATDD - What, Why, Which, When & Where (20)

Bdd - L'arte di non farsi i fatti propri
Bdd - L'arte di non farsi i fatti propriBdd - L'arte di non farsi i fatti propri
Bdd - L'arte di non farsi i fatti propri
 
Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd Practiced agile developer with tdd & bdd
Practiced agile developer with tdd & bdd
 
Architecting Solutions and Systems – Randy’s Secrets to Success
Architecting Solutions and Systems – Randy’s Secrets to SuccessArchitecting Solutions and Systems – Randy’s Secrets to Success
Architecting Solutions and Systems – Randy’s Secrets to Success
 
Approaching ATDD/BDD
Approaching ATDD/BDDApproaching ATDD/BDD
Approaching ATDD/BDD
 
Understanding Why Testing is Importaint
Understanding Why Testing is ImportaintUnderstanding Why Testing is Importaint
Understanding Why Testing is Importaint
 
Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD Gateway to Agile: XP and BDD
Gateway to Agile: XP and BDD
 
Myths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven DevelopmentMyths and Challenges of Behaviour Driven Development
Myths and Challenges of Behaviour Driven Development
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 
The Power of BDD
The Power of BDDThe Power of BDD
The Power of BDD
 
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
 
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
 
Real developers-dont-need-unit-tests
Real developers-dont-need-unit-testsReal developers-dont-need-unit-tests
Real developers-dont-need-unit-tests
 
Real developers-dont-need-unit-tests
Real developers-dont-need-unit-testsReal developers-dont-need-unit-tests
Real developers-dont-need-unit-tests
 
Real developers-dont-need-unit-tests
Real developers-dont-need-unit-testsReal developers-dont-need-unit-tests
Real developers-dont-need-unit-tests
 
Prashant technical practices-tdd for xebia event
Prashant   technical practices-tdd for xebia eventPrashant   technical practices-tdd for xebia event
Prashant technical practices-tdd for xebia event
 
Topic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolutionTopic tdd-and-bdd b4usolution
Topic tdd-and-bdd b4usolution
 
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
Tdd vs bdd vs atdd — developers’ methodologies to navigate complex developmen...
 
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
BA and Beyond 20 - Elke Steegmans and David Vandenbroeck - Behaviour-driven d...
 
Tdd and bdd
Tdd and bddTdd and bdd
Tdd and bdd
 

More from Daniel Davis

Unicorn or Rhino? Agility in the Data Realm?
Unicorn or Rhino? Agility in the Data Realm?Unicorn or Rhino? Agility in the Data Realm?
Unicorn or Rhino? Agility in the Data Realm?Daniel Davis
 
Safely Calling BS Against Teams & Leadership
Safely Calling BS Against Teams & LeadershipSafely Calling BS Against Teams & Leadership
Safely Calling BS Against Teams & LeadershipDaniel Davis
 
the best code, is code never written
the best code, is code never writtenthe best code, is code never written
the best code, is code never writtenDaniel Davis
 
code is easy. humans are hard.
code is easy. humans are hard.code is easy. humans are hard.
code is easy. humans are hard.Daniel Davis
 
Common Characteristics of the Greatest Developers
 Common Characteristics of the Greatest Developers Common Characteristics of the Greatest Developers
Common Characteristics of the Greatest DevelopersDaniel Davis
 
not BEYOND agile, but rather BEHIND it
not BEYOND agile, but rather BEHIND itnot BEYOND agile, but rather BEHIND it
not BEYOND agile, but rather BEHIND itDaniel Davis
 
assert(false) agile.healthy == agile.easy
assert(false) agile.healthy == agile.easyassert(false) agile.healthy == agile.easy
assert(false) agile.healthy == agile.easyDaniel Davis
 
A Family That Hacks Together, Interacts Together!
A Family That Hacks Together, Interacts Together!A Family That Hacks Together, Interacts Together!
A Family That Hacks Together, Interacts Together!Daniel Davis
 
The 3 Fs Equation : Failure - Fear = Freedom
The 3 Fs Equation : Failure - Fear = FreedomThe 3 Fs Equation : Failure - Fear = Freedom
The 3 Fs Equation : Failure - Fear = FreedomDaniel Davis
 
Your Messy Agile Career
Your Messy Agile CareerYour Messy Agile Career
Your Messy Agile CareerDaniel Davis
 
Story Mapping Made Real - 2h
Story Mapping Made Real - 2hStory Mapping Made Real - 2h
Story Mapping Made Real - 2hDaniel Davis
 
What the heck is DevOps and why do we need it?
What the heck is DevOps and why do we need it?What the heck is DevOps and why do we need it?
What the heck is DevOps and why do we need it?Daniel Davis
 
Learning Agility over Learning Agile
Learning Agility over Learning AgileLearning Agility over Learning Agile
Learning Agility over Learning AgileDaniel Davis
 

More from Daniel Davis (13)

Unicorn or Rhino? Agility in the Data Realm?
Unicorn or Rhino? Agility in the Data Realm?Unicorn or Rhino? Agility in the Data Realm?
Unicorn or Rhino? Agility in the Data Realm?
 
Safely Calling BS Against Teams & Leadership
Safely Calling BS Against Teams & LeadershipSafely Calling BS Against Teams & Leadership
Safely Calling BS Against Teams & Leadership
 
the best code, is code never written
the best code, is code never writtenthe best code, is code never written
the best code, is code never written
 
code is easy. humans are hard.
code is easy. humans are hard.code is easy. humans are hard.
code is easy. humans are hard.
 
Common Characteristics of the Greatest Developers
 Common Characteristics of the Greatest Developers Common Characteristics of the Greatest Developers
Common Characteristics of the Greatest Developers
 
not BEYOND agile, but rather BEHIND it
not BEYOND agile, but rather BEHIND itnot BEYOND agile, but rather BEHIND it
not BEYOND agile, but rather BEHIND it
 
assert(false) agile.healthy == agile.easy
assert(false) agile.healthy == agile.easyassert(false) agile.healthy == agile.easy
assert(false) agile.healthy == agile.easy
 
A Family That Hacks Together, Interacts Together!
A Family That Hacks Together, Interacts Together!A Family That Hacks Together, Interacts Together!
A Family That Hacks Together, Interacts Together!
 
The 3 Fs Equation : Failure - Fear = Freedom
The 3 Fs Equation : Failure - Fear = FreedomThe 3 Fs Equation : Failure - Fear = Freedom
The 3 Fs Equation : Failure - Fear = Freedom
 
Your Messy Agile Career
Your Messy Agile CareerYour Messy Agile Career
Your Messy Agile Career
 
Story Mapping Made Real - 2h
Story Mapping Made Real - 2hStory Mapping Made Real - 2h
Story Mapping Made Real - 2h
 
What the heck is DevOps and why do we need it?
What the heck is DevOps and why do we need it?What the heck is DevOps and why do we need it?
What the heck is DevOps and why do we need it?
 
Learning Agility over Learning Agile
Learning Agility over Learning AgileLearning Agility over Learning Agile
Learning Agility over Learning Agile
 

Recently uploaded

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyAnusha Are
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456KiaraTiradoMicha
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 

Recently uploaded (20)

The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 

TDD vs. ATDD - What, Why, Which, When & Where

  • 1. TDD vs. ATDD What, Why, Which, When & Where? @daniel_davis
  • 2. - Business Improvement Consultant, Agile Practitioner
 - Innovator, Life Hacker, Maker
 - Professional Snowboard Instructor TDD vs. ATDD A little about me…
  • 3. Discussion over Presentation Principles over Prescription Focus For The Session - TDD vs. ATDD
  • 4. Seeding A Question - TDD vs. ATDD Would you prefer to… build the thing right or build the right thing?
  • 5. Before we get into the “Which, When & Where” first lets cover the high level “What & Why” of each to understand the base differences. TDD vs. ATDD What -
  • 6. TDD or Test Driven Development is a software development approach where a developer writes a test before writing any code. The test is then be used to build only the code needed to pass it. Once the new code passes the test, it can then be refactored to an acceptable standard as needed. TDD vs. ATDD What -
  • 7. TDD ensures that the source code is thoroughly unit tested and helps lead to modularized, flexible and extensible code. By focusing on writing only the code necessary to pass the tests, we are inherently making the design simple and clear. TDD vs. ATDD What -
  • 8. ATDD or Acceptance Test Driven Development is also a software development approach where the tests are written before the code. However, these tests are generally written and supported by the testers or stakeholders. TDD vs. ATDD What -
  • 9. ATDD ensures that the folks creating the system (i.e., the developers) identify the appropriate code to write, that is, code that reflects the outcomes desired. It is meant to ensure that the business value of the system is being met. TDD vs. ATDD What -
  • 10. BDD or Behavior Driven Development has a very similar context to ATDD, however these tests tend to be driven out by the developers themselves. For today’s talk we’ll consider them one and the same, as they both intend to achieve the same goal. TDD vs. ATDD What -
  • 11. The shared practice of - Red - Green - Refactor TDD vs. ATDD Visualizing Them -
  • 12. - Using the blank side of the 3x5 card in front of you as an example. - Spend a couple minutes brainstorming ways that the following requirement could be TDD’d. - “I need parallel lines drawn on one side of a 3x5 card.” - Discuss ideas as a group. - Assert the card orientation. - Assert first line direction. - Assert first line length. - Assert second line length. - Assert second lines distance away from the first. - Assert the color of the lines. - etc… - Flip the card over. - Discuss how the ruled side of the card has already been ATDD’d for us. TDD vs. ATDD Experimentation Exercise -
  • 13. Scope Creep. From what you ask… TDD vs. ATDD Why - PROTECTION! Anything and Everything! Changing Requirements. Missed Requirements. & most importantly… YOURSELF! Goldplating.
  • 14. - To help us build in small, incremental and iterative steps. - Supply us with really fast feedback and a more direct path to our failure points. (Think 2 lines over 2000) - Provide us with a security blanket, protecting us from changes in the future. - Supply us with living documentation that changes as the system does. TDD vs. ATDD Why -
  • 15. With TDD the purpose is to assert that the product, system or process is being built correctly. It’s testing the independent small units or objects to make sure each works as intended. It depends on your testing purpose… TDD vs. ATDD Which, When & Where -
  • 16. With ATDD however, the intent is broader, as the purpose is to assert that the product, system or process being built is actually correct. It’s a mechanism to facilitate the conversation between developers and product owners about the requirements and validate the expected business value is met. It depends on your testing purpose… TDD vs. ATDD Which, When & Where -
  • 17. ATDD is often considered a superset of TDD, not a replacement for it. If your goals are only to assert the validity of the independent small units or objects then TDD should suffice. It also depends on your testing goals… TDD vs. ATDD Which, When & Where -
  • 18. Yet, if your goals are to also focus on the expectations of your users/stakeholders, then ATDD should be used preceding TDD. You’re no longer starting with small unit tests, but rather you’re documenting executable specifications that prove out the product, system or process. TDD vs. ATDD Which, When & Where - It also depends on your testing goals…
  • 19. x TDD Pro TDD Con ATDD Pro ATDD Con Complex X X Verbose X X Reuse/Inherit X X Plain Text X X Maintainable X X Creates Focus X X TDD vs. ATDD Advantages & Dis-Avantages
  • 20. Tools used for TDD…
 - Unit Frameworks
 - JUnit (Java)
 - xUnit or nUnit (C, .Net, etc…) Tools used for ATDD…
 - Cucumber, SpecFlow, JBehave, Fit/FitNesse Tools used for either/both…
 - RSpec (Ruby)
 - Jasmine (JavaScript)
 - Selenium (Web) TDD vs. ATDD A Few Common Tools
  • 21. Code Katas - Helps hone skills through practice and repetition. - cyber-dojo.org - codekata.com - Robert C. Martin 
 (Uncle Bob)
 Clean Coder Series TDD vs. ATDD Ways To Learn & Support
  • 22. TDD vs. ATDD Ways To Learn & Support Pair Programming - Drives shared knowledge and collective understanding. Allows for focused learning in collaboration with an instant feedback loop. - Across the experience: • Expert with Expert • Expert with Novice • Novice with Novice - Amongst the team: • Business with Development • Development with Testing • Testing with Business
  • 23. TDD vs. ATDD Ways To Learn & Support Online Training - skillshare - Master real-world skills with hands-on projects. Hundreds of online classes to chose from. pluralsight - A rich library of full-length online training courses for developers and IT pros, created by the best authors in the industry. Local Training - Ann Arbor Code Craftsman Saturdays (CodeRetreats) - Every month, on the 2nd Saturday, software devs of every level get together for a full day of pairing, test driving, food, and fun. No presentations, no vendors, and no recruiters, just software craftspeople learning from each other. Your Local User Groups ????
  • 24. • A simple view towards the difference could be that ATDD is looking at it from “Outside In” where as TDD is looking at it from the “Inside Out”. • With respect to aspects like… - Code Craftsmanship
 - Test Coverage
 - Cyclomatic Complexity
 - etc… it’s my belief that a high value is usually put on TDD, but we usually lack in what ATDD offers. TDD vs. ATDD Noteworthy Points
  • 25. Would you prefer to… build the thing right or build the right thing? Both of course! It’s just knowing which to use where and when. ATDD TDD So to answer our original seeded question… TDD vs. ATDD Answering The Question
  • 26. Q & A TDD vs. ATDD
  • 27. Business Solutions Consultancy
 For those who value... value. Clients collaborate with us to solve business problems. The first step is figuring out how we can either make or save them money. BUSINESS AGILITY