Auf einen Blick: Richtiges Testen und Debuggen sind für eine erfolgreiche Migration von COBOL-Programmen zu den Versionen 5.2 oder 6.1 unerlässlich und adressieren häufige Herausforderungen wie Datenprobleme. Die Implementierung von Best Practices kann die Debugging-Zeit und -kosten erheblich reduzieren.
- Eine aktualisierte Testumgebung aufrechterhalten und automatisierte Unit-Tests nutzen.
- Investiere in moderne Quellcode-Debugger, um neue COBOL-Versionen zu unterstützen.
Es ist unvermeidlich, dass Sie bei der Migration zu COBOL Version 5.2 oder 6.1 auf Herausforderungen stoßen werden. Sie schließen die Vorteile der Migration nicht aus, aber sie existieren. Laut IBM sind ein großer Teil dieser Migrationsprobleme datenbezogen, daher ist gründliches Testen entscheidend, um sie zu entdecken. Das Testing, das Sie jetzt durchführen, erspart Ihnen unzählige Stunden Debugging, wodurch Sie möglicherweise Umsatz verlieren und Ihre Kunden enttäuschen. Beachten Sie, dass es Änderungen an den COBOL-Versionen 5.2 und 6.1 gibt, die beeinflussen, wie Debugger funktionieren, daher muss Ihr Werkzeugset diese Änderungen unterstützen. Es gibt einige kleine externe Änderungen an den Sprachen 5.2 und 6.1, mit denen COBOL-Programmierer täglich zu tun haben; die internen Änderungen sind jedoch umfangreicher. Das "Backend" der COBOL-Versionen 5.2 und 6.1 hat sich radikal verändert und ändert sich täglich. Es ist unerlässlich, ein Werkzeugset zu verwenden, das sowohl für häufige Änderungen an diesen neuen Versionen aktiviert ist als auch kontinuierlich Unterstützung bietet. Hier sind einige Best Practices, die Sie befolgen sollten, um COBOL-Programme, die Sie migrieren, richtig zu testen und zu debuggen:
1. Bereiten Sie Ihre Testumgebung vor
Ignorieren Sie Ihre Test-Suiten und führen Sie ein strenges Testregime ein. Mit zunehmender Erfahrung werden Sie erfahrener und auf Probleme stoßen, die Ihnen vertraut und wiederholbar sind. Kategorisieren Sie die gefundenen Probleme und bauen Sie eine Testsuite, die diese häufigen Probleme sowohl mit Daten als auch mit schlechten Programmierpraktiken identifiziert. Optimieren Sie außerdem Ihr Test, indem Sie sicherstellen, dass die neuesten IBM-Compiler- und Sprachumgebungswartungen aktuell sind. Für diese Informationen finden Sie die IBM COBOL-Fixliste . Ein systematischer Plan muss verfolgt werden, um Compiler und Language Environment mit monatlichen Korrekturen auf dem neuesten Stand zu halten. Tests mit veralteter Wartung wären Zeit- und Müheverlust.
2. Verbessern Sie Ihre COBOL-Programme
Bevor Sie mit der lässigen Migration von COBOL-Programmen beginnen, sollten Sie jedes einzelne analysieren und feststellen, wo eine Reparatur erforderlich ist. Unser Kollege Glenn Everitt hat vor einiger Zeit über die Bedeutung dessen geschrieben. Sein Fazit: Wenn Sie es versäumen, Ihre COBOL-Programme frühzeitig zu beheben, werden Ihre Migrationsbemühungen schwieriger, als Sie sich vorstellen können. Wir stimmen zu. Beim Testen jeder für die Migration vorgesehenen Anwendung überprüfen Sie, dass jede die richtigen Ergebnisse liefert, gemäß den Spezifikationen und den erwarteten Normen entspricht. Entfernen Sie auch alle Ausnahmen und Abend-Bedingungen.
3. Beginnen Sie mit Unit-Testing
Unit-Testing von Mainframe-Anwendungen ist ebenfalls wichtig. Dieser Prozess ermöglicht es Entwicklern, kleine Teile einer Anwendung zu testen, um niedrigstufige Fehler zu finden und zu beheben, bevor sie zu Testprozessen übergehen, die größere Teile umfassen. Unittesting ist jedoch einer der schwächsten Punkte im Entwicklungszyklus von Mainframes. Da es sich um einen mühsamen manuellen Prozess handelt, der Zeit und Energie von anderen Entwicklungsaufgaben abzieht, die für den Fortschritt des Codes erledigt werden müssen, wird Unittesting oft ignoriert oder unvollständig gelassen. Glücklicherweise ändert sich der Mangel an Unit-Testing in Mainframe-Umgebungen allmählich mit dem Aufkommen automatisierter Unit-Testing-Tools, die es Entwicklern ermöglichen:
- Überprüfen Sie die Codeänderungen sofort
- Beseitigung der Abhängigkeit von spezialisiertem Großrechnerwissen
- Automatisch Testdaten mit Unit-Tests mit Tools wie Compuware sammeln und speichern
- Automatisch Unit-Tests und Test-Assets erstellen
Automatisiertes Unit-Testing erleichtert die Bereitstellung von Qualität mit Velocity. Die Idee von Automatisierung und Testing gilt auch für die Migration Ihrer Programme zu COBOL-Versionen 5.2 oder 6.1. Unit-Tests würden die Programmqualität frühzeitig sicherstellen, zukünftige Migrationsprobleme vermeiden, und Automatisierung würde diese Testung im ohnehin schon zeitaufwändigen Migrationsprozess beschleunigen.
4. In Quell-Debugger investieren
Wie bereits erwähnt, beeinflussen Änderungen an den COBOL-Versionen 5.2 und 6.1 die Arbeitsweise der Debugger, daher sollten Sie in Quellcode-Debugger investieren, die diese neueren Versionen unterstützen. Moderne Debugger bieten das beste Erlebnis und direkten Zugriff auf Daten aus der Sicht eines COBOL-Programmierers. Vermeiden Sie es, ein Quellcode-Tool zu verwenden, das für 5.2 und 6.1 nicht vorgesehen ist. Das ist wie das Durchschreiten von Maschinencode und wird das Debugging erheblich behindern. Wir haben mit vielen Kunden zusammengearbeitet, um ihre Anwendungen erfolgreich auf COBOL Versionen 5.2 und 6.1 zu migrieren, indem wir verschiedene von Compuwares Anwendungsdebugging-, Fehler- und Fehlermanagement- sowie Performance-Analysetools verwendet haben, darunter:
- Xpediter für visuelles, interaktives Debugging, auch wenn Programme OPT(2) kompiliert sind
- Abend-AID für die Abendanalyse von Programmen 5.2 und 6.1, einschließlich optimierter Programme
- Strobe zur Profilierung von Programmen 5.2 und 6.1, einschließlich optimierter Programme
5. Verwenden Sie Kompilierungsoptionen
Die Nutzung von Kompilierungsoptionen hilft Ihnen, Testprobleme vor der Produktion der Programme zu erkennen. Es gibt mehrere Kompilierungsoptionen, die bei der Identifizierung von Tests hilfreich sein können, aber dies sind die wichtigsten Optionen, die erwähnenswert sind:
-
- SSRANGE identifiziert Tabellenprobleme außerhalb des Bereichs und erzeugt eine IGZ006S Nachricht, wenn ein Index oder Index auf Speicher außerhalb der Grenzen einer Tabelle zeigt. Die Verwendung von SSRANGE sollte auf Tests beschränkt werden, da IBM angegeben hat, dass es die CPU-Zeit im Durchschnitt um 18 Prozent erhöhen kann.
-
- ZONECHECK erzeugt entweder Warnungen oder bewirkt, dass ein Programm abläuft, wenn die Zonenbits nicht numerisch sind. Es fügt IF NUMERIC-Klassentests vor beliebige zonierte Dezimalvariablen ein, die als sendende Felder fungieren.
-
- DIAGTRUNC erzeugt während der Kompilierung Warnmeldungen, um den Programmierer darauf hinzuweisen, dass die empfangende numerische Variable während einer Move-Anweisung weniger ganze Zahlen enthält als das sendende Feld. Dies kann helfen, sicherzustellen, dass eine Abschneidung kein Problem verursacht.
-
- RULES(NOEVENPACK) erzeugt eine Warnmeldung, wenn die gepackten Daten eine gerade Anzahl von Ziffern enthalten. Laut dem Enterprise COBOL für z/OS Programmer Guide V5.2 (oder V6.1) sollten gepackte Daten immer eine ungerade Anzahl von Ziffern haben, um getrunkene Daten zu verhindern. Systemprogrammierer können jedoch die Warnmeldung in einen Fehler umwandeln, was eine Codeänderung erzwingt.
- RULES(NOLAXPERF) gibt Warnungen für ineffiziente Codierpraktiken sowie Compileroptionen aus, die die Leistung beeinträchtigen können.
Wenn Sie COBOL-Programme frühzeitig richtig testen und debuggen, verhindern Sie größere Probleme, die Ihren Fortschritt in den folgenden Migrationsschritten behindern. Die Vorteile werden in der nächsten Phase Ihres Plans, der Anwendungsoptimierung, sichtbar sein.
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.