SlideShare a Scribd company logo
Functional  
Testing  Pa0erns	
    Premanand Chandrasekaran
        ThoughtWorks, Inc.
   premanand@thoughtworks.com
Types  of  Tests	
                                                     Business  Facing	
Support  Programming	




                                   Functional  Tests	
                 Showcases	
                                   Acceptance  Tests	
                 Exploratory  Tests	




                                                                                                     Critique  Product	
                                                                       Usability  Tests	




                                   Unit  Tests	
                       Performance  Tests	
                                   Component  Tests	
                  Stress  Tests	
                                   System  Tests	
                     Security  Tests	


                                                    Technology  Facing	

                         h0p://www.exampler.com/old-­‐‑blog/2003/08/21/#agile-­‐‑testing-­‐‑project-­‐‑1	
© 2012 ThoughtWorks, Inc.                                                                                                  2
Functional  Tests  -­‐‑  The  Pitch	
•  What Are Functional Tests?
   o Verification that business requirements are
     met
   o Black Box
   o Automated
•  Why Functional Tests?
   o Maintain (high) external quality
   o Allow team to be bolder
   o Allow team to go faster

© 2012 ThoughtWorks, Inc.                          3
Functional  Tests  –  The  Reality	
•  Flaky
•  Take long time to run
•  Cumbersome to maintain
•  Don’t catch many bugs
•  Some things are hard to automate
•  Don’t quite give you the feedback
   you were hoping for
© 2012 ThoughtWorks, Inc.          4
Consequences	
•  Low confidence in automation
•  Over-reliance on manual testing




•  Slipped Deadlines AND/OR
•  Lesser Testing AND/OR
•  Testing in Production :-)

© 2012 ThoughtWorks, Inc.              5
How  To  Get  Be0er?	
                                        Technology	




                            Process	




                                                   People	




© 2012 ThoughtWorks, Inc.                                     6
Process	



© 2012 ThoughtWorks, Inc.               7
Functional  Test  –  Example	



© 2012 ThoughtWorks, Inc.   8
Example  -­‐‑  Specification	




© 2012 ThoughtWorks, Inc.                   9
Example  –  Implementation	




© 2012 ThoughtWorks, Inc.                10
Implementation  Problems?	
•  No correlation between specification
   and implementation
•  Intent lost in translation
•  Easy to write, hard to read, maintain
•  Too monolithic, lacks abstraction

•  Causes non-technical domain experts
   to tune out of the process
© 2012 ThoughtWorks, Inc.                  11
Executable  Specifications	
   Specification  Step	
                                                                                    
                                                                              	



                                                                     Tight  Correlation	
Implementation  Step	
                                                                         
                                                                   	




  © 2012 ThoughtWorks, Inc.                                                                 12
Functional  Test  -­‐‑  Specification	




© 2012 ThoughtWorks, Inc.              13
More  useful  information	
        in  failure  reports	




© 2012 ThoughtWorks, Inc.             14
Acceptance  Criteria  DSL	
•      Given some initial context
•      When an event occurs
•      Then ensure outcome
•      Example –




     © 2012 ThoughtWorks, Inc.      15
Functional  Test  –  New  Implementation	




© 2012 ThoughtWorks, Inc.               16
Good  Acceptance  Criteria	
Scenario: Advanced Search for a hat!
!
Given I am searching on "http://www.etsy.com"!
When I click on the select box with css class "select.handmade"!
And I select "Knitting"!
And I click on the text box with id "#search_query"!
And type in "hat"!
Then there are search results!
	
                                   Focus  on  WHAT,  not  HOW	

          Scenario: Advanced Search for a hat!
          !
          Given I am searching on Etsy.com!
          And I am not logged in!
          And I specify the Knitting sub category!
          And I search for hat!                       Be@er	
          Then there are search results!
          !
    © 2012 ThoughtWorks, Inc.                                   17
How  Many  Tests?	
                                  Manual  Testing	


                                                                          10%	
                                    Functional	
                                      Tests	


                                Integration  Tests	
                      20%	




                                    Unit  Tests	
                         70%	



             h0p://blog.mountaingoatsoftware.com/tag/agile-­‐‑testing	
© 2012 ThoughtWorks, Inc.                                                  18
What  About  Legacy  Systems?	
•  Start with functional tests
•  Cover with unit tests for new
   functionality
•  Be on the lookout to replace
   functional tests more fine-grained tests
   at every given opportunity



© 2012 ThoughtWorks, Inc.                     19
What  To  Automate?	
•  The MOST important scenarios
   o  End-To-End system level scenarios
   o  Happy paths


