Over 10 years we help companies reach their financial and branding goals. Engitech is a values-driven technology agency dedicated.

Gallery

Contacts

411 University St, Seattle, USA

engitech@oceanthemes.net

+1 -800-456-478-23

Qualitätssicherung und Fehleranalyse
in Entwicklungsund Migrationsprojekten

In der Weiterentwicklung bestehender COBOL-Anwendungen und in COBOL-Migrationsprojekten dominieren gegenwärtig neben den gängigen Unit-Tests vor allem die Regressionstests den Bereich der Qualitätssicherung. Diese bestehen in der Regel aus einem Satz von Ausgangsdaten, einem Szenario und einem Satz von Ergebnisdaten. Bei der Ausführung eines Szenarios mit gleichen Ausgangsdaten auf verschiedenen Systemen oder Versionsständen müssen auch die Ergebnisdaten übereinstimmen, sofern bestimmte Abweichungen nicht durch die Weiterentwicklung beabsichtigt sind.

Vorteile

Moderne Benutzeroberfläche mit nützlichen Werkzeugen zur Fehleranalyse


Regressionstests auch bei Verwendung unterschiedlicher Systemplattformen möglich


Reduzierung von Entwicklungs- und Debug-Zeiten durch erleichterte Fehlersuche und den Wegfall zeitraubenden Debuggings in vielen Fällen

Integration in bestehende Buildund Testplattformen (ANT-Task, Kommandozeilen API, Java-API zur Integration in JUnit-Testszenarien)

Integration in Konzepte zur Revisionssicherheit durch Archivierungsmöglichkeit für Szenarioläufe


    Die Ergebnisse von Regressionstests dienen dabei vor allem dem Nachweis der Funktionsidentität bestimmter Szenarien auf unterschiedlichen Systemen bzw. in unterschiedlichen Versionsständen. Aufgrund ihrer oft relativ einfachen Realisierbarkeit und Automatisierbarkeit sind sie gerade beim Test komplexer Softwaresysteme das Mittel der Wahl. Die Komplexität der Systeme, die getestet werden, bedingt aber auch eine Schwäche des Testverfahrens: Es ermöglicht lediglich eine Aussage ob das System mit hoher Wahrscheinlichkeit fehlerfrei arbeitet oder nicht. Treten Fehler bzw. Abweichungen auf, sind deren Ursachen aufgrund der Komplexität des Gesamtsystems auch mit Fachkenntnissen über die internen Prozesse sehr schwer zu lokalisieren. An dieser Stelle setzt Highway61 an. Es ermöglicht, den Programmen im Szenariolauf „über die Schulter zu schauen“ und Abweichungen des Kontrollflusses oder bestimmter Zwischenergebnisse zu identifizieren. Dies ermöglicht in den meisten Fällen eine starke Eingrenzung von Fehlerursachen und eine signifikante Einsparung von Ressourcen für die Fehlersuche und -analyse.

    Die Hauptkomponenten von Highway61

    Das Grundprinzip von Highway61 besteht darin, während des Programmlaufs an bestimmten Beobachtungspunkten (Points of Interest) Informationen zu protokollieren um diese gegen die korrespondierenden Informationen eines anderen Programmlaufs in einem anderen Versionsstand oder auf einem anderen System zu vergleichen.

    Das Produkt verfügt über vier Komponenten, die in den Entwicklungsprozess integriert werden:

    Präprozessor übernimmt die Instrumentierung des Codes

    Laufzeitumgebung stellt die Protokollierung alle Informationen sicher

    Workbench bietet Konnektoren für verschiedene Betriebssysteme

    Batch-Interface dient der Integration in Build- und Testplattformen

    Der auf Basis der bewährten EasiRun Transformationstechnologien aufbauende Präprozessor übernimmt die Instrumentierung des COBOL-Codes. Dabei wird zusätzlicher Code zur Protokollierung von Informationen in den Original-Quellcode injiziert. Dieser Code ist unabhängig vom verwendeten COBOL-Compiler und stellt auch für unterschiedliche Compiler ein vergleichbares Ausgabeformat der Informationen sicher.

    Die Laufzeitumgebung stellt in Verbindung mit dem injizierten Code die Protokollierung aller Informationen von COBOL-Anwendungen sicher. Die Laufzeitumgebung wird als Quellcode ausgeliefert und kann bei Bedarf auf die Besonderheiten des Testumfelds angepasst werden.

    Die Highway61 Workbench ermöglicht das Management und den Remote-Start von Szenarien auf verschiedenen Betriebssystemen sowie die effiziente Auswertung eines großen Volumens gewonnener Protokolldaten.

    Das Batch-Interface ermöglicht die Integration der Highway61-Tests in verschiedene Build- und Testplattformen, sodass Highway61 so wie andere Testframeworks auch in Continous-Integration-Prozesse und Nightly Builds eingebunden werden kann. Zur Anbindung stehen dabei verschiedenen Schnittstellen zur Verfügung:

      • Kommandozeilen-Interface
      • Ant-Task
      • Java API (z.B. Einbindung über JUnit-Framework)

    Zurzeit ist Highway61 für alle LUW-Systeme (Linux, UNIX, Windows) verfügbar. Konnektoren für verschiedene Großrechnersysteme (z/OS, z/VSE, BS2000) und andere proprietäre Systemen können bei Bedarf bereitgestellt werden. Highway61 bietet die Möglichkeit, Protokolldaten eines Szenariolaufs zu archivieren und später gegen die Ergebnisse aktueller Szenarioläufe mit verändertem Code zu vergleichen.

    Mit Hilfe dieser Funktion können verschiedene Nachweise erbracht werden. Einerseits kann belegt werden, dass der Kontrollfluss eines Szenarios durch eine Änderung nicht beeinflusst wird und andererseits, dass sich der Kontrollfluss wie erwartet geändert hat. Die archivierten Ergebnisse können als Nachweis im Rahmen der Revision verwendet werden.

    Highway61 ist für folgende Haupteinsatzbereiche konzipiert:

      • Fortentwicklung bestehender Anwendungen
      • Migrations- und Modernisierungsprojekte

    Im Rahmen der Fortentwicklung von Anwendungen können Änderungen im Programmfluss oder bestimmter Zwischenergebnisse genau nachvollzogen und dokumentiert werden (Revisionssicherheit). Bei unerwarteten Änderungen können mit Hilfe der Highway61-Daten sehr schnell Rückschlüsse auf mögliche Fehlerursachen gezogen werden. Dies reduziert in den meisten Fällen die Aufwände für die Fehlersuche signifikant.

    Beim Einsatz von Highway61 im Rahmen von Migrations- und Modernisierungsprojekten besteht die Möglichkeit, das Verhalten der Anwendung auf dem Legacy-System mit dem des modernisierten Systems direkt zu vergleichen. Hier kommt die Tatsache zum Tragen, dass die Protokollierung der Log-Daten system-, compiler- und plattformunabhängig erfolgt und somit eine direkte Vergleichbarkeit sichergestellt ist. Auch in diesem Einsatzszenario kann von einer signifikanten Reduzierung der Aufwände für die Fehlerlokalisierung ausgegangen werden.