Overview
Audience
Quality Analysts, Software Testers, Software Developers, Business Analysts
Duration
3 days
Pre-requisite
Agile Fundamentals
Learning Objectives
- Understand the core Agile engineering practices and how they impact the quality function on an Agile team
- Understand the QA role on an Agile team and its responsibilities
- Understand the fundamentals of test automation as they relate to effectively building software on an Agile team
- Understand the overall approach to quality on an Agile team
Course Outline
Introduction
- Introduction of trainers and participants
- Hopes & Fears exercise
- Learning objectives
- Intended audience
- Agile best practices review
Essential Agile Engineering Practices
- Pairing • Refactoring
- Test Driven Design / Development
- Functional Testing - Tools and Practices
- Continuous Integration
- Regression Testing
- Test Automation
- Build and Release
QA Responsibilities
- How testing is integral to agile development and how to leverage that
- Being involved early – continuous feedback
- The importance of identifying faults early
- BA/QA: Who is responsible for signing off on stories?
- QA: Switching contexts
- Iteration n + 1 tasks (preparing)
- Iteration n tasks (defining)
- Iteration n - 1 tasks (executing and refining)
- Roles of a QA in an Agile team
- Analyze the story and add more tests during story planning session - pair with BA
- Implement and automate acceptance tests - pair with Dev
- Dev box testing and dev box signoff
- More testing
Communication & Monitoring
- Strategy and planning
- What should be included / excluded?
- How much detail should be captured in initial plans?
- Including testing effort in estimates
- Data considerations
- Impact to automation
- Dashboards and metrics
- Faults uncovered within an iteration (lightweight)
- Faults uncovered post-iteration
- Defects, stories, enhancements
- Managing testing duplication
- Elaborating stories and tests incrementally
- Collaborating with customers to achieve this
Environments & Data
- Physical environments
- Where does each testing phase take place?
- Continuous deployment
- Mocking / stubbing
- Understanding the target production environment
- Client-side and server-side
Test Cases
- Writing good test cases
- Writing test scenarios
- Difference between acceptance tests and test cases
- Black-box v . white-box testing
- Regression testing
- Stress and load testing
- Performance testing
Automation
- The importance of test automation
- Working with developers to implement automation
- How much to automate?
- Agile friendly automation tools
- Why heavyweight tools does not fit Agile?
- Driver vs. Framework
- Responsibilities of a driver
- Responsibilities of a framework
- How to get quicker feedback from automation
- Break test suites
- Parallel execution
- Best practices
- Contexts o Abstraction
- Assert vs. Verify
- Don’t Repeat Yourself (DRY)
- Smells
- Patterns
- Page object pattern
- Domain object
External Considerations
- Common framework components
- Common data
- Integrating into the enterprise
- Reporting
- Releasing