Agile QA Practices

This course is focused on testers in an Agile environment. It covers their role, responsibilities and tasks in all phases of the project life cycle. It will show you how to test effectively in an Agile project where the focus is on high quality working software. This course covers the preparation of a test strategy and plan for an Agile project. It looks at testing in a holistic way within the Agile context and examines the responsibilities of testing resources in an Agile development project. It also addresses the approaches that improve the effectiveness of the testing role in an Agile team and covers details of how to write test cases for stories and how to use test scenarios to test over multiple stories.

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