Thomas Preymesser - Software und Beratung



Entwicklungen für die Bühne des Lebens
... growing projects

AWT - Automated Website Tests
 Automatisierte Website-Tests

Regressionstests, Continuous Integration

Sie betreiben eine Website im World-Wide-Web und möchten sicherstellen, daß es nicht zu Ausfällen (ganz oder teilweise) Ihrer Web-Präsenz kommt, da dies für Sie eventuell mit finanziellen Einbußen verbunden ist. Sie möchten sicherstellen, daß Ihre Web-Präsenz auch während einer Neuentwicklung oder Erweiterung laufend auf Funktionsfähigkeit getestet wird?

Wir bieten Ihnen automatisiertes, in regelmäßigen Abständen wiederholtes Testen Ihre Site(s) an. Ein typisches Szenario wäre, daß Sie natürlich gerne darüber informiert wären, wenn Besucher Ihrer Site nichts mehr bei Ihnen bestellen können oder Seiten durch irgendwelche Umstände nicht angezeigt werden können. Statt diese Funktionen täglich selbst zu überprüfen, können Sie auch einfach unseren Service in Anspruch nehmen. Unsere Testprogramme besuchen, wie ein normaler Besucher, Ihre Seiten und prüfen, ob alle Seiten und Funktionen noch korrekt aufgerufen werden können. Falls dies nicht der Fall sein sollte, werden sie automatisch per eMail darüber und detailliert über den Fehlergrund informiert. Sie müssen hierzu bei sich sich auch keinerlei neue Programme installieren. Dabei können Sie mit uns vereinbaren, was und in welchen zeitlichen Abständen getestet werden soll.

  • Was läßt sich testen? Leicht läßt sich testen, ob bestimmte Seiten überhaupt aufrufbar sind (z.B. die Startseite oder die Impressum-Seite.). Desweiteren läßt sich einfach testen, ob ein bestimmter Text oder eine Textphrase auf der Seite angezeigt wird. Man kann testen, ob bestimmte Hyperlinks auf einer Seite angezeigt werden. Es können Formulare auf einer Seite ausgefüllt werden, z.B. Login auf einer Seite, Anmeldung als neuer Benutzer und Testen, ob die Neuanmeldung funktioniert hat, Ausfüllen eines Bestellformulars in einem Online-Shop, Ausfüllen eines Suchformulars und durchführen einer Suche, usw.
  • Was sich nicht testen läßt Schwierig bis unmöglich per Programm zu testen sind solche Sachen wie, ob alle Farben oder das Design einer Seite so ist, wie gewünscht. Dies wird man aber auch in der Regel nicht regelmäßig überprüfen wollen.

Beispiel: Bei einer bestimmten Web-Präsenz werden verschiedene Seite zum einen getestet, ob sie abrufbar sind (wie zum Beispiel die Impressum-Seite, die Anmeldeseite, die Login-Seite usw.) Dann wird versucht, sich als neuen Teilnehmer anzumelden. Dies ist essentiell wichtig bei Seiten, die nicht nur reine Informationen anzeigen, sondern bei denen es wichtig ist, daß sich neue Mitglieder anmelden koennen. Falls diese Funktion aus irgendeinem Grund nicht mehr geht, ist sofortiges Handeln angesagt. In diesem Fall würde eine Email folgenden Inhalts an Sie verschickt werden:

 
Sehr geehrter Herr Mustermann, 
 
Hier sind die Ergebnisse Ihres automatisierten Web-Site Tests: 
-------------------------------------------------------------- 
 
1: error Fri Sep 15 09:32:21 CEST 2006 register_new Registrieren 
als neuer Benutzer geht nicht 
 
Ergebnis: Fehler aufgetreten. 
 
Test gestartet um: Fri Sep 15 09:32:11 CEST 2006 
Test beendet um:   Fri Sep 15 09:32:21 CEST 2006 
Anzahl Tests:      20 
Anzahl Fehler:     1 
 
Hier werden nur die Fehler aufgelistet. Falls gewünscht, können Sie auch ein ausführliches Protokoll bekommen, in dem alle Tests aufgeführt sind (fehlerhafte Tests sind mit 'error' am Anfang der Zeile markiert).

 
Sehr geehrter Herr Mustermann, 
 
