Automated Testing Solution For Iot Based Project

Executive Summary

Our clients, a California, USA based smart and innovative IT solutions provider (Healthcare Management industry) wanted automated testing solutions for all the applications they have , which take major roles on delivering the control and usage of the smart IoT product to the end users. An IoT device that often interacts with cloud servers to record statistics and to get the various operation commands from user is backed by REST APIs, which is the major building block of all the customer facing applications on different platforms e.g Web, Android, iOS etc. Automating Http based REST APIs which needs the complete understanding of functionality/ business logic of the project itself was a challenging and well experiencing task for us. We did automated UI and functionality testing of all the applications built for Android, iOS and Web. We provided an automation solution which makes sure that every new build has minimal defects by providing reports for Bugs. We provided solutions like test case updation and maintenance of the script for the new builds of the application with added features at a later stage. Automated test of APIs (consumed in all the applications which are customer facing), opened the door for very early detection of defects – even before we find defect on UI level. Automated UI testing made sure that customer/end user gets a very easy to use and robust interface with minimal glitch.

About our Client

Client:  A major innovative and smart IT service provider in Healthcare management domain(IOT based)

Location: California, USA

Industry: Healthcare Management

Business Situation

Our client wanted automated testing solutions for the applications , which are the integral parts of the IoT product they have. When a consumer uses the IoT device , all the functionalities , data statistics and control of the device resides with the cloud server to which the IoT device is connected to. There are applications on different platforms which provide user friendly UIs to consumers to get the record of usage and to control the device right away from the application itself. Besides this there was an application which is used for the service person to diagnose the components of the IoT device and configure those to make it ready for the user. REST APIs they have , which has a major role on delivering various crucial data to the customer facing applications made for different platforms. They wanted the project to be hassle free, which can be easily executed by anybody from their end and to output easily interpreted test results. They looked for fully automated solutions that would be a suitable candidate for integration with Continuous Integration tools like Jenkins. Our client wanted these regression suites to be flexible enough to be executed with any of the testing environments along with production itself, with any set of credentials. Not only the validations were to be done from a set of expected results , out client wanted data to be matched from the application database on real time basis.

Our Solution and Customer Benefits

We have a number of applications based on a number of platforms to be automated. At the same time we had applications which have different purposes of use. Moreover for each platform we had many automated testing tools/libraries available.

After analyzing and understanding the core workflow of the project , we narrowed down to the following solutions.

Web Application: Selenium WebDriver

Android: Robotium

iOS: Appium

REST API: Apache HttpClient with supporting JSON parsers

We suggested an approach of integrating above Java based automation libraries with a powerful framework which is built with the following features. Brief description of these individual tools/libraries and the purpose of use in the framework:

Selenium WebDriver: This Java library contains the methods/APIs to develop test scripts which can interact with the browser and based on the success or failure of any operation a specific test method is marked as pass or fail.

Appium Java-Client: This Java library contains the methods/APIs to develop test scripts which can interact with the browser/app and based on the success or failure of any operation a specific test method is marked as pass or fail. Basically Appium Java Client is the implementation of WebDriver API.

Robotium: This Java library contains the methods/APIs to develop test scripts which can interact with the mobile application and based on the success or failure of any operation a specific test method is marked as pass or fail.

Apache HttpClient: This library has methods to do various Http operations and call methods like get, post etc and extract the response details. So this library is responsible for all the request and response stuffs with the APIs we test.

Technologies

Selenium WebDriver, Robotium, Appium,Apache HttpClient,org.json(JSON Parser), Java, Eclipse, Maven, Jenkins

Download Full Case Study