API testing– an old school technology gets way cool again. APIs and testing them is nothing new; the technology has been around for decades. The most basic definition of an API is an exposed function— a producer (person or company) writes a function and exposes it so that others, consumers, can use it. We copy text from a word processing document and paste it into a spreadsheet thanks to the clipboard API being exposed, so that both the word processing and spreadsheet applications can use it.
My first job in testing was for a product that shipped with printer drivers for all the popular printers. At the time, each application installed on the desktop machine handled printing itself. I tested dozens of printer drivers. It was mindless and boring. By the next product release, Windows95 launched and the operating system took over all the printing through a Print API. One set of printer drivers was stored in the OS, and when an app needed to print, it called the OS print function and let the OS do all the work.
Today, APIs still work basically the same way, but the applications — especially with web services and social APIs — are broader. When I go shopping at my five favorite online stores I can check out at all of them using PayPal. Rather than each store writing code for checkout, or for individual credit card processing, they need only integrate with, and test, the PayPal web service — Paypal handles all the coding work. And using web services has facilitated the huge growth in mobile apps.
Now APIs are a key part of product development from enterprise to mobile to wearable Internet of Things (IoT) devices. Many new applications are just a combination of APIs, whether you call them “traditional” APIs, web APIs, web services or even social APIs.
Not too long ago the major concerns for testers were:
- “It’s easy enough to test through the UI, so let’s wait to test.”
- “I don’t have any good low level details on how it works, so testing it is tough.”
- “You need a tool to interface with the API at that level, and we don’t have one.”
These aren’t really concerns any more. API testing usually needs to be done before the UI is complete, and for some companies, the API is the product, so there is no UI to test. There is a lot of documentation and plenty of detail on just about any web service or social API, plus forum discussions. And, tools are abundant — some API providers have great custom tools, then there are off-the-shelf tools specifically for web service technologies. All of this makes API testing easier. But, the real key to successful API testing today is knowledge! You need to have a good understanding of the various technologies and tools – as well as great test design skills – for effective API testing.
This issue’s Special Section is a foundation for web service testing. Its purpose is to help you understand that, just because web services are common, it doesn’t mean they not complex and don’t require thorough testing. We already have another issue of LogiGear Magazine on API/Web Service testing on our 2016 editorial calendar, since this area of work is growing so dramatically. Until then – learn a lot about APIs, web services and social APIs!