This event is now over

Event Details

About

About The Event

 

Today’s dynamic environment requires businesses and software development teams to collaborate effectively to deliver products faster and better.

BDD combines the techniques and principles of test-driven development (TDD) with ideas from domain-driven design and object-oriented analysis and design. BDD enables an expanded feedback loop to include business stakeholders and end users such that there is better communication, clarity and confidence in the Software development process. It aims at explaining requirements as behaviours of the end user in ubiquitous language and then using the same behaviours as the basis of test cases. BDD empowers software teams to produce more valuable software with fewer bugs, leading to reduced development and maintenance costs and shorter time to market.

Day 1: A comprehensive introduction to BDD

 Target audience: Product Owners, ScrumMasters, Developers, QA, Architects, Test Architects, Project Managers, and Business Analysts.

 Prerequisite: None

Course Structure

  • BDD Introduction
    • The need for better collaboration
    • [Activity] To emphasize on requirement clarity  
    • History of BDD
    • The core Philosophy
    • An example, specification by example
  • Gherkins
    • Basic scenario writing
    • Expressive scenarios
      • Background    
      • Data tables
      • Scenario Outline
    • [Activity] to get hands on Gherkins
  • The BDD the flow aspects
    • 3+1 Amigo meetings
    • BDD and TDD cycles
    • Example Mapping
    • Feature injection
    • SHE QC model of thinking
    • [Activity] A mock  3+1 Amigo meeting
      • Identifying scenario for  an example feature
  • BDD and Test strategy
    • Test pyramid
    • Test iceberg
    • Working with legacy code
      • DEeP Model
      • [Activity] To adopt BDD on  legacy system
  • Conclusion, Retro, QA

Day 2: BDD Hands On using Cucumber, Java and Maven

Target audience: Developers, QA, Architects, Test Architects 

Prerequisite:

  • Should have attended Day 1, A comprehensive introduction to BDD
  • A laptop with JDK, eclipse and Maven installed
  • Should know basics of java (beginner level )

Course Structure

  • [Hands On] Cucumber set up
  • Philosophy
    • Steps, Step definitions, Glue code  
    • [Hands on] Hello world of cucumber
  • [Hand On] Cucumber Basic
    • Handling arguments
    • Data tables
    • Transformation functions & Helper classes
  • [Hands On] Test Code Architecture
    • Domain objects
    • BDD and TDD cycle
    • Dependency injection in cucumber
    • Common mistakes
  • [Hands On] BDD in Green field  projects
    • We will work on a green field example project
  • [Hands On]
    • We work on an enhancement of legacy project
  • [Hands On] Advanced cucumber features
    • Using hooks
    • Limiting WIP
    • Controlling cucumber
  • Conclusion, Retro and QA

Course Objective:

The workshop is structured with theoretical and hands-on activities such that you –

  • Learn to define the problem: Why it’s difficult to specify what a software should do?
  • Understand how the whole team collaborates around scenarios to support development
  • BDD scenarios: Learn to drive the development (design and implementation) of a User Story using BDD revision
  • Collaboratively define scenarios that refine and clarify user stories
  • Gherkin: how clear and concise scenarios can drive automated acceptance tests 
  • Practice key techniques to collaborate between business and tech to flush out scenarios, which helps your team deliver business value faster

 

Note: All attendees are welcome to attend the theoretical session on Day 1. However, those who plan to attend Day 2 should have attended sessions on Day 1. Day 2 comprises a series of hands-on sessions (Developers, QA, Architects, Test Architects).

About the Trainer:

Ranjith Tharayil is an accomplished innovator, software craftsman and an inspirational servant leader, with over 11 years of experience in the software industry. As Head of Technology Consulting, SolutionsIQ he specializes in strategizing and planning digital transformations. He has been an integral part of the R & D departments in large scale product companies and has 8 patents and several publications across different domains which includes software architecture, Human Computer Interaction, image processing, graphics, embedded systems etc. He enjoys sharing knowledge and is a well-known public speaker. The Association for Computing Machinery (ACM) has appointed him as ACM Distinguished Speaker from 2016. Ranjith is also a passionate Agile Engineering Coach and change agent and a certified CSP from Scrum Alliance.

Contact us for corporate discounts and bulk bookings:

Email: training-india@solutionsiq.com

India Phone: +91 80 2227 4999/+91 88844 03399

Contact

Email: training-india@solutionsiq.com

India Phone: +91 88844 03399

Schedule

March 04, 2017 — 10:00 am to
March 05, 2017 — 4:00 pm

Add to your calendar

Venue

SolutionsIQ India
No.505, 5th Floor, Prestige Towers
100/95, Residency Road
Bengaluru, Karnataka
India

Map