I am confused about automated testing. In my view Automated testing is the automation of test cases. Then what are automation tools like QTP and all? Do they automate test cases like I automate a test in perl?
Software suites like QTP give a very broad tooling and or development framework to create, manage and drive tests.
I would compare suites like this as a text editor vs a full fletched IDE, both can be used to develop software, but an IDE makes life easier most of the time.
Tools like this often hide the complexity compared to running automated test from scratch with development tools.
One use of automated tests is for regression testing. After changes to the application a suite of regression tests are run to check that existing functionality that should not have changed still works correctly.
Another use of automated tests is to apply load to a system to check its performance. This can be to measure transaction timings, to see how the system works with large numbers of users, to see how the system copes at 9am when everyone logs in at the start of the day, etc.
Automated tests can be useful to run the same test case but with many different sets of input data. This is "data driving" or a "data driven test". For example, each row of spreadsheet corresponds to one test case. Ie one execution of a test, but with different values. Each column of the spreadsheet provides different data values for the test, perhaps username, password, product to purchase, quantity to buy, address, etc.
There are many other types of testing that can use automated tests.
Tools like QTP provide facilities to create and to run automated tests, also to perform analyses of how the tests performed.