Skip to main content

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.


Comments

  1. This comment has been removed by the author.

    ReplyDelete
  2. If you are new, I advise you to consult professionals who will make you a site or allow you to choose a template for your site in the category admin panel. The best website with any templates you need

    ReplyDelete

Post a Comment

Popular posts from this blog

Coding something simple.... or not! Taking a screenshot on error using Selenium WebDriver

I recently wrote a little function that takes a screenshot at the end of a test if it has errored. What sounded very simple at the start turned out to be quite a bit of work, and quite a few lines of code to handle certain scenarios! It's now over 50 lines of code! I'll start with what I had at the beginning, this was to simply take a screenshot in the working directory, we are using SpecFlow and Selenium to run the tests, so we are going to check if the ScenarioContext.Current.TestError isn't null, if it is, then using Selenium, take a screenshot (note the below code is a simplified version of what I had at the beginning). [AfterScenario]         public static void TakeScreenShotOnError()         {             if (ScenarioContext.Current.TestError == null) return;             var screenshotDriver = Driver as ITakesScreenshot;             if (screenshotD...

How to manage resources within new teams?

Working where I work we are constantly spinning up new teams to take on new workloads as business come up with new demands and new features they want developed and tested. The problem with this is how do we ensure the work of the newly spun up team is of sufficient quality. One method is by taking people from other established teams and placing them on the new team. This works great for the new team, but unfortunately it will oftenl eave the established team lacking in a resource whilst they try and fill the gap left by the person who has left. We are seeing this often with our offshore teams, it can be damaging to the team structure and the teams velocity, but try as I might, I can't think of another way around it. It's far easier to take 1 person from a team that is established than it is to build a whole new team from scratch. At least by leaving the core of a team in place, you should be guaranteeing that the new team are aware of any coding standards or any QA standard...

Considerations when creating automated tests

We recently released to a number of teams our automated regression pack that has been worked on over the past few months. This regression pack tests legacy code, but contains a large number of tests.  As a bit of background, a number of teams are working on new solutions whilst some are still working on legacy code. With this in mind we constructed an email with a list of guidelines when creating new tests that need to be added to this regression pack.  I figured that these can be quite broad so should apply for any organisation, so thought it would make an interesting blog post...  So here goes,  when creating automated tests, it's important to consider and adhere to the following: - Think about data . The tests need to retrieve or set the data they need without any manual intervention - This should help them be more robust and easier to run without manual intervention. - The tests need to be idempotent - By making it so that each test is standalone and does...