T6 Choosing Test Approaches 10/19/2017 11:30:00 AM Behavior Driven Development (BDD) - A Guide to Agile Practices Presented by: Josh Eastman Experis Brought to you by: 350 Corporate Way, Suite 400, Orange Park, FL 32073 888-­‐268-­‐8770 ·∙ 904-­‐278-­‐0524 - info@techwell.com - https://www.techwell.com/
Josh Eastman Experis Josh Eastman is an Automation Architect for the Testing Practice of Experis IT Development Solutions, a Global IT Services Company. Josh creates automation solutions for Experis’ client portfolio and was a recent speaker at the Agile Testing and Test Automation Summit in Seattle. Holding such roles as senior developer, test lead, automation program Lead, and automation architect, Josh has designed and implemented various automation frameworks that have proven to be effective in testing web applications, mobile applications, mainframe systems, web services, and databases. He has also successfully integrated many third-party tools and testing software that are most relevant in the QA and testing industry today.
10/9/2017 1 Behavior DrivenBehavior Driven Development (BDD) Guide to Agile Practices Monday, October 09, 2017 Presenter: Joshua Eastman – Automation Architect, Delivery Specialist Behavior Driven Development (BDD) Guide to Agile Practices • Group ExerciseGroup Exercise • Foundational Understandings – Agile – The DD’s – What is BDD? – Automation Strategies Experis | Monday, October 09, 2017 2 • How Does BDD Increase Quality • Agile Workflow
10/9/2017 2 Group Exercise • Imagine you are a SQA manager Y h 25 di t t (QA A l t ) Group Exercise • You have 25 direct reports (QA Analysts) • 6 Agile lines (2 Run, 4 Build) • Business demand is expected to nearly double in the next year Experis | Monday, October 09, 2017 4 • System defect rate (5 defects/1,000 release hours) • Production defect rate (1.75 defects/1,000 release hours) How can you possibly prepare for the increase in business demand and try to lower your defect rates – or increase quality – simultaneously?
10/9/2017 3 Employ a deliberate emphasis on quality – implementing an industry best practice – Behavior Driven Development (BDD) – with a determined focus incorporating automation Solution Business Demand increases by 187% You decrease your system defect rate to 1.43 defects/1000 release hours You decrease your production defect rate to 1.3 defects/1000 release hours You increase your direct reports by only 7 190,008 hours to 354,739 hours 5 defects/1000 release hours to 1.43 defects/1000 release hours 1.75 defects/1000 release hours to 1.3 defects/1000 release hours 25 compared to 32 Experis | Monday, October 09, 2017 5 Fortune 100 Company Year X Year X+1 Business Demand (Release Hours) 190,008 354,739 System Testing Defects 937 508 Production Defects 332 464 Testing Resources 25 32 Annual Savings $1,191,360  $1,183,540  $1,365,900  TOTAL ANNUAL BUSINESS VALUE ($) $3,740,800 Foundational Understanding
10/9/2017 4 Most Organizations Use Some Form of Agile Experis | Monday, October 09, 2017 7 Agile emphasizes empirical feedback, team self management, and striving to build properly tested product increments within short iterations. Acceptance Test Driven Development (ATDD) is a form of Behavior Driven Development (BDD) that focuses on requirements specified in the form of acceptance criteria. How are Testing and Requirements related? Differences Between TDD, BDD, ATDD BDD TDD Tests focused on what a Class or Method execution results. What result should it return? Tests focused on behavior of classes or components. What behavior should it exhibit? Code Tests foc sed on req irements of applications Experis | Monday, October 09, 2017 8 ATDD Requirements Internal External Tests focused on requirements of applications. What business functionality should it implement? A story’s behavior is simply its acceptance criteria – if the system fulfills all the acceptance criteria, it’s behaving correctly; if it doesn’t, it isn’t.
10/9/2017 5 • Industry practice in which whole team collaborates on system testing and “definition of done” What is BDD? definition of done • Developer focuses on making system test(s) pass • Automate tests while production code is being developed • Automation design completes before or parallel to development Experis | Monday, October 09, 2017 9 • Tests become part of build pipeline and are run throughout the sprint • Automated tests represent the true business value and living documentation BDD promotes requirements by example, collaboration, lower cost in resolving defects, and automation in the form of business value. Automation Strategy (Old) • Often a one-tool approach • Brittle automated tests • Maintenance is high More Automated • Tools have not been plentiful • Experience with open source low Experis | Monday, October 09, 2017 10 • Defects escape easily • Developer accountability low • Cost of quality is high Less Automated These problems have caused automation to be expensive and ineffective
10/9/2017 6 Automation Strategy (New) More Automated • Use tools such as xUnit • Find defects quickly • Keep technical debt low • Use tools such as Cucumber • Best use in regression tests • Use plug-ins to extend to other tiers Experis | Monday, October 09, 2017 11 Less Automated • Use tools such as Selenium, Watir • Make UI tests maintainable • Can increase UI tests with stability Values
10/9/2017 7 1. Process Encourages Collaboration 2. Requirements with Examples How Does BDD Increase Quality? 3. Promotes Automation 4. Find Defects Earlier and Often Experis | Monday, October 09, 2017 13 There are many other values to BDD but we’ll discuss these four values specifically. • BDD requires discipline to ensure that the right people work together to create the tests • Customers must work with developers BDD Value #1: Process Encourages Collaboration Customers must work with developers  to prevent the developers from writing tests that are too low level and tests use customer terminology is used  to ensure that what is being tested is important (to the customer) • Developers must work with testers  testers will be looking for corner cases and good coverage  developers can use their expertise to ensure that the test cases are properly decomposed Experis | Monday, October 09, 2017 14 • BA, Dev, and QA roles will balance each other  Collaboration is primary  Consistent domain vocabulary is critical  Getting automation right is important
10/9/2017 8 • Gherkin is a language/syntax that is a Business Readable, Domain Specific Language created specifically for behavior descriptions. What is Gherkin? • It gives you the ability to remove logical details from behavior. Gherkin serves as your project's documentation as well as your project's automated tests. • Test template in the form of Given When Then (GWT) • Given some initial context (the givens), • When an event occurs, • Then ensure some outcomes. Real World Example Experis | Monday, October 09, 2017 15 Given a user navigates to the Experis website And the user clicks enter as a job seeker And the user clicks the go button When the application navigates to the Experis Jobs page And the user clicks the experis continued support Then the text for experis continued support is displayed Real World Example Requirements Traceability Selective Testing BDD Value #3: Promotes Automation Selective Testing Execution Reports Experis | Monday, October 09, 2017 16 Cross-Browser Testing Continuous IntegrationCross-Environment Testing TEST  QA  STAGE IT  ST  PT  UAT
10/9/2017 9 • Cucumber is an open source software tool written in Ruby and uses a plain text Domain Specific Language (DSL) called Gherkin. • Cucumber lines of text are processed by Ruby ‘step definitions’ which What is Cucumber? p y y p are code blocks that execute the given, when, and then specifications against an application. It runs automated acceptance tests written in a behavior driven development (BDD) / acceptance test driven development (ATDD) style. • Cucumber lets software development teams describe how software should behave in plain text. The text is written in a business-readable “plain English” type language and serves as documentation, automated tests and development-aid - all rolled into one format. Experis | Monday, October 09, 2017 17 • Cucumber works with Ruby, Java, .NET, Flex or web applications written in any language. It has been translated to over 40 spoken languages. www.cukes.info Aslak Hellesoy created Cucumber to support BDD/ATDD. He states: The idea was to combine automated tests, functional requirements and software documentation into one format that would be understandable by non-technical people as well as testing tools. BDD Promotes Full Scope Automation Experis | Monday, October 09, 2017 18
10/9/2017 10 • Increases testing coverage – multiple browsers, database, services • Increases testing frequency I t ti ffi i li i t titi k i BDD Value #4: Find Defects Earlier & Often • Increases testing efficiency - eliminate repetitive work, increase reusability • Finds defects/bugs as they are introduced • Promotes code quality/refactoring (instant feedback) • Promotes continuous integration (CI/CD) • Decrease test and production defects Experis | Monday, October 09, 2017 19 • Decrease operational cost Agile Workflow
10/9/2017 11 Agile Workflow Experis | Monday, October 09, 2017 21 Questions? Josh Eastman QA Automation Architect joshua.eastman@experis.com www.linkedin.com/in/JoshuaEastman

