This section summarizes a complete test cycle, with tests
that target specific issues, including old and new functionality,
performance under multiuser loads, integration, and user acceptance.
Table 6-2: Testing
descriptions
Stage
|
Purpose
|
Best technique
|
Functional testing
|
For each application or
process, addresses the following questions:
Are
there any obvious bugs?
Do transactions return the same results?
Will the application break anywhere?
If you decide to use new functionality:
Does the release provide the expected functionality?
What are the limitations of the new features?
|
Single-user:
|
Stress testing (benchmarking)
|
Using very heavy loads,
addresses the following questions:
Are there any code errors related to multiuser loads?
Is the performance of critical transactions as good
or better?
Is the new release stable under load?
|
Multiuser:
Keystroke capture
Transaction generator
Production load capture
|
Integration testing
|
Ensures that all system
components work well together, such as:
Batch processing
Online transaction processing (OLTP)
Decision support systems (DSS) and ad hoc queries
Operations, including backup, recovery, and dbcc commands
Sybase products other than Adaptive Server
Third-party products
|
Test suite models all system components
|
End-user acceptance testing
|
Executes acceptance tests
specific to the environment. Also covers functions not prioritized
into earlier stages.
The other stages, done well, should have caught most
of the problems.
|
Standard acceptance tests
|
Final migration plan testing
|
Ensure that you are fully prepared by walking through
the upgrade/migration plan.
Verify that fallback procedures work.
Identify and test the contingencies.
|
Walk through every upgrade step, including
fallback strategies
|