Many teams do not deliver GUI but a library or a service that is used by other developers. For instance:

  • A company provides REST APIs and client libraries for their customers to use their services remotely. Ad exchange company provides JavaScript library for publishers to participate in ad real time auctions, hotel booking company can provide an API for hotels to integrate with, Google Cloud Platform provides APIs and libraries to integrate with their cloud infrastructure.

  • A company delivers a library to be used by other developers and testers: it can be as big as JDK (Java Development Kit) from Sun/Oracle or Selenium Web Driver.

  • Your team provides a microservice to be used by other teams in the company.

All those artifacts can have user experience (UX) bugs similarly to GUI -- the name of a method might be misleading and do something else than the name suggests, or finding a class to do X might be hard because of insufficient documentation or wrong abstraction level.

I sometimes complained about such bugs to developers but I have never performed regular usability tests for APIs. I've found that Microsoft did. The approach they took was to involve real user in task-driven tests, just like you do in normal (GUI-based) usability tests, with one small difference -- their end users were developers. You give a development task to a developer to be performed with your software and you observe how they handle it.

I wonder whether other testers do perform usability tests of API?

In the end you would need to get into shoes of a developer or involve them in your tests.


Usability of an API as an automated test? Hmm, not sure we can do that currently.

For the larger question of how or even should we test an API, my group uses API's to create staging data (for the UI to work off) and to update data to a required state.
We verify that the APIs respond as expected but we haven't really seen this add a lot of value. If the API is 'down' then the UI tests that stage data using API's fail.
The argument could be made to have them, but always run them first as they provide a very quick way to test API availability - in seconds instead of minutes and hours. They can be used to prevent running the UI automated tests that depend on the APIs for ewithrer staging or processing data.

  • You can't automate usability test, at least not all the types of such tests. Same goes for GUI and API. Why would you want to do that? You can automate static analysis checking if methods follow certain conventions, familiar to programmers of a specific language, like method names should be short. Humans are better at testing other parts that requires deeper understanding of API. – dzieciou Mar 16 at 8:29
  • "You can't automate usability test" Being rigorous, you can't automate testing at all. Being a bit more flexible, considering the checking aspect, you can automate the investigation of certain usability questions: E.g., one can run A/B investigation and automate the monitoring and decision making using a neural network to process the N attributes you are investigating. – João Farias Mar 16 at 9:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.