Unit Testing is the first step in the testing process, and is usually conducted by the programmer to ensure that a program operates as defined by the User. The programmer generally creates their own test cases, inputs the data to the program and verifies the results.
System Testing is either conducted by the programmer, the programmer's manager or by a Quality Control Unit within the IT organization. The goal is to ensure that all of the code works as defined by the requirements and design documents before it is delivered to the Users.
Functional Testing may be conducted by the IT staff, a group of business analysts or by a third party firm that specializes in testing. The goal of Functional Testing is to ensure that the applications can perform correctly under all of the conditions that the application could encounter when in live processing.
Firms define a suite of test scenarios, develop test cases that will validate the scenarios, and create test data to support the test cases. The same people may enter the test data and check the results, or a separate group of people may perform this function.
Technical Testing is sometimes combined with Functional Testing and may be conducted separately. The goal of Technical Testing is to ensure that files are correctly established, that reports work properly with page breaks as well as other formatting issues.
The conditions defined by Technical Testing are generally consistent across all applications and are not unique to the specific application.
End-to-End Testing involves a coordinated effort between IT and the Users to ensure that data entered into one application will move correctly to other applications. Similar to Functional Testing, firms define a suite of test scenarios, develop test cases that will validate the scenarios, and create test data to validate that the application works properly.
User Acceptance Testing is a very critical stage of the testing process since it is managed by the Users to determine if the application meets the terms of the requirements document.
This test consists of a series of predetermined test cases, with defined expected results, that will validate the functionality of the system and ensure that the Users can work with the system as it has been designed.
User Acceptance Testing, which is sometimes combined with a Simulated Work Environment, should also ensure that the Users can complete a day's work in a work day.
Stress Testing involves inputting a large number of transactions into a computer application in a short period of time to see if all of the components (application, hardware, telecommunications, people, etc.) can accommodate the peak volume within acceptable time frames. A Stress Test is usually performed after User Acceptance Testing, and usually before Parallel Testing.
Parallel Testing is managed by the Users and is usually the last test before a system goes live. If the new system is replacing an existing one, both systems are operated side by side for a pre-determined period of time to ensure that the output from both systems is the same, or that any differences are expected.
If the application is a new one, then Parallel Testing is usually combined with a Simulated Work Environment.
Applications are rarely ever static. Sometimes new bugs are discovered when a new set of conditions occurs and, more frequently, new requirements are identified that involve enhancements. In either case, firms need to test the change to ensure that the new application will work correctly.
Regression Testing is flexible in that the Users and IT staff must identify the scope of the testing that will be required before the change can be moved into production. Some changes only need minor Functional Testing and others may require a new User Acceptance Test and possibly even a new Stress or Parallel Test.
Most conversions of data from old applications to new ones require an automated conversion. With an automated conversion, the software that has been written to convert the data must also be tested. This process is usually similar to the Functional Test of the new application since the goal is to ensure that the new files can be correctly used by the new application.
Once the new application and the Conversion process have been certified as correct, the actual conversion must be conducted. This process requires a close coordination between the Users, IT, Marketing and the firm's Customers.
The data in each account must be examined and reconciled to the old application to ensure that everything was correctly moved. Most of this can be automated, but inevitably there are some manual tasks that must be closely managed.