What is Automated Testing?

Automated testing is a software testing technique to test and compare the actual outcome with the expected outcome. This can be achieved by writing test scripts or using an automated testing tool. Test automation is used to automate repetitive tasks and other testing tasks which are difficult to perform manually.

There are different approaches on automated testing and some of them are GUI testing, API driven testing and Continuous Integration testing. Automation testing can be classified as functional testing or non-functional testing based on the type of testing and phase of testing. A QA company can automate functional tests by writing scripts to validate the business logic and the functionality expected from the application. Automating non-functional tests are based on non-business requirements like performance, security and databases. In addition, the phase of testing helps classify the testing as Unit tests, API tests and UI based tests.

A test automation framework is an integrated system of function libraries, test data sources, object details and various reusable modules. A testing framework is set up to define a format that is used to express expectations, creating a mechanism to drive the application under test, executing tests and reporting results. It is application independent, easy to expand and maintain. There are different types of framework and some of them are scripting framework, data driven framework, keyword driven framework, modular testing, or hybrid testing framework.

Nowadays, most organisations prefer automating tests as much as possible. That is mainly due to advantages that automation provides including reusable tests, low cost of maintenance and no manual intervention. An example of this is regression testing. Regression testing is required to be done frequently through the process of development. Typically, manual testing will consume a lot of time and human effort. The best way to save time and effort here is by automating repetitive tests and increase the test coverage.

To ensure that the automation process works correctly, it is important to choose the correct framework for the project. While choosing a framework, consideration must be taken about different factors like scalability for future requirements, maintenance and reusability, reliability, and consistency, maximizing test coverage and capability to provide test results in the form of reports.

Another consideration for testing is to decide what to automate. Priority should be given to repetitive tests like smoke tests, tests that are difficult and take a lot of time to perform manually. In addition, it is preferable not to automate certain types of tests. Some examples of these are tests which frequently change, test cases for features that are not core to the project and one-off test cases