Testautomation in verteilten Ausführungsumgebungen

Ähnliche Dokumente
Container als Immutable Infrastructure. John M. Hutchison

Geschichte der Netze und verteilten Systeme. Gründe für die Nutzung verteilter Systeme. Wünschenswerte Eigenschaften verteilter Systeme

Software Engineering. 5. Architektur

Profitieren Sie von einer offenen und flexiblen Clouddienstplattform

Testautomatisierung. Lessons Learned. qme Software. Gustav-Meyer-Allee Berlin. Telefon 030/ Telefax 030/

Testmanagement. Full-Service

Harry M. Sneed Manfred Baumgartner Richard Seidl. Der Systemtest. Anforderungsbasiertes Testen von Software-Systemen HANSER

Synergien aus Testautomatisierung und Lasttest. Vortrag im Rahmen des German Testing Day 2018

Wann lohnt sich GUI- Testautomatisierung?

Design für Testbarkeit

Erläuterungen zu Darstellung des DLQ-Datenportals

Testen von SOA-Anwendungen mit dem BPEL Testframework

Projektmanagement und Softwareentwicklung. Nina Stodolka, WS2017/2018

Software EMEA Performance Tour Berlin, Germany June

Testdesign für Automationsskripte

Wann lohnt sich GUI- Testautomatisierung?

TECHNISCHE INFORMATIQNSBIBUOTHEK UNIVERSITÄTSBIBLIOTHEK HANNOVER

Gleitender Übergang vom manuellen zum automatisierten Test eingebetteter Software

Entwicklungswerkzeug der 5. Generation

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013

Vorteile einer REST-Busbasierten

Mail Integration Solution White Paper

Sotograph im Einsatz bei der FIDUCIA IT AG. Harald Doderer, Technische Architektur

HERAUSFORDERUNGEN an die Qualitätssicherung

(Software) Architektur der Dinge. Roland Graf / Simon Kranzer IKT-Forum 2016 I(o)T for Industry - Von IT zu IoT

Vollautomatisierte e-learning Plattform am Beispiel eines Universitätspraktikums

Behutsame Modernisierung

Basiswissen Softwaretest

Individuelles Auditing von vielen Datenbanken

Fujitsu Storage Days 2017

APEX OOS TOOLS & HELFER

Basiswissen Softwaretest

Test offener, dynamischer Systeme

Scale your IT. DevOps und Netzwerk für IPv6. Wie DevOps den Röstigraben zwischen Systemen und Netzwerk überwindet

SICHERES TESTEN MIT POLARION. Frank Ziesel

Verteilte Web-Anwendungen mit Ruby. Ruben Schempp Anwendungen

4 Grundlagen von SQS-TEST/Professional New Line

Aufbau und Einsatz von Marionette Collective

Inhaltsverzeichnis. Teil I Grundlagen 1

Microsoft Azure Deutschland ist jetzt verfügbar -

Cloud Computing in SAP Umgebungen

Modulare Testfälle spezifizieren zur Automation und manuellen Testdurchführung. Tanja M. Tremmel

Updates sicher und flexibel gestalten mit Linux

Möglichkeiten der - Archivierung für Exchange Server im Vergleich

Modernes IT Monitoring/Management

Software Engineering

1. Grundbegriffe der Softwaretechnik. 1.1 Herausforderungen

Basiswissen Testautomatisierung

Inhaltsverzeichnis. Harry M. Sneed, Manfred Baumgartner, Richard Seidl. Der Systemtest. Von den Anforderungen zum Qualitätsnachweis

1. Einführung 1.1. Definitionen

Team Foundation Server & Ranorex Workshop

Einführung: Verteilte Systeme - Remote Method Invocation -

CI was tut sich mit Jenkins in Sachen Test?

Managed Cloud Hosting. Case Study. Keerl IT Services GmbH setzt für ihre Groupware Syncolution auf Managed Hosting von ScaleUp

Baugruppenfertigung im Maschinen- und Anlagenbau. Die Lösung im Überblick. Maschinenbau. Siemens PLM Software

Risikoorientiertes Testen und Testmanagement

Jochen Ludewig Horst Lichter. Software Engineering. Grundlagen, Menschen, Prozesse, Techniken. dpunkt.verlag

