Automation of cloud apps is similar to functional automation of a web application and Desktop application, however there are certain areas where we can focus more for making the tests more stable and reliable.
Designing the Framework Architecture
Always try to create a framework which follows some design standards ex: Factory patterns or Page Objects, these pattern helps in creating independent modules which are reusable, easy to use in controlling the flow of scripts and maintainable. This independent nature of implemented code will help in writing independent tests but these tests can be hooked easily to maintain a workflow. Such framework structure are helpful in automation of cloud based applications as these applications also have multiple layers of interfaces like clients/users, administration modules, reports etc. which can be maintained/tested independently as well.
All the cloud apps requires a working internet connection, timeout due to latency or no connection should be handled by the framework effectively. This will reduce the chances of fake failures also.
Designing the test flow
Usually the Cloud applications follow strict authentication methods to maintain and secure integrity of user data. Test flow for these applications should be developed in such a way that they cover the authentication as well and this should be implemented as a prerequisite. Failure in any of the prerequisite should block the further steps of execution, this will help in giving better diagnostics for cause of authentication failures. Implementing logging becomes mandatory in these approaches. After successful completion of Test the testdata or the residual data from the execution should be cleaned from the system, this approach is widely known as teardown, and it should be implemented to ensure every test run is positive.
Using API in the framework
Every application built over cloud implement Web-services for handling third party calls or selling the core functions, we should utilize these available API functions for effective implementation of workflows or creation of test data. This will help in reducing the execution time of test scripts and further reduce the chances of false results. It also improves the reliability on test reports as there a very less false results.
Mostly API’s can be used during initialization and tear down of test scenarios. There are many other measures with the help of which we can build robost test infrastructure for cloud apps, we have tried to illustrate few major ones in this article.