Integration Testing Checklist
Test Environment Setup
Spin up the integration cluster (EKS namespace, ECS cluster, or staging VPC) using the Terraform module that mirrors production. Confirm node sizes, autoscaling groups, and IAM roles match prod within one minor version — drift here causes failures that don't reproduce later.
Match VPC peering, security groups, and ALB rules to production. Pay attention to egress rules — many integration failures are services that can reach prod's S3 endpoint but not the integration env's because of a missing VPC endpoint.
Run the migration suite from a clean baseline against the integration RDS / Postgres instance. Load seed fixtures for tenants, users, and reference data. If a migration takes table-level locks in production, exercise it here at production-like row counts.
Confirm Datadog / New Relic agents report from each service, Sentry DSN routes to the integration project, and structured logs land in the right index. Without observability you'll be debugging integration failures from kubectl logs alone.
Test Data Preparation
Create deterministic fixtures for the core user journeys — signup, checkout, subscription change. Use factory libraries (factory_bot, faker) seeded with a fixed value so test runs are reproducible across CI and local.
Cover unicode names, timezone boundaries (DST transitions), zero-quantity carts, expired tokens, and tenants with 0 / 1 / 10k records. These are where integration tests catch bugs unit tests don't — interactions between validation layers tend to disagree on edge cases.
If any fixture is derived from production exports, scrub or tokenize PII before loading into the integration database. SOC 2 and GDPR auditors will ask whether real customer email addresses live in non-prod — the answer must be no.
Execute the scrubbing pipeline (typically a one-off job that nulls out emails, phones, addresses, and replaces names from a Faker dictionary). Re-import the scrubbed dump into the integration database. Document the scrub commit SHA in the run record.
Test Cases and Scripts
Pull the coverage report from the last main build. Identify modules where coverage dropped below the team's threshold (commonly 80%) and flag them — integration tests shouldn't be a substitute for missing unit tests.
Focus on the seams — auth service ↔ billing, API gateway ↔ workers, webhook ingest ↔ event bus. Use Postman collections or Playwright API specs that hit real endpoints, not mocked ones. The point of integration testing is the wiring between components.
Wire the suite into GitHub Actions / CircleCI / Buildkite as a required status check on the release branch. Set retry-on-failure to 1 (not 3) — masking flakes with retries is how regressions slip through.
Dependency Management
List every external dependency the suite hits — Stripe sandbox, Auth0 tenant, SendGrid sandbox, internal services from sister teams. For each, note the SLA you can rely on during the test window and the rate limit.
Hit each vendor's status page and run a one-call smoke against each sandbox. Stripe and Auth0 sandboxes go down often enough that running a full integration suite against a degraded sandbox is the most common false-positive in this checklist.
For any unhealthy upstream, switch the suite to recorded fixtures (VCR cassettes, WireMock mappings, MSW handlers). Note in the run record which calls were stubbed so the post-deploy verification can re-test them against the real service.
Execution and Monitoring
Trigger the full pipeline against the release branch tag (e.g., v2024.45.0-rc.1). Run in dependency order — auth first, then services that depend on auth, then the API layer, then the worker tier. Sequencing surfaces wiring bugs that parallel runs hide.
Pull up the Datadog APM service map and the error-rate / p99 latency dashboards while the suite runs. A test that passes but doubles p99 against the auth service is still a red flag.
Results Analysis and Reporting
For each failed test, classify as code defect, environment issue, flaky test, or dependency issue. Avoid the "rerun and merge" reflex — a flaky test that masked a real race condition is the most common path to a Saturday page.
Open a ticket per defect with the failing test name, the pipeline link, the suspected commit range (use git bisect on the release branch if needed), and a reproducer. Tag with the release version so the release captain can see the open list.
Post a summary to #engineering: pass/fail count, blocking defects, dependencies that were stubbed, recommendation to ship or hold. This is the artifact the release captain reads before flipping the deploy switch.
Use this template in Manifestly
- Backup and Recovery Checklist
- New Developer Onboarding Checklist
- User Acceptance Testing Checklist
- Backlog Prioritization Checklist
- Unit Testing Checklist
- Release Planning Checklist
- Software Project Management Checklist
- Software Engineer Hiring Checklist
- Peer Review Onboarding Checklist
- Change Management Checklist
- Security Review Checklist
- Version Control Checklist
- Project Closure Checklist
- Technical Debt Management Checklist
- Software Licensing Compliance Checklist
- Sprint Planning Checklist
- Prototype Review Checklist
- Requirement Gathering Checklist
- Employee Data Security Checklist
- End-User Documentation Checklist
- CI/CD Pipeline Review Checklist
- Engineering Team Building Activity Checklist
- Employee Offboarding Checklist
- Design Documentation Checklist
- Quality Assurance Checklist
- Code Review Checklist
- Release Notes Checklist
- Engineering Resource Allocation Checklist
- Code Review Checklist
- Bug Tracking and Resolution Checklist
- Monitoring Setup Checklist
- Feature Development Checklist
- Acceptance Testing Checklist
- Testing Environment Setup Checklist
- Test Case Review Checklist
- Performance Monitoring Checklist
- Post-Deployment Testing Checklist
- Performance Optimization Checklist
- Test Plan Checklist
- API Development Checklist
- Security Best Practices Checklist
- Software Development Plan Checklist
- Disaster Recovery Plan Checklist
- Database Design Checklist
- Engineer Offboarding Checklist
- Refactoring Checklist
- Incident Response Checklist
- Software Engineer Onboarding Checklist
- Project Review and Retrospective Checklist
- System Testing Checklist
- Software Architecture Design Checklist
- Deployment Checklist
- Development Environment Setup Checklist
- Rollback Plan Checklist
- Automated Testing Checklist
- Performance Testing Checklist
- Software Update Checklist
- New Engineer Onboarding Checklist
- Technical Documentation Checklist
- Software Project Risk Management Checklist
- Software Project Initiation Checklist
- Personal Development Plan (PDP) Checklist
- User Acceptance Testing (UAT) Checklist
- Deployment Plan Checklist
- Release Checklist
- API Documentation Checklist
- QA Testing Checklist
- Service Level Agreement (SLA) Checklist
- Regression Testing Checklist
- Quality Assurance Checklist
- Accessibility Compliance Checklist
- User Acceptance Testing (UAT) Checklist
- Performance Testing Checklist
- Acceptance Testing Checklist
- Automated Testing Checklist
- System Testing Checklist
- Testing Environment Setup Checklist
- Accessibility Standards Compliance Checklist
- Test Plan Checklist
- Post-Deployment Testing Checklist
- Test Case Review Checklist
- Bug Tracking and Resolution Checklist
- User Acceptance Testing Checklist
Ready to take control of your recurring tasks?
Start Free 14-Day TrialUse Slack? Sign up with one click