Hier sind die Ergebnisse Ihres automatisierten Web-Site Tests: 
-------------------------------------------------------------- 
 
1: info Fri Sep 15 10:03:50 CEST 2006 page_can_be_accessed? http://www.thopre.com/rails/lulaliebe/liebe/index 
2: info Fri Sep 15 10:03:51 CEST 2006 page_can_be_accessed? http://www.thopre.com/rails/lulaliebe/liebe/new 
3: info Fri Sep 15 10:03:51 CEST 2006 page_can_be_accessed? http://www.thopre.com/rails/lulaliebe/liebe/login 
4: info Fri Sep 15 10:03:52 CEST 2006 page_can_be_accessed? http://www.thopre.com/rails/lulaliebe/liebe/profil 
5: info Fri Sep 15 10:03:52 CEST 2006 page_can_be_accessed? http://www.thopre.com/rails/lulaliebe/liebe/premiummitgliedschaft 
6: info Fri Sep 15 10:03:53 CEST 2006 page_can_be_accessed? http://www.thopre.com/rails/lulaliebe/liebe/wiedersehen 
7: info Fri Sep 15 10:03:53 CEST 2006 page_can_be_accessed? http://www.thopre.com/rails/lulaliebe/liebe/suchen 
8: info Fri Sep 15 10:03:53 CEST 2006 page_can_be_accessed? http://www.thopre.com/rails/lulaliebe/liebe/favoriten_des_monats 
9: info Fri Sep 15 10:03:54 CEST 2006 page_can_be_accessed? http://www.thopre.com/rails/lulaliebe/liebe/kontakt 
10: info Fri Sep 15 10:03:54 CEST 2006 page_can_be_accessed? http://www.thopre.com/rails/lulaliebe/liebe/logout 
11: info Fri Sep 15 10:03:55 CEST 2006 page_include? http://www.thopre.com/rails/lulaliebe/liebe/new 
12: info Fri Sep 15 10:03:55 CEST 2006 page_include? http://www.thopre.com/rails/lulaliebe/liebe/new 
13: info Fri Sep 15 10:03:56 CEST 2006 page_include? http://www.thopre.com/rails/lulaliebe/liebe/new 
14: info Fri Sep 15 10:03:56 CEST 2006 page_include? http://www.thopre.com/rails/lulaliebe/liebe/new 
15: info Fri Sep 15 10:03:57 CEST 2006 page_include? http://www.thopre.com/rails/lulaliebe/liebe/new 
16: info Fri Sep 15 10:03:57 CEST 2006 page_include? http://www.thopre.com/rails/lulaliebe/liebe/new 
17: info Fri Sep 15 10:03:58 CEST 2006 page_include? http://www.thopre.com/rails/lulaliebe/liebe/new 
18: info Fri Sep 15 10:03:58 CEST 2006 page_can_be_accessed? http://www.thopre.com/rails/lulaliebe/liebe/login 
19: info Fri Sep 15 10:03:58 CEST 2006 page_can_be_accessed? http://www.thopre.com/rails/lulaliebe/liebe/login 
20: info Fri Sep 15 10:03:59 CEST 2006 register_new http://www.thopre.com/rails/lulaliebe/liebe/new 
21: error Fri Sep 15 10:04:01 CEST 2006 register_new Registrieren als neuer Benutzer geht nicht 
 
Ergebnis: Fehler aufgetreten. 
 
Test gestartet um: Fri Sep 15 10:03:50 CEST 2006 
Test beendet um:   Fri Sep 15 10:04:01 CEST 2006 
Anzahl Tests:      20 
Anzahl Fehler:     1 
 

Wie dieses Beispiel vielleicht suggerieren könnte, wird jedoch nicht nach dem ersten gefundenen Fehler abgebrochen, sondern alle definierten Test werden durchlaufen. Hierbei ist aber zu beachten, daß eventuelle Folgefehler auftreten, die auf einen vorherigen Fehler zurückzuführen sein können. Wenn beispielsweise die Anmeldeseite überhaupt nicht aufgerufen werden kann, dann kann die eigentliche Anmeldung natürlich auch nicht funktionieren.

