Unit testing, integration testing, mocking, coverage, testable code design, CI/CD, system design, and AI — 100 challenges to become a Software Development Engineer in Test.
The SDET role sits at the intersection of software engineering and quality assurance. This course covers the full technical depth: unit testing from first principles (AAA, isolation, dependency injection), all three types of test doubles (fakes, stubs, mocks) and when to use each, integration testing with real infrastructure, coverage measurement and mutation testing, designing testable code (seams, hexagonal architecture), CI/CD quality gates, system design for testability, reading and contributing to large codebases on GitHub, performance benchmarking and load testing, and AI tools for test generation and maintenance. Every module has working code in Python and TypeScript, and a project that demonstrates SDET-level engineering.
Built by Lakshya Kumar
We grant free access case-by-case — students, career-switchers, builders on a tight budget. Sign in to send us a note.
Sign in to applyComplete all modules, then submit the required number of capstone projects. Each must earn a passing rating from an admin reviewer.
Fork an open-source project on GitHub that has minimal test coverage (search GitHub for repos with < 20% coverage or no test directory). Add: 20+ unit tests following AAA with proper test doubles, 5+ integration tests using real infrastructure (Testcontainers or in-memory DB), a CI workflow that enforces ≥70% coverage and ≥70% mutation score, and a code quality gate with SonarQube or CodeClimate. Submit a PR to the original project (or your fork) with a description of what you tested and why.
Paste this into any AI chat. Fill in the bracketed parts with your context — you'll get back a straight answer on whether this belongs on your plate.
I'm considering 'SDET & Advanced Engineering' — a course on the full technical depth of Software Development Engineering in Test. Covers: unit testing (AAA, isolation, DI), test doubles (fakes/stubs/mocks), integration testing with Testcontainers, coverage + mutation testing, testable code design, CI/CD quality gates, system design for testability, GitHub/codebase navigation, performance benchmarking, and AI for SDETs. 100 challenges in Python and TypeScript. Context: 1. My current engineering level: [e.g. "junior dev who can write basic tests", "mid-level developer who hasn't focused on testing", "QA engineer who can write Playwright but not unit tests", "experienced SDET learning advanced patterns"] 2. What I can do today: [e.g. "write pytest tests", "use Jest mocks", "nothing beyond clicking", "write API tests but not unit tests"] 3. My goal: [e.g. "get an SDET role at a top tech company", "lead testing at my startup", "bring unit test culture to my team", "move from QA to SWE via the SDET path"] Answer: - Which 2 modules will give me the highest leverage in the next 3 months? - What will I have built by the end that proves SDET-level skills? - Should I do the other QA courses first, or can I jump in here? - What will I NOT be able to do — e.g. "design an entire QA organization", "replace a security engineer", "build custom test frameworks from scratch"?
Implement Pact-style consumer-driven contract testing across 3 microservices. Include the contract repository, the verifier in CI, and a breaking-change blocker on PRs. Demonstrate catching a deliberate breaking API change before merge.
Audit a real test suite for unit/integration/E2E balance. Identify slow flaky E2E tests that could be rewritten as faster integration tests. Rewrite at least 10; measure the suite-runtime delta and the maintenance-cost reduction.
Set up a performance test baseline (k6, Locust, or Gatling) for a critical API. Run nightly; alert on regression beyond 10% from baseline. Demonstrate catching a deliberate slow-query regression.
Build a test-data-management system: factories for test data, fixtures with realistic distributions, data cleanup between runs, ability to reset to a known state in <30s. Document the schema and the workflows it supports.
The canonical reference for test double taxonomy and test design patterns.