SlideShare a Scribd company logo
Scaling Test First for the
Enterprise
February 24,
2016
#TestFirst @KevinDunneQA
Robust testing platform purpose-built to help agile teams create
higher quality software
ABOUT QASYMPHONY
#TestFirst @KevinDunneQA
Creating Visibility and Speed with
Automation and Test Management
Thursday, March 24th at 2pm ET
– Guest Speaker: Joe Colantonio
Joe Colantonio is a test automation architect for a
large Fortune 100 company with more than 15 +
years of test automation and performance
testing experience. Joe is also the founder of the
popular test automation blog, joecolantonio.com
and the host of TestTalks, a podcast dedicated to
all things test automation related. He is also the
author of the highly rated book The UFT API
Testing Manifesto – A step-by-step hands-on
testing guide for the masses.
UPCOMING WEBINAR
#TestFirst @KevinDunneQA
QUALITY JAM 2016 – APRIL 13TH
IN ATLANTA
Learn more at qualityjam.com
Speakers Include:
• Scott Berkun, Best Selling Author
• Keith Klain, Software Testing Thought
Leader
• Michael Cooper, Chief Quality Officer,
Healthcare IT Leaders
• Adam Satterfield, VP of QA,
BetterCloud
#TestFirst @KevinDunneQA
• Early bird pricing of $100. Pricing will go up to $200 on
March 1st
.
• For a limited time, you can get an additional $20 off using
the promo code QASVIP when you check out.
• For the first 5 people who send an email to
qualityjam@qasymphony.com, you will get a
complimentary pass to the event.
QUALITY JAM 2016
#TestFirst @KevinDunneQA
• This webinar will be recorded and available on demand next
week
• If you have a question, type it into the Q&A module on the left.
We will answer as many as we can towards the end of the
webinar
• Join the conversation on Twitter using the hash tag #TestFirst
• At the end of the webinar, you will be asked to take a short
survey
HOUSEKEEPING
#TestFirst @KevinDunneQA
Kevin Dunne, VP of Strategy and
Business Development,
QASymphony
Kevin Dunne is the VP of Strategy and Business
Development at QASymphony. In this role, Kevin
focuses on innovation, thought leadership and
new global business opportunities. As one of the
first employees at QASymphony, Kevin has seen
many facets of the business working in sales,
customer support, marketing, and product
management.
Kevin comes to QASymphony from Deloitte, where
he managed testing on large government and
Fortune 500 engagements delivering ERP
implementations and custom software
development. Kevin holds a Bachelor of Science
degree from Vanderbilt University.
OUR PRESENTER
#TestFirst @KevinDunneQA
What is TDD?
Why are we hearing
about it now?
How is it different?
Why use TDD?
How will it benefit my
organization?
What drawbacks if any
exist?
How to Implement TDD?
How do I prepare my
people?
What’s the new process?
Do I need new tools?
AGENDA
September 25, 2015
Introduction to QASymphony
for [INSERT COMPANY
NAME]
What is TDD?
#TestFirst @KevinDunneQA
Past development cycles often modeled the Rational Unified Process:
Source: http://www.psa-software.com/_img/_knowledge_center/rup.jpg
WHERE WE CAME FROM
#TestFirst @KevinDunneQA
We would have obviously chosen a more efficient process, but we
were constrained by many limitations, including:
WHY WE CHOSE IT
Environment
Creation
Code Merges
On-Premise
Prevalence
Desktop
Focus
Lack of
Collaboration
Off-Shore
Development
#TestFirst @KevinDunneQA
Many of our priori limitations have been replaced, based on
macro trends around technology and industry:
WHAT’S CHANGED
• Containers have simplified the process dramaticallyEnvironment Creation
• Git has replaced Subversion as the industry standardCode Merges
• Cloud adoption is at an all time high, increased securityOn-Premise Prevalence
• Prevalence of Web, Mobile, Internet of thingsDesktop Focus
• Increase in teamwork, chat and collaboration
technologyLack of Collaboration
• Shifts towards rural sourcing, onshoring of laborOff-Shore Development
#TestFirst @KevinDunneQA
Now that we have freed ourselves of past limitations, the process
has been shifted to one that aligns more with our needs:
Traditional Approach
Test-First Approach
HOW THE PROCESS HAS ADAPTED
Design Requirements Code Test Deploy
Design
(Automated)
Test
Code Refactor Deploy
#TestFirst @KevinDunneQA
Test-First methodologies were coined “Test Driven Development”.
Less technically focused versions called Acceptance Test Driven
Development (ATDD) and Behavior Driven Development (BDD)
also emerged:
TDD VS ATDD VS BDD
Test Driven
Development (TDD)
Behavior Driven
Development BDD
Acceptance Test
Driven Development
(ATDD)
Unit Test Driven
Development
(“Technical TDD”)
#TestFirst @KevinDunneQA
ATDD and BDD are similar in that they both try to make TDD
more accessible to business users. The major functional
difference comes down to how the tests are structured:
"I think this definition leaves out a key piece, we are focusing on
collaboration and learning. Having worked on a project that was
using 'ATDD', in 2005 I think, we had the same goals then as BDD
without the Given When Then language.“ - Wes Williams
WHAT’S THE DIFFERENCE?
#TestFirst @KevinDunneQA
ATDD/BDD offer benefits over more Unit Focused/Technical TDD,
but also has its drawbacks:
PROS AND CONS
Pros
• Increased understanding of tests from business stakeholders
• Increased collaboration early in the cycle
• More focus on customer and business needs
• Higher involvement of business in development and quality
Cons
• Addition of more tooling in the development/delivery chain
• Greater time spent defining tests and specifications
• Demands stronger contributors in requirements, dev, test
• Often increases the automation needs in an organization
September 25, 2015
Introduction to QASymphony
for [INSERT COMPANY
NAME]
Benefits of TDD
#TestFirst @KevinDunneQA
Test Driven Development brings several major benefits to
organization, most notably:
1. Move Testing Up Front – prevents having to rush testing at the
end of the cycle
2. Bake in Automation from Day 1 – protects against getting
behind with test and automation coverage
3. Build More Testable Software – requires developers to think
about testability, and create more robust software
4. Push to Customers When Ready – allows you to push software
to customers just in time, as it is developed
HOW CAN TDD HELP US?
#TestFirst @KevinDunneQA
Moving Testing Up Front removes the risk of having to make
compromises at the end of the cycle on quality or on-time delivery:
Traditional Development Timeline
Ends on: Day 1 Day 3 Day 14 Day 20 Day 21
There is risk in this process that any process, typically Code, will run
over and either squeeze development, or push release dates. TDD
removes it!
MOVE TESTING UP FRONT
Design Requirements Code Test Deploy
#TestFirst @KevinDunneQA
The cost of resolving a defect is far greater when found later in
the cycle. TDD should help you to find defects as they are
created, so they can be resolved quickly and at a lower cost:
Source: http://www.isixsigma.com/industries/software-it/defect-prevention-reducing-costs-and-enhancing-quality/
DEFECT COSTS INCREASE AS CODE MATURES
#TestFirst @KevinDunneQA
In traditional development, automation is often built after the
code is developed, which has significant limitations:
• Test development is more costly, since we cannot access the
code to make it more testable (more details to come)
• Tests are slower and more brittle, with higher levels of
maintenance, if we can only access the UI
• Test coverage is incomplete, as we must chose strategically
where to build out automation coverage
Moving to TDD flips the process and forces developers to write
code to satisfy tests, increasing automation coverage, speed, and
reducing cost
BAKE IN AUTOMATION UP FRONT
#TestFirst @KevinDunneQA
Moving towards BDD will force your developers to build an
application that can be tested well at the Unit, Integration, and UI
levels:
Source: http://zeroturnaround.com/wp-content/uploads/2015/12/PUZZLE-1-min.png
BUILD FOR TESTABILITY
#TestFirst @KevinDunneQA
Moving towards BDD will also demand a more complete testing
strategy focused on more than just UI testing:
BUILDING A COMPLETE TESTING STRATEGY
UI Tests
Integration Tests
Unit
Tests
Unit
Tests
Integration Tests
Unit Tests
#TestFirst @KevinDunneQA
TDD paired with continuous delivery will allow you to push
features as they become ready, if you’d like to:
Old Way
New Way
PUSH FEATURES WHEN THEY ARE COMPLETE
Code Feature A
Code Feature B
Code Feature C
Test Deploy
Wait
Wait
Code Feature A
Code Feature B
Code Feature C
Write
Tests
Deploy
Deploy
Deploy
September 25, 2015
Introduction to QASymphony
for [INSERT COMPANY
NAME]
Shifting to TDD
#TestFirst @KevinDunneQA
A change in organizations is never successful without a complete
strategy:
Source: http://www.consultia.co/wp-content/uploads/2015/07/security-technologies-processes.png
RECIPE FOR SUCCESSFUL CHANGE
#TestFirst @KevinDunneQA
People are the largest driver and inhibitor in change, so there are
a number of key changes needed to be made in human capital to
move to TDD:
PEOPLE RELATED CHANGES
Automation Talent Gap Feature Centric Culture
Siloed Communication
Style
#TestFirst @KevinDunneQA
Building automation competence is not simple, but it can be done
with proper investment:
BUILDING AUTOMATION COMPETENCE
•Train Up
•Train your existing employees around automation and new frameworks
•Low cost, long time to benefit, scalable
•Hire In
•Hire new employees with automation skill to augment your current team
•Medium cost, medium time to benefit, scalable
•Outsource
•Outsource your automation efforts to a team
•High cost, low time to benefit, not scalable
#TestFirst @KevinDunneQA
Developers need to be educated that their time is not solely spent
developing feature code:
Current Time Spent Future Time Spent
SHIFTING FROM A FEATURE CENTRIC
CULTURE
•Feature Code
•Feature Code
•Test code
•Refactoring
#TestFirst @KevinDunneQA
Proper BDD is implemented with collaboration between
development, test, and business/product – coined the “3 amigos”:
Source: http://image.slidesharecdn.com/bdd-in-action-140408000826-phpapp01/95/bdd-in-action-principles-practices-
and-realworld-application-8-638.jpg?cb=1396916226
CREATING THE 3 AMIGOS CULTURE
#TestFirst @KevinDunneQA
Process can be the source of the largest changes, as a process
that has been in place for years may need to be extensively
overhauled:
PROCESS RELATED CHANGES
Requirements
Specification
Requiring Tests Before
Code
Frequent Refactoring
#TestFirst @KevinDunneQA
BDD and ATDD requirements are typically written in a Given,
When, Then format that differs from traditional requirements:
Source: https://github.com/cucumber/cucumber/wiki/Feature-Introduction
SHIFTING TO GIVEN, WHEN, THEN
#TestFirst @KevinDunneQA
Developers are always eager to code – requiring them to write
tests (or wait for tests to be written) before coding can be a
paradigm shift
Source: http://www.tnooz.com/wp-content/uploads/2011/11/angry-computer.jpg
BUILDING TESTS BEFORE CODE
#TestFirst @KevinDunneQA
Properly implemented TDD, BDD, or ATDD should provide additional
focus on refactoring and creating more elegant solutions and
manageable code:
Source: http://hanwax.github.io/assets/tdd_flow.png
FOCUSING ON REFACTORING
#TestFirst @KevinDunneQA
Tools are often the first place organizations look for change, but
they likely should be approached after process and technology:
TECHNOLOGY RELATED CHANGES
Automation Framework Testability / Interfaces
Monitoring
#TestFirst @KevinDunneQA
May teams struggle to pick an automation framework, but the
reality is most frameworks are similar and differentiate in a few
key areas:
CHOOSING AN AUTOMATION FRAMEWORK
•Dev Style
•Is it more focused on BDD, TDD, or ATDD?
•Scalability
•Does it have features to support large enterprises, as well as small teams?
•Language
•Does it support dev centric languages (i.e. Java) or easier to use languages (i.e. Ruby)
•Workflow
•Does it support the concept of features, or stories?
#TestFirst @KevinDunneQA
Moving to BDD process moves testing activity from solely UI
based to focusing more testing at the services/API layer:
BUILDING TESTABLE SOFTWARE
#TestFirst @KevinDunneQA
For cloud and web based applications, it is likely wise to
implement monitoring to guard against any potential bugs
leaking into production while the TDD process is getting started:
MONITORING
What to monitor:
• Scalability
• Performance
• Usability
• Localization
• …the list goes on
#TestFirst @KevinDunneQA
Kevin Dunne
kevindunne@qasymphony.com
Twitter: @KevinDunneQA
QUESTIONS?
Thank You
February 24,
2016