DevOps with AWS. Software Development und IT Operation Hand in Hand. Matthias Imsand CTO Amanox Solutions AG

Herzlich willkommen DevDay 2016 Performance Profiling mit JProfiler

<Insert Picture Here> RAC Architektur und Installation

Abschlussbericht. Erstellung eines automatisierten Build-Prozesses für Eclipse-RCP- Anwendungen am Fallbeispiel Control System Studio.

Eine Schritt-für-Schritt- Anleitung, um COBOL- Anwendungen in die Cloud zu bringen

Wann lohnt sich GUI- Testautomatisierung?

Zertifizierung Auditdauer und Preise

- dynamisches Laden -

Softwaretests Testgetriebene Entwicklung (TDD) vs wissenschaftliche Methode TDD Case Study Zusammenfassung

PL/SQL und Ingres. Der beste Weg, die Zukunft vorauszusagen, ist, sie zu gestalten. John Naisbitt (*1930), amerik. Prognostiker

Oracle SOA Suite: Total Quality T-Systems

Qualität lässt sich steuern: Die Möglichkeiten des Qualitätsmanagements

Software-Engineering für langlebige Systeme

Programmiermethodik Vorlesung und Praktikum SS 2001

Which Thin Client fits. Michael Hoting

Realtime Daten-Rückschreibung in Tableau mit der Extensions API //

T7 Einführung von Tools

A VARIETY OF SERVICES

Service Virtualisierung

HOT TOPICS IN CYBERSECURITY

Holen Sie das Maximum aus Ihrer Investition in Oracle Primavera P6 EPPM heraus Die Vorteile eines Umstiegs von Primavera P6 On-Premise in die Cloud

16.4 Wiederverwendung von COTS-Produkten

Q-Event «Spice up your Test!»

M.Sc. Informatik, Studium angewandte Informatik M.Sc. Ing. Lasertechnik, Studium Laser und Photonik B.Sc. Elektrotechnik, Studium der Elektrotechnik

Quality Point München. Testtools