•  Avoid automating individual feature-
   level acceptance criteria
•  Make a distinction between
   “ephemeral” and “long-standing”
   tests
© 2012 ThoughtWorks, Inc.                 20
When  do  these  tests  run?	
•  After every check-in

•  As part of CI build pipeline
   o Unit à Smoke à Regression à Deploy


•  Incubator Test Suites

© 2012 ThoughtWorks, Inc.                    21
Workflow	
•  Sprint [N -1]
    o  Feature elaboration with entry level acceptance criteria


•  Sprint [N]
    o  Feature kick-off meeting
    o  Developers implement feature
    o  Testers (optionally) add additional acceptance criteria


•  Sprint[N, N + 1]
    o  Testers verify all acceptance criteria to be satisfied
    o  Testers refactor functional test suite
    o  Feature marked complete

 © 2012 ThoughtWorks, Inc.                                        22
Technology	




© 2012 ThoughtWorks, Inc.                  23
Test  Characteristics	
•  Be idempotent
    o  At least re-runnable
    o  Keep tests isolated from one another
•  Be runnable in parallel
    o  No inter-dependencies between tests
•  Be deterministic
    o  Quarantine/eradicate non-deterministic tests
    o  Don’t “sleep”
          •  Prefer callbacks or at least poll for asynchronous responses
    o  Consider mocking remote third-party services
          •  Have separate tests to verify interaction with remote services
    o  Consider using relative dates/times or mock the system clock
    o  http://martinfowler.com/articles/nonDeterminism.html


 © 2012 ThoughtWorks, Inc.                                                    24
Test  Sources	
•  Don’t have any dependencies on
   production sources
•  Treat as first-class citizens
   o  Keep DRY
   o  Run static analysis metrics
•  Leverage design patterns like
   o  Page Objects
   o  Compound Steps
•  Consider the use of terser languages
   o  Groovy, Ruby etc.

© 2012 ThoughtWorks, Inc.                     25
Test  Data	
•  Use application to create test data
•  Use test data creation steps
   o  Frameworks like DBUnit
•  Use anonymized production data subsets
   o  Requires lot of time and effort
•  Use anonymized production data copies
   o  Huge data volumes may make it prohibitive
•  Avoid the shared database anti-pattern
•  Consider mocking remote third-party
   services
© 2012 ThoughtWorks, Inc.                         26
Test  Infrastructure	
•  Invest in fast build hardware
   o  CI servers support multiple remote agents

•  Use same software configuration as
   production in all environments
•  Consider running tests on the cloud
   o  http://www.saucelabs.com




© 2012 ThoughtWorks, Inc.                         27
People	


© 2012 ThoughtWorks, Inc.              28
Who  Writes/Owns  The  Tests?	
•  The specifications – acceptance
   criteria?
   o  Domain Experts
•  Step implementations?
   o  Developers & Testers


•  The functional suite?
   o  The Team
   o  Day-to-Day – Testers

© 2012 ThoughtWorks, Inc.            29
Team  Dynamics	
•  Fix broken builds and tests immediately
   o  OK to occasionally break the build
   o  Not OK to leave the build broken for long


•  Do not allow check-ins over a broken build
   o  Unless check-in is being made to fix the build


•  Co-locate teams as much as possible
   o  At least create fully formed remote teams

© 2012 ThoughtWorks, Inc.                              30
Questions?	

         premanand@thoughtworks.com


                            Thank You!


© 2012 ThoughtWorks, Inc.                  31

More Related Content

What's hot (20)

PPT
Basic Guide to Manual Testing
Hiral Gosani
 
PDF
Introduction to BDD with Cucumber for Java
Seb Rose
 
PPTX
Unit 2 - Test Case Design
Selvi Vts
 
PPT
Software Testing Process
guest1f2740
 
PPTX
QA. Load Testing
Alex Galkin
 
PPT
Automation testing strategy, approach & planning
SivaprasanthRentala1975
 
PPTX
Software Testing or Quality Assurance
Trimantra Software Solutions
 
PDF
Building a Test Automation Strategy for Success
Lee Barnes
 
PPTX
functional testing
bharathanche
 
PDF
Test Automation - Keytorc Approach
Keytorc Software Testing Services
 
PDF
ISTQB Foundation Level Basic
Erol Selitektay
 
PPTX
Unit tests & TDD
Dror Helper
 
PDF
API Testing
Bikash Sharma
 
PDF
Performance testing presentation
Belatrix Software
 
PDF
Types of Software Testing | Edureka
Edureka!
 
DOC
Complete guide to manual testing@uma
Uma Sapireddy
 
