Program Overview: Two Days of Training and Coaching Workshop
The course is aimed at anyone on who wants to learn what testing means on an agile team. All team members will benefit from understanding their contribution and the interaction with testers on the team. Test/QA and development managers, who work with testers, will also find the course valuable.
Target Group and Prerequisites:
- Testers in Agile projects
- Project managers entering the Agile environment
- Managers of teams involved in Agile development
This Agile Testing course is not just for testers. Product Owners, Programmers and all other members of an agile team will benefit from understanding their contribution and the interaction with testers.
Outcome of this workshop:
By the end of this course, attendees will be able to:
- understand the background to testing in an Agile project
- understand how Agile teams cooperate and collaborate to deliver quality solutions
- understand how to plan, perform and discuss quality and testing in the Agile team
- understand how to set up testing for success in an Agile team
- understand the background to test automation in an Agile project
- understand the various tool frameworks available to Agile teams to facilitate the testing of the project
- understand how to plan, perform and implement automated testing in the Agile team
- understand how to set up automated testing for ongoing success in an Agile team.
Format of Workshop:
Participants get to understand core principles and in-depth understanding of testing in an Agile/Scrum environment in the form of videos, group discussions, exercises, interactive sessions, innovation games. Following topics in detail will be addressed in a day:
- The Agile culture and mindset
- Agile testing components and approaches
- Categories/Types of testing
- Test Strategies and Test Planning
- Project/release level
- Iteration level
- Story level
- Defect management
- Defect prevention Lean thinking – Build Quality In
- Test Automation strategy
- Automation Pyramid – Strategy to approach automation testing on projects
- Unit Testing
- Integration Testing
- Functional Testing
- Manual Testing
- Automation planning
- People
- Tools – Test/defect management
- Infrastructure – environment
- Time
- Training
- Automation tools
- Add –in for test management tool integration
- Add-in to support AUT (like SAP, oracle etc)
- Framework set up
- Tool specific training
- Frameworks – A set of guidelines which when followed produce beneficial results
- Linear Scripting
- The Test Library Architecture Framework.
- The Data-Driven Testing Framework.
- The Keyword-Driven or Table-Driven Testing Framework.
- The Hybrid Test Automation Framework.
- Automation Pyramid – Strategy to approach automation testing on projects
- Automating Testing
- When and how to introduce test automation?
- Test Levels
- Unit
- Integration
- Acceptance
- Mapping tests to test levels
- ATDD and BDD frameworks
- UI testing frameworks (Selenium, Geb, Sahi etc.)
- Continuous Integration (CI) and Continuous Delivery (CD)
- Introduction to CI and CD
- Demo of Jenkins CI cycle
- Automated test cycles for every code commit
- Unit testing
- Integration testing and quality build with static code analysis tools
- Automated functional testing
- Performance testing
- Release
- Code Analysis/metrics (FindBugs, CheckStyle, Sonar, PMD etc)
- Specification by Example or Acceptance Test Driven Development (ATDD) or Behaviour Driven Development (BDD)
- Why we need ATDD
- How to build a shared understanding of the domain using realistic examples(business, QA, developers)
- Difference between “Specifications by Example” and Acceptance Tests
- Common pitfalls with acceptance testing
- Techniques for keeping the specification alive
- Automation Support for Integration and System Testing
- Data management
- Exploratory testing
- Non-functional testing
- When and how agile teams apply performance testing on projects
- The role of Agile tester and developers in Non-functional testing
- Virtualisation
- Environment virtualization with private or public cloud support
- Service Virtualization – simulates constrained or unavailable systems across the software development lifecycle (SDLC), allowing developers, testers and performance teams to work in parallel for faster delivery and higher application quality and reliability.
- Exploratory testing and supporting tools
- Scripting
- Note taking
- Mind Mapping
- For brainstorming and taking discussion notes
- For defining a testing dashboard
- To identify tested and untested modules
- Better way (non-linear) to write exploratory tests
- Screen capture
- A/B Testing – the goal is to identify changes to web pages that increase or maximize an outcome of interest
- Agile testing tools – big visible charts, things on walls, scope, definition of done
- Metrics to measure Agile Testing
- Post production release defects
- Automation (unit, integration and functional) effectiveness over sprints
- Test coverage tools
- UAT
- Incremental UAT vs big bang
- How to plan UAT in Agile cycle
When conducting these workshops, we focus on an organization’s specific needs, challenges and expertise level in Agile. The practical cases, risk mitigation strategies and emergent practices we share, help organizations to lay a good road-map to agility.
Facilitator will address all the questions from participants about applying Agile Testing practices on real life projects.
Prerequisites:
- Basic agile knowledge is recommended so the participants can actively contribute with questions and shared experiences.
Infrastructure requirements:
- Participants will be divided to multiple teams of 3-4 people. Each team will be sitting
- around round table
- 2-3 whiteboards at least and markers of different colors
- Post-its on each table with pens
- Internet connection to the facilitator to display and pull information from net
- Audio speakers connected to facilitator laptop