D1_Syngenio - Java Forum Stuttgart

Werbung
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 - Agenda
Agenda
 Ausgangslage / Motivation
 Hyades Komponenten im Überblick
 Vergleich und Bewertung
 Roadmap / Weitere Entwicklungen
www.syngenio.de
2
Java Forum Stuttgart 2004
Ausgangslage / Motivation
Ausgangslage
Software Qualität
 Unterschiedliche Nutzer




Entwickler
Fachliche Tester
Performance-, Lasttester
Betrieb
 haben


ihre eigenen Werkzeuge
mit getrennten Testmodellen
 Mangelnde Traceability und Redundanz
www.syngenio.de
3
Java Forum Stuttgart 2004
Ausgangslage / Motivation
Was ist Hyades?
Projektvision

Integrierte Test, Trace und Monitoring Plattform

Werkzeuge für Automated Software Quality (ASQ)





Einheitliche Infrastruktur Plattform für




www.syngenio.de
4
Functional Testing
Load Testing
Unit Testing
Runtime Analyse
Entwicklung
Test
Produktion
Eclipse basiert (Plugins und externe Laufzeitkomponenten)
Java Forum Stuttgart 2004
Ausgangslage / Motivation
Wer steckt dahinter ?
 Begonnen Ende 2002 von
IBM, Scapa Technologies, Rational Software,
Parasoft und Telelogic
 Beteiligt an aktuellen Releases
IBM, Scapa Technologies, SAP,
Compuware und Intel
 Hyades als Basis für Produktentwicklungen
www.syngenio.de
5
Java Forum Stuttgart 2004
Ausgangslage / Motivation
Wo kommt der Begriff „Hyades“ her ?
 Hyaden einer der größten sichtbaren Sternhaufen
 Während Sonnenfinsternis 1919
empirischer Beweis der Relativitätstheorie
 Ablenkung des Lichts der Hyaden durch Gravitationsfeld
der Sonne
gemessen
www.syngenio.de
6
Java Forum Stuttgart 2004
Hyades - Agenda
Agenda
 Ausgangslage / Motivation
 Hyades Komponenten im Überblick
 Vergleich und Bewertung
 Roadmap / Weitere Entwicklungen
www.syngenio.de
7
Java Forum Stuttgart 2004
Hyades im Überblick
Hyades Komponenten im Überblick
 Interoperable Informationsmodelle
 Data Collection Framework und Laufzeitumgebung
 Test Tool Framework
 Profiling Framework
 Log und Trace Frameworks
www.syngenio.de
8
Java Forum Stuttgart 2004
Hyades im Überblick
Zusammenspiel der Komponenten
an 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
Testgewinnungund Ablauf
Datengewinnung
Analyse
www.syngenio.de
9
Java Forum Stuttgart 2004
Hyades im Überblick
Zusammenspiel der Hyades Komponenten
Laufzeitumgebung
Zu testendes System
Testtreiber
ProbeKit
Logfile
Trace
GLA
Informationsmodelle
Data Collection
FW
Runtime
Visualisierung
Teststeuerung &
Deployment
Symptom DB
Sourcecode
Transformation
UML2TP
Testfall
Test
Testverwaltung
Testdaten
www.syngenio.de
10
Java Forum Stuttgart 2004
Informationsmodelle
Informationsmodelle
 Zentraler Bestandteil von Hyades
 Jede Komponente besitzt eigene Modelle
 Eclipse Modelling Framework (EMF) basiert
 Offene Schnittstelle für Erweiterungen
www.syngenio.de
11
Java Forum Stuttgart 2004
UML2TP
OMG UML2 Testing Profile
 Spezifiziert miteinander agierende Objekte für
 Testarchitektur
 Testverhalten
 Testdaten
 Spezifikation als Meta-Modell (MOF)
 Mittels EMF in Hyades implementiert (Ziel !)
www.syngenio.de
14
Java Forum Stuttgart 2004
Common Base Events
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)
www.syngenio.de
16
Java Forum Stuttgart 2004
Common Base Events
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
www.syngenio.de
18
Java Forum Stuttgart 2004
Common Base Events
Darstellung von CBE in Eclipse
Common Base Event
0-100
0-70
www.syngenio.de
20
Java Forum Stuttgart 2004
Hyades im Überblick
Hyades Komponenten im Überblick
 Interoperable Informationsmodelle
 Data Collection Framework und Laufzeitumgebung
 Test Tool Framework
 Profiling
 Log und Trace Frameworks