Behavior Driven Development—A Guide to Agile Practices

  • 1.
    T6 Choosing Test Approaches 10/19/201711:30:00 AM Behavior Driven Development (BDD) - A Guide to Agile Practices Presented by: Josh Eastman Experis Brought to you by: 350 Corporate Way, Suite 400, Orange Park, FL 32073 888-­‐268-­‐8770 ·∙ 904-­‐278-­‐0524 - info@techwell.com - https://www.techwell.com/
  • 2.
    Josh Eastman Experis Josh Eastmanis an Automation Architect for the Testing Practice of Experis IT Development Solutions, a Global IT Services Company. Josh creates automation solutions for Experis’ client portfolio and was a recent speaker at the Agile Testing and Test Automation Summit in Seattle. Holding such roles as senior developer, test lead, automation program Lead, and automation architect, Josh has designed and implemented various automation frameworks that have proven to be effective in testing web applications, mobile applications, mainframe systems, web services, and databases. He has also successfully integrated many third-party tools and testing software that are most relevant in the QA and testing industry today.
  • 3.
    10/9/2017 1 Behavior DrivenBehavior Driven Development(BDD) Guide to Agile Practices Monday, October 09, 2017 Presenter: Joshua Eastman – Automation Architect, Delivery Specialist Behavior Driven Development (BDD) Guide to Agile Practices • Group ExerciseGroup Exercise • Foundational Understandings – Agile – The DD’s – What is BDD? – Automation Strategies Experis | Monday, October 09, 2017 2 • How Does BDD Increase Quality • Agile Workflow
  • 4.
    10/9/2017 2 Group Exercise • Imagineyou are a SQA manager Y h 25 di t t (QA A l t ) Group Exercise • You have 25 direct reports (QA Analysts) • 6 Agile lines (2 Run, 4 Build) • Business demand is expected to nearly double in the next year Experis | Monday, October 09, 2017 4 • System defect rate (5 defects/1,000 release hours) • Production defect rate (1.75 defects/1,000 release hours) How can you possibly prepare for the increase in business demand and try to lower your defect rates – or increase quality – simultaneously?
  • 5.
    10/9/2017 3 Employ a deliberateemphasis on quality – implementing an industry best practice – Behavior Driven Development (BDD) – with a determined focus incorporating automation Solution Business Demand increases by 187% You decrease your system defect rate to 1.43 defects/1000 release hours You decrease your production defect rate to 1.3 defects/1000 release hours You increase your direct reports by only 7 190,008 hours to 354,739 hours 5 defects/1000 release hours to 1.43 defects/1000 release hours 1.75 defects/1000 release hours to 1.3 defects/1000 release hours 25 compared to 32 Experis | Monday, October 09, 2017 5 Fortune 100 Company Year X Year X+1 Business Demand (Release Hours) 190,008 354,739 System Testing Defects 937 508 Production Defects 332 464 Testing Resources 25 32 Annual Savings $1,191,360  $1,183,540  $1,365,900  TOTAL ANNUAL BUSINESS VALUE ($) $3,740,800 Foundational Understanding
  • 6.
    10/9/2017 4 Most Organizations UseSome Form of Agile Experis | Monday, October 09, 2017 7 Agile emphasizes empirical feedback, team self management, and striving to build properly tested product increments within short iterations. Acceptance Test Driven Development (ATDD) is a form of Behavior Driven Development (BDD) that focuses on requirements specified in the form of acceptance criteria. How are Testing and Requirements related? Differences Between TDD, BDD, ATDD BDD TDD Tests focused on what a Class or Method execution results. What result should it return? Tests focused on behavior of classes or components. What behavior should it exhibit? Code Tests foc sed on req irements of applications Experis | Monday, October 09, 2017 8 ATDD Requirements Internal External Tests focused on requirements of applications. What business functionality should it implement? A story’s behavior is simply its acceptance criteria – if the system fulfills all the acceptance criteria, it’s behaving correctly; if it doesn’t, it isn’t.
  • 7.
    10/9/2017 5 • Industry practicein which whole team collaborates on system testing and “definition of done” What is BDD? definition of done • Developer focuses on making system test(s) pass • Automate tests while production code is being developed • Automation design completes before or parallel to development Experis | Monday, October 09, 2017 9 • Tests become part of build pipeline and are run throughout the sprint • Automated tests represent the true business value and living documentation BDD promotes requirements by example, collaboration, lower cost in resolving defects, and automation in the form of business value. Automation Strategy (Old) • Often a one-tool approach • Brittle automated tests • Maintenance is high More Automated • Tools have not been plentiful • Experience with open source low Experis | Monday, October 09, 2017 10 • Defects escape easily • Developer accountability low • Cost of quality is high Less Automated These problems have caused automation to be expensive and ineffective
  • 8.
    10/9/2017 6 Automation Strategy (New) More Automated •Use tools such as xUnit • Find defects quickly • Keep technical debt low • Use tools such as Cucumber • Best use in regression tests • Use plug-ins to extend to other tiers Experis | Monday, October 09, 2017 11 Less Automated • Use tools such as Selenium, Watir • Make UI tests maintainable • Can increase UI tests with stability Values
  • 9.
    10/9/2017 7 1. Process EncouragesCollaboration 2. Requirements with Examples How Does BDD Increase Quality? 3. Promotes Automation 4. Find Defects Earlier and Often Experis | Monday, October 09, 2017 13 There are many other values to BDD but we’ll discuss these four values specifically. • BDD requires discipline to ensure that the right people work together to create the tests • Customers must work with developers BDD Value #1: Process Encourages Collaboration Customers must work with developers  to prevent the developers from writing tests that are too low level and tests use customer terminology is used  to ensure that what is being tested is important (to the customer) • Developers must work with testers  testers will be looking for corner cases and good coverage  developers can use their expertise to ensure that the test cases are properly decomposed Experis | Monday, October 09, 2017 14 • BA, Dev, and QA roles will balance each other  Collaboration is primary  Consistent domain vocabulary is critical  Getting automation right is important
  • 10.
    10/9/2017 8 • Gherkin isa language/syntax that is a Business Readable, Domain Specific Language created specifically for behavior descriptions. What is Gherkin? • It gives you the ability to remove logical details from behavior. Gherkin serves as your project's documentation as well as your project's automated tests. • Test template in the form of Given When Then (GWT) • Given some initial context (the givens), • When an event occurs, • Then ensure some outcomes. Real World Example Experis | Monday, October 09, 2017 15 Given a user navigates to the Experis website And the user clicks enter as a job seeker And the user clicks the go button When the application navigates to the Experis Jobs page And the user clicks the experis continued support Then the text for experis continued support is displayed Real World Example Requirements Traceability Selective Testing BDD Value #3: Promotes Automation Selective Testing Execution Reports Experis | Monday, October 09, 2017 16 Cross-Browser Testing Continuous IntegrationCross-Environment Testing TEST  QA  STAGE IT  ST  PT  UAT
  • 11.
    10/9/2017 9 • Cucumber isan open source software tool written in Ruby and uses a plain text Domain Specific Language (DSL) called Gherkin. • Cucumber lines of text are processed by Ruby ‘step definitions’ which What is Cucumber? p y y p are code blocks that execute the given, when, and then specifications against an application. It runs automated acceptance tests written in a behavior driven development (BDD) / acceptance test driven development (ATDD) style. • Cucumber lets software development teams describe how software should behave in plain text. The text is written in a business-readable “plain English” type language and serves as documentation, automated tests and development-aid - all rolled into one format. Experis | Monday, October 09, 2017 17 • Cucumber works with Ruby, Java, .NET, Flex or web applications written in any language. It has been translated to over 40 spoken languages. www.cukes.info Aslak Hellesoy created Cucumber to support BDD/ATDD. He states: The idea was to combine automated tests, functional requirements and software documentation into one format that would be understandable by non-technical people as well as testing tools. BDD Promotes Full Scope Automation Experis | Monday, October 09, 2017 18
  • 12.
    10/9/2017 10 • Increases testingcoverage – multiple browsers, database, services • Increases testing frequency I t ti ffi i li i t titi k i BDD Value #4: Find Defects Earlier & Often • Increases testing efficiency - eliminate repetitive work, increase reusability • Finds defects/bugs as they are introduced • Promotes code quality/refactoring (instant feedback) • Promotes continuous integration (CI/CD) • Decrease test and production defects Experis | Monday, October 09, 2017 19 • Decrease operational cost Agile Workflow
  • 13.
    10/9/2017 11 Agile Workflow Experis |Monday, October 09, 2017 21 Questions? Josh Eastman QA Automation Architect joshua.eastman@experis.com www.linkedin.com/in/JoshuaEastman