Testing the Pyramid with Toggles

Using toggles in Tests

Implement a CI/CD pipeline using toggles that passes all levels of the Test Pyramid, certifying that each committed change is compatible with production and also validates new functionality.

You are trying to adopt DevOps by applying trunk-based development (one main branch, committing changes periodically) and a pipeline that certifies each change (automated testing).

Toggles enable you to keep everything running, removing impact of failing or unfinished features. Toggles detach deploy (toggle OFF) from release (ON). Therefore, your pipeline must be able to manage both situations.

You don’t work with a single toggle, but a combination of them. Set of toggles involved is out of your control, it depends on development speed, changes in priorities, dependencies with other features, etc.

In this talk we are going to see an approach to implement a CI/CD pipeline built over the Test Pyramid, based in a two-step certification process: production (same toggle setup than production) and staging (enabling new features finished and not released in production) that adapts dynamically to changes on toggles configuration.

In other words, we are going to propose a pipeline that certifies that any change can be deployed and released (if the feature is finished) in the production environment.