Functional Tests: getting to level 3
This page describes level 3 testing concepts and techniques.Level 3 Testing Overview
Level 2+ quality means that you have a Build-Complete .NET version of the legacy application that meets your technical standards. The next step is to reach level 3 -- Functionally Correct codes.
Key Point: Level 3 Quality | The target application yields correct results on the target platform. The application is ready for production use on the .NET platform. The application is ready for deployment and further upgrade on the .NET platform. |
Side-by-Side Testing
Verifying that the .NET codebase is functionally equivalent to the source codebase is of paramount importance to any migration effort. The tool-assisted rewrite methodology makes this much more attainable than a from-scratch rewrite because you will be using the original source as the functional specification of the new code. The original source is be definition the most accurate specification of what the original application does and it describes it in extreme detail. For most organizations the functional quality gate is expressed as "the new app must produce the same results and have the same behavior as the old app.". This is a fair starting point, but it does not describe how to prove that is the case. The migration team will still have to articulate in significant detail how to execute test cases and inspect the actual results of that doing. Developing a list of use cases and then a list of test cases with expected results is the traditional way of doing this with any rigor. The good news is that you should be able to say that the actual results of the original system define the expected results of the new system and this is a BIG leg up for defining test cases.Automated Unit Testing
Another extremely powerful technique to implement as part of your migration effort is automated unit testing. Automated unit testing is a natural extension of GMM's automated conversion pipeline:- Automated translation/refactoring,
- Automated build tests,
- Automated code reviews,
- Automated unit testing
.NET Designer Test
The .NET Designer Test verifies that the designer code in your .NET UI classes (Forms and UserControls) can run correctly in the visual Studio forms designer:TestPlan | Notes |
Steps | 1. Open your .NET project in Visual Studio. 2. Open each UI class in the .NET forms designer. |
Expected Results | The form or control is rendered properly and looks well formed. |
Error Condition | The UI class is not rendered properly, possibly all you get is an error listing. |
Troubleshooting | .NET Designer errors are difficult to troubleshoot because they typically occur in logic that instantiates UI controls which is hard to access and debug. You will begin the troubleshooting problem by reviewing the designer error report. |
Resolution | .NET designer problems can occur for a variety of reasons ranging from missing externals, to crude syntax errors, to more advanced compile time validation. Once a designer error is resolved you should implement the fix in the migration configuration so that it will not occur in the next translation cycle. See the discussion of the Translation Tuning cycle below. TODO add discussion |