SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
Software-
Automatisierter Software-Test unter Java


Treffpunkt Semicolon, 18.09.2007
Jens Seekamp, GEDOPLAN GmbH
Inhalt
1.   Motivation und Ziele von automatisierten Software-Tests
2.   Manuelle Software-Tests und deren Nachteile
3.   Grundbegriffe der Testautomatisierung
4.   Bausteine für automatisierte Software-Tests
5.   Anwendungsbeispiele
6.   Problemfelder der Testautomatisierung und Gegenmaßnahmen
7.   Potenzial von automatisierten Software-Tests




                                                                1
Thema

                                            Software-
1. Motivation und Ziele von automatisierten Software-
   Tests
2.   Manuelle Software-Tests und deren Nachteile
3.   Grundbegriffe der Testautomatisierung
4.   Bausteine für automatisierte Software-Tests
5.   Anwendungsbeispiele
6.   Problemfelder der Testautomatisierung und Gegenmaßnahmen
7.   Potenzial von automatisierten Software-Tests




                                                                2
Motivation für den automatisierten Software-Test
Test einer Anwendung (SUT = system under test) ist experimentelles
Verfahren mit zwei Zielsetzungen:
   destruktives Testen: innerhalb des SUT möglichst viele Fehler aufdecken
   demonstratives Testen: Korrektheit des SUT unter definierten
Bedingungen demonstrieren

effiziente und kostensparende Test-Durchführung:
   möglichst viele Test-Aktivitäten durch Werkzeuge unterstützen
   Test-Aktivitäten automatisiert ablaufen lassen




                                                                             3
Ziele der Testautomatisierung
  explizite und detaillierte Beschreibung des Testwissens: benötigte
  Testdaten, notwendige Programmabläufe
  effiziente Testdurchführung: Zeit für einen Testzyklus
  reproduzierbare Testergebnisse: exakt gleiche Testläufe
  beliebige Wiederholbarkeit von Testläufen ohne Mehraufwand: Lasttests
  zu verschiedenen Tageszeiten
  Erhöhung der Software-Qualität: Regressionstests
  Einsparung von Personal- und Sachkosten: Fachtester, Testlabore
  Zukunftsinvestition: automatisierte Testverfahren für mehrere SUT's




                                                                          4
Thema
1. Motivation und Ziele von automatisierten Software-Tests
            Software-
2. Manuelle Software-Tests und deren Nachteile
3.   Grundbegriffe der Testautomatisierung
4.   Bausteine für automatisierte Software-Tests
5.   Anwendungsbeispiele
6.   Problemfelder der Testautomatisierung und Gegenmaßnahmen
7.   Potenzial von automatisierten Software-Tests




                                                                5
Herkömmliche, manuelle Software-Tests
  Grundlage bilden nicht ausführbare Testfall-Beschreibungen (z.B.
  fachlicher Testkatalog bestehend aus MS Office Excel Dateien).
  Ausführung durch Test-Team, Fachtester oder "Power-User"
  Testdaten werden manuell selektiert oder in den benötigten
  Anfangszustand gebracht.
  Spezifizierte Testfälle werden manuell auf dem SUT ausgeführt.
  Durchführung der Testläufe und das Testergebnis wird manuell
  protokolliert und ausgewertet.
  Testprozess wird manuell koordiniert und überwacht.




                                                                     6
Manueller Software-Test
(Dialog-Vergleichs-Test
nach einer Plattform-
Migration von UDS/Forte
nach Java)




                          7
Nachteile der manuellen Testausführung (1)
1. Nachteil:
• beansprucht viel Arbeitszeit

• wird von Menschen durchgeführt

• wird als lästig empfunden

=> seltene Durchführung, ggf. unvollständig, lange Testzyklen

2. Nachteil:
• Testdaten sind entweder vorhandene Objekte oder über SUT-Dialoge
  "konfigurierte" Objekte.
• Testläufe werden nicht jedesmal exakt wiederholt.

• Ergebnisprüfung durch Datenbank-select oder Sichtprüfung von Ausgabe-
  /Protokoll-Dateien
=> schlechte Reproduzierbarkeit des Teststatus
                                                                          8
Nachteile der manuellen Testausführung (2)
3. Nachteil:
• Fach-/Anwendungswissen der Mitarbeiter fließt implizit in die Testläufe ein

• Fehlerdetails werden in der Masse der Testläufe übersehen

=> geringe Aussagekraft

4. Nachteil:
Jede Test-Wiederholung verursacht in etwa gleichbleibende Aufwände.

Fazit:
Manuelle Testausführung verursacht hohe Aufwände (Arbeitszeitkosten,
Projektlaufzeit) bei zu hinterfragender Testqualität.


                                                                                9
Thema
1. Motivation und Ziele von automatisierten Software-Tests
2. Manuelle Software-Tests und deren Nachteile
3. Grundbegriffe der Testautomatisierung
4.   Bausteine für automatisierte Software-Tests
5.   Anwendungsbeispiele
6.   Problemfelder der Testautomatisierung und Gegenmaßnahmen
7.   Potenzial von automatisierten Software-Tests




                                                                10
Testfall
   Testfall:
   Beschreibung einer Menge von Software-Tests
   Attribute einer Testfall-Beschreibung:
   Identifikation, Kurzbeschreibung, Testschritte, Kritikalität, erwartetes
   Ergebnis, Versionierungs-Informationen, ...
   Testlauf:
    • konkrete Ausführung eines Testfalles

    • Anfangszustand => Programmablauf => Endzustand

    • Überprüfung einer bestimmten fachlichen Funktionalität oder

       technischen Eigenschaft des SUT

                                                                              11
Kategorisierung von Testfällen
Testfälle werden anhand von zwei Dimensionen kategorisiert:
   abstrakt vs. konkret
      • Beschreibung von bestimmten Programmabläufen und Testdaten
   Spezifikation vs. Implementierung
      • Formalisierung und Ausführbarkeit

Die folgenden Ausprägungen von Testfällen sind häufig anzutreffen:
•   Testszenario (z.B. Word-Dokument)
•   Testfall (z.B. strukturiertes Excel-Template)
•   interpretiertes Testskript (z.B. GUI-Testskript im XML-Format)
•   kompiliertes Testprogramm (z.B. JUnit-Testklasse)

                                                                     12
Testautomatisierung

Durchführung der vier Schritte eines SUT-Testlaufes
(1) Herstellen eines definierten Anfangszustandes des SUT und der Datenbasis (set
up)
(2) Ausführen der zu testenden SUT-Funktionalität (execute)
(3) Sicherstellen eines SUT-Zustands (assert) bzw. Prüfen des Testergebnisses
(check)
(4) Herstellen eines definierten Endzustandes des SUT und der Datenbasis (tear
down)
teilweise oder voll automatisiert durch Testwerkzeuge/-Frameworks.



                                                                                    13
Automatisierte Testauswertung und -protokollierung
Testergebnis: tatsächlicher Rückgabewert der ausgeführten Funktionalität bzw.
geänderter SUT-Zustand
Erwartete Ergebnis: spezifizierter Rückgabewert der ausgeführten
Funktionalität bzw. geforderter SUT-Zustand bei Korrektheit
Ergebnisprüfung: automatisierter Vergleich des Testergebnisses mit dem
erwarteten Ergebnis auf Gleichheit

Automatisierte Ermittlung und Protokollierung der möglichen Teststatus:
  Fehler aufgedeckt = negative Ergebnisprüfung = "rot"
  kein Fehler gefunden = positive Ergebnisprüfung = "grün"


                                                                          14
Vorteile der automatisierten Testausführung (1)
  Automatisierte Testausführung belastet die Mitarbeiter nicht und kostet
  keine direkte Arbeitszeit.
  Testläufe werden beschleunigt durchgeführt, wodurch sich kürzere
  Testzyklen ergeben.
  Auch umfangreiche Ergebnisprüfungen sind mit einem verlässlichen
  Resultat möglich (z.B. Datenbank- oder Dateiinhalte).
  Automatisierte Testfälle sind unabhängig vom Fach-/ Anwendungswissen
  der Mitarbeiter ausführbar und somit auch langfristig wiederholbar.




                                                                      15
