Agile QA - Capabilities & Skills

To be successful in Agile Testing

Do whatever it takes to

 Ensure

  Are we building the right product?

  Are we building it correctly?

Philosophy

 Agile Manifesto

  Individuals & Interactions - Over - Processes & Tools

  Working Software - Over - Comprehensive Documentation

  Customer Collaboration - Over - Contract Negotiation

  Responding To Change - Over - Following a Plan

 Agile Testing Manifesto

  Collaborative Ownership - Over - Detached Objectivity

  Targeted Automation - Over - Widespread Regression

  Defect Prevention - Over - Defect Detection

  Exploratory Testing - Over - Predetermined Scripting

 Testing Principles

  Build Quality In

   rather than "testing it in"

  Involving everyone

   Testing is a Team Responsibility, NOT Tester's responsibility

  Fast feedback

  Tests are an Asset

   of the product, not the project

   of the team, not the Testing team!

  Faster Delivery into Production

  Clear & Consistent view of Testing

   across the organization / team

  Business Optimize Value

   should help Business to Optimize Value of work being done

Capabilities required to be successful in a QA role

 Be open minded

 Quick Learner

 Bridge the communication gap

  across all

   Stakeholders (Business / IT)

    build relationship and trust

     to ensure they understand what and how testing should be done

     to ensure their requirements are well understood

     to be able to raise risks, and provide measures / solutions to mitigate the same

   Team members

    Business Analyst (BA)

    Developers

    QA

    Project / Iteration Managers

    DevOps

 Risks

  Identify potential risks

   related to

    people

    scope

    capacity

    processes

    practices

    quality of work being done

    dependencies

    environments

    systems

    data

    integrations

  Provide potential solutions to help mitigate it

 Facilitate

  discussions / conversations to help determine the right approach

  Retrospectives

  Brain-storming sessions

 Continuous Delivery

  How can we get quick feedback from what is developed?

  How quickly can we get the functionality in front of the end-user?

  How can we learn from that feedback, and get better, quickly

  How can we build quality into the product instead of testing later?

 Learning

  Coaching & Mentoring

   Find opportunities to help team members

     get better

    learn new skills

    learn new technology / tools / etc.

  Enabling

   Find ways to resolve blockers

   Creative / out-of-the-box thinking

  Training

   Find opportunities to learn

    by attending trainings (internal / external)

   Take training sessions to up-skill team members

  Attend conferences

  Watch webinars

  Read books / blogs

 Prioritization

  Understand the big picture

  Help the team to prioritize work in ways that will

   be valuable to the end-users

   provide quick feedback

    to ensure the team is in the right direction

    if not, can fail fast, change direction to get back on track

 Tech Debt

  Identify areas from testing perspective that needs to be evolved / updated

   to keep testing efficient

  Get these items prioritized and implemented to remove waste / optimize way of working

 Evangelise

  Share experiences by

   writing blogs

   writing books

   speaking in conferences / meetups

   conduct webinars

QA Skills

 Testing Mindset

  Understand

   domain

   product architecture

   various aspects of testing

   technology

   end-user

    personas

    perspectives

    approach / mindset / thought-process when using the product

  Ability

   to identify and resolve potential bottle-necks

    in

     toolset

     processes

     architecture

 Functional Analysis & Testing

  via

   Browser

   Devices

   WebServices

 Process

  Understand

  Implement

  Optimize

 Defect Management

 Continuous Integration (CI)

 Exploratory Testing

 Non-functional Requirements

  Security

  Performance

   Client-side

   Server-side

    Load

    Stress

  Accessibility

  Compliance

  Auditability

  Data

   Integrity

   Management

   Redudancy

   Migration

  Usability

  ...

  ...

 Showcases

  To demonstrate the work done to the team, and business stakeholders

 User Acceptance Testing

 Test Data

  Creation

  Re-use

 Test Automation

  What?

   A safety net

   NOT to find defects

   Helps ensure pre-validated functionality is working as expected

  Why?

   Fast feedback

    If done well

   Reduces manually testing / validating same functionality with each change in the product-under-test

  How?

   Context is King!

    Understand

     Team distribution

     Product under test

     Domain

   Principles & Practices

    No Copy-Paste

    Test Data

     Decouple test data from test implementation

    Logging

    Utilities

    Tools

    Pairing

    Video Recording

    Evolve

    Refactoring

    Screenshots

    Continuous Integration

    Extensible

    Abstraction

     Proper abstraction layers (tools, browser agnostic, libraries)

    Design Patterns

    Configurable

     Automation configurable to run against different environments

    Code Quality

     Test code should be production quality

   Toolset

    Fit for purpose

    No extra overhead

    Accessible and usable for all team members

    Crisp and Clear communication

    Flexible