API & Backend Testing
REST, GraphQL, contract testing, mocking, schema validation — testing the layer below the UI.
A
API gateway testing verifies the layer that sits in front of backend services — routing, authentication, rate limiting, request transformation, and load balancing — rather than the services themselves. A correctly-behaving service can still fail end users if the gateway in front of it misroutes or mishandles requests.
API rate limit testing verifies that a system correctly enforces its request-throttling rules — rejecting or delaying requests once a client exceeds its allowed rate — and that legitimate traffic under the limit is never incorrectly blocked. Both failure directions matter: too permissive invites abuse, too strict breaks real users.
API testing verifies the functionality, reliability, and security of an application programming interface directly — sending requests and checking responses — without going through a UI. It's typically faster, more stable, and catches issues closer to their source than testing the same functionality through the frontend.
Authentication testing verifies that a system correctly confirms a user or client's identity — accepting valid credentials, rejecting invalid ones, handling token expiry and refresh correctly, and properly locking out accounts after repeated failed attempts. It's the layer that answers "who is this," distinct from authorization, which answers "what are they allowed to do."
C
Consumer-driven contract testing has API consumers define the exact requests and responses they expect from a provider, generating a "contract" that's then independently verified against the real provider — catching breaking changes in the provider's own pipeline, before they ever reach a consumer in production.
Contract testing verifies that a service (the provider) and everything that calls it (the consumers) agree on the shape of their API — request format, response fields, status codes — without either side needing the other running to test against. It catches breaking API changes at build time instead of in staging or production.
G
H
I
J
M
R
A request/response assertion checks that an API's actual response — status code, headers, body content and structure — matches what was expected for a given request. It's the core mechanism that turns "I sent a request and got something back" into an actual pass/fail test result.
REST API testing verifies APIs built on the REST architectural style — checking that endpoints correctly handle standard HTTP methods (GET, POST, PUT, DELETE), return appropriate status codes, and manage resources as the REST model expects (predictable URLs, stateless requests, correct use of HTTP semantics).
S
Schema validation checks that data conforms to a predefined structure — required fields present, correct types, values within allowed constraints — automatically rejecting or flagging anything that doesn't match, rather than relying on manual, field-by-field inspection.
Service virtualization creates a simulated version of a dependent system's behavior — mimicking its responses, timing, and even failure modes — so testing can proceed without the real dependency being available, stable, or cheap to call repeatedly. It's mocking's more sophisticated, environment-level cousin.
SOAP testing verifies APIs built on the SOAP protocol — an XML-based messaging standard with a strict, formally defined contract (WSDL) — checking that requests and responses conform to that contract and that the service handles the protocol's built-in error and fault-handling conventions correctly.
Stubbing provides a hard-coded, canned response in place of a real dependency's behavior — simpler than a full mock, since a stub doesn't verify how it was called, it just returns a fixed answer whenever it's invoked. It's used to isolate the code under test from dependencies that aren't relevant to what's actually being tested.