Glossary

Smoke Testing

Smoke tests are a type of regression test which ensure that your most important, critical functional flows work. These tests should not encompass your entire testing suite, rather they are a subset of tests that cover your top prioritized user flows. These are usually end-to-end tests that are executed in…

Chaos Engineering

In any complex system, failure is inevitable. Chaos engineering, or chaos testing, embraces this reality, allowing you to introduce failures in a controlled way.

Simpson’s Paradox

Simpson’s Paradox, otherwise known as the Yule-Simpson Effect, is a reversal paradox where the correlation found in each of several groups either disappears or even reverses when the groups are combined. It’s relevant in the context of many non-experimental studies, including A/B tests. Examples of the Paradox One classic example…

How to Branch by Abstraction with Feature Flags

Branching by abstraction is a technique used for making large-scale changes gradually, while simultaneously continuing to release the system. This is an important part of trunk-based development, and is critical for creating a continuous integration and continuous delivery (CI/CD) pipeline. In a non-CI/CD situation, the standard way to make these…

Type I Error

A type I error (or type 1 error), also called a false positive, is a type of statistical error where the test wrongly gives a positive result, when a perfect test would report a negative. It is one of four possible results from a hypothesis test. What is Hypothesis Testing?…

Type II Error

A type II error (type 2 error) is one of two types of statistical errors that can result from a hypothesis test (the other being a type I error). Technically speaking, a type II error occurs when a false null hypothesis is accepted, also known as a false negative. In…

What is CI/CD?

CI/CD is the acronym in software development for the combination of continuous integration (CI) and continuous delivery (CD). It can also be expanded to include continuous deployment, but to avoid confusion in this article, we’ll be using CD to refer to continuous delivery. It’s an extremely useful agile process for…

What is Trunk-Based Development?

Trunk-based development (TBD) is a branching model for software development where developers merge every new feature, bug fix, or other code change to one central branch in the version control system. This branch is called “trunk”, “mainline”, or in Git, the “master branch”. Trunk-based development enables continuous integration – and,…

Feature Flag Management

Feature flag management is the process of, well, managing feature flags. While feature flags are extremely useful for many purposes, they require an organized process to manage. In what specific ways, we’ll discuss shortly. There are two main types of feature flag management systems: those which are built in-house and…

Feature Flags in the Software Release Life Cycle

We have been well familiar with the Software Development Life Cycle (SDLC) for some time now.   SDLC is a broad framework for defining development methodologies. It’s an overarching definition to include any project management framework that follows a standard set of procedures for developing software. Often when we hear…