Automated Software Testing - the Pros and Cons
Software testing is increasingly automated, with a host of products now available for automated software testing. What are the pros and cons of automated software testing?
What are the advantages of automating software testing, and what problems can occur with automated software testing?
The Advantages of Automated Software Testing
- Defect counts are automatically tallied by most automated software testing tools.
- Defect reports are standard in automated software testing tools. And defect reporting is standardized; there is no variation due to personal opinion as to whether something is a reportable defect or in determining its severity.
- Test data from each test can be saved just like the test scripts and test plans.
- Once a test has been created, it does not cost much to run or rerun.
- Automated software tests can be run overnight or over the weekend without driving up labor costs with overtime.
- The failure conditions in the software test are known or at least recorded.
- Human error when following software test procedures are essentially eliminated as a cause of errors generated.
- You can outsource software testing by sending the automated test script to someone else to run on their hardware with your software installed.
- Software testing metrics like the percentage of the test plan done so far or the number of test cases are automatically tracked by the software testing tool.
- Automated software testing allows technicians to run automated test scripts instead of dispatching software quality engineers to do the job.
- Automated testing allows for the rapid testing of software on a piece of equipment as hardware modules are swapped out.
The Disadvantages of Automated Software Testing
- Automated software testing requires test technicians to learn how to use automated testing tools in addition to the application itself.
- Developing automated software testing can be time consuming. It may not be cost-effective for small and rarely used software applications.
- When recording a set of transactions for future software testing, the tester must follow all steps perfectly and the runs have to be error free.
- When creating testing scripts for regression testing using play back and recording requires a fully functional software application. Automated testing doesn't work well with very early beta releases, which have significant errors as well as require design changes to improve readability and usability.
- Automated test scripts need to be kept up to date as new functions are added to the application; otherwise, the new functionality won’t be tested when the automated tests are run, and it won’t record the lack of testing of new functions as a defect.
- Automated test scripts need to be managed by software configuration managers along with the test plans, test documentation and software requirements. Configuration managers need to ensure that the correct test script is being followed and that automated testing uses new test scripts when they are approved.
- Informational notices that users would recognize as problematic may not be recorded by automated testing as a problem. Conversely, problems caused by related software applications like Java or pop-up blockers may be flagged as defects when they are not caused by failures in the software application.
- Automated software testing will often be set to wait for a transaction or process to complete in a certain period of time. A human would notice that the progress bar is almost done and wait the additional 30 seconds. The automated test logs that step as a failure.
- When you are using automated software testing, it is important to ensure that everyone is using the same testing software version and testing scripts. This is a frequently overlooked task by configuration management.
- Software apps are now being created via tools that don't require someone to know code at all. These apps are often tested by the developers themselves, and anyone wishing to test them will either have to write new test scripts or test them manually themselves. If you rely on automated software testing, these small apps may go untested altogether.