Functional Test Automation

Functional test automation is done to execute existing functional test cases against the application automatically. Graphical User Interface (GUI) based functional test automation does not require writing software code within the application. Rather, an automated testing tool is used to create and prepare ready-to-use automated test scripts that can be executed against the application as required. AppTest Software uses the following overall process for GUI based test automation:

1.
Analyze existing functional test cases

It is common to automate regression test cases but any functional test cases can be automated. We review the functional test cases in scope to check if they are clear, specific, complete (with all test steps, expected results and test data) and do not contain redundancies or duplicities. As required, the AppTest Software team updates the scoped test cases to ensure these quality attributes.

2.
Select the automated testing tool

If the client already owns an automated functional testing tool, it is better to go with it in order to re-use existing automation libraries. If not, AppTest Software reviews several popular automated testing tools keeping the test steps, expected validations, budget and other factors in mind. Next, we download the most suitable tools (evaluation copies in case of commercial tool) and create proof of concept automation against few representative test cases. Based on our findings, AppTest Software recommends the best tool to the client to procure.

3.
Plan function test automation

The AppTest Software team plans for the highest return on test automation effort considering a number of factors such as effort required for executing scoped test cases manually, number of planned automated test execution cycles, type and frequency of updates to the application, selected tool's features and others. We plan the type of test automation framework, schedule, test environment and resource allocations.

4.
Plan function test automation

The AppTest Software team plans for the highest return on test automation effort considering a number of factors such as effort required for executing scoped test cases manually, number of planned automated test execution cycles, type and frequency of updates to the application, selected tool's features and others. We plan the type of test automation framework, schedule, test environment and resource allocations.

5.
Design and implement the test automation framework

AppTest Software designs the test automation framework based on the test automation plan, tool limitations and good practices learnt by us in our prior projects. This results in the tool's test automation framework being customized by the AppTest Software team according to the above factors. The framework is implemented, tested, internally reviewed and explained to the test automation engineers.

6.
Prepare automation environment

The AppTest Software automation engineers prepare the automation test environment to create and test the automated test scripts. The latest application build is deployed in this test environment.

7.
Create automated test scripts

AppTest Software prepares the automated test scripts for each scoped functional test case in order of priority. This is done strictly according to the test automation framework. Next, each automated test script is parameterized, unit tested and internally reviewed. On completion, each automated test script is baselined to allow only authorized changes to it. The AppTest Software team also provides a daily status of the progress of test automation.

8.
Execute automated test scripts

Upon receiving a newer build of the application, the AppTest Software team deploys it in the test environment. Any or all the baselined automated test scripts can be selected for execution. The selected automated test scripts are executed against the application.

9.
Report defects and test results

AppTest Software analyzes the automated testing results. Defects are confirmed manually and reported in the defect tracking system. Our team also provides a daily status of the progress of test execution.