www.syngenio.de Hyades – Eclipse Framework für Testen, Monitoring und Profiling von Java Anwendungen Java Forum Stuttgart 01. Juli 2004 Axel Stollfuß [email protected]
www.syngenio.de
Hyades – Eclipse Framework für Testen, Monitoring und Profiling von
Java Anwendungen
Java Forum Stuttgart 01. Juli 2004
Axel Stollfuß[email protected]
2www.syngenio.de Java Forum Stuttgart 2004
Agenda
Ausgangslage / Motivation
Hyades Komponenten im Überblick
Vergleich und Bewertung
Roadmap / Weitere Entwicklungen
Hyades - Agenda
3www.syngenio.de Java Forum Stuttgart 2004
AusgangslageSoftware Qualität
Unterschiedliche Nutzer
Entwickler Fachliche Tester Performance-, Lasttester Betrieb
haben
ihre eigenen Werkzeuge mit getrennten Testmodellen
Mangelnde Traceability und Redundanz
Ausgangslage / Motivation
4www.syngenio.de Java Forum Stuttgart 2004
Was ist Hyades?Projektvision
Integrierte Test, Trace und Monitoring Plattform
Werkzeuge für Automated Software Quality (ASQ)
Functional Testing Load Testing Unit Testing Runtime Analyse
Einheitliche Infrastruktur Plattform für
Entwicklung Test Produktion
Eclipse basiert (Plugins und externe Laufzeitkomponenten)
Ausgangslage / Motivation
5www.syngenio.de Java Forum Stuttgart 2004
Wer steckt dahinter ?
Begonnen Ende 2002 von IBM, Scapa Technologies, Rational Software, Parasoft und Telelogic
Beteiligt an aktuellen ReleasesIBM, Scapa Technologies, SAP, Compuware und Intel
Hyades als Basis für Produktentwicklungen
Ausgangslage / Motivation
6www.syngenio.de Java Forum Stuttgart 2004
Wo kommt der Begriff „Hyades“ her ?
Hyaden einer der größten sichtbaren Sternhaufen
Während Sonnenfinsternis 1919empirischer Beweis der Relativitätstheorie
Ablenkung des Lichts der Hyaden durch Gravitationsfeld der Sonnegemessen
Ausgangslage / Motivation
7www.syngenio.de Java Forum Stuttgart 2004
Agenda
Ausgangslage / Motivation
Hyades Komponenten im Überblick
Vergleich und Bewertung
Roadmap / Weitere Entwicklungen
Hyades - Agenda
8www.syngenio.de Java Forum Stuttgart 2004
Hyades Komponenten im Überblick
Hyades im Überblick
Interoperable Informationsmodelle
Data Collection Framework und Laufzeitumgebung
Test Tool Framework
Profiling Framework
Log und Trace Frameworks
9www.syngenio.de Java Forum Stuttgart 2004
Zusammenspiel der Komponentenan einem praktischen Beispiel
Aufzeichnen eines GUI-Tests Generierung der JUnit Klassen Anpassung der JUnit Klassen durch Datapool
Einbindung Monitoring der Anwendung beim Ablaufen der Tests Aufzeichnen der Profiling Informationen Erweiterte Tracing Informationen durch Probekit Adapter für Logfiles, die CBE Events generieren Korrelation von Logfiles (Realtime) Analyse der Logfiles, Verknüpfung mit der
Symptom Datenbank
Hyades im Überblick
Testgewinnung-und Ablauf
Datengewinnung
Analyse
10www.syngenio.de Java Forum Stuttgart 2004
Laufzeitumgebung
TestverwaltungTestfall
TestTestdaten
Teststeuerung & Deployment
Runtime Visualisierung
Zu testendes System
Transformation
Informations-modelle
Logfile Trace
Sourcecode
Data Collection FW
GLA
ProbeKitTesttreiber
Zusammenspiel der Hyades Komponenten
Symptom DB
UML2TP
Hyades im Überblick
11www.syngenio.de Java Forum Stuttgart 2004
Informationsmodelle
Zentraler Bestandteil von Hyades
Jede Komponente besitzt eigene Modelle
Eclipse Modelling Framework (EMF) basiert
Offene Schnittstelle für Erweiterungen
Informationsmodelle
14www.syngenio.de Java Forum Stuttgart 2004
OMG UML2 Testing Profile
Spezifiziert miteinander agierende Objekte für
Testarchitektur Testverhalten Testdaten
Spezifikation als Meta-Modell (MOF)
Mittels EMF in Hyades implementiert (Ziel !)
UML2TP
16www.syngenio.de Java Forum Stuttgart 2004
Common Base Events (CBE)
Definiert Struktur von Ereignissen
Ziel: Konsistenz und Vollständigkeit
Ausgerichtet auf
Logging Management Problemerkennung eBusiness
Ziel: Neuer Standard (initiiert von IBM)
Common Base Events
18www.syngenio.de Java Forum Stuttgart 2004
Aufbau von Common Base Events
Basis ist 3-Tupel
Berichtende Komponente Betroffene Komponente Situation
Beispiel:
[„JBoss“, „Webapp A“, „DB Anbindung unterbrochen“]
Modellierung komplexer Eventstrukturen möglich
Common Base Events
20www.syngenio.de Java Forum Stuttgart 2004
Darstellung von CBE in Eclipse
Common Base Event
Common Base Events
0-70
0-100
21www.syngenio.de Java Forum Stuttgart 2004
Hyades Komponenten im Überblick
Hyades im Überblick
Interoperable Informationsmodelle
Data Collection Framework und Laufzeitumgebung
Test Tool Framework
Profiling
Log und Trace Frameworks
22www.syngenio.de Java Forum Stuttgart 2004
Agent Controller Architektur
Agent Controller:externer Daemon zur Entkopplung der Kommunikation zwischen System Under Test (SUT) und Testclient
Agent:läuft innerhalb der Hostprozesse und kommuniziert mit dem Agent Controller, macht die internen Daten extern verfügbar
Test Client:Kommuniziert mit dem Agent Controller, um Daten der Agenten einzusammeln
Agent Controller
23www.syngenio.de Java Forum Stuttgart 2004
Agent Lifecycle
Agent Controller
Registered:Agent wird vom Host Prozess gestartet und registriert sich beim Controller
AttachedTestclient attached an den Agenten, um Daten zu sammeln
MonitoredTestclient startet Monitoring des Agenten
25www.syngenio.de Java Forum Stuttgart 2004
Hyades Komponenten im Überblick
Hyades im Überblick
Interoperable Informationsmodelle
Data Collection Framework und Laufzeitumgebung
Test Tool Framework
Profiling
Log und Trace Frameworks
26www.syngenio.de Java Forum Stuttgart 2004
Von der Testaufzeichnung zu ausführbaren Tests
Automatisierte GUI Tests
1. Aufzeichnen des Tests mit HTTP Recorder
2. Generierung der JUnit Testklassen
3. Ausführbaren Test generieren
4. Test ausführen
5. Testergebnisse analysieren
6. Reportgenerierung
27www.syngenio.de Java Forum Stuttgart 2004
Testrecording als Basis für Tests
Automatisierte GUI Tests Aufzeichnen des Tests
Eclipse Wizard für HTTP(s) Recording
Nutzt interne Internet Explorer Schnittstelle
28www.syngenio.de Java Forum Stuttgart 2004
URL Testsuite
Automatisierte GUI Tests Aufzeichnen des Tests
Die aufgezeichnetenRequests
Request Infos
Think Times
SSL Support
Header
änd
erba
r
29www.syngenio.de Java Forum Stuttgart 2004
Generierung Junit Klassen
Automatisierte GUI Tests Testklassengenerierung
Aus aufgezeichneten Tests werden JUnit Klassen generiert
anschließende Anpassung möglich
Integration von Datapools für variable Testdaten
Analog zu denaufgezeichneten Tests
Einstiegspunkt für individuelleErweiterungen
30www.syngenio.de Java Forum Stuttgart 2004
Ausführbaren Test generieren
Automatisierte GUI Tests Ausführbaren Test erzeugen
Test Deployment = Test Artifacts x Test Location
31www.syngenio.de Java Forum Stuttgart 2004
Testergebnisse analysieren
Automatisierte GUI Tests Testergebnisse analysieren
Erfolgreicher Test
32www.syngenio.de Java Forum Stuttgart 2004
Reportgenerierung
Automatisierte GUI Tests Reportgenerierung
Page Hit RatePage Response Time
Zwei Standardreports (page response time, page hit rate) werden mitgeliefert
Eigene Erweiterungen möglich
33www.syngenio.de Java Forum Stuttgart 2004
Hyades Komponenten im Überblick
Hyades im Überblick
Interoperable Informationsmodelle
Data Collection Framework und Laufzeitumgebung
Test Tool Framework
Profiling Framework
Log und Trace Frameworks
34www.syngenio.de Java Forum Stuttgart 2004
Profiling
Ausgangslage:
Analyse von Performance und Ressourcenproblemen
Integriert in die Entwicklern bekannte Umgebung
Features:
Verknüpfung verschiedener (graphischer) Analysesichten
Verknüpfung mit Source Code
Es können lokale und entfernte Systeme geprofiled werden(Nutzung der Agent Controller Architektur)
Realtime Profiling möglich
Profiling
35www.syngenio.de Java Forum Stuttgart 2004
UML Sequenz Diagramm
Profiling
Performance-kritikalität
Verknüpfung mitSourcecode
36www.syngenio.de Java Forum Stuttgart 2004
Coverage Statistik
Profiling
missed
hit
% abgedeckt
37www.syngenio.de Java Forum Stuttgart 2004
Execution Workflow
Profiling
Zeitliche Abfolge
Kumulierte Dauer
38www.syngenio.de Java Forum Stuttgart 2004
Hyades Komponenten im Überblick
Hyades im Überblick
Interoperable Informationsmodelle
Data Collection Framework und Laufzeitumgebung
Test Tool Framework
Profiling
Log und Trace Frameworks
39www.syngenio.de Java Forum Stuttgart 2004
Log und Trace Analyse
Zielsetzung
Einheitliches Modell für Log- und Trace Events Laufzeitmodell zur Konsolidierung und Korrelation
von Log Events verteilter Systeme
Hilfsmittel
CBE bietet einheitliches Format für Log und Trace Events
Agent Controller als Laufzeitumgebung für die Event-Konsolidierung in verteilten Systemen
Log und Trace Analyse
40www.syngenio.de Java Forum Stuttgart 2004
Einheitliche Logging Infrastruktur(Generic Log Adapter)
Problem
Kein applikationsübergreifendes Format für Logfiles
Ansätze wie apache.commons.logging,JSR 147 Logging
Ansatz
CBE ist zentrales Informationsmodell Basis für weitere Verarbeitung Parser zur Transformation individuell zu erstellen
Vereinfachte Erstellung der CBE Daten
Generic Log Adapter (GLA)
Regelbasiert, reguläre Ausdrücke
Log und Trace Analyse
41www.syngenio.de Java Forum Stuttgart 2004
Logfile Korrelation
Problem
In verteilten Systemen sind die Logeinträge zusammenhängender Aktionen über viele Logfiles verteilt
Webserver -, Web Container -, Appserver-Log, …
Lösung: Logfile Korrelation
Traceability von Events über verteilte Logfiles hinweg
Korrelation kann Timestamp, Session ID, etc. sein
Möglichkeit, eigene Logfile Korrelationen zu erstellen
Kann sehr zeitaufwendig werden
Log und Trace Analyse
42www.syngenio.de Java Forum Stuttgart 2004
Symptom Database (1)
Problem
Aufbereitung der Information der Log Events für operative Todos
Lösung: Symptom Database
Knowledge Base für typische Event Konstellationen, XML-basiert
Erlaubt Formulierung einfacher Regeln auf der Basis der CBE Informationen
Log und Trace Analyse
43www.syngenio.de Java Forum Stuttgart 2004
Symptom Database (2)
Log und Trace Analyse
Ausgewählter Eintrag
Analyse Ergebnis
Symptom Beschreibung
44www.syngenio.de Java Forum Stuttgart 2004
Probekit
Instrumentierung von Java Programmen Generierung von Trace Informationen AOP Ansatz Proprietärer Ansatz
Tracing
Probe-Beschreibung
In XML.probe
Probe Java Source
.java
Probecompiler
Java Classes
Probe Java class file
.class+
.probescriptByte Code
Instrumentation
Java Classesinstrumentiert
compile
In Eclipse integriert
java ProbeInstrumenter.probescript *.class
47www.syngenio.de Java Forum Stuttgart 2004
Hyades Komponenten im Überblick
Hyades im Überblick
Interoperable Informationsmodelle
Data Collection Framework und Laufzeitumgebung
Test Tool Framework
Profiling
Log und Trace Frameworks
48www.syngenio.de Java Forum Stuttgart 2004
Eclipse Platform
Eclipse GUI
Ru
ntim
e
Mo
nito
ring
Tra
ce A
na
lysi
s a
nd
Pro
filin
g
Tra
ce A
na
lysi
s a
nd
Pro
filin
g
Te
st
Ma
na
ge
me
nt
Standard Widgets and Core Plugins
Reference Perspective and Workflow
EMF Information Models
Te
st
Tra
ce
Sta
tistic
al
Pro
file
XMIetc.
Ge
ne
rato
rD
ata
Lo
ad
er
Te
st M
ast
er
Co
ntr
ol
Inte
rfa
ce
RealTime
Export
Remote System
Test Engine
Testability Interface
Da
ta C
olle
ctio
n
Cor
rela
tion
De
plo
yme
nt
Ag
en
tD
ata
Co
llect
ion
In
terf
ace
Te
st A
ge
nt
Co
ntr
ol
Inte
rfa
ce
Inje
ctio
n
System UnderTest
ExecutionEnvironment
Trace Collection
Log Collection
System Resource Monitor
JVMPI Monitor
Distributed TestControl Framework
Eclipse DeploymentFramework
Distributed DataCollection Framework
Hyades im Überblick Architektur
49www.syngenio.de Java Forum Stuttgart 2004
Agenda
Ausgangslage / Motivation
Hyades Komponenten im Überblick
Vergleich und Bewertung
Roadmap / Weitere Entwicklungen
Hyades - Agenda
50www.syngenio.de Java Forum Stuttgart 2004
Vergleich zu anderen Werkzeugen (1)
„Konkurrenz“ von Hyades
Tools von Compuware, Mercury, Segue, … Open Source Projekte: JUnit*, JMeter, …
Vergleich Plattform mit Produkt unfair
Produkte müssen entwickelt werden!
Hyades liefert Beispiele mit aus
Gute formale Grundlage und Integrationsfähigkeit in Projektsituationen
Vergleich und Bewertung
51www.syngenio.de Java Forum Stuttgart 2004
Vergleich zu anderen Werkzeugen (2)
Eclipse Hyades
Einheitliches Framework
Offen und erweiterbar(„extension points“)
Weitgehend Plattformunabhängig
Andere Produkte
Historisch gewachsene oder zugekaufte Produktkomponenten
Proprietäre APIs
Vergleich und Bewertung
52www.syngenio.de Java Forum Stuttgart 2004
Fazit: Einsatzfähigkeit im Projekt schon heute
Profiling:
Funktioniert gut, teilweise Probleme mit den Laufzeitkomponenten
Testing:
Ernsthafte fachliche Tests benötigen noch umfängliche Erweiterungen (im Vergleich zu JMeter)
Log und Trace Analyse
Basis für eine einheitliche Loginfrastruktur Symptom/Resolution Management
Vergleich und Bewertung
53www.syngenio.de Java Forum Stuttgart 2004
Agenda
Ausgangslage / Motivation
Architektur
Hyades Komponenten im Überblick
Einsatzszenarien im Projekt
Vergleich und Bewertung
Roadmap / Weitere Informationen
Hyades - Agenda
54www.syngenio.de Java Forum Stuttgart 2004
Weiterentwicklung Hyades
Bugfixes für 3.0, Kollektoren, Dokumentation
Testmanagement Funktionen
Ant basierte Testausführungen
64bit Architekturen und Embedded Systems
UML2TP Support vervollständigen
Transformation von Trace zu Testfall
…
Roadmap
Q3/04V 3.0.1
Q4/04V 3.1
2005V 4.0
55www.syngenio.de Java Forum Stuttgart 2004
Weitere Informationen
Eclipse Hyades Homepagehttp://www.eclipse.org/hyades(s. auch dortige news groups und Mailinglisten)
OMG UML2 Testing Profilehttp://www.omg.org/docs/ptc/03-08-03.pdf
Common Base Event Specification 2.1 (13.10.2003)http://xml.coverpages.org/CommonBaseEventSituationDataV210.pdf
www.syngenio.de
syngenio AG
Badstrasse 9 70372 StuttgartTel.: 0711 / 4903-400E-Mail: [email protected] Stollfuß