www.syngenio.de
21
Java Forum Stuttgart 2004
Agent Controller
Agent Controller Architektur
www.syngenio.de
22

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
Java Forum Stuttgart 2004
Agent Controller
Agent Lifecycle
  Registered:
Agent wird vom Host
Prozess gestartet und
registriert sich beim
Controller
  Attached
Testclient attached an den
Agenten, um Daten zu
sammeln
  Monitored
Testclient startet Monitoring
des Agenten
www.syngenio.de
23
Java Forum Stuttgart 2004
Hyades im Überblick
Hyades Komponenten im Überblick
 Interoperable Informationsmodelle
 Data Collection Framework und Laufzeitumgebung
 Test Tool Framework
 Profiling
 Log und Trace Frameworks
www.syngenio.de
25
Java Forum Stuttgart 2004
Automatisierte GUI Tests
Von der Testaufzeichnung
zu ausführbaren 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
www.syngenio.de
26
Java Forum Stuttgart 2004
Automatisierte GUI Tests
Aufzeichnen des Tests
Testrecording als Basis für Tests
 Eclipse Wizard für
HTTP(s) Recording
 Nutzt interne Internet
Explorer Schnittstelle
www.syngenio.de
27
Java Forum Stuttgart 2004
Automatisierte GUI Tests
Aufzeichnen des Tests
URL Testsuite
Die aufgezeichneten
Requests
änderbar
Request Infos
Think Times
SSL Support
Header
www.syngenio.de
28
Java Forum Stuttgart 2004
Automatisierte GUI Tests
Testklassengenerierung
Generierung Junit Klassen
 Aus aufgezeichneten Tests
werden JUnit Klassen
generiert
 anschließende Anpassung
möglich
 Integration von Datapools für
variable Testdaten
Analog zu den
aufgezeichneten Tests
Einstiegspunkt für individuelle
Erweiterungen
www.syngenio.de
29
Java Forum Stuttgart 2004
Automatisierte GUI Tests
Ausführbaren Test erzeugen
Ausführbaren Test generieren
 Test Deployment = Test Artifacts x Test Location
www.syngenio.de
30
Java Forum Stuttgart 2004
Automatisierte GUI Tests
Testergebnisse analysieren
Testergebnisse analysieren
Erfolgreicher Test
www.syngenio.de
31
Java Forum Stuttgart 2004
Automatisierte GUI Tests
Reportgenerierung
Reportgenerierung
 Zwei Standardreports (page response time, page hit rate)
werden mitgeliefert
 Eigene Erweiterungen möglich
Page Response Time
www.syngenio.de
32
Page Hit Rate
Java Forum Stuttgart 2004
Hyades im Überblick
Hyades Komponenten im Überblick
 Interoperable Informationsmodelle
 Data Collection Framework und Laufzeitumgebung
 Test Tool Framework
 Profiling Framework
 Log und Trace Frameworks
www.syngenio.de
33
Java Forum Stuttgart 2004
Profiling
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
www.syngenio.de
34
Java Forum Stuttgart 2004
Profiling
UML Sequenz Diagramm
Performancekritikalität
Verknüpfung mit
Sourcecode
www.syngenio.de
35
Java Forum Stuttgart 2004
Profiling
Coverage Statistik
% abgedeckt
missed
hit
www.syngenio.de
36
Java Forum Stuttgart 2004
Profiling
Execution Workflow
Zeitliche Abfolge
Kumulierte Dauer
www.syngenio.de
37
Java Forum Stuttgart 2004
Hyades im Überblick
Hyades Komponenten im Überblick
 Interoperable Informationsmodelle
 Data Collection Framework und Laufzeitumgebung
 Test Tool Framework
 Profiling
 Log und Trace Frameworks
www.syngenio.de
38
Java Forum Stuttgart 2004
Log und Trace Analyse
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 EventKonsolidierung in verteilten Systemen
www.syngenio.de
39
Java Forum Stuttgart 2004
Log und Trace Analyse
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)

www.syngenio.de
40
Regelbasiert, reguläre Ausdrücke
Java Forum Stuttgart 2004
Log und Trace Analyse
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




