Test Automation

Published date: April 15, 2024, Version: 1.0

Objective

Test Automation is a crucial aspect of modern software testing that involves using specialized tools and frameworks to automate the execution of test cases and validate the functionality of software applications.

Who is involved

Test Automation is typically performed by dedicated Test Automation Engineers(TAE) who specialize in developing and maintaining automated test scripts and frameworks. They collaborate closely with the testing team to identify test cases suitable for automation and design efficient and reliable solutions.

When is automation performed

Test Automation is performed throughout the software development lifecycle, starting from the early stages of the project. It is an ongoing process and is integrated into the overall testing strategy. Test automation is particularly beneficial in agile and continuous integration/continuous delivery (CI/CD) environments where frequent releases and iterations occur.

Tools/Technology used in Test Automation

Various tools and technologies are available for test automation, each catering to specific testing needs. Some commonly used test automation tools and frameworks include:

UTAF (Unified Test Automation Framework)

  • A framework that provides a unified approach to automate tests across different components and technologies.

JUnit/TestNG:

  • These are popular unit testing frameworks for Java applications, providing a foundation for creating and running automated unit tests.

Cucumber:

  • A behavior-driven development (BDD) framework that uses a simple language called Gherkin to define test scenarios in a human-readable format. It promotes collaboration between stakeholders and encourages test automation.

What Purpose Test Automation Solves

The purpose of test automation is to streamline and accelerate the testing process, improve test coverage, and enhance the overall quality of the software. The key objectives of test automation include the following:

  1. Efficiency: Test automation helps reduce the effort and time required to execute repetitive and time-consuming test cases. Automated tests can be performed quickly and repeatedly, allowing testers to focus on more complex and critical testing activities.

  2. Regression Testing: Automated tests are particularly effective in regression testing, where many test cases need to be executed to ensure that changes or enhancements in the software do not introduce new defects or impact existing functionality.

  3. Increased Test Coverage: Test automation enables broader test coverage by allowing testers to create and execute many test cases that would be impractical to perform manually. This helps identify defects and potential issues in different areas of the software.

  4. Continuous Testing: Test automation enables constant testing practices in agile and DevOps environments. It integrates seamlessly with CI/CD pipelines, executing tests automatically as part of the build and deployment process.

  5. Reliability and Consistency: Automated tests ensure consistency in test execution by eliminating human errors and variations. They provide reliable results, making it easier to reproduce and debug issues.

  6. Scalability: Test automation facilitates scalability by allowing tests to be run concurrently on multiple environments and configurations. This helps ensure that the software performs well under different scenarios and environments.

Expected Automation coverage

Below table summarizes the automation coverage by testing type for agile projects. Squad teams to plan for increasing automation coverage as per the below targets and achieve over a period

Environment Tests Target

Dev - Local

Automated unit tests coverage

95%

Automated unit tests pass %

>95%

Code coverage

>95%

Static code analysis

No Critical, major, or medium violations were reported in the central CI server

Dev / QA

Automated unit tests pass %

>95%

Code coverage

>95%

Static code analysis

No Critical, major, or medium violations were reported in the central CI server.

Automated Smoke test coverage

90+%

Automated API tests coverage

90+%

Unit Performance tests coverage

TBD

SIT

Automated smoke tests coverage

90+%

Automated API tests coverage

90+%

Automated Regression

90+% of test cases covered and 90+% in passed state

Zero critical and high defects

Automated functional

90+% of test cases covered and 90+% in passed state

Zero critical and high defects

UAT/Staging

Automated Smoke test coverage

90+%

Automated regression

90+% of test cases covered (sprint-specific test cases) and 95+% in passed state

Zero critical and high defects

90+% of test cases covered  (Final regression) and 95+% in passed state

Performance testing

TBD

Vulnerability scan

TBD

Pen testing

TBD

Prod

Automated smoke test coverage (Read only transactions)

90+%