Full Day Class: BDD Test Automation: Maximum Team Collaboration

Behavior Driven Development (BDD) is an industry practice in which the team collaborates on feature development by reframing the system testing as user behavior. In BDD, the scripted tests take the form of requirements by example, and the developer focuses on making those examples pass. BDD is often implemented with automation tests in mind, as the examples can be scripted to both elaborate the requirements and verify the user behavior has been delivered. One such way to write automation for BDD is with a tool called Cucumber.

Cucumber was created by Aslak Hellesoy as a software development collaboration tool more than a decade ago. In his own words, “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.” The implementation of test automation is often easier said than done, as automation testers must have the right skillset & technology, which cohesively fits into team standards & practices.

Attendees of this class will build a Test Automation framework capable of supporting Behavior Driven Development. Before any code is written, this class will first develop a quality language capable of scaling with an organization. The attendees will learn how to write BDD automated scenarios, handle test data, implement continuous integration with Jenkins, and create standards around test development.

Learning Objectives:

  • Create test scenarios in Gherkin
  • Craft reusable step definitions based on central user actions
  • Continuous integration with Jenkins
  • Effective data management with databases
  • Debugging & code reviews
  • Refactoring & code metrics
  • Build a shared team understanding of quality requirements

Class Outline:

  • BDD Overview
    • Quality Requirements
    • BDD With Gherkin
    • Example Mapping
    • From Imperative to Declarative<\li>
  • Automation Workspace Setup & Framework Overview<\li>
    • Ruby<\li>
    • DevKit<\li>
    • RubyGems<\li>
    • RubyMine<\li>
    • Project Setup<\li>
    • Browser Drivers<\li>
  • Project Suite Updates & Tagging/Executing Automation Tests<\li>
    • Version Control<\li>
    • Updating / Committing<\li>
    • Tagging Standards
    • Rake Tasks<\li><\li>
  • Features & Scenarios<\li>
    • Cucumber<\li>
    • Features<\li>
    • Scenarios<\li>
  • Step Definitions & Helper Modules<\li>
    • Overview<\li>
    • Writing a Step<\li>
    • Step Definition Standards<\li>
    • Helper Modules<\li>
  • PageObject & Data Files<\li>
    • Page Classes<\li>
    • YAML<\li>
    • Input/Expected Data Handling<\li>
  • Continuous Integration with Jenkins<\li>
    • Overview<\li>
    • Plugins<\li>
    • Jobs<\li>
    • Nodes<\li>
  • Data Management & Databases<\li>
    • Gems<\li>
    • Framework<\li>
    • Table Classes<\li>
    • Querying<\li>
  • Refactoring & Code Reviews<\li>
    • Code Analysis Tools<\li>
    • Team Standards<\li>
    • SDLC Integration<\li>

Location: PradoDate: May 13, 2019Time: 8:30 am - 4:30 pm Thomas Haver