Test Automation is the use of special software to control the execution of tests, and the comparison of actual outcomes against expected outcomes. Test Automation can automate repetitive but necessary tasks in a formalized testing process, or conduct additional testing that would be difficult to perform manually. This is especially useful in mobile applications, with the current mobile landscape changing as rapidly as it has been in recent years. There is a constant demand for updates and change, prompting on-going development and testing.
The main approaches to Test Automation are given below:
Code-driven testing: The public interfaces to classes, modules or libraries are tested with a variety of input arguments, to validate that the results returned are correct.
Graphical user interface testing: A testing framework generates user interface events, such as keystrokes and mouse clicks, and observes the changes that result in the user interface, to validate that the observable behaviour of the program is correct.
API driven testing: This is a testing framework that uses an interface to the application to validate the behaviour being tested.