Some of the Advantages are:
1. Reliable :- Tests perform precisely the same operations each time they are run, thereby eliminating human error
2. Repeatable :- Test can be run many times in a row without human intervention.
3. Programmable:- we can program sophisticated tests that bring out hidden information from the application.
4. Comprehensive:- we can build a suite of tests that covers every feature in your application.
5.Reusable:- we can reuse tests on different versions of an application, even if the user interface changes.
6. Better Quality Software Because We can run more tests in less time with fewer resources
7.Fast :- Automated Tools run tests significantly faster than human users.
8.Economical:- As the number of resources for regression test are reduced.
9.Concise:- As simple as possible and no simpler.
10.Self-Checking:- Test reports its own results; needs no human interpretation
11.Robust:-Test produces same result now and forever. Tests are not affected by changes in the external environment.
12.Sufficient:-Tests verify all the requirements of the software being tested
13.Clear:- Every statement is easy to understand.
14.Efficient :-Tests run in a reasonable amount of time.
15.Independent:- Each test can be run by itself or in a suite with an arbitrary set of other tests in any order.
16.Maintainable:- Tests should be easy to understand and modify and extend.
Some of the disadvantages are:
1) Proficiency is required to write the automation test scripts.
2) Debugging the test script is major issue. If any error is present in the test script, sometimes it may lead to deadly consequences.
3) Test maintenance is costly in case of playback methods. Even though a minor change occurs in the GUI, the test script has to be re-recorded or replaced by a new test script.
4) Maintenance of test data files is difficult, if the test script tests more screens.