Advanced Testing
Testing systems that are too large, too distributed or too non-deterministic for examples alone. Strategy and risk, property-based and mutation testing, fuzzing, contracts, load and resilience, testing in production, and the gates that decide a release.
Start courseWhat you will cover
- Designing a Test StrategyA strategy is a set of decisions about where confidence comes from and what you are willing not to know. Writing one for a real system, and the trade-offs it has to name.35 min
- Risk-Based TestingTesting effort is a budget. Modelling likelihood against impact, spending on the parts that would actually hurt, and defending the choice when someone asks why an area is thin.30 min
- Property-Based TestingStop writing examples and state the invariant instead. Generators, shrinking, choosing properties that hold, and the class of bug that example-based tests structurally cannot find.35 min
- Mutation TestingWho tests the tests? Deliberately breaking the code to see whether anything fails, reading a surviving mutant, and the cost that keeps this off every pipeline.30 min
- Fuzzing and Generated InputFeeding a program input nobody would write, on purpose. Coverage-guided fuzzing, corpora, sanitisers, and turning a crash into a permanent regression test.30 min
- Contract Testing Between ServicesEnd-to-end tests across ten services do not scale. Consumer expectations verified against the provider, where the broker fits, and what contract tests deliberately do not cover.35 min
- Performance Testing and Load ModelsA load test is only as good as its model of a user. Arrival rates, think time, percentiles over averages, open versus closed models, and finding the knee rather than a number.35 min
- Testing for Resilience and FailureInjecting the failures production will deliver anyway: latency, partitions, dependency outages and clock skew. Running an experiment with a hypothesis and a blast radius.35 min
- Security Testing for EngineersThe testable part of security: authorisation matrices, injection at every boundary, dependency and secret scanning, and the difference between a scan and a pentest.35 min
- Ephemeral Environments and Test InfrastructureTest infrastructure is a product with users. Environments created per branch and destroyed after, seeding them quickly, and why a shared staging box becomes a queue.30 min
- Testing in Production SafelySome things are only true in production. Feature flags, canaries, shadow traffic, synthetic journeys and a rollback you have actually rehearsed.35 min
- Observability as a Testing ToolThe system tells you what your tests could not. Assertions on telemetry, service level objectives as continuous tests, and closing the loop from an incident back to a test case.30 min
- Scaling a Suite: Parallelism and ShardingAn hour-long suite gets skipped. Parallel workers, sharding, test selection by impact, and the isolation guarantees you need before any of it is safe.30 min
- Quality Gates and Release DecisionsTurning test results into a decision: which gates block, which only inform, what happens on a red main, and why an unreliable gate is worse than no gate.30 min
- Testing Non-Deterministic SystemsWhen the same input gives a different answer, equality assertions stop working. Scoring instead of matching, thresholds over sample sets, and detecting drift.35 min
- Leading Quality in a TeamQuality as an engineering-wide property rather than a department. Where a QA specialist adds most, coaching over gatekeeping, and making the case with evidence.30 min