In this article in our series covering API testing — check out the introduction and an analysis of what features make up any quality testing tool — we train our eyes towards the API Hierarchy of Needs. While it is primarily relevant to public-facing interfaces, the same principles are applicable those developed and tested in-house. It is essentially a programming version of the human hierarchy of needs created by psychologist, Abraham Maslow.
API Technologist, Bruno Pedro, published the API Hierarchy of Needs at APIUX.com. Even though the hierarchy was written primarily for programmers, QA personnel are also able to wean valuable information about the qualities making up the best APIs.
Read further to gain a better understanding of what capabilities any good API needs to provide to programmers as well as those QA engineers responsible for its testing. Since the hierarchy follows an inverted pyramid structure, we’ll take a look at each of the five sections, starting at the bottom — the most important layer.
An API needs to be easy to setup and implement. This simple concept applies to both programmers and the QA team. Strong documentation, well-written RESTful URLs, and the use of standard HTTP error codes all play an important role in an API’s overall usability.
All functional points within an API need to perform as expected; the documentation is vital in explaining their ultimate behavior. The QA team plays an important role in validating the underlying code, as well as ensuring the proper error codes bubble up when exceptions are thrown. Whether the API is public or private, this hierarchy layer is arguably the most important for the QA role.
APIs need to perform as expected each and every time they are accessed. This is an area where stress testing becomes important. The QA team needs to help ensure uptime is maximized. This becomes especially vital for public-facing APIs which provide revenue for the company responsible for the API’s development and hosting.
The best APIs actually increase the development skills of the programmers working with them. In some respects, they also offer a similar benefit to the QA personnel responsible for testing and validation. Rich documentation of the APIs functionality plays a big role in increasing the technical knowledge of the development and QA teams.
The top layer of the API Hierarchy of Needs relates to creativity. In short, does the API inspire developers to use the interface in creative and unexpected ways? Bruno Pedro describes a scenario where APIs are mixed together to ultimately create a stronger product. QA personnel needn’t be shy about providing their own insight into new uses for an API.
While the API Hierarchy of Needs focuses on development staff, QA team members responsible for API testing should also take the time to understand these concepts as it improves their overall skill set, enabling them to offer meaningful suggestions to improve all aspects of an API. In this era of DevOps, collaboration is vital to ensure a strong and useful product.
Stay tuned to the Betica blog for future discussions covering the Wide World of QA.