advanced8 h 40 min16 lessons

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.

by DevFox

Start course

What you will cover

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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