Vorteile der automatisierten Testausführung (2)
  Testläufe können beliebig oft wiederholt werden.
  Testläufe werden bei jeder Wiederholung exakt gleich sowie vollständig
  ausgeführt.
  Jede Wiederholung eines automatisierten Tests verursacht nur sehr
  geringe Aufwände.
  Regressionstest: Nach Änderung oder Erweiterung des SUT können alle
  Testfälle einfach und vollständig ausgeführt werden.




                                                                       16
Thema
1. Motivation und Ziele von automatisierten Software-Tests
2. Manuelle Software-Tests und deren Nachteile
3. Grundbegriffe der Testautomatisierung
             fü                 Software-
4. Bausteine für automatisierte Software-Tests
5. Anwendungsbeispiele
6. Problemfelder der Testautomatisierung und Gegenmaßnahmen
7. Potenzial von automatisierten Software-Tests




                                                              17
Baustein 1: Testfall-Implementierungen (1)

Begriff der Testfall-Implementierung:
   Testfälle als Skript oder Java-Klasse "programmieren"
   Testfälle interpretieren oder kompilieren
   Testfall-Implementierungen zu Test-Bibliotheken zusammenfassen




                                                                    18
Baustein 1: Testfall-Implementierungen (2)
Einige zu beachtende Punkte:
   Auswahl von automatisierbaren Testfällen:
     • fachliche Komplexität

     • technische Machbarkeit

   Umfang der Ergebnisprüfung:
     • technische Gesamtprüfung

     • fachlogische Minimumprüfung

   Zeitpunkt der Ergebnisprüfung:
     • dynamisch (während Testlaufzeit)

     • nachgelagert (nach dem Testlauf)

   "Software-Qualität":
     • Abgeschlossenheit, Wiederholbarkeit, Wartbarkeit usw.


                                                               19
Baustein 2: dedizierte Testdatenbanken - Grundbegriffe (1)
  3 Arten von Testdaten:
  Ausgangsdaten, Ergebnisdaten (Ist), Vergleichsdaten (Soll)
  Test-Fixture:
  definierte Menge von Objekten, die als Datenbasis für die Ausführung von
  Testfällen dient
  => definierter Zustand der relationalen Datenbank
  Testläufe werden stets gegen eine separate Test-Datenbank ausgeführt:
   • DB-Schema entspricht dem Entwicklungsstand

   • DB-Ausprägung variiert nach Test-Anforderung

   • Testdaten müssen als Datenbankinhalte dargestellt und manipuliert werden

      können:
       •   Laden eines Test-Fixture beim set up
       •   Entfernen von neu angelegten Ergebnisdaten beim tear down
                                                                                20
Baustein 2: dedizierte Testdatenbanken - Ausprägungen (2)
  leere Testdatenbank, d.h. nur DB-Schema vorhanden:
   • Test-Fixture muss für jeden Testlauf stets vollständig erzeugt werden.


  Extraktions-Test-Datenbank als verkleinerte Version der SUT-Produktions-
  Datenbank enthält:
   • sämtliche Stammdaten

   • Bewegungsdaten

        •   keinerlei Bewegungsdaten => müssen stets vollständig erzeugt werden
        •   einen definierten Stand der Bewegungsdaten => als Test-Fixture verwenden
   •   Extraktionsprogramm notwendig
  Test-Datenbank ist eine vollständige Kopie der Produktions-Datenbank.



                                                                                       21
Baustein 2: dedizierte Testdatenbanken - Rücksetzen (3)
  komplettes Rücksetzen der Test-Datenbank:
   • Wiedereinspielen von DB-Abzügen

  Nutzung eines Flashback-Mechanismus (z.B. bei Oracle):
   • Rücksetzen der Test-Datenbank auf einen definierten Flashback-

     Punkt nach jedem Testlauf
  Transaktions-Steuerung:
   • Testlauf innerhalb einer Transaktion durchführen

   • nach einem fehlerfreien und / oder gescheiterten Testlauf

     Transaktion rücksetzen
   • Vorsicht: geschachtelte Transaktionen wegen SUT-eigener

     Transaktionssteuerung

                                                                      22
Baustein 3: Test-Werkzeuge / -Frameworks (1)
Einige gewünschte Funktionalitäten:
    Erstellung und Wartung von Testfällen / -Implementierungen
    Erfassung und Pflege von Testdaten
    Automatisierte Durchführung von Testfällen
    Laden / Entladen von Testdaten
    Test-Durchführung wird überwacht, ausgewertet und protokolliert

Vorteile von Open Source Lösungen:
   kostenneutral verfügbar
   individuell anpassbar
   maßgeschneidert für spezielle Test-Anforderungen
   auch für geschäftskritische SUT's einsetzbar
                                                                      23
Baustein 3: Open Source Test-Werkzeuge / -Frameworks (2)


  JUnit:        www.junit.org
   •   "Standard"-Java-Framework für den White-Box-Test von Methoden
  Abbot:        abbot.sourceforge.net
   •   Simulations-Werkzeug für den Black-Box-Test der SUT-GUI
  DBUnit:    www.dbunit.org
   • Framework für DB-nahe Tests und Testdatenverwaltung


  XMLUnit: xmlunit.sourceforge.net
   • Framework für Tests bzgl. XML-Dateien




                                                                       24
Baustein 3: Open Source Test-Werkzeuge / -Frameworks (3)

  JUnitPerf: www.clarkware.com/software/JUnitPerf.html
   • Framework für Performanz- und Lasttests


  JETM:         jetm.void.fm (Java Execution Time Measurement)
   •   Framework zur Laufzeitmessung
   •   Messpunkte können per AOP deklarativ definiert werden
  AOP:aspectwerkz.codehaus.org (aspect oriented programming)
   •   Test-Aspekte können überall in SUT eingebaut werden




                                                                 25
Baustein 4: Werkzeug-gestütztes Testmanagement
Management aller Tätigkeiten des Software-Testprozesses:
  Strategie und Konzeption des SUT-Tests
  konventionelle Projektplanung (durchzuführende Tests, Mitarbeiter, Termine)
  Organisation des Software-Test (Hardware, Software, Testräume)
   Test-Durchführung (Testdatenbereitstellung, Testläufe, Testprotokollierung)
   Kontrolle und Steuerung des Software-Test (Test- und Fehlerstatistik, Bug-
   Tracking)
   ordnungsgemäßer Abschluß des Software-Test (Abnahmekriterien)



durchgängige Werkzeug-Unterstützung?


                                                                                26
Beispiel für
einen
Testprozess:
manuell
gesteuert,
Werkzeug für
Bug-Tracking




               27
Thema
1.   Motivation und Ziele von automatisierten Software-Tests
2.   Manuelle Software-Tests und deren Nachteile
3.   Grundbegriffe der Testautomatisierung
4.   Bausteine für automatisierte Software-Tests
5. Anwendungsbeispiele
6. Problemfelder der Testautomatisierung und Gegenmaßnahmen
7. Potenzial von automatisierten Software-Tests




                                                               28
(1) Automatisierter Dialog-Test eines Warenwirtschaftssystems
Rahmenbedingungen:
  Test der gesamten Neuentwicklung einer Anwendung für die
  Warenwirtschaft
  Neuentwicklung erfolgt in mehreren Stufen, jede Stufe muss einen
  Abnahmetest bestehen:
  Entwicklung/Test in Mikro-Phasen
  Test erfolgt als Black-Box-Test über die Dialogoberfläche:
  GUI-getriebener Test
  Test basiert auf Anwendungsfällen der Anwendung:
  Use Case-basierter Test
  Excel-Testszenarien für die Anwendungsfälle sind vorhanden

                                                                     29
