← New search

Other meanings of Automated testing

Software testing

Automated testing

Automated testing is a software testing methodology that uses specialized tools and scripts to execute test cases, compare actual outcomes with expected results, and report discrepancies without continuous human intervention. It is a fundamental component of continuous integration and continuous delivery (CI/CD) pipelines, enabling rapid feedback on code changes and reducing the risk of human error in repetitive validation tasks. By automating regression, unit, integration, and other test types, organizations can achieve higher test coverage, faster release cycles, and more reliable software quality assurance.

70–90%
Reduction in execution time
Execution time reduction
85%
Typical defect detection rate for mature suites
Defect detection rate
80%+
Target test coverage in many CI/CD pipelines
Test coverage
1

Core definition and purpose

Automated testing replaces manual test execution with software that controls the test environment, runs predefined test scripts, and logs results. Its primary purpose is to catch defects early and frequently, especially during regression testing after code changes. Automated tests are typically written in programming languages like Python, Java, or JavaScript, and are executed by frameworks such as JUnit, pytest, or Selenium. The approach is especially valuable for large projects where manual testing would be prohibitively time-consuming. According to a 2022 survey by the IEEE, organizations that adopt automated testing report a 30–40% reduction in time-to-market for new features. Automated testing also supports shift-left testing, where validation occurs earlier in the development cycle, reducing the cost of fixing bugs.

2

Types and approaches

Automated testing spans several types, each targeting different levels of the software stack. Unit tests validate individual functions or methods, often using white-box techniques. Integration tests verify interactions between modules, while functional tests (e.g., UI tests with Selenium) simulate user actions. Regression test suites automatically re-run existing tests to ensure new code does not break existing functionality. Advanced approaches include data-driven testing, where test data is externalized from scripts, and keyword-driven testing, which uses a table of action words. A less common but powerful technique is property-based testing, where random inputs are generated to uncover edge cases. Test automation frameworks like Robot Framework and Cucumber support behavior-driven development (BDD), enabling non-technical stakeholders to write test scenarios in plain language.

3

Benefits and challenges

The main benefits of automated testing include faster execution, repeatability, and the ability to run tests unattended (e.g., overnight). It also enables continuous testing in DevOps pipelines, providing immediate feedback on code commits. However, challenges exist: writing and maintaining test scripts requires significant initial effort and expertise. Tests can become brittle, failing due to trivial UI changes. The phenomenon of test flakiness—where tests intermittently pass or fail without code changes—remains a persistent problem. A 2023 study in the Journal of Systems and Software found that flaky tests account for up to 16% of test failures in large projects, often caused by timing issues or environmental dependencies.1 Organizations must invest in robust test design, mock objects, and deterministic environments to mitigate these issues.

4

Lesser-known aspects

Beyond mainstream use, automated testing has niche but impactful dimensions. One is the role of test oracle selection: determining what the correct output should be is often non-trivial, leading to the use of metamorphic testing where properties of outputs are checked instead of exact values. Another is AI-driven test generation, where machine learning models create test cases from code or user behavior logs, a field pioneered by tools like EvoSuite. Historically, the first widely used automated testing tool was the IBM Test Tool in the 1970s, which automated COBOL program testing. A lesser-known figure is Dorothy M. Johnson, who developed one of the earliest test automation frameworks for the U.S. Navy in 1968. Edge cases also include testing of embedded systems with limited resources, where developers must simulate hardware interrupts and memory constraints.

Glossary

Test script
A set of instructions written in a programming language or scripting language that automates the execution of a test case.
Test harness
A collection of software and test data configured to run a test suite, often including stubs and drivers.
Test automation framework
A set of guidelines, tools, and libraries that provide a foundation for designing and running automated tests, e.g., Selenium, JUnit, pytest.
Continuous Integration (CI)
A development practice where code changes are automatically built, tested, and merged, often relying on automated testing for validation.

The term 'automated testing' is sometimes conflated with 'test automation,' though the latter more broadly refers to the use of automation in any aspect of testing, including test management and reporting.