In software testing, test automation is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes.Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or add additional testing that would be difficult to perform manually.
Some software testing tasks, such as extensive low-level interface regression testing, can be laborious and time consuming to do manually. In addition, a manual approach might not always be effective in finding certain classes of defects. Test automation offers a possibility to perform these types of testing effectively. Once automated tests have been developed, they can be run quickly and repeatedly. Many times, 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.
There are many approaches to test automation, however below are the general approaches used widely:
- Code-driven testing. The public (usually) interfaces to classes, modules or libraries are tested with a variety of input arguments to validate that the results that are returned are correct.
- Graphical user interface testing. A testing framework generates user interface events such as keystrokes and mouse clicks, and observes the changes that result in the user interface, to validate that the observable behavior of the program is correct.
Test automation tools can be expensive, and are usually employed in combination with manual testing. Test automation can be made cost-effective in the long term, especially when used repeatedly in regression testing.
In automated testing the Test Engineer or Software quality assurance person must have software coding ability, since the test cases are written in the form of source code which, when run, produce output according to the assertions that are a part of it.
One way to generate test cases automatically is model-based testing through use of a model of the system for test case generation, but research continues into a variety of alternative methodologies for doing so. 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.
What to automate, when to automate, or even whether one really needs automation are crucial decisions which the testing (or development) team must make. Selecting the correct features of the product for automation largely determines the success of the automation. Automating unstable features or features that are undergoing changes should be avoided.
Benefits of Automation Testing
- Fast: Runs tests significantly faster than human users.
- Repeatable: Testers can test how the website or software reacts after repeated execution of the same operation.
- Reusable: Tests can be re-used on different versions of the software.
- Reliable: Tests perform precisely the same operation each time they are run thereby eliminating human error.
- Comprehensive: Testers can build test suites of tests that covers every feature in software software application.
- Programmable: Testers can program sophisticated tests that bring hidden information.
Right time for Automation
- When application is stable.
- No GUI changes.
- Cannot be used for Re-testing.
Record and Playback
The central feature of first generation test automation tools, record & playback was especially useful for regression testing. For this method, every test case is a series of actions with test data hardcoded into it. While this approach required minimal coding at the beginning, the scripts were unstable and minor errors or changes in the data disrupted the automation. So, any small changes in the applications had to be made to the test case in order to run it.
No comments:
Post a Comment