PPT
Test Management introduction
Oana Feidi
 
PPTX
Cucumber BDD
Pravin Dsilva
 
PPTX
Introduction to Agile Testing
Raymond Adrian (Rad) Butalid
 
PPTX
Automation test framework with cucumber – BDD
123abcda
 
Basic Guide to Manual Testing
Hiral Gosani
 
Introduction to BDD with Cucumber for Java
Seb Rose
 
Unit 2 - Test Case Design
Selvi Vts
 
Software Testing Process
guest1f2740
 
QA. Load Testing
Alex Galkin
 
Automation testing strategy, approach & planning
SivaprasanthRentala1975
 
Software Testing or Quality Assurance
Trimantra Software Solutions
 
Building a Test Automation Strategy for Success
Lee Barnes
 
functional testing
bharathanche
 
Test Automation - Keytorc Approach
Keytorc Software Testing Services
 
ISTQB Foundation Level Basic
Erol Selitektay
 
Unit tests & TDD
Dror Helper
 
API Testing
Bikash Sharma
 
Performance testing presentation
Belatrix Software
 
Types of Software Testing | Edureka
Edureka!
 
Complete guide to manual testing@uma
Uma Sapireddy
 
Test Management introduction
Oana Feidi
 
Cucumber BDD
Pravin Dsilva
 
Introduction to Agile Testing
Raymond Adrian (Rad) Butalid
 
Automation test framework with cucumber – BDD
123abcda
 

Viewers also liked (20)

PPTX
Structural testing
Slideshare
 
PPTX
Structural and functional testing
Himanshu
 
PPTX
GCSE ICT TESTING
morgan98
 
PDF
Effective Strategies for Distributed Testing
Anand Bagmar
 
PPT
Tw specifications for-testing1
ThoughtWorks Studios
 
PPT
Boundary value analysis
Vadym Muliavka
 
PPTX
Introduzione al Testing
DotNetMarche
 
PDF
Functional Programming in Java
Premanand Chandrasekaran
 
PDF
Test Funzionale
IxmaSoft
 
PDF
Clean Unit Test Patterns
Frank Appel
 
PDF
Unit Testing
Giacomo Petronio
 
DOCX
Design brief & specification
haobinliu
 
PDF
Teorie e tecniche dei test
Olaudio Bia
 
PDF
Software Test Patterns: Successes and Challenges
Bob Binder
 
PDF
Importance of software quality metrics
Piyush Sohaney
 
PPTX
Design patterns in web testing automation with WebDriver
Mikalai Alimenkou
 
PPTX
Defect Life Cycle
Shilpi Mitra
 
PDF
Software Testing & Test Driven Development
Sergio Santoro
 
PDF
Quality Metrics
Haroon Abbu
 
PPTX
Test design techniques
QA Guards
 
Structural testing
Slideshare
 
Structural and functional testing
Himanshu
 
GCSE ICT TESTING
morgan98
 
Effective Strategies for Distributed Testing
Anand Bagmar
 
Tw specifications for-testing1
ThoughtWorks Studios
 
Boundary value analysis
Vadym Muliavka
 
Introduzione al Testing
DotNetMarche
 
Functional Programming in Java
Premanand Chandrasekaran
 
Test Funzionale
IxmaSoft
 
Clean Unit Test Patterns
Frank Appel
 
Unit Testing
Giacomo Petronio
 
Design brief & specification
haobinliu
 
Teorie e tecniche dei test
Olaudio Bia
 
Software Test Patterns: Successes and Challenges
Bob Binder
 
Importance of software quality metrics
Piyush Sohaney
 
Design patterns in web testing automation with WebDriver
Mikalai Alimenkou
 
Defect Life Cycle
Shilpi Mitra
 
Software Testing & Test Driven Development
Sergio Santoro
 
Quality Metrics
Haroon Abbu
 
Test design techniques
QA Guards
 
Ad

Similar to Functional testing patterns (20)

PDF
Agile testing
Raj Indugula
 
PDF
Android testing
Igor Filippov
 
PPT
QA Role In Agile Teams - by Michael Hall
Synerzip
 
PDF
CNUG TDD June 2014
Mayank Srivastava
 
PDF
How BDD enables True CI/CD
Roger Turnau
 
PDF
Testing on Android
Ari Lacenski
 
PDF
John Fodeh Adventures in Test Automation - EuroSTAR 2013
TEST Huddle
 
PDF
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...
TEST Huddle
 
PDF
Testaus 2014 -seminaari: Paul Gerrard. The Changing Role of Testers’.
Tieturi Oy
 