Nutzung des Java-GUI-Test-Framework Abbot für Swing/SWT
  SUT-Dialogabläufe   werden    während    ihrer   Durchführung      aufgenommen
  ("record").
  Dialogabläufe werden als GUI-Testskript gespeichert (XML-Datei).
  grafischer Testskript-Editor: GUI-Testskripte werden nachbearbeitet, verändert
  und inkrementell weiterentwickelt.
  GUI-Testskripte können zu einem späteren Zeitpunkt und beliebig oft
  ausgeführt werden ("play").
  GUI-Testskripte beinhalten Prüfungen auf Dialogebene ("assert").
  Aus GUI-Testskripten heraus werden Java-Methoden des SUT aufgerufen:
   • Testdaten verwalten

   • fachliche Prüfungen durchführen



                                                                               30
Potenzial von Abbot
  Aufbau einer GUI-Testbibliothek mit mehreren hundert Testskripten
  strukturierter, modularer Aufbau von Testskripten:
  Unterskripte, Wiederverwendung
  Entkopplung von Testskripten und verwendeten Testdaten:
  Einlesen von Testdaten dynamisch zur Testlaufzeit
  in den nächtlichen Build-Prozess integrierter Regressionstest
  Nutzung für Performanz- und Lasttests in einer 3-tier-Testumgebung
  vielfältige weitere Anwendungsmöglichkeiten:
   • aus GUI-Testskripten HTML-Testbeschreibungen generieren

   • GUI-Testskripte für Schulungen / Produkt-Präsentationen




                                                                       31
(2) Automatisierter Batch-Test eines Inkassomanagementsystems

Rahmenbedingungen:
   Test der Batch-Verarbeitung einer Anwendung für das
   Inkassomanagement
   Prüfung der Äquivalenz nach der automatischen Plattform-Migration
   von UDS/Forte nach Java für > 2 Millionen LOC
   keine Informationen über die interne Logik der Batch-Verarbeitung
   verfügbar, d.h. Black-Box-Test unumgänglich
   aufgrund des Testumfanges (90 Batch-Programme mit massiver DB-
   Verarbeitung innerhalb von knapp 3 Monaten) nur automatisiert
   möglich



                                                                       32
Automatisierter
Batch-Test mit
dem Diff-Tool




                  33
Implementierung eines intelligenten DB-/File-Diff-Werkzeuges
Funktionsumfang eines Vergleichswerkzeuges für Batch-Programme:
   Automatischer Abgleich der geänderten DB-Inhalte und / oder der erzeugten Ausgabedateien
   auf Differenzen.
   Das Werkzeug kann parametrisiert werden, z.B.:
    •  beim DB-Diff Beziehungen verfolgen
    •  beim Datei-Diff das Zeilenumbruchformat (UNIX vs. Windows) berücksichtigen
   Je Testfall (= Batch) kann konfiguriert werden, z.B.:
    •  beim DB-Diff Spalten (Timestamp) ausblenden
    •  beim Datei-Diff ein Header-Kommentar ignorieren
   Parametrisierung / Konfiguration über Swing-Dialog oder .properties-Datei
   Aufruf manuell über Swing-Dialog oder automatisiert über Java-API
   Aufwand für Realisierung: ca. 40 PT



                                                                                      34
halb-automatisierte Batch-Testläufe

  Batch-Testlauf manuell vorbereiten (Eingabedateien, Datenbank).
  Batch-Ausführung erfolgt durch eine JUnit-Testklasse.
  Während der Batch-Ausführung werden per AOP die modifizierten DB-Tabellen
  ermittelt und dieses Wissen für den DB-Diff verwendet.
  Aufruf des Diff-Werkzeuges per Java-API aus der JUnit-Testklasse.
  Diff-Protokoll-Dateien müssen manuell ausgewertet werden.




                                                                          35
Thema
1.   Motivation und Ziele von automatisierten Software-Tests
2.   Manuelle Software-Tests und deren Nachteile
3.   Grundbegriffe der Testautomatisierung
4.   Bausteine für automatisierte Software-Tests
5.   Anwendungsbeispiele
6. Problemfelder der Testautomatisierung und
   Gegenmaß
   Gegenmaßnahmen
7. Potenzial von automatisierten Software-Tests




                                                               36
Problemfelder der Testautomatisierung und Gegenmaßnahmen (1)
    Testautomatisierung auf Open Source Basis kann ein aufwendiges Software-
    Entwicklungsprojekt sein:
    Mitarbeiter-Qualifikation, Entwicklungsprozess, Qualität, ...
    => Integration mit SUT-Entwicklung; testgetriebene Software-Entwicklung
    Testautomatisierung verursacht zunächst nicht unerhebliche Kosten, ohne dass ein
    direkter Nutzen entsteht.
    => konkrete, inkrementelle Test-Ziele; depth-first-Testansatz
    Erstellung von Testfall-Implementierungen:
     • kann aufwendig sein

     • erfordert ein qualitativ hohes Mitarbeiter-Profil

     • "bewährte" Vorgehensweisen müssen aufgebrochen werden

    => Schulung / Coaching; Benutzer-adäquate Werkzeug-Unterstützung

                                                                                 37
Problemfelder der Testautomatisierung und Gegenmaßnahmen (2)
   Weiterentwicklung des SUT bedingt entsprechende Pflege der Testfall-
   Implementierungen und Testdatenbanken.
    => organisierter und permanenter Prozess der Test-Wartung
   Automatisierte   Testfälle   sind     anfällig  gegenüber      der       SUT-
   Weiterentwicklung oder geänderten Testdaten.
    => Entkopplung / Abstraktion: z.B. Trennung Testfall vs. Testdaten
   Automatisierte Ergebnisprüfung ist nicht-trivial:
    •   nicht alle möglichen Testergebnisse sind vorhersagbar
    •   Testergebnisse ändern sich aufgrund von SUT-Änderungen
    => Entkopplung / Abstraktion: z.B. Trennung Testfall vs. Testergebnis


                                                                               38
Thema
1.   Motivation und Ziele von automatisierten Software-Tests
2.   Manuelle Software-Tests und deren Nachteile
3.   Grundbegriffe der Testautomatisierung
4.   Bausteine für automatisierte Software-Tests
5.   Anwendungsbeispiele
6.   Problemfelder der Testautomatisierung und Gegenmaßnahmen
                                 Software-
7. Potenzial von automatisierten Software-Tests




                                                                39
Potenzial von automatisierten Software-Tests (1)
  Übergang vom manuellen Software-Test durch qualifizierte Mitarbeiter zur
  automatisierten Testausführung:
  Mitarbeiter für die Erstellung automatisierbarer Testfälle verfügbar machen
  Automatisierte Durchführung aller notwendigen, aber einfachen Tests:
  Mitarbeiter für die fachlich komplexen, evtl. nicht sinnvoll automatisierbaren
  Tests verfügbar machen
  Durchführung von Tests, die eine stets exakte Wiederholung der
  Programmausführung voraussetzen (z.B. definiertes Laufzeitverhalten)




                                                                                   40
Potenzial von automatisierten Software-Tests (2)
  Durchführung von Regressionstests:
  häufige, exakte Wiederholung
  Durchführung von Lasttests:
  Vielzahl von (simulierten) Benutzern greifen parallel auf das SUT zu
  Reproduktion von aufwendig zu erzeugenden Laufzeitfehlern, um
  Fehlerbehebung und Re-Test zu unterstützen
  Beschleunigung der gesamten Testausführung
  bessere Software-Qualität durch Erhöhung von Testabdeckung und
  Testintensität




                                                                         41
Vielen Dank für Ihr Interesse!

Haben Sie
   Fragen
   Anregungen
   eigene Erfahrungen
   Kritik
???




                                 42

Más contenido relacionado

Destacado

