Automation of software testing
What is Test Automation
"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.
Why do we need automated testing?
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.
Benefits of Automated testing
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.
Advantages of Automated testing
Some of the pros of automated testing are
Disadvantages of automated testing
Some of the cons of automated testing are
How to have a Cost-effective automated testing?
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: Spend the required time and efforts to choose a test tool that best fits the testing requirements of the project.
Progression of Automated testing
Automated testing can be taken up in stages as below
Each stage is further explained in the below table
While test automation sounds very attractive, one needs to spend the required time and efforts to