PDF
Testaus 2014: Paul Gerrard - The Changing Role of Testers'
Tieturi Oy
 
PDF
Requirements Engineering - The need for a solution - Marcel Overeem
Visure Solutions
 
PPTX
Test Policy and Practices
Talentica Software
 
PDF
Paul Gerrard - The Redistribution of Testing – Where to Innovate and What to ...
TEST Huddle
 
PPT
Презентация
guest22d71d
 
KEY
Driving application development through behavior driven development
Einar Ingebrigtsen
 
PPT
Test Driven Development using QUnit
satejsahu
 
PPTX
Test driven development v1.0
Ganesh Kondal
 
PDF
Automated Exploratory Tests
Zbyszek Mockun
 
PPTX
STPCon fall 2012: The Testing Renaissance Has Arrived
SOASTA
 
Agile testing
Raj Indugula
 
Android testing
Igor Filippov
 
QA Role In Agile Teams - by Michael Hall
Synerzip
 
CNUG TDD June 2014
Mayank Srivastava
 
How BDD enables True CI/CD
Roger Turnau
 
Testing on Android
Ari Lacenski
 
John Fodeh Adventures in Test Automation - EuroSTAR 2013
TEST Huddle
 
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...
TEST Huddle
 
Testaus 2014 -seminaari: Paul Gerrard. The Changing Role of Testers’.
Tieturi Oy
 
Testaus 2014: Paul Gerrard - The Changing Role of Testers'
Tieturi Oy
 
Requirements Engineering - The need for a solution - Marcel Overeem
Visure Solutions
 
Test Policy and Practices
Talentica Software
 
Paul Gerrard - The Redistribution of Testing – Where to Innovate and What to ...
TEST Huddle
 
Презентация
guest22d71d
 
Driving application development through behavior driven development
Einar Ingebrigtsen
 
Test Driven Development using QUnit
satejsahu
 
Test driven development v1.0
Ganesh Kondal
 
Automated Exploratory Tests
Zbyszek Mockun
 
STPCon fall 2012: The Testing Renaissance Has Arrived
SOASTA
 
Ad

Recently uploaded (20)

PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
July Patch Tuesday
Ivanti
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 

