Skip to main content
Back to Tags

Testing

94 items tagged with "testing"

Filter by type:

Best Practices18

Best Practice

Shift-Left Testing Manifesto

Encourages earlier testing (unit, security, performance) in the SDLC to catch defects sooner.

Best Practice

Contract-Driven Development with Pact

Consumer-driven contract testing methodology to ensure micro-service compatibility.

Best Practice

Continuous Integration Best Practices

A development practice where engineers merge code into a shared mainline many times a day, each merge verified by an automated build and test suite.

Best Practice

Hexagonal Architecture (Ports and Adapters)

An architecture that isolates core application logic behind ports, with adapters connecting external concerns like databases and UIs, so the core stays independent of technology.

Best Practice

Data Quality Management

The practice of measuring, monitoring, and improving data across dimensions like accuracy, completeness, consistency, timeliness, and validity so it stays fit for use.

Best Practice

LLM Evaluation and Evals

LLM evaluation measures model and application quality with repeatable tests, scoring accuracy, faithfulness, safety, and cost so teams can ship and improve with evidence.

Best Practice

Component-Driven Development

A development approach that builds UIs bottom-up from isolated, reusable components, developed and tested independently before assembly into pages and apps.

Best Practice

The Test Pyramid

A testing strategy that favors many fast unit tests, fewer integration tests, and a small number of slow end-to-end tests.

Best Practice

The Testing Trophy

A testing model that weights integration tests most heavily, balancing static analysis, unit, integration, and end-to-end tests by confidence-per-cost.

Best Practice

Test-Driven Development (TDD)

A development discipline where you write a failing test first, write minimal code to pass it, then refactor, in short red-green-refactor cycles.

Best Practice

Behavior-Driven Development (BDD)

A collaborative practice that expresses requirements as concrete, executable examples in plain language shared by business, development, and testing.

Best Practice

Property-Based Testing

A technique that asserts general properties of code and lets a framework generate many randomized inputs to find counterexamples and shrink them.

Best Practice

Mutation Testing

A technique that injects small faults (mutants) into code and checks whether tests detect them, measuring how effective the test suite really is.

Best Practice

Flaky Test Management

A disciplined approach to detecting, quarantining, and fixing nondeterministic tests so CI signal stays trustworthy and developers keep merging.

Best Practice

Code Coverage Best Practices

Guidance on using code coverage as a signal of untested code rather than a target, including diff coverage and avoiding coverage gaming.

Best Practice

End-to-End Testing Best Practices

Guidance for writing reliable, maintainable end-to-end tests that exercise critical user journeys without becoming slow and flaky.

Best Practice

Test Data Management

Practices for provisioning realistic, isolated, and compliant test data so tests are reliable, repeatable, and free of production data exposure.

Best Practice

Visual Regression Testing

Automated testing that captures screenshots of UI states and compares them against baselines to detect unintended visual changes.

Anti-Patterns12

Anti-Pattern

Magic Pushbutton

Putting business logic directly in UI event handlers, so a single button click handler holds validation, rules, and persistence with no separation of concerns.

Anti-Pattern

Fat Controller

Web or API controllers that accumulate business logic, validation, and data access instead of delegating, becoming bloated and impossible to test or reuse.

Anti-Pattern

Flaky Pipeline

A CI/CD pipeline that fails intermittently for reasons unrelated to the code change, eroding trust and training teams to ignore red builds.

Anti-Pattern

Ice-Cream Cone (Inverted Test Pyramid)

A test suite dominated by slow manual and end-to-end tests with few unit tests, making feedback slow, brittle, and expensive to maintain.

Anti-Pattern

Flaky Tests

Tests that pass and fail non-deterministically without code changes, eroding trust in the suite and masking real regressions.

Anti-Pattern

Testing Implementation Details

Tests coupled to private internals rather than observable behavior, so harmless refactors break them and real bugs slip through.

Anti-Pattern

Assertion Roulette

A test with many unlabeled assertions, so when one fails it is unclear which condition broke or why, slowing diagnosis.

Anti-Pattern

Mystery Guest

A test that depends on external data or resources not visible in the test itself, making it opaque, fragile, and non-reproducible.

Anti-Pattern

Happy-Path-Only Testing

Tests that exercise only the expected, valid flow and ignore errors, edge cases, and failures — leaving real-world conditions untested.

Anti-Pattern

Excessive Mocking (Mockery)

Replacing nearly every collaborator with mocks so tests verify interactions instead of behavior, becoming brittle and detached from reality.

Anti-Pattern

Slow Test Suite

A test suite so slow that developers stop running it locally and feedback arrives too late, encouraging skipped tests and large risky batches.

Anti-Pattern

Coverage-Driven Testing (Coverage as a Target)

Chasing a code-coverage percentage as the goal, producing tests that execute code without meaningfully asserting behavior — high numbers, low confidence.

Tutorials14

Tutorial

Testing with Vitest

Set up Vitest for fast, modern JavaScript testing

