In this article we are going to touch some basic aspects of API Testing. Before going any further we must understand what API is. API is the acronym for Application Programming Interface. In plain English, it is a software that works as a mediator between two applications to talk with each other.
What is an API?
An Application Programming Interface is a set of programs and instructions to allow interaction between two components of a software application or entirely separate software systems. For example, you use a mobile application to check the weather, the application connects to the internet and send request to defined server. The server receives the request, interprets it, collect necessary information and sends back to your phone. The application grabs the response and present you the information in readable format. The complete transaction happened via API.
Types of APIs
There are many types of APIs. Web Service is one of the most common type of API. Both are form of communication between two separate components of an application. The only difference is that Web Service always involves communication through network and HTTP is most favorite protocol. It also transfer data through SOAP, REST and XML-RPC. On other hand, API can use any form of communication. In simple words, web service is an API covered in HTTP.
There are thousands of public and private APIs. Public APIs are used to perform many functions like checking weather, make payments, read news, get traffic update etc. Private APIs are not available for public use. They are exposed by companies to offer their services to customers.
APIs are further categorized as SOAP(Simple Object Access Protocol), RPC(Remote Procedure Call) and REST(Representational State Transfer).
Why API Testing?
Each web or mobile application is built on foundation of some business logic. We must test these logic first before testing user interface layer. Correctness of data is directly dependent on these API logic and without valid information your application fails to meet it’s core purpose. Hence, API Testing is equally important as any other type of Software Testing. It ensures smooth functioning, performance and authenticity of data-driven applications.
API Testing is entirely different from user interface testing. Testers focus only on business logic and look & feel of the application is not the concern. UI testing only focuses on the Presentation Layer to confirm end user experience matches the requirement. It is impossible to achieve complete test coverage without data-driven API testing.
To conclude, API testing offers a greater level of value addition over a traditional manual or automated testing approach. By using right tools and setup for API Testing we can improve quality at greater level and match out testing goals.