Functional testing patterns

  • 1. Functional   Testing  Pa0erns Premanand Chandrasekaran ThoughtWorks, Inc. [email protected]
  • 2. Types  of  Tests Business  Facing Support  Programming Functional  Tests Showcases Acceptance  Tests Exploratory  Tests Critique  Product Usability  Tests Unit  Tests Performance  Tests Component  Tests Stress  Tests System  Tests Security  Tests Technology  Facing h0p://www.exampler.com/old-­‐‑blog/2003/08/21/#agile-­‐‑testing-­‐‑project-­‐‑1 © 2012 ThoughtWorks, Inc. 2
  • 3. Functional  Tests  -­‐‑  The  Pitch •  What Are Functional Tests? o Verification that business requirements are met o Black Box o Automated •  Why Functional Tests? o Maintain (high) external quality o Allow team to be bolder o Allow team to go faster © 2012 ThoughtWorks, Inc. 3
  • 4. Functional  Tests  –  The  Reality •  Flaky •  Take long time to run •  Cumbersome to maintain •  Don’t catch many bugs •  Some things are hard to automate •  Don’t quite give you the feedback you were hoping for © 2012 ThoughtWorks, Inc. 4
  • 5. Consequences •  Low confidence in automation •  Over-reliance on manual testing •  Slipped Deadlines AND/OR •  Lesser Testing AND/OR •  Testing in Production :-) © 2012 ThoughtWorks, Inc. 5
  • 6. How  To  Get  Be0er? Technology Process People © 2012 ThoughtWorks, Inc. 6
  • 8. Functional  Test  –  Example © 2012 ThoughtWorks, Inc. 8
  • 9. Example  -­‐‑  Specification © 2012 ThoughtWorks, Inc. 9
  • 10. Example  –  Implementation © 2012 ThoughtWorks, Inc. 10
  • 11. Implementation  Problems? •  No correlation between specification and implementation •  Intent lost in translation •  Easy to write, hard to read, maintain •  Too monolithic, lacks abstraction •  Causes non-technical domain experts to tune out of the process © 2012 ThoughtWorks, Inc. 11
  • 12. Executable  Specifications Specification  Step                                                       Tight  Correlation Implementation  Step                                     © 2012 ThoughtWorks, Inc. 12
  • 13. Functional  Test  -­‐‑  Specification © 2012 ThoughtWorks, Inc. 13
  • 14. More  useful  information in  failure  reports © 2012 ThoughtWorks, Inc. 14
  • 15. Acceptance  Criteria  DSL •  Given some initial context •  When an event occurs •  Then ensure outcome •  Example – © 2012 ThoughtWorks, Inc. 15
  • 16. Functional  Test  –  New  Implementation © 2012 ThoughtWorks, Inc. 16
  • 17. Good  Acceptance  Criteria Scenario: Advanced Search for a hat! ! Given I am searching on "http://www.etsy.com"! When I click on the select box with css class "select.handmade"! And I select "Knitting"! And I click on the text box with id "#search_query"! And type in "hat"! Then there are search results! Focus  on  WHAT,  not  HOW Scenario: Advanced Search for a hat! ! Given I am searching on Etsy.com! And I am not logged in! And I specify the Knitting sub category! And I search for hat! Be@er Then there are search results! ! © 2012 ThoughtWorks, Inc. 17
  • 18. How  Many  Tests? Manual  Testing 10% Functional Tests Integration  Tests 20% Unit  Tests 70% h0p://blog.mountaingoatsoftware.com/tag/agile-­‐‑testing © 2012 ThoughtWorks, Inc. 18
  • 19. What  About  Legacy  Systems? •  Start with functional tests •  Cover with unit tests for new functionality •  Be on the lookout to replace functional tests more fine-grained tests at every given opportunity © 2012 ThoughtWorks, Inc. 19
  • 20. What  To  Automate? •  The MOST important scenarios o  End-To-End system level scenarios o  Happy paths •  Avoid automating individual feature- level acceptance criteria •  Make a distinction between “ephemeral” and “long-standing” tests © 2012 ThoughtWorks, Inc. 20
  • 21. When  do  these  tests  run? •  After every check-in •  As part of CI build pipeline o Unit à Smoke à Regression à Deploy •  Incubator Test Suites © 2012 ThoughtWorks, Inc. 21
  • 22. Workflow •  Sprint [N -1] o  Feature elaboration with entry level acceptance criteria •  Sprint [N] o  Feature kick-off meeting o  Developers implement feature o  Testers (optionally) add additional acceptance criteria •  Sprint[N, N + 1] o  Testers verify all acceptance criteria to be satisfied o  Testers refactor functional test suite o  Feature marked complete © 2012 ThoughtWorks, Inc. 22
  • 24. Test  Characteristics •  Be idempotent o  At least re-runnable o  Keep tests isolated from one another •  Be runnable in parallel o  No inter-dependencies between tests •  Be deterministic o  Quarantine/eradicate non-deterministic tests o  Don’t “sleep” •  Prefer callbacks or at least poll for asynchronous responses o  Consider mocking remote third-party services •  Have separate tests to verify interaction with remote services o  Consider using relative dates/times or mock the system clock o  http://martinfowler.com/articles/nonDeterminism.html © 2012 ThoughtWorks, Inc. 24
  • 25. Test  Sources •  Don’t have any dependencies on production sources •  Treat as first-class citizens o  Keep DRY o  Run static analysis metrics •  Leverage design patterns like o  Page Objects o  Compound Steps •  Consider the use of terser languages o  Groovy, Ruby etc. © 2012 ThoughtWorks, Inc. 25
  • 26. Test  Data •  Use application to create test data •  Use test data creation steps o  Frameworks like DBUnit •  Use anonymized production data subsets o  Requires lot of time and effort •  Use anonymized production data copies o  Huge data volumes may make it prohibitive •  Avoid the shared database anti-pattern •  Consider mocking remote third-party services © 2012 ThoughtWorks, Inc. 26
  • 27. Test  Infrastructure •  Invest in fast build hardware o  CI servers support multiple remote agents •  Use same software configuration as production in all environments •  Consider running tests on the cloud o  http://www.saucelabs.com © 2012 ThoughtWorks, Inc. 27
  • 29. Who  Writes/Owns  The  Tests? •  The specifications – acceptance criteria? o  Domain Experts •  Step implementations? o  Developers & Testers •  The functional suite? o  The Team o  Day-to-Day – Testers © 2012 ThoughtWorks, Inc. 29
  • 30. Team  Dynamics •  Fix broken builds and tests immediately o  OK to occasionally break the build o  Not OK to leave the build broken for long •  Do not allow check-ins over a broken build o  Unless check-in is being made to fix the build •  Co-locate teams as much as possible o  At least create fully formed remote teams © 2012 ThoughtWorks, Inc. 30
  • 31. Questions? [email protected] Thank You! © 2012 ThoughtWorks, Inc. 31