In this paper several principles for test automation are described. This work identifies the major concerns when staffing test automation with testers, developers or contractors. From this paper, you can know why Test Automation is so important, who should automate tests, what to automate when a test should be automated, and what you lose with automation.
In the recent years, tools were invented for quickly that has improved dramatically programmer productivity. Well, at the same time this has increased the pressure on testers. Testers are being asked to test more and more code in less and less time. They need to improve their own productivity. Test automation is an excellent way to do this.
Test Automation-A Serious Problem
Software testers, under pressure to do more testing in less time, often find themselves rushed and eager for anything that will give them a hand. Test automation is exactly what they want. The fantasy is that it will make their job simpler and easier and help them contend with unrealistic schedules. Major challenges for test automation are maintainability and reliability. These challenges demand that a software engineering approach be taken to address them. Different teams define the software development process differently. This is fine. The important thing to remember is that this process should be used with test automation as well.
The code under test is the code whose behavior you thought about to complete your testing task. I will call the code that sits between the code under test and the test itself the intervening code. The intervening code is a major cause of test death. Test libraries, They allow you, the tester, to write your tests in terms of the feature you’re testing, ignoring - as much as possible - the details of the user interface.
On input, they add additional information required by the intervening code. On output, they condense all the information from the intervening code down to the important nugget of information actually produced by the code under test.
Many user interface changes will require no changes to tests, only to the test library. Since there is (presumably) a lot more test code than library code, the cost of change is dramatically lowered.
Who Should Automate Tests?
A test automator needs to have good testing and development skills. She needs to understand testing requirements and the situations testers face. Automating tests should not be an opportunity to impose a particular testing methodology on testers. They will find fault with it and refuse to use it. Rather it needs to build from existing testing methodologies.[/justify]