Wie oft werden Tests durchgeführt? Unsere Tests laufen standardmäßig täglich (7 Tage die Woche), im Laufe des Vormittags. Dieses System soll bei Bedarf noch erweitert und flexibler gestaltet werden. Wenn Sie andere Testzyklen benötigen, vereinbaren Sie dies bitte mit uns. Wir können hier sehr flexibel auf Ihre Bedürfnisse eingehen.

Sie können uns Dateien in folgendem Format zusenden, in der die zu überprüfenden Seiten auf Ihrer Homepage eingetragen sind. Wenn Sie uns die Dateien in diesem Format zusenden, ist der Aufwand für uns minimal, neu zu testendend bzw. Geänderte Seiten zum Testen einzubauen. Befehle Folgende Befehle sind bisher eingebaut und können von Ihnen verwendet werden:
@base = "http://www.ihredomain.de/" # dies legt die Basisadresse Ihrer Homepage fest
# Sie können sich dadurch bei den nachfolgenden
# Befehlen Tipparbeit sparen, bzw. steigert dies
# die Übersichtlichkeit bei den folgenden Befehlen
# Dieser Befehl muß am Anfang der Datei stehen,
# bevor die folgenden Befehle angewandt werden
# können.
@verbose = true (oder false) # Hiermit legen Sie fest, ob sie in Ihrem
# Testprotokoll alle Test aufgelistet haben wollen,
# oder nur die Tests, die Fehler verursacht haben.
# bei true werden alle Testfälle aufgelistet
# bei false werden nur Fehler aufgelistet
page_can_be_accessed? "index.html" # Testet, ob die Datei index.html auf Ihren Seiten
# aufgerufen werden kann
# Die vollständige Adresse wird hier gebildet,
# indem die bei @base angegebene Adresse und
# der Seitenname hier miteinander verknüpft
# werden
# Sie eine Seite mit folgendem Format angeben
page_can_be_accessed? "http://externes.gaestebuech.de/?user=12345" # Erkennen unsere Tests, daß diese Adresse nicht
# mit @base verknüpft werden soll sondern eine
# eigenständige Adresse darstellt.
page_can_be_accessed? "impressum.html"
page_can_be_accessed? "online_shop.php" # Testet, ob man den Online-Shop aufrufen kann
page_exist? "index.html" # identisch mit page_can_be_accessed?
page_include? "online_shop.php" "Willkommen im Online-Shop von XYZ GmbH" # Testet, ob bestimmter Text ausgegeben erscheint # wenn eine Seite aufgerufen wird.
# Damit können Sie testen (lassen) ob auch
# wirklich die erwartete Seite angezeigt wird

Desweiteren können Sie uns Befehle in folgendem oder ähnlichem Format zusenden. Diese Befehle können zwar noch nicht automatisch in unsere Testprogramme eingebaut werden, aber Sie beschreiben damit für uns, was getestet werden soll.

login_as_user "login.php" { 
username = "Testuser" 
password = "geheim" 
success_string = "eingeloggt als Testuser" 
} 
 

Diese Sequenz beschreibt, daß ein Test erstellt werden soll, bei dem man sich auf der Seite "login.php" als Benutzer "Testuser" mit dem Passwort "geheim" anmelden soll. Wenn der success_string daraufhin auf der Seite angezeigt wird, ist der Login gelungen. Dieses Beispiel müssen Sie natürlich auf Ihre Seite anpassen. Wir testen in unseren Tests also, ob man sich mit diesen Daten einloggen kann. Falls ja, wurde der Test bestanden, ansonsten bekommen Sie einen Fehler zurückgemeldet. Mit solchenTest läßt sich grundsätzlich testen, ob ein Anmelden auf Ihren Seiten (noch) funktioniert. Sie müßten hierfür natürlich am besten einen Test-User anlegen, damit wir die Tests auch durchführen können.

