Detailed Course Outline
Testing in an Agile Environment
General testing theory
- Evaluating the key testing principles
- Differentiating between Agile and traditional practices
- Introducing the theory and purpose of Agile Testing
Transitioning to Agile software development processes
- Mapping Agile principles and values to testing
- Inspecting Agile testing quadrants
- Benefiting from Test Driven Development (TDD)
- Automating testing for better Agility
Confirming Customer Satisfaction
Acquiring a test basis
- Testing the charter and key features
- Focusing on customer value and user personas
- Writing useful test cases from user stories
- Developing Story Acceptance Criteria
Automating through Acceptance Test Driven Development (ATDD)
- Designing the anatomy of an Agile Test
- Creating a Test Idea Catalog
- Refining a Definition of Done and Ready
- Anticipating validation criteria through Behaviour Driven Development (BDD)
Preparing for User Acceptance Testing (UAT)
- Specifying by examples and scenarios
- Enabling Usability and Exploratory Testing
- Performing Story-Mapping for better coverage
- Managing the UAT processes
Implementing Developer and Technology Testing
Building proficiency with TDD
- Defining the unit candidates for testing
- Achieving green-light success
- Identifying good tests
- Dealing with large systems
Validating for FURPS+
- Finding non-functional testing patterns
- Simulating interfaces and conducting performance testing through automation
Test Management
Test strategy and planning
- Creating a risk-based approach to release planning
- Coordinating day-to-day through a lightweight test plan
- Declaring rules on zero-bug tolerance and defect tracking
- Using metrics to measure success
Successful delivery management
- Implementing continuous integration and deployment
- Setting-up JIT test environments
- Organising post-release testing
Team mindset and culture
- Working toward a whole team approach to quality
- Designing software with high testability attributes
- Sharing testing responsibilities between developers and testers
- Collaborating on complex and distributed teams projects