7HVWHQYRQ6$3$QZHQGXQJHQPLWGHP([WHQGHG &RPSXWHU$LGHG7HVW7RROH&$77

35 Jahre Verheiratet 2 Kinder beides Jungs Wohnort Berlin Seit 16 Jahren begeisterter Oracle Entwickler

IT-Projekt-Management

Testmanagement in Datenbank-Migrationsprojekten. Wie kann man die Migration von Legacy-Systemen absichern?

Testgetriebene Entwicklung

IBM Cognos Analtics. mayato Servceangebot zum Upgrade // ÖFFENTLICH

Die exemplarische Analyse von thematisch vernetzten Softwarekomponenten im Kontext von Synergieprozessen. Seminarvortrag Yvonne Breuer

easescreen HTML5 Client Stand 10/2018

Hochverfügbarkeit mit Data Guard Möglichkeiten und Grenzen

S T O R A G E - LÖ S U N G E N

Reinhard Salomon Geschäftsleitung

Unternehmensdokumente mit dem XML Publisher erzeugen

Qualitätsmanagement in der GDI-DE

Ihr Technologiepartner für IKZ-Vorhaben

Transkript:

Testautomation in verteilten Ausführungsumgebungen cc gmbh Bernhard Moritz Bernhard.Moritz@cc-gmbh.de

Testautomation in verteilten Ausführungsumgebungen Symposium Testen im System- und Software-Life-Cycle 28.11.2007, Ostfildern, TAE Bernhard Moritz Kreuzberger Ring 36 65205 Wiesbaden Telefon 0611 94204-0 Telefax 0611 94204-44 Bernhard.Moritz@cc-gmbh.de tae_2007_vortrag_testautomation_v01d.odp 2

Übersicht Überblick über Software-Prozeßautomation Verteilte Ausführungsumgebungen Erwartungen an Testautomation Automatisierte Testprozesse Problembereiche tae_2007_vortrag_testautomation_v01d.odp 3

CC - Ihr Partner für die konsequente IT-Zukunftssicherung Wer wir sind... CC ist ein unabhängiges Software-Entwicklungs- und Beratungsunternehmen unterstützt Kunden bei der Planung und Realisierung komplexer IT-Projekte unterstützt Kunden bei der Entwicklung maßgefertigter Lösungen bietet Qualitätssicherungswerkzeuge für die Programmierung Was wir anbieten... CC Das Unternehmen Dienstleistungen Schlüsselfertige Lösungen bei der Entwicklung von Individualsoftware, professioneller Open Source Service, Software Wartung und Evolution En@bling Software Werkzeuge zur Unterstützung und Optimierung des Software-Entwicklungsund Wartungsprozesses Training Individuelle Trainingsprogramme zur Implementierung von Qualitätsmanagement-Systemen, Programmierstandards und zum Wartungsmanagement tae_2007_vortrag_testautomation_v01d.odp 4

Software-Prozeßautomation Software-Prozeßautomation integriert Werkzeugfunktionen zu Arbeitsabläufen nach den Vorgaben eines Vorgehensmodells unterstützt Mitarbeiter bei der Durchführung von Aufgaben im Software- Entwicklungszyklus verhindert Benutzerfehler bei kritischen Aufgaben sorgt für die Einhaltung von Konventionen dokumentiert die erfolgreiche Durchführung von Aufgaben erzeugt Kennzahlen zur Projektsteuerung bzw. Prozeßverbesserung tae_2007_vortrag_testautomation_v01d.odp 5

Verteilte Ausführungsumgebungen tae_2007_vortrag_testautomation_v01d.odp 6

Verteilte Ausführungsumgebungen Verteilte Ausführungsumgebungen sind gekennzeichnet durch: Vielfalt von Hardware und Betriebssoftware Vielfalt von verwendeten Programmiersprachen Vielfalt von Datenhaltungsformen Vielfalt von Kommunikationsformen Verteilung von Funktionalität in einem Netzwerk Mehrfache Bereitstellung identischer Funktionalität (Wieder-) Verwendung von Software, Frameworks Unterschiedliche Darstellungsmöglichkeiten an den Endgeräten tae_2007_vortrag_testautomation_v01d.odp 7

Software-Entwicklung Die verwendeten Mittel haben sich in den vergangenen Jahren dramatisch verändert: Hardware, Basis-Software Programmiersprachen Entwicklungsmethoden Werkzeuge Die Anwendungen sind komplexer geworden und immer heterogener So etwas, wie unternehmensübergreifende de facto Standards gibt es so gut wie gar nicht mehr. Die Abhängigkeiten von Software-Elementen untereinander lassen sich nicht mehr durch einfache statische Analysen ermitteln tae_2007_vortrag_testautomation_v01d.odp 8

Software-Entwicklung Die technischen Möglichkeiten werden heute gnadenlos ausgenutzt: Vorgehensmodelle entstehen oft erst im Nachhinein Mit jedem Projekt werden neue Wege erprobt Nicht jede Technik wird von Anfang an verstanden Die Anwendungen sind heute nicht mehr wie aus einem Guß, alle technischen Mittel, auch solche, die sich nicht etabliert haben, finden sich in einem Stück Software. Hinzukommt, daß häufig eine Integration mit den bestehenden Software-Systeme unbedingt erforderlich ist. tae_2007_vortrag_testautomation_v01d.odp 9

Software-Entwicklung Leitmotive: Wiederverwendbarkeit Skalierbarkeit Flexibilität Portabilität Als Konsequenz werden häufig handelsübliche oder selbstgestrickte Frameworks zum Einsatz gebracht. Gelegentlich werden sogar Frameworks und Anwendungssoftware zeitgleich entwickelt, was einen erheblichen Wartungsaufwand bereits während der Entwicklung nach sich zieht. Oft unterscheidet sich die Entwicklungsumgebung auch stark von der eigentlichen Ausführungsumgebung. tae_2007_vortrag_testautomation_v01d.odp 10

Testen im Software-Entwicklungszyklus Von vielen Testern wird Testen nach wie vor für einen integralen Bestandteil des Software-Entwicklungszyklus gehalten. Andererseits verspricht jede neue Entwicklungsmethodik die Qualtität von Software durch konstruktive Maßnahmen zu verbessern, so daß schnell der Eindruck entstehen kann, Testen sei in der neuen Welt eigentlich kein Thema mehr. Am Ende der Entwicklung stellt sich dann häufig heraus, daß die erreichte Qualität noch nicht vollständig überzeugt. Symptom: Über Last- und Streßtests wird eher nachgedacht, als über Tests der Funktionalität. tae_2007_vortrag_testautomation_v01d.odp 11

Test-Automation Nicht alle Aufgaben beim Testen lassen sich automatisieren Viele der Testaufgaben können weiterhin lokal bewältigt werden Die höhere Komplexität der Anwendungssoftware stellt sich dabei aber durchaus als eine Herausforderung an die Testmethodik dar Ein Aufgabenfeld des Testens eignet sich besonders gut zur Automation: Die Testdurchführung Insbesondere die Durchführung von Regressionstests erscheint heute notwendiger denn je tae_2007_vortrag_testautomation_v01d.odp 12

Durchführung von Tests tae_2007_vortrag_testautomation_v01d.odp 13

Automatisierbare Aufgaben Testdatenbestände werden benannt und archiviert Archivierte Bestände werden in der Ausführungsumgebung bereitgestellt Die zu testende Anwendung wird vorbereitet und bereitgestellt Ausführung der Software in der Testumgebung Die Resultate der Ausführung werden archiviert Die Resultate der Ausführung werden bewertet Zusammengefaßt: + Kopieren + Laden + Vergleichen + Ausführung z.b. durch + Skripte + Test-Treiber tae_2007_vortrag_testautomation_v01d.odp 14

Bereitstellung von Testdaten Werden unterschiedliche Datenhaltungssysteme verwendet, kommen in der Regel systemspezifische Werkzeuge zum Einsatz ist zu klären, wie zusammengehörige Bestände abgelegt werden, zentral oder dezentral Nimmt die Anzahl der Lade-, Entlade- oder Kopieroperationen zu Auch andere als persistente Daten sind beim Test von Bedeutung: Systemspezifische Konfigurationseinstellungen (z.b. Registry-Einträge) Betriebssystemspezifische Dateisysteme Shared-Memory, Transaction-Queues, Caching tae_2007_vortrag_testautomation_v01d.odp 15

Bereitstellung von Testobjekten Ein plattformübergreifendes Konfigurationsmanagement ist unabdingbar Bei der Herstellung von verteilter Software treffen verschiedene Generationen von Programmierern aufeinander Bestimmte Eigenarten der Software treten erst zu Tage, wenn sie außerhalb von Entwicklungsumgebungen betrieben wird. Laufzeitbibliotheken und 3rd-Party-Software müssen ebenfalls verwaltet werden Die Abhängigkeiten der verschiedenen Software-Elemente läßt sich nicht mehr durch statische Analysen ermitteln (dynamische Calls, Reflection) Die statische Semantik an den Schnittstellen zwischen Software-Elementen wird häufig nicht mehr während des Übersetzens geprüft. Konfigurationsdaten müssen gelegentlich wie Software selbst behandelt werden tae_2007_vortrag_testautomation_v01d.odp 16

Testdurchführung Testumgebungen erfordern Aufwendige Deployment Prozeduren Aufwendige Initialisierungsoperationen Aufwendige Konfiguration zentraler Services Eine Synchronisation der verschiedenen Server Die Einhaltung von Reihenfolgen bei der Initialisierung Stubs für nicht steuerbare externe Schnittstellen Eine sorgfältige Analyse von Log-Files tae_2007_vortrag_testautomation_v01d.odp 17

Problembereiche bei der Testdurchführung Wiederholbarkeit herstellen Isolierung von Testumgebung Verhindern von Störungen, Verfälschungen Prüfung der ordnungsgemäßen Verarbeitung Meldungen von Werkzeugfunktionen und Basis-Software bewerten Analyse von Log-Files Widerstand gegen Tests Testbarkeit der Anwendung Fehlende Parametrisierbarkeit von Basissystemen und Werkzeugen Die Menge der zu bearbeitenden Daten und Programme tae_2007_vortrag_testautomation_v01d.odp 18

Werkzeugfunktionen Werkzeughersteller haben es schwer! Unzählige Konstellationen von Hardware- und Basis-Software müssen unterstützt werden Nicht alle Hersteller von Basis-Software legen die erforderlichen Schnittstellen rechtzeitig offen Heute verwendete Werkzeuge zur Herstellung und zum Test von Software passen nicht immer zusammen: Fehlende Schnittstellen Proprietäre Ablageformate Unterschiedliche Grundannahmen (Entwicklungsmodelle) tae_2007_vortrag_testautomation_v01d.odp 19

Testbarkeit Testbarkeit ist der Grad, zu dem ein Softwareprodukt das Testen ermöglicht (IEEE). Ein direktes Mass für die Testbarkeit eines Softwareproduktes sind die relativen Testkosten (im Verhältnis zu vergleichbaren Systemen). Die Testbarkeit wird wesentlich durch folgende Eigenschaften der Software bestimmt: Größe und Komplexität Abhängigkeiten zwischen Systemteilen Aufteilung von Verantwortlichkeiten auf Systemteile ("Separation of Concerns") Lokalität der Wirkung von Fehlern Kontrollierbarkeit und Beobachtbarkeit Eingebaute Testfunktionalität Unterstützung von Systemdiagnose im laufenden Betrieb Automatisierbarkeit von Tests tae_2007_vortrag_testautomation_v01d.odp 20

Testbarkeit Anforderungen an die Testbarkeit: Der Einsatz von Werkzeugen muß sorgfältig geplant werden, insbesondere Capture- & Replay-Werkzeuge stellen Anforderungen an Testobjekte, die spätestens in der Designphase der Software berücksichtigt werden müssen. Alternativ kann die Software bereits während der Entwicklung so instrumentiert werden, das die Software im Test gut beobachtet werden kann, so daß die Entwicklung von plattformunabhängigen Testtreibern ermöglicht wird. In verteilten Umgebungen ist die Verfügbarkeit von Testtreibern bzw. -Stubs von großer Bedeutung. Nach Möglichkeit sollte sich jeder beteiligte Client oder Server separat betreiben lassen. tae_2007_vortrag_testautomation_v01d.odp 21

Werkzeugfunktionen Capture & Replay Code Coverage Ausführung Ressourcen-Monitor Performance-Analyse Capture & Replay Code Coverage Entwicklung Debugging Protokoll-Mitschnitt Konfigurationsmanagement Testmanagement Statische Analyse Testdaten-Bearbeitung Testfallermittlung Code Coverage Datenbank DB-Utilities Testauswertung Vergleichswerkzeug Archivierung Prozessautomation tae_2007_vortrag_testautomation_v01d.odp 22

Testautomation in verteilten Ausführungsumgebungen Grundsätzlich ist ein System zur Automation von Testaufgaben den selben technischen Gegebenheiten ausgeliefert, wie die zu testende Anwendung. Auch die zur Automation benötigte Qualifikation von Mitarbeitern wächst. Die Koordination der Aktivitäten auf den beteiligten Rechnern stellt dabei eine besondere Herausforderung dar. Die Kommunikation zwischen dem Arbeitsplatz des Testers, und dem Testautomaten kann in der Praxis recht aufwendig sein. tae_2007_vortrag_testautomation_v01d.odp 23

Testdurchführung für verteilte Anwendungen Die Anzahl der Programmiersprachen und Datenhaltungsformen hat zugenommen Die Komplexität der Ausführungsumgebung ist insgesamt höher (Hardware, Basis-Software, Frameworks) Kopier- und Lade- und Steueroperationen über Netzwerk Viele der Werkzeuge lassen sich nicht mehr von außen steuern Dieselbe Funktionalität wird für verschiedene Plattformen benötigt Capture- und Replay-Tools werden zum Abenteuer Synchronisation und Kontrolle der Operationen ist schwieriger Der Aufwand zur Automation multipliziert sich mit der Vielfalt der Umgebungs-Elemente!! tae_2007_vortrag_testautomation_v01d.odp 24

Fazit Der Aufwand zur Testautomation steigt mit der Komplexität der Ausführungsumgebung. Wozu die ganze Mühe? Also: Damit der Erfolg des Tests nicht durch Mängel in der Testausführung gefährdet wird Damit alle Schritte der Testdurchführung nachvollziehbar dokumentiert werden können Damit die Tests in der notwendigen Breite überhaupt durchgeführt werden Die Automation der Testdurchführung ist notwendiger denn je Der Aufwand läßt sich etwas reduzieren, wenn Automation rechtzeitig berücksichtigt wird tae_2007_vortrag_testautomation_v01d.odp 25