In ähnlichem Format können Sie beschreiben, daß sich jemand ein neuen Benutzer einträgt (einschließlich aller Felder, die bei Ihrer jeweiligen Anwendund hierfür auszufüllen sind (Name, Adresse, Email, etc.)

Wenn weitere, umfangreichere Test auszuführen sind, wie beispielsweise Suchabfragen, Bestellungen in einem Shop, beschreiben Sie uns dies am besten frei formuliert. Solcherlei Test müssen von uns ohnehin manuell erstellt werden.

Desweiteren können wir bei unseren Tests durchspielen, daß Ihre Seiten mit unterschiedlichen Browser-Typen (IE, Mozilla, Safari, etc.) aufgerufen werden. Hier lassen sich Probleme aufspüren, die nur bei einem bestimmten Browser auftreten würden. Manuell wären Tests mit verschiedenen Browsertypen fast nicht durchführbar.

Unser Testsystem und die individuellen Testprogramme sind in der modernen objektorienten Skript-Sprache Ruby geschrieben. Dies ermöglicht flexibles und pragmatische Erweitern um neue oder geänderte Funktionalität im gesamten Testsystem. Dabei stellen interne Unit-Tests sicher, daß das gesamte Testsystem bei Änderungen robust auf Problemfälle oder früher aufgetretene Fehlersituationen reagiert.

Tests schlagen fehl, was ist zu tun?
Daß Tests fehlschlagen, kann verschiedene Ursachen haben. Vielleicht existiert eine zu prüfende Seite bei Ihnen nicht mehr oder hat jetzt einen anderen Namen. In diesem Fall können unsere Tests die Seite nicht mehr finden. Senden Sie uns in diesem Fall einfach ein Liste mit Ihren Seiten (im oben angesprochenen Format), wir bauen diese neue Liste dann bei uns ein. Denken Sie bitte auch daran, die Liste zu ergänzen, wenn neue Seiten bei Ihnen hinzugekommen sind und diese auch getestet werden sollen.

Preise
Die Gebühren für unseren Service setzen sich zusammen aus einer einmaligen Setup-Gebühr für die Einrichtung und monatlichen Gebühren für die laufenden Tests. Weitere Details entnehmen Sie bitte der Preisliste. Die Setup-Gebühren beinhalten den Einbau mit den von Ihnen gelieferten Test-Befehlen und Tests für einfaches Login. Sollte unser Aufwand für die Erstellung der Tests mehr als einen Arbeitstag benötigen, so stellen wir Ihnen diesen Aufwand noch gesondert in Rechnung (wir werden Sie hiervon aber vorher noch in Kenntnis setzen). Desweiteren werden wir spätere Änderungen an Ihren Testszenarios, die einen etwas größeren Aufwand beinhalten gesondert anrechnen. Änderungen, die in ein paar Minuten erledigt sind, sind aber bereits mit den monatlichen Gebühren abgegolten.

Zahlungweise
Sie zahlen die Setup-Gebühr und monatliche Gebühren für mindestens drei Monate. Nach dem Eingang Ihrer Zahlung werden Ihre Testprogramme aktiviert, bzw. Erstellt, falls noch nicht geschehen. In letzterem Fall wird die Laufzeit aber erst ab dem ersten Tag des produktiven Einsatzes berechnet. Nach Ablauf der von Ihnen bezahlten Periode, wird der tägliche Lauf Ihrer Testprogramme eingestellt - wir erinnern Sie aber rechtzeitig vor Ablauf an eine Verlängerung. Nach einer weiteren Zahlung von Ihnen können die Testprogramme sofort wieder aktiviert werden - sie sind ja noch vorhanden. Lediglich wenn nach Ablauf eine Frist von mehr als 6 Monaten verstreicht, werden Ihre Testprogramme gelöscht und sie müßten sich neu anmelden (inkl. Setup-Gebühr).

Preise Die einmalige Setup-Gebühr beträgt 10,- €, die monatliche Gebühr betragt 5,- €.Bestellung

AWT - Setup und 3 Monate Laufzeit:


AWT - 6 Monate Laufzeit Verlängerung:


AWT - 12 Monate Laufzeit Verlängerung:


Testen Sie uns! Möchten Sie unseren Service kostenlos testen, dann schicken Sie uns Testanweisungen für Ihre Site im oben genannten Format an awt7tagetest@thopre.com! Wir senden Ihnen dann 7 Tage lang die Testergebnisse per eMail zu.

Kontakt
Thomas Preymesser
Prinzenallee 36
13359 Berlin
Telefon: 030 - 49 78 37 06
mobile: 0172-8111959
eMail: info2006@thopre.com