Automated testing is a great complement to manual testing in that it provides reusability and repeatability to the test process, saving you money and time. Automation can help you quickly perform regression tests of the environment, which quickly determine the stability and usability of the underlying code. However, there are many misconceptions and pitfalls associated with Automated Testing. These misconceptions include the idea that Automation Testing:
- replaces manual testing,
- is developed early in the Product Life Cycle,
- can test everything, and
- always indicates bugs in the code.
Here are the reasons why these beliefs are simply myths.
Automated testing can completely replace manual testing.
Automation can never fully replace manual testing. Instead, automation’s most basic function is to actually determine if the code is operational. However, automation can never replace human intuition and unpredictable behavior. Furthermore, automated tests require manual intervention to create, setup, run, and interpret the test results.
As our new Automation Test Engineer here at Segue, I have hit the ground running, providing automation to several projects. Rather than replacing the Manual Testing, though, I work in conjunction with the Quality Control team to automate the stable, high-priority tests where appropriate.
Automated testing can be used early in the testing process.
To actually use Automated Testing early in the process is usually not possible as the environment typically changes rapidly, causing automated tests to easily break. Instead of creating automated tests early in the process, involve the automation team to guide development team to create code that is more conducive to automation, such as including unique DOM IDs.
Automated tests can test everything.
Usually, it’s best to focus automation on repetitive, predictable, and simple tasks for high-level, mile-wide, inch-deep regression testing. Automation is also great for multi-user performance testing. However, as I mentioned before, automated tests can never replace the flexibility and adaptability of human testing that incorporates intuition.
Failing automated tests indicate all bugs in the code.
Although that may be the case, automated test tools can fail due to changes in the development environment from moved or renamed fields, underlying database changes, new data constraints, or test scripts that run too fast. For example, an automated test may try to click on a button before the page containing the button finishes loading.
In summary, automated testing is a fantastic complement to manual testing but will never replace human testers. Automation successfully tests predictable and repeatable sequences of steps. These automated tests are easily repeatable and quickly executed. However, an end user’s behavior is never predictable! So make sure to use automation for the expected and manual testing for the unexpected. Now that you understand a few pitfalls of Automated Testing, you can better incorporate Automation in your Testing Process with realistic goals and expectations.