> For the complete documentation index, see [llms.txt](https://gchandra.gitbook.io/big-data-and-tools-with-nosql/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gchandra.gitbook.io/big-data-and-tools-with-nosql/data-format/api-testing.md).

# API Testing

<figure><img src="https://1471795080-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrtXPLjVTxuTGIysjCx89%2Fuploads%2Fg7R0ZA7XwOXBWDzsPJqe%2F9-types-api-testing.png?alt=media&amp;token=f1238f55-82c1-4786-8b67-be18fc4d998c" alt=""><figcaption><p>src:blog.bytebytego.com</p></figcaption></figure>

**Smoke Testing** is done after API development is complete. It simply validates whether the APIs are working and nothing breaks.

**Functional Testing** This creates a test plan based on the functional requirements and compares the results with the expected results.

**Integration Testing** This test combines several API calls to perform end-to-end tests. It also tests intra-service communications and data transmissions.

**Regression Testing** This test ensures that bug fixes or new features shouldn’t break the existing behaviors of APIs.

**Load Testing** To understand the system's behavior under a specific expected load. It's mainly concerned with normal operational conditions.

**Stress Testing** To understand the limits of the system and how it behaves **under extreme** conditions. It's designed to test the system beyond its standard operational capacity, often to a breaking point, to see how it handles stress or overload.

**Security Testing** This tests the APIs against all possible external threats.

**UI Testing** This tests the UI interactions with the APIs to ensure the data can be displayed correctly.

**Fuzz Testing** This injects invalid or unexpected input data into the API and tries to crash the API. In this way, it identifies the API vulnerabilities.

**YT Video**

<https://www.youtube.com/watch?v=qquIJ1Ivusg>
