Test automation’s goal is to make all human tester designed test cases to be executed automatically. This can make manual test more quickly and effective.
For example if you want to manually test login function for one system, and there has 100000 user account, you need to input username and password for each user account and verify the test case for each user account, it is so tedious and inefficiency to test the login function manually. If you run this test case with automate test software, it is so easy and efficiency to test all these 100000 user accounts.
So what dose test automation mean and what dose test automation includes? Test automation covers both functional automation and performance automation in general.
- Functional automation: Automated test for functional test cases for regression test.
- Performance automation: Automated test for performance test cases which is not functional test cases. One example is to test the response time for a system under stress access.
Because functional automation and performance automation based on different theoretical basis and driving concepts, there has different test tools for them.
The reason that why we need automate?
- Effective build verification ( smoke ) testing: When never a software build is ready, whether it is a daily build or a release build, we need to run smoke test to verify that the build is testable and acceptable for more large-scale test effort. We also need to make sure the main function is working appropriate.Without automation, we always need a lot of time(maybe hours or days) to do smoke testing manually. But if we automate smoke testing, we can run smoke test script when never a build is ready regardless of day or night. And get the result in no time(maybe minutes or in one hour). And the build quality can also be verified by developer using smoke testing automation script before deliver it to testing team.
- Testing at anytime: With automated tools, testing can be scheduled run at any time and in time. You just need to write a test script, set it’s scheduled run time, then everything is ok. The test case can be run day or night, and this will save a lot of time and money. You can do more important issues while the automated script running.
- Defect reproduce is easy: Human tester can not always remember every test step in test case. So some defect can not reproduced. But with automated test, every step and input parameters can be write in script files, so every test case and defect found in the test case can be reproduced easily.
- Human tester can do more complex issues: When the new build is ready, there has a lot of old test cases will be running on the new build. This is called regression test. But in general regression test can not produce more new bugs because those test cases has been verified before. So we can let regression test automated, then human testers can do more test on new feature or new functions which maybe generate lots of new defects.
- Cover more function with huge test data: It is impossible for human testers to input 1000000 username and password into login system to test the login test case. But it is very easy and quickly for automated test tools to do such a boring thing. And automated test tools can use huge data combination to verify test cases which called “Data Driven Test” with only one test script.
- More reliable than human tester: Because automate test script will use same test data in the same test step order exactly, so every regression test processed by automate test script is reliable than human tester dose. Human maybe make mistake with long time working.