Duration
3 days
Overview
This program introduces Unit Testing, Test Driven Development, Behavior Driven Development, Acceptance Test Driven Development, API Testing Practices, GUI Testing Practices, Collaboration in Testing, and Agile Testing techniques to the audience and follows a life cycle approach where participants get to learn how to practice these in real life projects. Participants learn to implement Agile Testing on a project developing in either java, .net or ruby or C++ framework.
Key Learning Outcomes
- Introduction to Unit test, unit test characteristics
- Test Driven Development – why, what and how
- TDD Cycle – Red, Green and Refactor
- Drive the development (design and implementation) of a User Story
- Learn concept of Emergent Design and why emergent design
- How TDD helps you design software
- Why testing first is better than testing after
- GUI Testing and use of Selenium
- API testing and setting up API testing framework
- API testing using Cucumber/SoapUI
- Difference between Unit testing and API testing
- Setting up Continuous Integration practices
- Running tests through Continuous Integration tools such as Jenkins
Key Learning Activities
Hands-on activities (60-70%) and discussion on mentioned topics (30-40%). Handson activities include writing unit test, code, writing examples and some group creativity activities.
Target Audience
Development team members including developers, testers, architects, leads and scrum masters.
Prerequisites
Laptops/Desktops with required software and internet connection. Software will be provided by facilitator.
Tools
Java/.Net, Cucumber/SpecFlow, Selenium, Jenkins, GIT, Junit/Nunit, SoapUI
Day 1: Acceptance Test Driven Development (ATDD)
Specification by Examples Workshop
- Challenges in Collaboration between Business and Development Team
- How to write better Specification
- Why Examples needed for specification
- Writing Examples in Gherkin
ATDD and BDD workshop
- Principles of Acceptance Test Driven Development
- Consequences of ATDD on the Sprint Planning and Sprint Review
- Principles of Behavior Driven Development
- Practicing BDD with Cucumber/Specflow – Writing features, testing and reporting
- Role of Product Owner and crew when writing scenarios acceptance
GUI and API Testing/ Data Driven Testing
- Overview of Selenium and best practices for GUI testing
- Design GUI test framework using Selenium, Cucumber and TestNG
- Overview of SoapUI and API testing
- Design API testing framework from scratch
- Best practices for API testing
Day 2: Unit Test and Test-Driven Development
Unit Testing
- What is unit testing
- Why unit testing is needed
- Difference between Unit Testing and Integration Testing
- Developer and Tester role in Unit Testing
Test Driven Development workshop
- Design of the TDD approach and its benefits
- Improving the quality and design of the code by testing?
- Different types of tests: unit, integration, functional
- Understand the life cycle of a test in the xUnit framework
- Respect of the principle of isolation and control of test results
Day 3: Continuous Integration and Agile Testing
Introduction to Continuous Integration
- Principles, environment and infrastructure
- Branching strategies and patterns for continuous integration.
- Solutions for Continuous Integration: Hudson, Jenkins, Cruise Control, Bamboo,
TeamCity, Apache Continuum
Introduction to Jenkins
- Dashboard and health projects
- Installation, configuration and use of Jenkins
- Automated Builds with Jenkins and Maven
- Automation Testing with JUnit (TDD) and Cucumber (BDD/ATDD)
Agile Testing
- Importance of Agile testing
- Brian Marick’s Testing Quadrants
- Inverting the Testing Pyramid
- Developer Testing Practices
- Exploratory Testing practices
- Ensure better quality product iteration by iteration
Programme scope, delivery arrangements and suitability are confirmed during enquiry.