Presentation - Test Automation in Digital Transformation - IITPSA SIGIST 2016042
Presentation - Test Automation in Digital Transformation - IITPSA SIGIST 2016042Presentation - Test Automation in Digital Transformation - IITPSA SIGIST 2016042
Presentation - Test Automation in Digital Transformation - IITPSA SIGIST 2016042Wayne Sinclair
 
Mia software mdday2010
Mia software mdday2010Mia software mdday2010
Mia software mdday2010MD DAY
 
Open Source Software: Reif für den typischen CH KMU?
Open Source Software: Reif für den typischen CH KMU?Open Source Software: Reif für den typischen CH KMU?
Open Source Software: Reif für den typischen CH KMU?Matthias Stürmer
 
Das Potential von Open Source Software nutzen und die Risiken minimieren
Das Potential von Open Source Software nutzen und die Risiken minimierenDas Potential von Open Source Software nutzen und die Risiken minimieren
Das Potential von Open Source Software nutzen und die Risiken minimierenMatthias Stürmer
 
Exibri Software Product Lines Aosd
Exibri Software Product Lines AosdExibri Software Product Lines Aosd
Exibri Software Product Lines AosdCédric WILLIAMSON
 
Social Software Im Unternehmen
Social Software Im UnternehmenSocial Software Im Unternehmen
Social Software Im UnternehmenHelmut Nagy
 
2009 Wikimanagement: Neue Denkansätze für die Wissensnutzung im Geschäftsproz...
2009 Wikimanagement: Neue Denkansätze für die Wissensnutzung im Geschäftsproz...2009 Wikimanagement: Neue Denkansätze für die Wissensnutzung im Geschäftsproz...
2009 Wikimanagement: Neue Denkansätze für die Wissensnutzung im Geschäftsproz...Ayelt Komus
 
Freie Software in der (Groß-)Forschung
Freie Software in der (Groß-)ForschungFreie Software in der (Groß-)Forschung
Freie Software in der (Groß-)ForschungAndreas Schreiber
 
Découvrez les solutions de virtualisation de Stockage DataCore et sa platefor...
Découvrez les solutions de virtualisation de Stockage DataCore et sa platefor...Découvrez les solutions de virtualisation de Stockage DataCore et sa platefor...
Découvrez les solutions de virtualisation de Stockage DataCore et sa platefor...ljaquet
 
Torsten Grote: Freie Software
Torsten Grote: Freie SoftwareTorsten Grote: Freie Software
Torsten Grote: Freie SoftwareStefanMz
 
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsAndreas Schreiber
 
Einsatz von Social Software für Online-Marketing und virtuelle Zusammenarbeit...
Einsatz von Social Software fürOnline-Marketing und virtuelle Zusammenarbeit...Einsatz von Social Software fürOnline-Marketing und virtuelle Zusammenarbeit...
Einsatz von Social Software für Online-Marketing und virtuelle Zusammenarbeit...styropor
 
Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...
Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...
Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...Club Alliances
 
Blogwerk: Content Marketing an der SuisseEMEX 2013
Blogwerk: Content Marketing an der SuisseEMEX 2013Blogwerk: Content Marketing an der SuisseEMEX 2013
Blogwerk: Content Marketing an der SuisseEMEX 2013Blogwerk AG
 
Présentation update crm lsi
Présentation update crm lsi Présentation update crm lsi
Présentation update crm lsi SaaS Guru
 
Präsentation PM Forum - Social Software
Präsentation PM Forum  - Social SoftwarePräsentation PM Forum  - Social Software
Präsentation PM Forum - Social SoftwareGPMS
 
(In)Segurança De Software, Quebrando Códigos
(In)Segurança De Software, Quebrando Códigos(In)Segurança De Software, Quebrando Códigos
(In)Segurança De Software, Quebrando CódigosRafael Rosa
 

Destacado (20)

Presentation - Test Automation in Digital Transformation - IITPSA SIGIST 2016042
Presentation - Test Automation in Digital Transformation - IITPSA SIGIST 2016042Presentation - Test Automation in Digital Transformation - IITPSA SIGIST 2016042
Presentation - Test Automation in Digital Transformation - IITPSA SIGIST 2016042
 
Mia software mdday2010
Mia software mdday2010Mia software mdday2010
Mia software mdday2010
 
Open Source Software: Reif für den typischen CH KMU?
Open Source Software: Reif für den typischen CH KMU?Open Source Software: Reif für den typischen CH KMU?
Open Source Software: Reif für den typischen CH KMU?
 
Slide Lewis Chimarro
Slide   Lewis ChimarroSlide   Lewis Chimarro
Slide Lewis Chimarro
 
Das Potential von Open Source Software nutzen und die Risiken minimieren
Das Potential von Open Source Software nutzen und die Risiken minimierenDas Potential von Open Source Software nutzen und die Risiken minimieren
Das Potential von Open Source Software nutzen und die Risiken minimieren
 
Exibri Software Product Lines Aosd
Exibri Software Product Lines AosdExibri Software Product Lines Aosd
Exibri Software Product Lines Aosd
 
Social Software Im Unternehmen
Social Software Im UnternehmenSocial Software Im Unternehmen
Social Software Im Unternehmen
 
FABIS Produktmanagement im CRM integriert
FABIS Produktmanagement im CRM integriertFABIS Produktmanagement im CRM integriert
FABIS Produktmanagement im CRM integriert
 
2009 Wikimanagement: Neue Denkansätze für die Wissensnutzung im Geschäftsproz...
2009 Wikimanagement: Neue Denkansätze für die Wissensnutzung im Geschäftsproz...2009 Wikimanagement: Neue Denkansätze für die Wissensnutzung im Geschäftsproz...
2009 Wikimanagement: Neue Denkansätze für die Wissensnutzung im Geschäftsproz...
 
Freie Software in der (Groß-)Forschung
Freie Software in der (Groß-)ForschungFreie Software in der (Groß-)Forschung
Freie Software in der (Groß-)Forschung
 
Découvrez les solutions de virtualisation de Stockage DataCore et sa platefor...
Découvrez les solutions de virtualisation de Stockage DataCore et sa platefor...Découvrez les solutions de virtualisation de Stockage DataCore et sa platefor...
Découvrez les solutions de virtualisation de Stockage DataCore et sa platefor...
 
Lm software
Lm softwareLm software
Lm software
 
Torsten Grote: Freie Software
Torsten Grote: Freie SoftwareTorsten Grote: Freie Software
Torsten Grote: Freie Software
 
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-ToolsSoftware-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
Software-Engineering in der Luft- und Raumfahrt mit Open-Source-Tools
 
Einsatz von Social Software für Online-Marketing und virtuelle Zusammenarbeit...
Einsatz von Social Software fürOnline-Marketing und virtuelle Zusammenarbeit...Einsatz von Social Software fürOnline-Marketing und virtuelle Zusammenarbeit...
Einsatz von Social Software für Online-Marketing und virtuelle Zusammenarbeit...
 
Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...
Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...
Solutions en mode SaaS (Software as a Service) : les PME accèdent-elles à des...
 
Blogwerk: Content Marketing an der SuisseEMEX 2013
Blogwerk: Content Marketing an der SuisseEMEX 2013Blogwerk: Content Marketing an der SuisseEMEX 2013
Blogwerk: Content Marketing an der SuisseEMEX 2013
 
Présentation update crm lsi
Présentation update crm lsi Présentation update crm lsi
Présentation update crm lsi
 
Präsentation PM Forum - Social Software
Präsentation PM Forum  - Social SoftwarePräsentation PM Forum  - Social Software
Präsentation PM Forum - Social Software
 
(In)Segurança De Software, Quebrando Códigos
(In)Segurança De Software, Quebrando Códigos(In)Segurança De Software, Quebrando Códigos
(In)Segurança De Software, Quebrando Códigos
 

Similar a Automatisierter Software-Test unter Java

Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Florian Wolters
 
