ISTQB CT-AT study materials
ISTQB CT-AT study resources

ISTQB CT-AT: Technical Testing Skills in Agile Organizations

ISTQB CT-AT · Work through your exam, one topic at a time.

All guide sections

Technical Testing Skills in Agile Organizations

This domain, technical testing skills in agile organizations, tests hands-on engineering knowledge that helps testers collaborate with developers and test below the UI. It covers test doubles, dependency injection, refactoring, code quality, API and contract testing, service virtualisation and non-functional checks.

Core rules

  • Test doubles: dummy (passed but unused), stub (canned responses), spy (records calls), mock (expects and verifies interactions) and fake (lightweight working implementation, such as an in-memory repository). Use them to isolate the unit under test - not to replace integration testing.
  • Dependency injection creates seams so doubles can replace real collaborators; tightly coupled code is hard to test.
  • Refactoring improves structure without changing behaviour and is protected by automated tests. Code smells and technical debt should be visible to the whole team.
  • Static analysis and code review find defects early. Statement, branch/decision, condition and MC/DC coverage show exercised code, not test quality.
  • API and contract testing validate schemas and consumer expectations; consumer-driven contracts (for example Pact) catch integration mismatches. Service virtualisation stands in for unavailable dependencies.
  • Non-functional testing at API level covers load, stress, soak, security (OWASP risks) and reliability.

Worked example

Service A calls Service B. Reasoning: unit-test A’s logic with a stub for B; add a consumer-driven contract test so B’s provider verifies A’s expectations; run API performance tests against a virtualised B when B is unavailable. This isolates logic, catches interface drift and removes environment blocking - three different risks, three different techniques.

Traps

Over-mocking until tests pass but integration fails; mocking third-party services without contracts; treating 100% coverage as done; ignoring test-code quality; using production data without masking; performance-testing only through the UI.