www.syngenio.de
41
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
Java Forum Stuttgart 2004
Log und Trace Analyse
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
www.syngenio.de
42
Java Forum Stuttgart 2004
Log und Trace Analyse
Symptom Database (2)
Ausgewählter Eintrag
Analyse Ergebnis
Symptom Beschreibung
www.syngenio.de
43
Java Forum Stuttgart 2004
Tracing
Probekit




ProbeBeschreibung Probe
compiler
In XML
.probe
Instrumentierung von Java Programmen
Generierung von Trace Informationen
AOP Ansatz
Proprietärer Ansatz
Probe Java
Source
.java
compile
Probe Java
class file
.class
+
.probescript
java ProbeInstrumenter
.probescript *.class
Byte Code
Instrumentation
Java Classes
instrumentiert
In Eclipse integriert
Java Classes
www.syngenio.de
44
Java Forum Stuttgart 2004
Hyades im Überblick
Hyades Komponenten im Überblick
 Interoperable Informationsmodelle
 Data Collection Framework und Laufzeitumgebung
 Test Tool Framework
 Profiling
 Log und Trace Frameworks
www.syngenio.de
47
Java Forum Stuttgart 2004
Hyades im Überblick Architektur
48
Test Agent Control
Interface
Trace Collection
Data Collection
Distributed Data
Collection Framework
System Under
Test
Injection
Data Loader
Real
Time
Export
XMI
etc.
www.syngenio.de
Trace
Statistical
Profile
Test
EMF Information Models
Testability Interface
Correlation
Eclipse Deployment
Framework
Test Engine
Deployment
Agent
Reference Perspective and
Workflow
Distributed Test
Control Framework
Data Collection
Interface
Standard Widgets and Core
Plugins
Generator
Test Management
Trace Analysis
and Profiling
Trace Analysis
and Profiling
Runtime
Monitoring
Eclipse GUI
Remote System
Test Master Control
Interface
Eclipse Platform
Log Collection
Execution
Environment
JVMPI Monitor
System Resource
Monitor
Java Forum Stuttgart 2004
Hyades - Agenda
Agenda
 Ausgangslage / Motivation
 Hyades Komponenten im Überblick
 Vergleich und Bewertung
 Roadmap / Weitere Entwicklungen
www.syngenio.de
49
Java Forum Stuttgart 2004
Vergleich und Bewertung
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
www.syngenio.de
50
Java Forum Stuttgart 2004
Vergleich und Bewertung
Vergleich zu anderen Werkzeugen (2)
Eclipse Hyades
Andere Produkte
 Einheitliches
Framework
 Historisch gewachsene oder
zugekaufte
Produktkomponenten
 Offen und
erweiterbar
(„extension points“)
 Proprietäre APIs
 Weitgehend
Plattformunabhängig
www.syngenio.de
51
Java Forum Stuttgart 2004
Vergleich und Bewertung
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
www.syngenio.de
52
Java Forum Stuttgart 2004
Hyades - Agenda
Agenda
 Ausgangslage / Motivation
 Architektur
 Hyades Komponenten im Überblick
 Einsatzszenarien im Projekt
 Vergleich und Bewertung
 Roadmap / Weitere Informationen
www.syngenio.de
53
Java Forum Stuttgart 2004
Roadmap
Weiterentwicklung Hyades
Q3/04
V 3.0.1
 Bugfixes für 3.0, Kollektoren, Dokumentation
 Testmanagement Funktionen
Q4/04
V 3.1
2005
V 4.0
www.syngenio.de
 Ant basierte Testausführungen
 64bit Architekturen und Embedded Systems
 UML2TP Support vervollständigen
 Transformation von Trace zu Testfall
 …
54
Java Forum Stuttgart 2004
Weitere Informationen
 Eclipse Hyades Homepage
http://www.eclipse.org/hyades
(s. auch dortige news groups und Mailinglisten)
 OMG UML2 Testing Profile
http://www.omg.org/docs/ptc/03-08-03.pdf
 Common Base Event Specification 2.1 (13.10.2003)
http://xml.coverpages.org/CommonBaseEventSituationData
V210.pdf
www.syngenio.de
55
Java Forum Stuttgart 2004
syngenio AG
Axel Stollfuß
[email protected]
www.syngenio.de
Badstrasse 9
70372 Stuttgart
Tel.: 0711 / 4903-400
E-Mail: [email protected]
Herunterladen