Tuesday, 11 February 2014

Differences between testing services and websites?

I recently got asked by a fellow QA, what is the difference between testing a web service and testing a website is? So here is the answer in as simple a way as I can put it...

Firstly, what is a web service?

It's effectively a function that can be accessed by by other programs over the web. For instance, the asos website has a "basket" web service that enables users to add to their basket on the product page.

I understand that from coming from somewhere that only tests a website to somewhere that requires QA to test against web services it can be very daunting, but with the right tools and the right mindset it can be simpler to test a web service than a website.

Why is that? you may ask... Let me begin.

One of the problems with testing User Interfaces or websites is that there are so many things that could potentially go wrong, you're interacting with the end product. Look at it like switching on Christmas tree lights in the old days, when if one light was broke then it's a pain to fix and a pain to find out what light is broke as they're all switched off! However, by turning on individual lights you can be sure of what ones will work and what ones won't as you're certain of what to expect.

It's kind of similar to when testing a web service or even an API, you know what to expect in the response from the API/Web Service as it forms part of a contract so you can code tests around that, or write tests around that. However with a website, when coding tests there are many things that can cause the web page to break, things like browser type, or JavaScript errors can all cause tests to fail. I find testing a web service to be a lot more robust, providing of course, that tests are written in a smart way.

The other good thing about testing web services is that they are generally very quick to test, and you will get feedback very quickly from what you are testing. It can take a lot longer to test against a UI, due to the layers beneath the UI all requiring to do some work of some kind.

No comments:

Post a Comment