“Test Automation" is automating the manual testing process currently in use. This requires that a formalized "manual testing process" currently exists in your company or organization. Minimally, such a process includes:
The real use and purpose of automated test tools is to automate regression testing. This means that you must have or must develop a database of detailed test cases that are repeatable, and this suite of tests is run every time there is a change to the application to ensure that the change does not produce unintended consequences.
Recent advances in software applications enable developers to build applications quickly and with increased functionalities. Quality Assurance must cope with software that has dramatically improved, but is increasingly complex to test. Each code change, enhancement, defect fix, or platform port necessitates retesting the entire application to ensure a quality release.
Manual testing can no longer keep pace in this dynamic development environment. Automation helps you automate the testing process, from test development to execution. You create adaptable and reusable test scripts that challenge the functionality of your application. Prior to a software release, you can run these tests in a single overnight run—enabling you to detect defects and ensure superior software quality.
If you have ever tested software manually, you are aware of its drawbacks. Manual testing is time-consuming and tedious, requiring a heavy investment in human resources. Worst of all, time constraints often make it impossible to manually test every feature thoroughly before the software is released. This leaves you wondering whether serious bugs have gone undetected.
Automated testing addresses these problems by dramatically speeding up the testing process. You can create test scripts that check all aspects of your application, and then run these tests on each new build. It simulates a human user by moving the mouse cursor over the application, clicking Graphical User Interface (GUI) objects, and entering keyboard input and this is faster than any human user.
Some of the pros of automated testing are
Fast Run tests significantly faster than human users.
Repeatable Tests perform precisely the same operations each time they are run, thereby eliminating human error.
Programmable You can program sophisticated tests that bring out hidden information from the application.
Comprehensive You can build a suite of tests that covers every feature in your application.
Reusable You can reuse tests on different versions of an application, even if the user interface changes.
Some of the cons of automated testing are
Automated testing is expensive. It does not replace the need for manual testing or enable you to "down-size" your testing department. Automated testing is an addition to your testing process. It can take between 3 to 10 times as long (or longer) to develop, verify, and document an automated test case than to create and execute a manual test case. This is especially true if you elect to use the "record/playback" feature (contained in most test tools) as your primary automated testing methodology.
Automated testing can be made to be cost-effective, however, if some common sense is applied to the process:
While test automation sounds very attractive, one needs to spend the required time and efforts to