In such projects the correct choice of tool has a clue meaning. The tool must match the technology used to build the GUI. For example, Selenium is well suited for testing of applications with web interface and Appium for mobile apps.
Highly skilled professionals for test automation constantly update the pool of used instruments as well as develop their own. The most popular tools are TestComplete, Selenium, Soap UI, Appium, RFT, QTP/UFT, SAP TAO, UI Automator.
For small projects it is enough to choose the right tool to write automated scripts, prepare test data and conduct independent software testing. This approach is recommended for use with a small number of tests and 10-30 scripts. In large automation projects, you should think about creating a fault-tolerant framework.
In small projects, it is easy to control implementation of auto-tests manually. If, for example, there is crash in the work of the script due to a network error or unexpected behavior of the application under test, the specialist will detect and restart the script. In large projects where there are hundreds or even thousands of tests, manual control is practically impossible. There are tasks to run in parallel tests, the use of multiple technologies and automation at the same time, exception handling, advanced logging, and many other tasks.
In such situations, it is recommended to develop a fault-tolerant framework – system for automated testing control. Development of a framework requires a more serious attitude to automation, including having a strategy for the test automation, selection of the most appropriate approach. Thus, the Model Based Framework is suitable for testing highly critical systems with high demands on the completeness of test coverage. Data-Driven and Object Based Framework are better suited for traditional tasks with a limited set of tests.
Experienced IT professionals know that even a very well tested product after implementation in production environment may be unhealthy. Therefore, a good practice is to run the existing regression tests in an industrial environment. The CRUD method is used to separate auto-tests into groups (CRUD stands for Create/Read/Update/Delete). In a production environment, often it is possible to perform only R-tests, that is, those that do not change any data. Despite this limitation, sometimes, automated testing in a production environment is a critical stage of the product release.