Why use the Extension?
When I bought my house, the backyard fence was in pretty bad shape. One summer, I decided to build a new one. After a couple of days of hard work, the fence looked great. The next day, my neighbor came home from a trip and asked, "Is your phone working?" I knew immediately what had happened: when digging a post hole for my new fence, I had cut my neighbor's phone line. In trying to fix one problem (an old fence), I had created another problem without realizing it (my neighbor now had no phone service).
I tell you that story to illustrate a regression. Sometimes developing and maintaining software can be similar. When a developer adds a new feature or fixes a bug in the system, it is quite possible that the code being modified is used by a seemingly unrelated feature. How was I to know that the same patch of dirt I wanted for my fence post was also used for my neighbor's phone line? If we test only the new features each time we modify our code, we can't say for sure that all the things that used to work still do. In my case, the completed fence looked great, but unknown to me, my neighbor was no longer able to make phone calls.
The only way to know for sure that we have not broken existing functionality is to retest everything on every revision or iteration of our system. This is what's known as functional regression testing.
Functional regression testing can be performed manually. The problem is that as a project evolves, that functional test suite becomes longer and longer. At some point, it may take more time to run the test suite manually than you actually have between builds!
When this happens, test teams are faced with tough choices. They have to find a way to decide which tests are less critical and can be omitted on some or all build tests. Now the door has been opened for regressions to slip into those untested capabilities of an application.
Rational Functional Tester is an automated functional regression tool. This means that it uses a computer to execute the tests much faster than you could manually. The key to doing this is to have a way to capture interactions with an application and make those interactions available to be repeated later. You will be doing just that in a few moments.
Note that Rational Functional Tester is a functional regression tool. Rational Functional Tester is not intended to provide load for stress testing. For that, you need to look to Rational Performance Tester. In this tutorial, we will see how use the Extension to test the functionality of the application, not its scalability.