API stands for Application Programming Interface which is a set of routines, protocols, and tools that connects an application to the web or to other APIs.
A routine, also known as a procedure, function or subroutine, is a program that performs a particular task. A protocol is a format for transmitting data between two systems.
An API indicates how one software program should interact with another software program. API acts as an interface between two software applications by allowing them to communicate with each other.
API testing is a type of integration testing that is performed to test the API to validate its functionality, reliability, performance, and security of the application for which API is used. In this testing, the APIs and the integrations they enable are tested.
Approach For API Testing
- Understanding the functionality of the API program and clearly define the scope of the program
- Apply Testing techniques such as equivalence classes, boundary value analysis and error guessing and write test cases for the API.
- Input parameters for the API need to be planned and defined appropriately.
- Execute the test cases and compare expected and actual results.
Below are some best practices:
1.Test the API to check what happens consistently and what doesn’t.
2.Perform stress testing on the system through a series of API load tests.
3. Test the API for failures; until you get the output as failed. Test the API so that it fails consistently.
4.Group the test cases by test category.
5.Mention the parameters selected in the test case itself.
6.Prioritize API function calls to simplify testing for testers so that they can finish testing on time.
7.Automate the API documentation creation process and ensure a good level of documentation is there which is easy to understand.
8. Plan to perform call sequencing.
9.Create test cases for all possible API input combinations to get complete test coverage.
10.Reuse test cases and monitor the API in production.
11.Depend on manual and automated tests for better API testing outcomes.
API Communication :
Whereas a lot of testing on the user interface is still done by hand, so this is impossible for API testing. You need a tool to communicate with API , there are lot of tools available in the market . some of the best known that are specifically targeted towards API testing are
HP service Test
Structuring Tests :
An API usually consists of several methods or operations that can be tested individually or through the setup of test scenarios . These test scenarios are usually constructed by stringing together multiple API calls.
Perform syntax test of individual operation
Perform functional test of operation
Construct and execute test scenarios
Syntax Testing :
This type of test is performed to check whether the method accepts correct input and rejects incorrect input. For example, syntax determines whether .
Leaving mandatory field empty will result in a error.
Optional fields are accepted as expected
Filling fields with incorrect data types (for instance placing a text value in integer field) will result in an error.
Functional Testing of individual operations : This type of testing is performed to check whether the method performs its intended action correctly. For example
Is calculation X performed correctly when calling operation / method y with parameters A,B,C.
Is data stored correctly for future use when calling a setter method?
Does calling getter method retrieve the correct information?
API Virtualization :
When testing systems of interconnected components , the availability of some of the components required for testing might be limited at the time of testing. Virtualization of API can be valuable solution, enabling testing to continue as planned