Automatisiertes webauftritt testen
Automatisiertes webauftritt testenAutomatisiertes webauftritt testen
Automatisiertes webauftritt testenmradamlacey
 
Ausweg aus der Kommunikationskrise oder das Ende von „Bei mir funktioniert’s“?
Ausweg aus der Kommunikationskrise oder das Ende von „Bei mir funktioniert’s“?Ausweg aus der Kommunikationskrise oder das Ende von „Bei mir funktioniert’s“?
Ausweg aus der Kommunikationskrise oder das Ende von „Bei mir funktioniert’s“?Nico Orschel
 
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschafteneCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschaftenChristoph Menke
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenGjero Krsteski
 
Die Bedeutung Automatisierter Regressionstests
Die Bedeutung Automatisierter RegressionstestsDie Bedeutung Automatisierter Regressionstests
Die Bedeutung Automatisierter RegressionstestsBild GmbH & Co. KG
 
Unit testing mit Javascript
Unit testing mit JavascriptUnit testing mit Javascript
Unit testing mit Javascriptjoergreichert
 
Scrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDScrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDSwissQ Consulting AG
 
PHPUnit - Eine kurze Einführung
PHPUnit - Eine kurze EinführungPHPUnit - Eine kurze Einführung
PHPUnit - Eine kurze Einführungfrankstaude
 
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißReal Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißOPITZ CONSULTING Deutschland
 
AdvancedTdd
AdvancedTddAdvancedTdd
AdvancedTddjlink
 
Wann lohnt sich Software Testautomatisierung?
Wann lohnt sich Software Testautomatisierung?Wann lohnt sich Software Testautomatisierung?
Wann lohnt sich Software Testautomatisierung?Claudia Baur
 
Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Nico Orschel
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungChristian Baranowski
 
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Digicomp Academy AG
 
Webanwendungen testen
Webanwendungen testenWebanwendungen testen
Webanwendungen testenBoris Köster
 
Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...
Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...
Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...Leiter AK Software - Dr. Schönefeld
 

Similar a Automatisierter Software-Test unter Java (20)

Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
 
Automatisiertes webauftritt testen
Automatisiertes webauftritt testenAutomatisiertes webauftritt testen
Automatisiertes webauftritt testen
 
Ausweg aus der Kommunikationskrise oder das Ende von „Bei mir funktioniert’s“?
Ausweg aus der Kommunikationskrise oder das Ende von „Bei mir funktioniert’s“?Ausweg aus der Kommunikationskrise oder das Ende von „Bei mir funktioniert’s“?
Ausweg aus der Kommunikationskrise oder das Ende von „Bei mir funktioniert’s“?
 
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen SystemlandschafteneCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
eCATT & OpenSource - Automatisierter Test in heterogenen Systemlandschaften
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-Anwendungen
 
Die Bedeutung Automatisierter Regressionstests
Die Bedeutung Automatisierter RegressionstestsDie Bedeutung Automatisierter Regressionstests
Die Bedeutung Automatisierter Regressionstests
 
Unit testing mit Javascript
Unit testing mit JavascriptUnit testing mit Javascript
Unit testing mit Javascript
 
Systementwurf mit UML
Systementwurf mit UMLSystementwurf mit UML
Systementwurf mit UML
 
Agiles Testen (German)
Agiles Testen (German)Agiles Testen (German)
Agiles Testen (German)
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 
Scrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADEDScrum Rocks, Testing Sucks ?! RELOADED
Scrum Rocks, Testing Sucks ?! RELOADED
 
PHPUnit - Eine kurze Einführung
PHPUnit - Eine kurze EinführungPHPUnit - Eine kurze Einführung
PHPUnit - Eine kurze Einführung
 
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon DickmeißReal Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
Real Application Testing - DOAG SIG Database 2010 - Simon Dickmeiß
 
AdvancedTdd
AdvancedTddAdvancedTdd
AdvancedTdd
 
Wann lohnt sich Software Testautomatisierung?
Wann lohnt sich Software Testautomatisierung?Wann lohnt sich Software Testautomatisierung?
Wann lohnt sich Software Testautomatisierung?
 
Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013Testing XAML-based Windows Store Apps mit VS 2013
Testing XAML-based Windows Store Apps mit VS 2013
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-Qualitätssicherung
 
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)Referat: Scrum Rocks – Testing Sucks?! (reloaded)
Referat: Scrum Rocks – Testing Sucks?! (reloaded)
 
Webanwendungen testen
Webanwendungen testenWebanwendungen testen
Webanwendungen testen
 
Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...
Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...
Simulieren, Testen, Verifizieren - Alles oder Nichts? Systematische Funktions...
 

Más de GFU Cyrus AG

Social Media im Unternehmen
Social Media im UnternehmenSocial Media im Unternehmen
Social Media im UnternehmenGFU Cyrus AG
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...GFU Cyrus AG
 
Clean Code Developer
Clean Code DeveloperClean Code Developer
Clean Code DeveloperGFU Cyrus AG
 
Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.GFU Cyrus AG
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsGFU Cyrus AG
 
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...GFU Cyrus AG
 
Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordertRequirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordertGFU Cyrus AG
 
SharePoint 2010 - Was ist neu, was wird besser!
SharePoint 2010 - Was ist neu, was wird besser!SharePoint 2010 - Was ist neu, was wird besser!
SharePoint 2010 - Was ist neu, was wird besser!GFU Cyrus AG
 
Java Persistence 2.0
Java Persistence 2.0Java Persistence 2.0
Java Persistence 2.0GFU Cyrus AG
 
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...GFU Cyrus AG
 
Liferay Portal - ein Webportal für viele Unternehmensanforderungen
Liferay Portal - ein Webportal für viele UnternehmensanforderungenLiferay Portal - ein Webportal für viele Unternehmensanforderungen
Liferay Portal - ein Webportal für viele UnternehmensanforderungenGFU Cyrus AG
 
PostgreSQL im Produktivbetrieb
PostgreSQL im ProduktivbetriebPostgreSQL im Produktivbetrieb
PostgreSQL im ProduktivbetriebGFU Cyrus AG
 
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...GFU Cyrus AG
 
Wieviel Web2.0 braucht Ihr Unternehmen?
Wieviel Web2.0 braucht Ihr Unternehmen?Wieviel Web2.0 braucht Ihr Unternehmen?
Wieviel Web2.0 braucht Ihr Unternehmen?GFU Cyrus AG
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6GFU Cyrus AG
 
Das Java-Spring-Framework in der Praxis
Das Java-Spring-Framework in der PraxisDas Java-Spring-Framework in der Praxis
Das Java-Spring-Framework in der PraxisGFU Cyrus AG
 
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer SeminarverwaltungAgile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer SeminarverwaltungGFU Cyrus AG
 
Wissensmanagement bei Volkswagen
Wissensmanagement bei VolkswagenWissensmanagement bei Volkswagen
Wissensmanagement bei VolkswagenGFU Cyrus AG
 
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...GFU Cyrus AG
 
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalkGrenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalkGFU Cyrus AG
 

Más de GFU Cyrus AG (20)

Social Media im Unternehmen
Social Media im UnternehmenSocial Media im Unternehmen
Social Media im Unternehmen
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
 
Clean Code Developer
Clean Code DeveloperClean Code Developer
Clean Code Developer
 
Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.Cross-Apps-Entwicklung für iPhone, Android und Co.
Cross-Apps-Entwicklung für iPhone, Android und Co.
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
Datenschutz bei Facebook & Co. - Wie schütze ich meine persönlichen Daten im ...
 
Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordertRequirements Engineering in agilen Projekten - Flexibilität ist gefordert
Requirements Engineering in agilen Projekten - Flexibilität ist gefordert
 
SharePoint 2010 - Was ist neu, was wird besser!
SharePoint 2010 - Was ist neu, was wird besser!SharePoint 2010 - Was ist neu, was wird besser!
SharePoint 2010 - Was ist neu, was wird besser!
 
