Quality First Software GmbHgradient
Quality First Software GmbH
ProfessionelleTestautomatisierung
Home|Kontakt|English
QF-Test  –  Das GUI Testtool für Java und Web Demo VideoDownloadQF-Test BroschüreQF-Test

Fallstudie - CoreMedia Content Management System

CoreMedia

Über CoreMedia:

CoreMedia ist Innovationsführer für people-centric social Software. In dem hochdynamischen Markt für Internet-Technologie hat sich das Hamburger Unternehmen erfolgreich positioniert. Innovation, Kreativität und kollektives Lernen sind die bestimmenden Faktoren für die Unternehmenskultur von CoreMedia, die sich auch in der Technologie widerspiegeln: CoreMedia entwickelt Software, die Mitarbeiter, Partner und Kunden dabei unterstützt schnell, kreativ und produktiv zu agieren.

Gegründet 1996 am Stammsitz Hamburg, beschäftigt CoreMedia weltweit 150 Mitarbeiter und verfügt über ein globales Netzwerk von Implementierungs-Partnern mit über 500 geschulten Beratern.

Über 200 Unternehmen auf 5 Kontinenten in allen Branchen setzen CoreMedia Content Management Systeme (CMS) und digitales Rechtemanagement (DRM) erfolgreich ein - darunter ARD, Bertelsmann, BenQ, BILD, Continental, DAK, DaimlerChrysler, debitel, Deutsche Telekom, GMX, IKK, NEC, MLP, Motorola, Nokia, O2, Panasonic, Plus, PREMIERE, Quelle, Qualcomm, Samsung, SEAT, Sony Ericsson, T-Mobile, T-Online und Vodafone sowie über 80 öffentliche Verwaltungen und Behörden. CoreMedia hat für seine Innovationskultur und Produkte in den letzten Jahren viele internationale Auszeichnungen erhalten, darunter den European Business Award, den Best Innovator sowie die Aufnahme in die Deloitte Technology Fast 50 für schnell-wachsende Unternehmen.

Deutsche Übersetzung eines Beitrags im Forum Facebook von Mark Michaelis, Software Engineer Quality Assurance, CoreMedia AG, Hamburg:

Bezüglich der armseligen GUI Testautomatisierungstools: Ich bin auch der Meinung, dass GUI Testautomatisierung eine der herausfordernsten Aufgaben im Testbereich darstellt. Es bedarf langwieriger Evaluationen, um das passende Automatisierungstool zu finden, und insbesondere eines, das vom gesamten Team angenommen wird.

Für Java (Swing Anwendungen) haben wir von WinRunner (welches wir jahrelang benutzt haben) auf QF-Test gewechselt. WinRunner wurde aufgrund seiner eigenen Sprache TSL nicht vom ganzen Team akzeptiert. Im Gegensatz dazu wurde QF-Test in Java entwickelt und verwendet Jython als Skriptsprache. Eine großartige Basis für Java-Entwickler. QF-Test besitzt noch viel mehr Vorzüge, aber ich werde mich hier auf drei beschränken:

bullet 
Da QF-Test in Java geschrieben wurde, entstehen keinerlei Schwierigkeiten mit den neuesten Java-Releases. Es war kinderleicht, von Java 1.5 auf Java 1.6 Testen umzusatteln.
bullet 
Tests können in einer Weise implementiert werden, dass auch Manager nachvollziehen können, was der Test macht, ohne zu sehr ins Detail gehen zu müssen.
bullet 
Tolle Unterstützung von datengetriebenem Testen. Habe nie zuvor so viele Testfälle in so kurzer Zeit erstellen können.

Wegen der Robustheit der GUI Testautomatisierung: Ich denke, es müssen zwei Voraussetzungen geschaffen werden, um Tests so robust wie möglich zu bekommen. Eine wurde bereits in dem von Ihnen zitierten StickyMinds Artikel erwähnt: Entwickler miteinbeziehen. Es ist auf jeden Fall notwendig, Testunterstützung in die Anwendung einzubauen. Im einfachsten Fall ist das, GUI Elementen eindeutige IDs zu geben (in Java über setName()).

Ein weiterer Punkt ist die Verwendung einer GUI-Map (einen Begriff, den ich von WinRunner gelernt, aber auch für QF-Test übernommen habe): Man legt die Regeln zur Identifikation von GUI Elementen in einer eigenen Datenbank/Datei ab. So muss man nur diese Datei im Falle kleinerer GUI-Änderungen anfassen.

Aber die wichtigste Sache ist die Erstellung eines Test-Frameworks. Beispielsweise habe ich für jede Menü-Aktion (jede im XP-Sinne: jede aktuell verwendete) eine Bibliotheksfunktion geschaffen. Entwickler brauchen diese nur aufrufen und sich nicht darum kümmern, ob ein Radio-Button oder ein Drop-down Liste dahinter steckt. Wenn das GUI Element seinen Typ ändert, muss man nur das Framework anpassen.

Selbst komplexere Funktionen sind in das Framework gewandert. Zu Beispiel habe ich für das CMS Bibliotheksfunktionen erstellt, die automatisch Dokumente generieren (über die Benutzeroberfläche). Dadurch ist es für Entwickler sehr einfach, Testvorrichtungen/Fixtures zu erhalten, mit denen sie arbeiten können.

Zu guter Letzt zurück zum Programm - ich ergänzte die Anwendung mit einer GUI-Test-Fassade. Das hat zwei Vorteile:

bullet 
Ich kann auf das Innere der Anwendung zugreifen.
bullet 
Entwickler können sehen, dass und wie ich das tue und können daher während der Programmüberarbeitung darauf Rücksicht nehmen.

Durch diese drei Hilfsmittel

bullet 
GUI Maps
bullet 
GUI Test Framework
bullet 
GUI Test Fassade

konnte ich schließlich ein sehr robustes Set von GUI-Tests schaffen.

(Hier finden Sie einen Evaluationsbericht des gleichen Autors).