30 Days of API Testing - Day 1: Define API testing

  • Initially I wanted to google and read more about it, then give an answer, but then I decided to just write what I know (apologies for any mistakes I made). I am relatively new to testing and mostly do exploratory web app testing and not using API testing often. It would be interesting to compare how I see API testing after completion of 30 days of API testing.
    • What is API - Application Programming Interface, set of commands, protocols and interfaces that allow applications to “talk to each other”, send requests and receive responses.
    • Why. API testing can make it easier to find issues/bugs which would be harder or impossible to find when interacting with product using GUI. Some types of testing such as Security, Performance, Load testing, etc heavily rely on interacting with product using API calls. When automated checks are used for testing, in most cases API tests are faster then UI tests.
    • What. Here is my definition of API Testing (influenced by definition of testing in RST): evaluating the product and its underlying API level, by learning about it through exploring, experiencing, experimenting with it.
    • How Unlike other types of testing where tester is interacting with GUI (e.g. in a browser), API testing is probably more technical, since it requires some knowledge of http protocol, json, serialization, REST and SOAP protocols and other concepts. Some of the most popular tools for API testing: Postman, curl, Charles Proxy, Fiddler, SoapUI, developer console in browser.