micro focus unit testing framework in visual cobol 3€¢in visual studio startet man das unit test...
TRANSCRIPT
Rolf Becking
29.August 2017
Micro Focus Unit Testing Framework in Visual COBOL 3.0
• Wozu dient das Micro Focus Unit Testing Framework?
• Welches Konzept steckt dahinter?
• Wie wird ein MF Unit Test in den Visual COBOL IDEs Eclipse und Visual Studio angelegt?
• Wie versorgt man die Unit Tests mit Testdaten?
• Wie kommt man an die Ergebnisse der Tests?
• Fragen …
Unser heutiges Webinar
• Das Micro Focus Unit Testing Framework ist ein weiterer Schritt, die Entwicklung von COBOL Programmen moderneren Vorgehensweisen (DevOps) anzupassen.
Wozu dient das Micro Focus Unit Testing Framework?
Moderne Applikations-EntwicklungGängige Praxis für moderne Software-Entwicklungs-Teams
DevOpsEine knappe, präzise Definition…
DevOps aims to establish a culture and
environment where building, testing, and
releasing software can happen rapidly,
frequently, and more reliably
1. Agile Planning & Development Practices
2. Continuous Integration
3. Continuous Delivery
4. Continuous Deployment
5. Application Performance Management
DevOps ausgepacktDie wichtigsten Komponenten der DevOps Strategie
Agile Planning & DevelopmentIncremental software delivery1
Continuous IntegrationIntegrate often and provide immediate developer feedback 2
• Regularly integrate code changes
• Compile & run automated unit tests
• Intention to have an always-working code base
• Common to run scheduled system tests
• Developers identify issues sooner and before they reach QA and Ops teams
• Common CI Tools include:
• Jenkins, Microsoft TFS, Bamboo
• Configuration Management essential
Commit changes2Developer
SourceControl
Testing
Build
Checkout code
1 Initiate CI Process
3
Unit/Integration Tests4Feedback5
• Die zugrundeliegende Idee kann am besten mit “Test DrivenDevelopment” beschrieben werden
• Möglichkeit, bereits vor der Implementierung neuer Funktionalitäten in einem COBOL Modul Testfälle zu definieren
• die die neuen Features testen
• mögliche Konflikte mit bestehender Business-Logik aufdecken können
• Spätere Integration in automatisierte Tests sichert die langfristige Qualität und Stabilität der Anwendung.
Wozu dient das Micro Focus Unit Testing Framework?
• Basiert auf den unter dem Begriff „xUnit“ zusammengefassten Unit Testing Frameworks (Beispiel: JUnit)
• Sammlung von Runtime Funktionen mit den Funktionalitäten:
• Test runner - Executable, welches die Tests ausführt
• Test case - Einzelner Testfall
• Test fixtures - Vorbedingungen/Voraussetzungen für jeden Testfall
• Test suites – Menge von Testfällen mit gleichen Voraussetzungen
• Test execution – Durchführung der Tests
Konzept des Micro Focus Unit Testing Frameworks
• Sammlung von Runtime Funktionen mit den Funktionalitäten:
• Test result formatter – Erzeugt Ausgabeformat der Testergebnisse
• Lesbarer Text oder
• XML wie bei Junit
• kann von Build-Tools wie Jenkins oder Bamboo weiter verarbeitet werden
• GitHub Style Markdown Format (.md) Datei
• Assertions – logische Bedingung für die Testergebnisse
• True oder False
Konzept des Micro Focus Unit Testing Frameworks
• Implementierung in Visual COBOL 3.0:
Konzept des Micro Focus Unit Testing Frameworks
Element Entry point
test setup MFUS_test_case_name
test metadata setup MFUM_test_case_name
test case MFUT_test_case_name
test teardown MFUE_test_case_name
global metadata MFUGM_program_name
global command line arguments MFUGA_CMDOptions
• Ausführlich in der Dokumentation beschrieben
• Nur für Procedural Code, managed oder unmanaged compiliert
• Aufruf von managed Code nur von der Kommandozeile, nicht aus IDE
• Einfaches und komplexeres Beispiel ebenfalls in der Doku
• Copy-Dateien werden mit der Produkt-Installation geliefert und automatisch bei den Unit Tests angezogen:
• mfunit_prototypes.cpy
• mfunit.cpy
Konzept des Micro Focus Unit Testing Frameworks
• Unit Testing Code Templates / Code Snippets für beide IDEs
• Beispiele im Samples Browser
• MFUnit Feature Demos
• MFUnit Airport Demo (VS)
• Beispiele zur Integration in Test-Server für
• SilkCentral
• Jenkins CI Server
Konzept des Micro Focus Unit Testing Frameworks
• Neuer Projekt-Typ: Unit Test Library
• Am besten in einer Projektmappe/Solution mit der zu testenden Applikation
• In dem zu testenden (Unter-)Programm per rechte Maustaste „Create Unit Test“
• Name des Projekts und des Programms angeben
• Das führt dann in der Regel zu drei Projekten in der Solution:
• Projekt mit Startprogramm (.exe)
• Projekt mit zu testendem Programm (Link Library)
• Unit Test Projekt (Link Library)
Anlegen von Unit Tests in Visual Studio
• Neuer Projekt-Typ: COBOL Unit Test Project
• Am besten in einem Workspace mit der zu testenden Applikation
• In diesem Project New / COBOL Unit Test
• Unter „Program under test:“ das Projekt und darin das zu testende Programm auswählen
• Das Projekt, welches das zu testende Programm enthält, muss zum „BuildPath“ des COBOL Unit Test Projects hinzugefügt werden
Anlegen von Unit Tests in Eclipse
• Micro Focus Unit tests können sowohl von der Kommando-Zeile per mfurun aufgerufen werden, als auch aus beiden IDEs
• mfurun gibt es in verschiedenen Varianten:
• mfurun (native), mfurunj (Java Bytecode) und mfurunil (.NET managedCode) unter Windows
• cobmfurun32/64[_t] (native) und cobmfurunj (Java Bytecode) unter Unix/Linux
• Optionen: siehe Doku
Ausführen von Unit Tests
• In Eclipse gibt es zum Ausführen von Unit Tests sowohl unter „Run as“ als auch unter „Debug as“ die Auswahlmöglichkeit „COBOL Unit Test“, aber auch entsprechende Run/DebugConfigurations vom Typ COBOL Unit Test
• Die Testergebnisse erscheinen dann in der „Micro Focus Unit Testing“ View
• Dort können dann auch alle Tests, nur die zuletzt ausgeführten oder Tests, die „failed“ sind, wiederholt werden
Ausführen von Unit Tests in Eclipse
• In Visual Studio startet man das Unit Test Projekt wie sonst auch per „Set as Startup Project“
• Die Testergebnisse erscheinen dann in der „Micro Focus Unit Testing“ View
• Dort können dann auch alle Tests, nur die zuletzt ausgeführten oder nur Tests, die „failed“ waren, wiederholt werden
Ausführen von Unit Tests in Visual Studio
Micro Focus Unit Testing Framework in Visual COBOL 3.0
Nächste Schritte
Kostenlose Testversion herunterladen oderUpdate auf Version 3.0 für Visual COBOL Kunden
microfocus.com/VIsualCOBOL
Micro Focus Unit Testing FrameworkVielen Dank für Ihre Aufmerksamkeit!
Fragen?