Java Persistence 2.0
Java Persistence 2.0Java Persistence 2.0
Java Persistence 2.0
 
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
Pragmatische Einführung von IT-Servicemanagement - ITIL im Unternehmen - Erfa...
 
Liferay Portal - ein Webportal für viele Unternehmensanforderungen
Liferay Portal - ein Webportal für viele UnternehmensanforderungenLiferay Portal - ein Webportal für viele Unternehmensanforderungen
Liferay Portal - ein Webportal für viele Unternehmensanforderungen
 
PostgreSQL im Produktivbetrieb
PostgreSQL im ProduktivbetriebPostgreSQL im Produktivbetrieb
PostgreSQL im Produktivbetrieb
 
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
Java Server Faces 2.0 - Der Standard für moderne und komponentenbasierte Weba...
 
Wieviel Web2.0 braucht Ihr Unternehmen?
Wieviel Web2.0 braucht Ihr Unternehmen?Wieviel Web2.0 braucht Ihr Unternehmen?
Wieviel Web2.0 braucht Ihr Unternehmen?
 
Neue Features der Java EE 6
Neue Features der Java EE 6Neue Features der Java EE 6
Neue Features der Java EE 6
 
Das Java-Spring-Framework in der Praxis
Das Java-Spring-Framework in der PraxisDas Java-Spring-Framework in der Praxis
Das Java-Spring-Framework in der Praxis
 
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer SeminarverwaltungAgile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
Agile Geschäftsprozeßanalyse OOA/D am Beispiel einer Seminarverwaltung
 
Wissensmanagement bei Volkswagen
Wissensmanagement bei VolkswagenWissensmanagement bei Volkswagen
Wissensmanagement bei Volkswagen
 
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
 
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalkGrenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
Grenzüberschreitende Geschäftsprozesse mit Microsoft SharePoint und BizTalk
 

