[citation needed] In some cases, the model-based approach enables non-technical users to create automated business test cases in plain English so that no programming of any kind is needed in order to configure them for multiple operating systems, browsers, and smart devices.
This can be a cost-effective method for regression testing of software products that have a long maintenance life.
Even minor patches over the lifetime of the application can cause existing features to break which were working at an earlier point in time.
[6] Many test automation tools provide record and playback features that allow users to interactively record user actions and replay them back any number of times, comparing actual results to those expected.
Relabelling a button or moving it to another part of the window may require the test to be re-recorded.
[citation needed] A variation on this type of tool is for testing of web sites.
Headless browsers or solutions based on Selenium Web Driver are normally used for this purpose.
Proponents argue that it produces software that is both more reliable and less costly than code that is tested by manual exploration.
The developer discovers defects immediately upon making a change, when it is least expensive to fix.
Continuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate.
[15] While the reusability of automated tests is valued by software development companies, this property can also be viewed as a disadvantage.
It leads to the so-called "Pesticide Paradox", where repeatedly executed scripts stop detecting errors that go beyond their frameworks.
This ambiguity once again leads to the conclusion that the decision on test automation should be made individually, keeping in mind project requirements and peculiarities.
Manual effort is needed to develop and maintain automated checks, as well as reviewing test results.
This system integrates the function libraries, test data sources, object details and various reusable modules.
These components act as small building blocks which need to be assembled to represent a business process.
The main advantage of a framework of assumptions, concepts and tools that provide support for automated software testing is the low cost for maintenance.