More Related Content

Scaling Test first for the Enterprise

  • 1. Scaling Test First for the Enterprise February 24, 2016
  • 2. #TestFirst @KevinDunneQA Robust testing platform purpose-built to help agile teams create higher quality software ABOUT QASYMPHONY
  • 3. #TestFirst @KevinDunneQA Creating Visibility and Speed with Automation and Test Management Thursday, March 24th at 2pm ET – Guest Speaker: Joe Colantonio Joe Colantonio is a test automation architect for a large Fortune 100 company with more than 15 + years of test automation and performance testing experience. Joe is also the founder of the popular test automation blog, joecolantonio.com and the host of TestTalks, a podcast dedicated to all things test automation related. He is also the author of the highly rated book The UFT API Testing Manifesto – A step-by-step hands-on testing guide for the masses. UPCOMING WEBINAR
  • 4. #TestFirst @KevinDunneQA QUALITY JAM 2016 – APRIL 13TH IN ATLANTA Learn more at qualityjam.com Speakers Include: • Scott Berkun, Best Selling Author • Keith Klain, Software Testing Thought Leader • Michael Cooper, Chief Quality Officer, Healthcare IT Leaders • Adam Satterfield, VP of QA, BetterCloud
  • 5. #TestFirst @KevinDunneQA • Early bird pricing of $100. Pricing will go up to $200 on March 1st . • For a limited time, you can get an additional $20 off using the promo code QASVIP when you check out. • For the first 5 people who send an email to qualityjam@qasymphony.com, you will get a complimentary pass to the event. QUALITY JAM 2016
  • 6. #TestFirst @KevinDunneQA • This webinar will be recorded and available on demand next week • If you have a question, type it into the Q&A module on the left. We will answer as many as we can towards the end of the webinar • Join the conversation on Twitter using the hash tag #TestFirst • At the end of the webinar, you will be asked to take a short survey HOUSEKEEPING
  • 7. #TestFirst @KevinDunneQA Kevin Dunne, VP of Strategy and Business Development, QASymphony Kevin Dunne is the VP of Strategy and Business Development at QASymphony. In this role, Kevin focuses on innovation, thought leadership and new global business opportunities. As one of the first employees at QASymphony, Kevin has seen many facets of the business working in sales, customer support, marketing, and product management. Kevin comes to QASymphony from Deloitte, where he managed testing on large government and Fortune 500 engagements delivering ERP implementations and custom software development. Kevin holds a Bachelor of Science degree from Vanderbilt University. OUR PRESENTER
  • 8. #TestFirst @KevinDunneQA What is TDD? Why are we hearing about it now? How is it different? Why use TDD? How will it benefit my organization? What drawbacks if any exist? How to Implement TDD? How do I prepare my people? What’s the new process? Do I need new tools? AGENDA
  • 9. September 25, 2015 Introduction to QASymphony for [INSERT COMPANY NAME] What is TDD?
  • 10. #TestFirst @KevinDunneQA Past development cycles often modeled the Rational Unified Process: Source: http://www.psa-software.com/_img/_knowledge_center/rup.jpg WHERE WE CAME FROM
  • 11. #TestFirst @KevinDunneQA We would have obviously chosen a more efficient process, but we were constrained by many limitations, including: WHY WE CHOSE IT Environment Creation Code Merges On-Premise Prevalence Desktop Focus Lack of Collaboration Off-Shore Development
  • 12. #TestFirst @KevinDunneQA Many of our priori limitations have been replaced, based on macro trends around technology and industry: WHAT’S CHANGED • Containers have simplified the process dramaticallyEnvironment Creation • Git has replaced Subversion as the industry standardCode Merges • Cloud adoption is at an all time high, increased securityOn-Premise Prevalence • Prevalence of Web, Mobile, Internet of thingsDesktop Focus • Increase in teamwork, chat and collaboration technologyLack of Collaboration • Shifts towards rural sourcing, onshoring of laborOff-Shore Development
  • 13. #TestFirst @KevinDunneQA Now that we have freed ourselves of past limitations, the process has been shifted to one that aligns more with our needs: Traditional Approach Test-First Approach HOW THE PROCESS HAS ADAPTED Design Requirements Code Test Deploy Design (Automated) Test Code Refactor Deploy
  • 14. #TestFirst @KevinDunneQA Test-First methodologies were coined “Test Driven Development”. Less technically focused versions called Acceptance Test Driven Development (ATDD) and Behavior Driven Development (BDD) also emerged: TDD VS ATDD VS BDD Test Driven Development (TDD) Behavior Driven Development BDD Acceptance Test Driven Development (ATDD) Unit Test Driven Development (“Technical TDD”)
  • 15. #TestFirst @KevinDunneQA ATDD and BDD are similar in that they both try to make TDD more accessible to business users. The major functional difference comes down to how the tests are structured: "I think this definition leaves out a key piece, we are focusing on collaboration and learning. Having worked on a project that was using 'ATDD', in 2005 I think, we had the same goals then as BDD without the Given When Then language.“ - Wes Williams WHAT’S THE DIFFERENCE?
  • 16. #TestFirst @KevinDunneQA ATDD/BDD offer benefits over more Unit Focused/Technical TDD, but also has its drawbacks: PROS AND CONS Pros • Increased understanding of tests from business stakeholders • Increased collaboration early in the cycle • More focus on customer and business needs • Higher involvement of business in development and quality Cons • Addition of more tooling in the development/delivery chain • Greater time spent defining tests and specifications • Demands stronger contributors in requirements, dev, test • Often increases the automation needs in an organization
  • 17. September 25, 2015 Introduction to QASymphony for [INSERT COMPANY NAME] Benefits of TDD
  • 18. #TestFirst @KevinDunneQA Test Driven Development brings several major benefits to organization, most notably: 1. Move Testing Up Front – prevents having to rush testing at the end of the cycle 2. Bake in Automation from Day 1 – protects against getting behind with test and automation coverage 3. Build More Testable Software – requires developers to think about testability, and create more robust software 4. Push to Customers When Ready – allows you to push software to customers just in time, as it is developed HOW CAN TDD HELP US?
  • 19. #TestFirst @KevinDunneQA Moving Testing Up Front removes the risk of having to make compromises at the end of the cycle on quality or on-time delivery: Traditional Development Timeline Ends on: Day 1 Day 3 Day 14 Day 20 Day 21 There is risk in this process that any process, typically Code, will run over and either squeeze development, or push release dates. TDD removes it! MOVE TESTING UP FRONT Design Requirements Code Test Deploy
  • 20. #TestFirst @KevinDunneQA The cost of resolving a defect is far greater when found later in the cycle. TDD should help you to find defects as they are created, so they can be resolved quickly and at a lower cost: Source: http://www.isixsigma.com/industries/software-it/defect-prevention-reducing-costs-and-enhancing-quality/ DEFECT COSTS INCREASE AS CODE MATURES
  • 21. #TestFirst @KevinDunneQA In traditional development, automation is often built after the code is developed, which has significant limitations: • Test development is more costly, since we cannot access the code to make it more testable (more details to come) • Tests are slower and more brittle, with higher levels of maintenance, if we can only access the UI • Test coverage is incomplete, as we must chose strategically where to build out automation coverage Moving to TDD flips the process and forces developers to write code to satisfy tests, increasing automation coverage, speed, and reducing cost BAKE IN AUTOMATION UP FRONT
  • 22. #TestFirst @KevinDunneQA Moving towards BDD will force your developers to build an application that can be tested well at the Unit, Integration, and UI levels: Source: http://zeroturnaround.com/wp-content/uploads/2015/12/PUZZLE-1-min.png BUILD FOR TESTABILITY
  • 23. #TestFirst @KevinDunneQA Moving towards BDD will also demand a more complete testing strategy focused on more than just UI testing: BUILDING A COMPLETE TESTING STRATEGY UI Tests Integration Tests Unit Tests Unit Tests Integration Tests Unit Tests
  • 24. #TestFirst @KevinDunneQA TDD paired with continuous delivery will allow you to push features as they become ready, if you’d like to: Old Way New Way PUSH FEATURES WHEN THEY ARE COMPLETE Code Feature A Code Feature B Code Feature C Test Deploy Wait Wait Code Feature A Code Feature B Code Feature C Write Tests Deploy Deploy Deploy
  • 25. September 25, 2015 Introduction to QASymphony for [INSERT COMPANY NAME] Shifting to TDD
  • 26. #TestFirst @KevinDunneQA A change in organizations is never successful without a complete strategy: Source: http://www.consultia.co/wp-content/uploads/2015/07/security-technologies-processes.png RECIPE FOR SUCCESSFUL CHANGE
  • 27. #TestFirst @KevinDunneQA People are the largest driver and inhibitor in change, so there are a number of key changes needed to be made in human capital to move to TDD: PEOPLE RELATED CHANGES Automation Talent Gap Feature Centric Culture Siloed Communication Style
  • 28. #TestFirst @KevinDunneQA Building automation competence is not simple, but it can be done with proper investment: BUILDING AUTOMATION COMPETENCE •Train Up •Train your existing employees around automation and new frameworks •Low cost, long time to benefit, scalable •Hire In •Hire new employees with automation skill to augment your current team •Medium cost, medium time to benefit, scalable •Outsource •Outsource your automation efforts to a team •High cost, low time to benefit, not scalable
  • 29. #TestFirst @KevinDunneQA Developers need to be educated that their time is not solely spent developing feature code: Current Time Spent Future Time Spent SHIFTING FROM A FEATURE CENTRIC CULTURE •Feature Code •Feature Code •Test code •Refactoring
  • 30. #TestFirst @KevinDunneQA Proper BDD is implemented with collaboration between development, test, and business/product – coined the “3 amigos”: Source: http://image.slidesharecdn.com/bdd-in-action-140408000826-phpapp01/95/bdd-in-action-principles-practices- and-realworld-application-8-638.jpg?cb=1396916226 CREATING THE 3 AMIGOS CULTURE
  • 31. #TestFirst @KevinDunneQA Process can be the source of the largest changes, as a process that has been in place for years may need to be extensively overhauled: PROCESS RELATED CHANGES Requirements Specification Requiring Tests Before Code Frequent Refactoring
  • 32. #TestFirst @KevinDunneQA BDD and ATDD requirements are typically written in a Given, When, Then format that differs from traditional requirements: Source: https://github.com/cucumber/cucumber/wiki/Feature-Introduction SHIFTING TO GIVEN, WHEN, THEN
  • 33. #TestFirst @KevinDunneQA Developers are always eager to code – requiring them to write tests (or wait for tests to be written) before coding can be a paradigm shift Source: http://www.tnooz.com/wp-content/uploads/2011/11/angry-computer.jpg BUILDING TESTS BEFORE CODE
  • 34. #TestFirst @KevinDunneQA Properly implemented TDD, BDD, or ATDD should provide additional focus on refactoring and creating more elegant solutions and manageable code: Source: http://hanwax.github.io/assets/tdd_flow.png FOCUSING ON REFACTORING
  • 35. #TestFirst @KevinDunneQA Tools are often the first place organizations look for change, but they likely should be approached after process and technology: TECHNOLOGY RELATED CHANGES Automation Framework Testability / Interfaces Monitoring
  • 36. #TestFirst @KevinDunneQA May teams struggle to pick an automation framework, but the reality is most frameworks are similar and differentiate in a few key areas: CHOOSING AN AUTOMATION FRAMEWORK •Dev Style •Is it more focused on BDD, TDD, or ATDD? •Scalability •Does it have features to support large enterprises, as well as small teams? •Language •Does it support dev centric languages (i.e. Java) or easier to use languages (i.e. Ruby) •Workflow •Does it support the concept of features, or stories?
  • 37. #TestFirst @KevinDunneQA Moving to BDD process moves testing activity from solely UI based to focusing more testing at the services/API layer: BUILDING TESTABLE SOFTWARE
  • 38. #TestFirst @KevinDunneQA For cloud and web based applications, it is likely wise to implement monitoring to guard against any potential bugs leaking into production while the TDD process is getting started: MONITORING What to monitor: • Scalability • Performance • Usability • Localization • …the list goes on