Automatisierter Software-Test unter Java

  • 1. Software- Automatisierter Software-Test unter Java Treffpunkt Semicolon, 18.09.2007 Jens Seekamp, GEDOPLAN GmbH
  • 2. Inhalt 1. Motivation und Ziele von automatisierten Software-Tests 2. Manuelle Software-Tests und deren Nachteile 3. Grundbegriffe der Testautomatisierung 4. Bausteine für automatisierte Software-Tests 5. Anwendungsbeispiele 6. Problemfelder der Testautomatisierung und Gegenmaßnahmen 7. Potenzial von automatisierten Software-Tests 1
  • 3. Thema Software- 1. Motivation und Ziele von automatisierten Software- Tests 2. Manuelle Software-Tests und deren Nachteile 3. Grundbegriffe der Testautomatisierung 4. Bausteine für automatisierte Software-Tests 5. Anwendungsbeispiele 6. Problemfelder der Testautomatisierung und Gegenmaßnahmen 7. Potenzial von automatisierten Software-Tests 2
  • 4. Motivation für den automatisierten Software-Test Test einer Anwendung (SUT = system under test) ist experimentelles Verfahren mit zwei Zielsetzungen: destruktives Testen: innerhalb des SUT möglichst viele Fehler aufdecken demonstratives Testen: Korrektheit des SUT unter definierten Bedingungen demonstrieren effiziente und kostensparende Test-Durchführung: möglichst viele Test-Aktivitäten durch Werkzeuge unterstützen Test-Aktivitäten automatisiert ablaufen lassen 3
  • 5. Ziele der Testautomatisierung explizite und detaillierte Beschreibung des Testwissens: benötigte Testdaten, notwendige Programmabläufe effiziente Testdurchführung: Zeit für einen Testzyklus reproduzierbare Testergebnisse: exakt gleiche Testläufe beliebige Wiederholbarkeit von Testläufen ohne Mehraufwand: Lasttests zu verschiedenen Tageszeiten Erhöhung der Software-Qualität: Regressionstests Einsparung von Personal- und Sachkosten: Fachtester, Testlabore Zukunftsinvestition: automatisierte Testverfahren für mehrere SUT's 4
  • 6. Thema 1. Motivation und Ziele von automatisierten Software-Tests Software- 2. Manuelle Software-Tests und deren Nachteile 3. Grundbegriffe der Testautomatisierung 4. Bausteine für automatisierte Software-Tests 5. Anwendungsbeispiele 6. Problemfelder der Testautomatisierung und Gegenmaßnahmen 7. Potenzial von automatisierten Software-Tests 5
  • 7. Herkömmliche, manuelle Software-Tests Grundlage bilden nicht ausführbare Testfall-Beschreibungen (z.B. fachlicher Testkatalog bestehend aus MS Office Excel Dateien). Ausführung durch Test-Team, Fachtester oder "Power-User" Testdaten werden manuell selektiert oder in den benötigten Anfangszustand gebracht. Spezifizierte Testfälle werden manuell auf dem SUT ausgeführt. Durchführung der Testläufe und das Testergebnis wird manuell protokolliert und ausgewertet. Testprozess wird manuell koordiniert und überwacht. 6
  • 8. Manueller Software-Test (Dialog-Vergleichs-Test nach einer Plattform- Migration von UDS/Forte nach Java) 7
  • 9. Nachteile der manuellen Testausführung (1) 1. Nachteil: • beansprucht viel Arbeitszeit • wird von Menschen durchgeführt • wird als lästig empfunden => seltene Durchführung, ggf. unvollständig, lange Testzyklen 2. Nachteil: • Testdaten sind entweder vorhandene Objekte oder über SUT-Dialoge "konfigurierte" Objekte. • Testläufe werden nicht jedesmal exakt wiederholt. • Ergebnisprüfung durch Datenbank-select oder Sichtprüfung von Ausgabe- /Protokoll-Dateien => schlechte Reproduzierbarkeit des Teststatus 8
  • 10. Nachteile der manuellen Testausführung (2) 3. Nachteil: • Fach-/Anwendungswissen der Mitarbeiter fließt implizit in die Testläufe ein • Fehlerdetails werden in der Masse der Testläufe übersehen => geringe Aussagekraft 4. Nachteil: Jede Test-Wiederholung verursacht in etwa gleichbleibende Aufwände. Fazit: Manuelle Testausführung verursacht hohe Aufwände (Arbeitszeitkosten, Projektlaufzeit) bei zu hinterfragender Testqualität. 9
  • 11. Thema 1. Motivation und Ziele von automatisierten Software-Tests 2. Manuelle Software-Tests und deren Nachteile 3. Grundbegriffe der Testautomatisierung 4. Bausteine für automatisierte Software-Tests 5. Anwendungsbeispiele 6. Problemfelder der Testautomatisierung und Gegenmaßnahmen 7. Potenzial von automatisierten Software-Tests 10
  • 12. Testfall Testfall: Beschreibung einer Menge von Software-Tests Attribute einer Testfall-Beschreibung: Identifikation, Kurzbeschreibung, Testschritte, Kritikalität, erwartetes Ergebnis, Versionierungs-Informationen, ... Testlauf: • konkrete Ausführung eines Testfalles • Anfangszustand => Programmablauf => Endzustand • Überprüfung einer bestimmten fachlichen Funktionalität oder technischen Eigenschaft des SUT 11
  • 13. Kategorisierung von Testfällen Testfälle werden anhand von zwei Dimensionen kategorisiert: abstrakt vs. konkret • Beschreibung von bestimmten Programmabläufen und Testdaten Spezifikation vs. Implementierung • Formalisierung und Ausführbarkeit Die folgenden Ausprägungen von Testfällen sind häufig anzutreffen: • Testszenario (z.B. Word-Dokument) • Testfall (z.B. strukturiertes Excel-Template) • interpretiertes Testskript (z.B. GUI-Testskript im XML-Format) • kompiliertes Testprogramm (z.B. JUnit-Testklasse) 12
  • 14. Testautomatisierung Durchführung der vier Schritte eines SUT-Testlaufes (1) Herstellen eines definierten Anfangszustandes des SUT und der Datenbasis (set up) (2) Ausführen der zu testenden SUT-Funktionalität (execute) (3) Sicherstellen eines SUT-Zustands (assert) bzw. Prüfen des Testergebnisses (check) (4) Herstellen eines definierten Endzustandes des SUT und der Datenbasis (tear down) teilweise oder voll automatisiert durch Testwerkzeuge/-Frameworks. 13
  • 15. Automatisierte Testauswertung und -protokollierung Testergebnis: tatsächlicher Rückgabewert der ausgeführten Funktionalität bzw. geänderter SUT-Zustand Erwartete Ergebnis: spezifizierter Rückgabewert der ausgeführten Funktionalität bzw. geforderter SUT-Zustand bei Korrektheit Ergebnisprüfung: automatisierter Vergleich des Testergebnisses mit dem erwarteten Ergebnis auf Gleichheit Automatisierte Ermittlung und Protokollierung der möglichen Teststatus: Fehler aufgedeckt = negative Ergebnisprüfung = "rot" kein Fehler gefunden = positive Ergebnisprüfung = "grün" 14
  • 16. Vorteile der automatisierten Testausführung (1) Automatisierte Testausführung belastet die Mitarbeiter nicht und kostet keine direkte Arbeitszeit. Testläufe werden beschleunigt durchgeführt, wodurch sich kürzere Testzyklen ergeben. Auch umfangreiche Ergebnisprüfungen sind mit einem verlässlichen Resultat möglich (z.B. Datenbank- oder Dateiinhalte). Automatisierte Testfälle sind unabhängig vom Fach-/ Anwendungswissen der Mitarbeiter ausführbar und somit auch langfristig wiederholbar. 15
  • 17. Vorteile der automatisierten Testausführung (2) Testläufe können beliebig oft wiederholt werden. Testläufe werden bei jeder Wiederholung exakt gleich sowie vollständig ausgeführt. Jede Wiederholung eines automatisierten Tests verursacht nur sehr geringe Aufwände. Regressionstest: Nach Änderung oder Erweiterung des SUT können alle Testfälle einfach und vollständig ausgeführt werden. 16
  • 18. Thema 1. Motivation und Ziele von automatisierten Software-Tests 2. Manuelle Software-Tests und deren Nachteile 3. Grundbegriffe der Testautomatisierung fü Software- 4. Bausteine für automatisierte Software-Tests 5. Anwendungsbeispiele 6. Problemfelder der Testautomatisierung und Gegenmaßnahmen 7. Potenzial von automatisierten Software-Tests 17
  • 19. Baustein 1: Testfall-Implementierungen (1) Begriff der Testfall-Implementierung: Testfälle als Skript oder Java-Klasse "programmieren" Testfälle interpretieren oder kompilieren Testfall-Implementierungen zu Test-Bibliotheken zusammenfassen 18
  • 20. Baustein 1: Testfall-Implementierungen (2) Einige zu beachtende Punkte: Auswahl von automatisierbaren Testfällen: • fachliche Komplexität • technische Machbarkeit Umfang der Ergebnisprüfung: • technische Gesamtprüfung • fachlogische Minimumprüfung Zeitpunkt der Ergebnisprüfung: • dynamisch (während Testlaufzeit) • nachgelagert (nach dem Testlauf) "Software-Qualität": • Abgeschlossenheit, Wiederholbarkeit, Wartbarkeit usw. 19
  • 21. Baustein 2: dedizierte Testdatenbanken - Grundbegriffe (1) 3 Arten von Testdaten: Ausgangsdaten, Ergebnisdaten (Ist), Vergleichsdaten (Soll) Test-Fixture: definierte Menge von Objekten, die als Datenbasis für die Ausführung von Testfällen dient => definierter Zustand der relationalen Datenbank Testläufe werden stets gegen eine separate Test-Datenbank ausgeführt: • DB-Schema entspricht dem Entwicklungsstand • DB-Ausprägung variiert nach Test-Anforderung • Testdaten müssen als Datenbankinhalte dargestellt und manipuliert werden können: • Laden eines Test-Fixture beim set up • Entfernen von neu angelegten Ergebnisdaten beim tear down 20
  • 22. Baustein 2: dedizierte Testdatenbanken - Ausprägungen (2) leere Testdatenbank, d.h. nur DB-Schema vorhanden: • Test-Fixture muss für jeden Testlauf stets vollständig erzeugt werden. Extraktions-Test-Datenbank als verkleinerte Version der SUT-Produktions- Datenbank enthält: • sämtliche Stammdaten • Bewegungsdaten • keinerlei Bewegungsdaten => müssen stets vollständig erzeugt werden • einen definierten Stand der Bewegungsdaten => als Test-Fixture verwenden • Extraktionsprogramm notwendig Test-Datenbank ist eine vollständige Kopie der Produktions-Datenbank. 21
  • 23. Baustein 2: dedizierte Testdatenbanken - Rücksetzen (3) komplettes Rücksetzen der Test-Datenbank: • Wiedereinspielen von DB-Abzügen Nutzung eines Flashback-Mechanismus (z.B. bei Oracle): • Rücksetzen der Test-Datenbank auf einen definierten Flashback- Punkt nach jedem Testlauf Transaktions-Steuerung: • Testlauf innerhalb einer Transaktion durchführen • nach einem fehlerfreien und / oder gescheiterten Testlauf Transaktion rücksetzen • Vorsicht: geschachtelte Transaktionen wegen SUT-eigener Transaktionssteuerung 22
  • 24. Baustein 3: Test-Werkzeuge / -Frameworks (1) Einige gewünschte Funktionalitäten: Erstellung und Wartung von Testfällen / -Implementierungen Erfassung und Pflege von Testdaten Automatisierte Durchführung von Testfällen Laden / Entladen von Testdaten Test-Durchführung wird überwacht, ausgewertet und protokolliert Vorteile von Open Source Lösungen: kostenneutral verfügbar individuell anpassbar maßgeschneidert für spezielle Test-Anforderungen auch für geschäftskritische SUT's einsetzbar 23
  • 25. Baustein 3: Open Source Test-Werkzeuge / -Frameworks (2) JUnit: www.junit.org • "Standard"-Java-Framework für den White-Box-Test von Methoden Abbot: abbot.sourceforge.net • Simulations-Werkzeug für den Black-Box-Test der SUT-GUI DBUnit: www.dbunit.org • Framework für DB-nahe Tests und Testdatenverwaltung XMLUnit: xmlunit.sourceforge.net • Framework für Tests bzgl. XML-Dateien 24
  • 26. Baustein 3: Open Source Test-Werkzeuge / -Frameworks (3) JUnitPerf: www.clarkware.com/software/JUnitPerf.html • Framework für Performanz- und Lasttests JETM: jetm.void.fm (Java Execution Time Measurement) • Framework zur Laufzeitmessung • Messpunkte können per AOP deklarativ definiert werden AOP:aspectwerkz.codehaus.org (aspect oriented programming) • Test-Aspekte können überall in SUT eingebaut werden 25
  • 27. Baustein 4: Werkzeug-gestütztes Testmanagement Management aller Tätigkeiten des Software-Testprozesses: Strategie und Konzeption des SUT-Tests konventionelle Projektplanung (durchzuführende Tests, Mitarbeiter, Termine) Organisation des Software-Test (Hardware, Software, Testräume) Test-Durchführung (Testdatenbereitstellung, Testläufe, Testprotokollierung) Kontrolle und Steuerung des Software-Test (Test- und Fehlerstatistik, Bug- Tracking) ordnungsgemäßer Abschluß des Software-Test (Abnahmekriterien) durchgängige Werkzeug-Unterstützung? 26
  • 29. Thema 1. Motivation und Ziele von automatisierten Software-Tests 2. Manuelle Software-Tests und deren Nachteile 3. Grundbegriffe der Testautomatisierung 4. Bausteine für automatisierte Software-Tests 5. Anwendungsbeispiele 6. Problemfelder der Testautomatisierung und Gegenmaßnahmen 7. Potenzial von automatisierten Software-Tests 28
  • 30. (1) Automatisierter Dialog-Test eines Warenwirtschaftssystems Rahmenbedingungen: Test der gesamten Neuentwicklung einer Anwendung für die Warenwirtschaft Neuentwicklung erfolgt in mehreren Stufen, jede Stufe muss einen Abnahmetest bestehen: Entwicklung/Test in Mikro-Phasen Test erfolgt als Black-Box-Test über die Dialogoberfläche: GUI-getriebener Test Test basiert auf Anwendungsfällen der Anwendung: Use Case-basierter Test Excel-Testszenarien für die Anwendungsfälle sind vorhanden 29
  • 31. Nutzung des Java-GUI-Test-Framework Abbot für Swing/SWT SUT-Dialogabläufe werden während ihrer Durchführung aufgenommen ("record"). Dialogabläufe werden als GUI-Testskript gespeichert (XML-Datei). grafischer Testskript-Editor: GUI-Testskripte werden nachbearbeitet, verändert und inkrementell weiterentwickelt. GUI-Testskripte können zu einem späteren Zeitpunkt und beliebig oft ausgeführt werden ("play"). GUI-Testskripte beinhalten Prüfungen auf Dialogebene ("assert"). Aus GUI-Testskripten heraus werden Java-Methoden des SUT aufgerufen: • Testdaten verwalten • fachliche Prüfungen durchführen 30
  • 32. Potenzial von Abbot Aufbau einer GUI-Testbibliothek mit mehreren hundert Testskripten strukturierter, modularer Aufbau von Testskripten: Unterskripte, Wiederverwendung Entkopplung von Testskripten und verwendeten Testdaten: Einlesen von Testdaten dynamisch zur Testlaufzeit in den nächtlichen Build-Prozess integrierter Regressionstest Nutzung für Performanz- und Lasttests in einer 3-tier-Testumgebung vielfältige weitere Anwendungsmöglichkeiten: • aus GUI-Testskripten HTML-Testbeschreibungen generieren • GUI-Testskripte für Schulungen / Produkt-Präsentationen 31
  • 33. (2) Automatisierter Batch-Test eines Inkassomanagementsystems Rahmenbedingungen: Test der Batch-Verarbeitung einer Anwendung für das Inkassomanagement Prüfung der Äquivalenz nach der automatischen Plattform-Migration von UDS/Forte nach Java für > 2 Millionen LOC keine Informationen über die interne Logik der Batch-Verarbeitung verfügbar, d.h. Black-Box-Test unumgänglich aufgrund des Testumfanges (90 Batch-Programme mit massiver DB- Verarbeitung innerhalb von knapp 3 Monaten) nur automatisiert möglich 32
  • 35. Implementierung eines intelligenten DB-/File-Diff-Werkzeuges Funktionsumfang eines Vergleichswerkzeuges für Batch-Programme: Automatischer Abgleich der geänderten DB-Inhalte und / oder der erzeugten Ausgabedateien auf Differenzen. Das Werkzeug kann parametrisiert werden, z.B.: • beim DB-Diff Beziehungen verfolgen • beim Datei-Diff das Zeilenumbruchformat (UNIX vs. Windows) berücksichtigen Je Testfall (= Batch) kann konfiguriert werden, z.B.: • beim DB-Diff Spalten (Timestamp) ausblenden • beim Datei-Diff ein Header-Kommentar ignorieren Parametrisierung / Konfiguration über Swing-Dialog oder .properties-Datei Aufruf manuell über Swing-Dialog oder automatisiert über Java-API Aufwand für Realisierung: ca. 40 PT 34
  • 36. halb-automatisierte Batch-Testläufe Batch-Testlauf manuell vorbereiten (Eingabedateien, Datenbank). Batch-Ausführung erfolgt durch eine JUnit-Testklasse. Während der Batch-Ausführung werden per AOP die modifizierten DB-Tabellen ermittelt und dieses Wissen für den DB-Diff verwendet. Aufruf des Diff-Werkzeuges per Java-API aus der JUnit-Testklasse. Diff-Protokoll-Dateien müssen manuell ausgewertet werden. 35
  • 37. Thema 1. Motivation und Ziele von automatisierten Software-Tests 2. Manuelle Software-Tests und deren Nachteile 3. Grundbegriffe der Testautomatisierung 4. Bausteine für automatisierte Software-Tests 5. Anwendungsbeispiele 6. Problemfelder der Testautomatisierung und Gegenmaß Gegenmaßnahmen 7. Potenzial von automatisierten Software-Tests 36
  • 38. Problemfelder der Testautomatisierung und Gegenmaßnahmen (1) Testautomatisierung auf Open Source Basis kann ein aufwendiges Software- Entwicklungsprojekt sein: Mitarbeiter-Qualifikation, Entwicklungsprozess, Qualität, ... => Integration mit SUT-Entwicklung; testgetriebene Software-Entwicklung Testautomatisierung verursacht zunächst nicht unerhebliche Kosten, ohne dass ein direkter Nutzen entsteht. => konkrete, inkrementelle Test-Ziele; depth-first-Testansatz Erstellung von Testfall-Implementierungen: • kann aufwendig sein • erfordert ein qualitativ hohes Mitarbeiter-Profil • "bewährte" Vorgehensweisen müssen aufgebrochen werden => Schulung / Coaching; Benutzer-adäquate Werkzeug-Unterstützung 37
  • 39. Problemfelder der Testautomatisierung und Gegenmaßnahmen (2) Weiterentwicklung des SUT bedingt entsprechende Pflege der Testfall- Implementierungen und Testdatenbanken. => organisierter und permanenter Prozess der Test-Wartung Automatisierte Testfälle sind anfällig gegenüber der SUT- Weiterentwicklung oder geänderten Testdaten. => Entkopplung / Abstraktion: z.B. Trennung Testfall vs. Testdaten Automatisierte Ergebnisprüfung ist nicht-trivial: • nicht alle möglichen Testergebnisse sind vorhersagbar • Testergebnisse ändern sich aufgrund von SUT-Änderungen => Entkopplung / Abstraktion: z.B. Trennung Testfall vs. Testergebnis 38
  • 40. Thema 1. Motivation und Ziele von automatisierten Software-Tests 2. Manuelle Software-Tests und deren Nachteile 3. Grundbegriffe der Testautomatisierung 4. Bausteine für automatisierte Software-Tests 5. Anwendungsbeispiele 6. Problemfelder der Testautomatisierung und Gegenmaßnahmen Software- 7. Potenzial von automatisierten Software-Tests 39
  • 41. Potenzial von automatisierten Software-Tests (1) Übergang vom manuellen Software-Test durch qualifizierte Mitarbeiter zur automatisierten Testausführung: Mitarbeiter für die Erstellung automatisierbarer Testfälle verfügbar machen Automatisierte Durchführung aller notwendigen, aber einfachen Tests: Mitarbeiter für die fachlich komplexen, evtl. nicht sinnvoll automatisierbaren Tests verfügbar machen Durchführung von Tests, die eine stets exakte Wiederholung der Programmausführung voraussetzen (z.B. definiertes Laufzeitverhalten) 40
  • 42. Potenzial von automatisierten Software-Tests (2) Durchführung von Regressionstests: häufige, exakte Wiederholung Durchführung von Lasttests: Vielzahl von (simulierten) Benutzern greifen parallel auf das SUT zu Reproduktion von aufwendig zu erzeugenden Laufzeitfehlern, um Fehlerbehebung und Re-Test zu unterstützen Beschleunigung der gesamten Testausführung bessere Software-Qualität durch Erhöhung von Testabdeckung und Testintensität 41
  • 43. Vielen Dank für Ihr Interesse! Haben Sie Fragen Anregungen eigene Erfahrungen Kritik ??? 42