Tutorial

How to run matrix builds in CI

Use a build matrix to test your code across multiple language versions and operating systems in parallel.

Tutorial

How to validate data quality with Great Expectations

Define expectations for a dataset, run validations, and surface failures so bad data is caught before it spreads downstream.

Tutorial

How to evaluate LLM outputs systematically

Build a repeatable evaluation suite for LLM features using reference checks, rubrics, and model-graded scoring.

Tutorial

How to set up a Go project with modules and tests

Start a Go project with Go modules, structure packages, and write table-driven tests using the standard testing package.

Tutorial

How to set up a Rust project with Cargo and tests

Create a Rust project with Cargo, add dependencies from crates.io, and write unit and integration tests.

Tutorial

How to set up a Python project with Poetry and pytest

Create a reproducible Python project using Poetry for dependency management and pytest for testing.

Tutorial

How to set up a Java project with Maven and JUnit

Create a Java project with Maven, manage dependencies, and write unit tests with JUnit 5.

Tutorial

How to set up a .NET project with xUnit tests

Create a .NET solution with a class library and an xUnit test project using the dotnet CLI.

Tutorial

How to set up a Node and TypeScript project with Vitest

Create a TypeScript project on Node.js, configure the compiler, and write fast unit tests with Vitest.

Tutorial

How to set up a Kotlin project with Gradle and JUnit

Create a Kotlin project with the Gradle build tool, manage dependencies, and write tests with JUnit 5.

Tutorial

How to build and test a Node.js REST API with Jest and Supertest

Build a small Express REST API and test its endpoints with Jest and Supertest, including setup and teardown.

Tutorial

How to test a FastAPI application with pytest and TestClient

Test a FastAPI app's endpoints using pytest and the built-in TestClient, with fixtures and dependency overrides.

Tutorial

How to test a Go HTTP API with httptest

Write fast, isolated tests for a Go HTTP handler using the standard library's net/http/httptest package.

Playbooks9

Playbook

Python 2 to 3 Program Playbook

A coordinated program for migrating remaining Python 2 codebases to modern Python 3 with type hints and a hardened test suite.

Playbook

Rails Major-Version Upgrade Program Playbook

A staged program for upgrading Ruby on Rails applications across major versions with dual-boot validation and gem modernization.

Playbook

PHP Major-Version Upgrade Program Playbook

A program for upgrading PHP applications across major versions with automated rectoring, dependency updates, and staged rollout.

Playbook

Tech-Debt Paydown Program Playbook

A measurable program to quantify, prioritize, and systematically pay down technical debt across a backend portfolio.

Playbook

Data Quality Program Playbook

Stand up a data quality program with profiling, automated tests, SLAs, anomaly detection, and incident workflows across pipelines.

Playbook

AI Red-Teaming Program Playbook

A phased program to build an AI red-teaming capability that adversarially tests LLM systems for jailbreaks, prompt injection, and harmful outputs.

Playbook

API-First Design Program Playbook

A program to establish API-first practices across teams using OpenAPI contracts, mock-driven development, and contract testing.

Playbook

LLM Evaluation Program Playbook

A program to build a rigorous LLM evaluation capability with offline evals, online metrics, and regression gating in CI.

Playbook

WCAG 2.2 Accessibility Program Playbook

A program for bringing a product portfolio into WCAG 2.2 AA conformance through audit, remediation, and embedded accessibility governance.

Benchmarks10

Benchmark

Test Generation Coverage

Measures quality and coverage of AI-generated test suites for migrated code

Benchmark

HumanEval

A code-generation benchmark of 164 Python programming problems graded by executing unit tests, popularizing the pass@k metric.

Benchmark

MBPP (Mostly Basic Python Problems)

A benchmark of ~1,000 entry-level Python programming tasks with test cases, used to evaluate basic code synthesis from short descriptions.

Benchmark

BenchBase

An extensible Java framework (successor to OLTPBench) for benchmarking relational databases with many built-in workloads via a common JDBC harness.

Benchmark

SAST/DAST Detection Rate Benchmark

Measures how accurately static and dynamic application security testing tools find real vulnerabilities, reporting true-positive, false-positive, and recall rates.

Benchmark

Code Coverage Benchmark

Measures the proportion of code exercised by automated tests, across line, branch, statement, and function coverage, as a test-completeness indicator.

Benchmark

Mutation Testing Score Benchmark

Measures test-suite effectiveness by injecting small faults into code and checking how many are detected, reported as the mutation score.

Benchmark

Flaky Test Rate Benchmark

Measures the prevalence and impact of nondeterministic tests that pass and fail without code changes, eroding trust in the test suite.

Benchmark

Lighthouse Accessibility Benchmark

Measures a web page's automated accessibility conformance using Lighthouse audits mapped to WCAG, producing a 0-100 accessibility score.

Benchmark

Defect Escape Rate Benchmark

Measures the proportion of defects that reach production undetected by pre-release testing, indicating the effectiveness of quality gates.