applied to Operations too • Small, frequent, low-risk changes • It’s a culture shift • No more throwing the release candidate over the wall to Ops • We build it – we run it – we own it!
to get changes of all types— including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way. We achieve all this by ensuring our code is always in a deployable state, even in the face of teams of thousands of developers making changes on a daily basis. ~ Jez Humble and Dave Farley
Provides a common language • Emphasizes “whole team” • Plan testing at different levels • Tests for “Story Done” • Tests for “Feature Done” • Tests for “Release Done”
party integrations Contract testing (on APIs) Unit testing Static analysis Component integration Test doubles for external integrations Data integrity Smoke tests on dev env. Exploratory testing Usability Monitoring Observability Testing in Production Recoverability Performance Load / Stress / Reliability Scalability, Safety Infrastructure as code
– “hide” changes until confident to release • Enable incremental/iterative approach • For tests that critique the product What risks will you accept pending feedback in production? • scale, data, networking, configuration, user behavior
tests Static analysis Test doubles -Conversations -Get examples -Create tests -Form a shared understanding of the problem Run unit tests Run api auto tests Observability Monitoring Test in Prod Run API auto tests Security, load, performance, recovery…. Run workflow auto tests UAT
envs Visualize & improve pipeline design Train everyone in exploratory testing Implement build status dashboard Define failure analysis runbook Define SLOs & SLIs Train everyone in failure analysis tools Script to send build results to Slack Evaluate auto test coverage Script to refresh test databases Evaluate SLI metrics in pre-prod
it's always a people problem. -- Jerry Weinberg Most software problems are communication problems! The quadrants give us a framework to help with: • Common language • Shared understanding • Whole team approach to testing
Help Plan Download Chapter 23: Testing in DevOps https://agiletester.ca/agile-testing-condensed-a-brief- introduction/ also has information on both of these topics
Guide for Testers and Agile Teams More Agile Testing: Learning Journeys for the Whole Team By Janet Gregory and Lisa Crispin https://agiletester.ca https://agiletestingfellow.com Contact info https://lisacrispin.ca Email: [email protected] Twitter: lisacrispin 28