About regression testing
The challenges of regression testing
Eventually, in any software system, users will uncover defects or bugs in the program. Typically, these bugs are fixed, the fixes are tested, and the updated software is released back to the user community. However, due to the interconnected nature of software, even the smallest change can wreak unpredictable havoc when the implications of that change are not properly understood. Any software change, even one that corrects a known defect, can affect a system in an unforeseen manner and potentially cause problems that are worse than those that the change was originally trying to address.
Regression testing is the practice of retesting of a software system that has been modified to ensure that no previously-working functions have failed as a result of defect reparations or newly added functionality. Comprehensive regression testing fully ensures that a software system is functioning as designed. Comprehensive regression testing, however, is rarely feasible, given the time and resource constraints placed on the typical software development team. As a software system expands and evolves, it becomes more and more difficult to test every piece of functionality. This problem is compounded by the frequency of software builds. In an environment where software builds are done on a nightly basis, comprehensive regression testing of every build is essentially impossible. Typically, in these environments, the testing of previous functionality is foregone to allow for testing of new fixes and new functionality. This leaves open the possibility that the software team will release software with undiscovered defects.
Rational Functional Tester is an automated regression testing tool that addresses these challenges. With Functional Tester, test scripts are created for the purpose of retesting system functionality. With every build of a new system, the scripts are executed to validate previously working functionality. Scripts are generally executed in an unattended mode, freeing up the quality assurance team to test the most recent fixes and functionality. As the software expands and evolves, so does the library of test scripts, ensuring that every build of the application is adequately tested from beginning to end.
Is Rational Functional Tester the tool for you?
Ask yourself the following question to determine whether or not Functional Tester is the tool for you:
Am I testing a Java, .NET, Web, or browser-based application?
If you answered Yes, then Functional Tester could be the tool for you! Functional Tester was designed to test Java, .NET, and Web/browser based applications exclusively. If you are testing Visual Basic, C++, or other Windows 32-bit applications, Functional Tester is not the tool for you. For users operating in these environments, IBM Rational offers Rational Robot. Similar in concept to Functional Tester, Rational Robot enables automated regression testing of Windows-based applications.
Now, consider these questions:
- Are you forced to forgo some tests due to time constraints?
- Are you spending too much time on test script maintenance?
- Are you testing a complex application that is hostile to record and playback?
If you answered Yes to any of the above, then you need to take a good look at what Functional Tester can do for you. Continue on through this tutorial and explore the tool. In about an hour, you'll go through the process of recording, editing, executing, and analyzing your first Functional Tester script. Once complete, you should be in a good position to understand the value that Functional Tester can bring to your software development process.

