Was QA nicht machen soll

Saturday, 24. October 2009 0:42

Es gibt immer große Missverständnisse über die Rolle von QA/Test. Einige Leute wollen, dass QA das Produkt explizit freigibt und notfalls es aufhält, wenn es schlecht ist. Andere meinen, dass es besser ist, wenn QA einfach nur eine Empfehlung ausspricht.

Jon Bach hat heute auf der STPCon 2009 mit einem kurzen Satz schön zusammengefasst, welche Aufgabe QA hat. Ich teile seine Ansicht voll.

QA does not make quality. QA helps to make an informed decision about the quality.

QA/Test stellt den Zustand der Software/Hardware fest und informiert darüber. QA wird sich auf keinen Fall die Aufgabe auf den Tisch ziehen, zu richten. Das soll bitteschön der Auftraggeber, Programmmanager oder Projektmanager machen. Er bekommt den Bonus, er darf entscheiden. QA hilft nur dabei und zwar so gut, dass er eigentlich nicht anders kann, als der QA-Empfehlung zu folgen.

Category: Quotations, Testing | Comments (0)

Die Gewöhnung an Abweichungen

Friday, 23. October 2009 3:40

Mike Mullane - Riding RocketsHeute hatte ich das Vergnügen, den Space Shuttle Astronauten Mike Mullane auf der STPCon 2009 kennenzulernen. Die STPCon ist eine Testkonferenz und Mike wurde eingeladen, um aus Sicht eines Astronauten Motivation zum Thema Testen zu versprühen. Man kann sich ja durchaus vorstellen, dass die NASA eventuell Sachen vorher ausprobiert, damit es dann erfolgreich fliegt.

Mike erzählte wunderbar, wie man als Astronaut lernen muss, die Toilette zu treffen, wie er zu NASA gekommen war, wie die Flugcomputer des Shuttles grob funktionieren usw. Aber der eigentliche Kern seiner Rede war Normalization of Deviance und es klang zunächst überhaupt nicht nach Testen.

Er erklärte uns verständlich, wie die Normalisierung von Abweichungen bzw. treffender die Gewöhnung an Abweichungen schlussendlich zu Katastrophen führt. Im Fall der NASA zu Unglücken, wie der Explosion des Challenger-Shuttles 1986.

Der Grund für das Unglück lag in einfachen Gummidichtungen (O-Ringe). Diese Ringe dichten die Feststoffraketen-Segmente ab. O-Ringe dürfen nicht porös werden und niemals mit Hitze in Kontakt kommen, denn das Innere der Rakete brennt aus und die Flamme darf nur nach unten und niemals zur Seite entweichen.

Der Hersteller entdeckte sehr zeitig, dass die Dichtungsringe mit Brandspuren von den Flügen zurückkehrten und alarmierte die NASA, da laut Vorschrift und Spezifikation niemals ein Ring mit Flammen in Kontakt kommen durfte. Da die NASA zu dieser Zeit unter extremen Druck stand, hat man das Problem verzögert, ignoriert und heruntergespielt. Immer mehr Flüge kamen mit immer mehr Schäden zurück, aber da bisher nichts passiert war, hielt man das Problem für hinnehmbar, obwohl die ursprüngliche Spezifikation und alle Warnungen des Herstellers andere Dinge erzählten.

Jeder Flug ohne offensichtliche Probleme, aber mit beschädigten Ringen, war quasi die Bestätigung der Abweichung. “Eigentlich haben wir doch kein Problem.” “Ist schon nicht so schlimm, ging doch bisher.” Am 28. Januar 1986 trat dann genau die Situation ein, die viele vorhergesagt hatten. Ein Techniker hatte sich nur um 73 Sekunden geirrt. Er hatte die Explosion am Boden erwartet.

Mit diesem drastischen Beispiel menschlicher Gewohnheit, hat er sehr schön einen unserer typischen Fehler vorgeführt, denn wir nehmen oft unter Druck Abkürzungen und gewöhnen uns dann daran, weil es ja gut ging. Jede erfolgreiche Abkürzung wird zur Bestätigung der Abkürzung, weil ja nichts passiert ist.

Für uns Tester heißt das übertragen, dass ein aus Zeitgründen ausgelassener Test wohl auch beim nächsten Mal ausgelassen wird bzw. man uns dazu “zwingt”, darauf zu verzichten, weil beim letzten Mal ja alles in Ordnung war.

Am Ende des Vortrages habe ich dann sein Buch Riding Rockets erworben, es widmen lassen und ihm die Hand geschüttelt, denn er hat Recht. Wir gewöhnen uns viel zu oft an unsere Ausnahmen und Abkürzungen… bis es eines Tages zu spät ist. In seinem Geschäft wird das dann eine Meldung in den Abendnachrichten. Glücklicherweise ist es in unserem Geschäft meist “nur” ein finanzieller Verlust.

Category: Books, Testing, Things went wrong | Comments (0)

Was sind Visits, was sind Sessions?

Sunday, 18. October 2009 1:07

Wenn wir mit Kunden über die möglichen Lasttesteckdaten sprechen, dann ist immer wieder von Visits und Sessions die Rede. Beide Begriffe stammen aus dem Englischen, sind aber durch das Internet und die meist in Englisch ablaufende Softwareentwicklung in den allgemeinen Sprachgebrauch im Bereich Last- und Performancetests eingegangen. Selbstverständlich gibt es auch deutsche Entsprechungen, wenn auch weniger oft benutzt: Besuche und Sitzungen.

Warum geht es im Allgemeinen?

Visits und Sessions sind Begriffe aus der Webentwicklung, werden aber auch als Metriken im Webumfeld genutzt. Der technische Teil verbindet sich in der endgültigen Definition mit der wirtschaftlich/mathematischen zur eigentliche Bedeutung. Was wir also wollen ist: a) wissen was dahinter steckt, b) erfahren was die Begriffe definieren und c) wissen wozu man die Zahlen braucht.

Was ist ein Visit?

Wenn man sich dazu entschließt, eine Webseite zu besuchen, dann ruft man irgendwann eine erste Seite auf. In diesem Moment hat man einen Visit begonnen oder auf Deutsch – man ist zum Besucher geworden. So lange man sein Surfen auf dieser Webseite fortsetzt, solange setzt man seinen Visit fort. Alle einzelnen Seiten zusammengenommen, bilden damit, beginnnend mit der ersten Seite, einen Visit.

Für den Betreiber ist damit klar, dass ein Interessent oder Kunde seiner Webseite einen Besuch abgestattet hat. Am besten läßt sich das mit dem Besuch eines realen Ladens vergleichen. Wenn man in den Laden geht, dann beginnt man seinen Besuch/Visit und wenn man ihn wieder verlässt, dann endet der Besuch/Visit.

Natürlich gibt es auch Ausnahmen von der Regel. Wenn man nur mal schnell 5 Minuten in die Küche geht bzw. in einem realen Laden schnell zum Auto läuft, weil man sein Geld vergessen hat, dann zählt das nur als ein Visit, weil man nur eine Besuchsabsicht hatte.

Über die Metrik Visit läßt sich damit einfach messen, wieviele Besuchsabsichten pro Zeiteinheit vorgelegen haben und auch in die Tat umgesetzt wurden. Dabei spielt es keine Rolle, ob man etwas kauft, zurückbringt oder gleich wieder an der Tür kehrt macht.

Im Internet gibt es nicht nur echte Besucher, sondern auch jede Menge Automaten, die sich in den Netzweiten herumtreiben und mit jedem Abruf einer oder mehrerer Seite jeweils auch einen Visit erzeugen. Das bringt natürlich die Statistiken durcheinander. Deshalb versucht man durch technische Maßnahmen, diese meist unrelevanten Besuche herauszurechnen. Das Wie kann bei Interesse ein weiterer Blogeintrag werden.

Was ist eine Session?

Nun haben wir geklärt, was hinter dem Begriff Visit steckt, aber was ist dann eine Session?

Einfach gesagt, ist eine Session die technische Abbildung eines Besuchs/Visit. Die genutzte Technik und Software müssen sich nämlich merken, welche Anfragen zusammengehören, damit es möglich wird, Dinge wie ein Login oder einen Warenkorb technisch umzusetzen.

Sessions bestehen aus Daten, die Informationen über die Vorgänge des Visits zusammenfassen, oft als Sessioninformationen bezeichnet. Diese Datensätze haben im Regelfall eine begrenzte Lebenszeit. Wenn man seinen Visit beendet bzw. nicht fortsetzt, also nicht mehr klickt, dann beginnt eine Uhr zu ticken, die nach eine einstellbaren Zeit (oft 30 Minuten bis 2 Stunden), die Daten entfernt, damit es zu keinen Überläufen kommt. Das nennt sich Session-Timeout. Nimmt man vor Ablauf der Zeit seinen Besuch wieder auf, kommt also in den Laden zurück, dann beginnt die Uhr von Neuem zu ticken.

Vergleichbar ist es mit der Situation, dass man an der Kasse sein Geld nicht findet, den Korb schnell an der Kasse lässt, um Geld zu holen. Kommt man nun nicht rechtzeitig zurück, dann hat jemand den Korb ausgeräumt und die Waren zurückgestellt.

Die Anzahl der Sessions müsste eigentlich immer gleich der Anzahl der Visits sein. Da aber Visits oft anders gezählt werden, weil geschäftliche Kriterien dahinter stehen und keine technischen, liegen oft die Visits unter der Anzahl der Sessions pro Zeiteinheit.

Wir hoffen, dass diese kurze Erklärung hilft, die Begriffe Visit und Session zu verstehen und auseinander zu halten.

Category: Performance, Testing, XLT | Comments (0)

Begriffe erklärt: Lasttest, Stresstest, …

Wednesday, 16. September 2009 11:25

Es gibt zahlreiche Begriffe für die verschiedenen Lasttest-Arten. Unsere Erfahrung aus der täglichen Arbeit, aus Gesprächen mit Kunden und aus der Auswertung von Suchwörtern zeigt, dass die Begriffe oft unklar sind und manchmal nicht ganz korrekt benutzt werden. Daher möchten wir hier unsere Sicht auf diese Begriffe darstellen.

  • Lasttest: Bei einem Lasttest wird die zukünftige Nutzung des zu testenden Systems unter Berücksichtigung bestimmter Benutzer- und Transaktionsmengen simuliert und bewertet. Dabei werden zwei grundsätzliche Ziele verfolgt. Das erste Ziel ist die Aufdeckung funktionaler Fehler, die nur unter paralleler oder intensiver Nutzung des Systems auftreten. Das zweite Ziel ist die Überprüfung des Zeit- und Verbrauchsverhaltens des getesteten Systems unter einer gegebenen Last. Dabei werden beispielsweise Antwortzeiten sowie der Verbrauch von Hauptspeicher und Rechenleistung ermittelt. Lasttests können auf unterschiedliche Aspekte eines Systems ausgerichtet sein. Dafür sind jeweils auch unterschiedliche Lastprofile und Testszenarien erforderlich, die oft mit eigenen Begriffen bezeichnet werden. Beispiele dafür sind “Skalierungstest”, “Stresstest” oder “Dauerlasttest”. Der Begriff “Lasttest” ist der Oberbegriff für alle diese Testarten.
  • Stresstest: Bei einem Stresstest wird die simulierte Last über das im Normalbetrieb erwartete Maß erhöht, bis funktionale Fehler auftreten oder das Antwortverhalten des getesteten Systems bestimmte Grenzen überschreitet. Hierfür wird oft eine kontinuierlich ansteigende Nutzerzahl simuliert. Stresstests verwendet man beispielsweise zur Ermittlung des Systemverhaltens in und nach Überlastsituationen, zur Ermittlung der maximal akzeptierbaren Last oder zum Finden von Performance-Schwachstellen (Bottlenecks). [...]

Category: Performance, Testing | Comments (0)

Xceptance LoadTest 3.3 ist verfügbar

Thursday, 10. September 2009 16:45

Ab sofort steht das Softwarepaket Xceptance LoadTest (XLT) 3.3 zum kostenlosen Download bereit.

Dahinter verbirgt sich schon die erste Neuerung, denn mit dem Download besitzt man automatisch eine freie Basislizenz. Sie erlaubt Tests mit bis zu fünf virtuellen Nutzern, gilt zeitlich unbegrenzt und unterliegt keinen Nutzungseinschränkungen. Damit darf man XLT auch kommerziell einsetzen, beispielsweise intern oder in Kundenprojekten. So kann man ungehindert prüfen, ob XLT das Werkzeug der Wahl ist oder man kann XLT bereits produktiv für Regressionstests verwenden.

XLT 3.3 bietet einige neue Features, die die tägliche Arbeit effizienter gestalten und den Einsatzbereich von XLT erweitern:

  • Comparison-Reports zum detaillierten Vergleich zweier Testläufe
  • Trend-Reports zur Visualisierung von Veränderungen in den Testergebnissen über mehrere Testläufe hinweg
  • Unterstützung des Google WebDriver API für schnelles Prototyping von Testfällen
  • Ruby als zusätzliche Scriptsprache zur Testfallerstellung
  • Programmierbeispiele für typische Anwendungsfälle, zum Beispiel für die Bearbeitung von Ajax-Requests und die Behandlung von Popups oder Frames
  • Überarbeiteter Testrecorder mit der Unterstützung für Voreinstellungen zur Codegenerierung

Zusätzlich sind wieder viele Detailverbesserungen in diese Version eingeflossen. Weiterführende Informationen gibt es in den Releasenotes oder auf den Produktseiten unseres Webauftritts.

Category: Performance, Software, Testing, XLT | Comments (0)

JavaScript Beautifier – Code schön gemacht

Tuesday, 8. September 2009 15:32

Beim Debuggen von Webanwendungen steht man oft vor einem Haufen Javascript-Code, der eingedampft wurde, um Bandbreite zu sparen und die Verarbeitungszeiten zu drücken.

Der JavaScript Beautifier ist eine schnelle und elegante Lösung, den Code wieder einigermaßen lesbar zu bekommen.

Category: Links, Software Development | Comments (0)

Ubuntu 9.04 will nicht schlafen oder überwintern

Saturday, 5. September 2009 11:37

Nach dem letzten Update meines Ubuntu 9.04 verweigern Suspend und Hibernate den Dienst. Der Rechner will einfach nicht einschlafen, sondern begrüßt mich Sekunden nach seinem Einschlafversuch mit dem Loginscreen. Nach einigen Versuchen eine Lösung zu googeln, bin ich über die Ausgabe des Kommandos dmesg gestolpert:

...
[45033.091602] runnable tasks:
[45033.091602] task PID tree-key switches prio
[45033.091603] ----------------------------------------------
[45033.091648] beagled-helper
...

Laut dieser Liste blockiert Beagle den Schlafmodus des Rechners. Also einfach mal alle Prozesse mit Beagle im Namen gekillt und siehe da, Suspend und Hiberate (Ruhezustand) funktionieren wieder. Alles in allem ist das aber sehr ärgerlich, weil wohl die wenigsten Standardnutzer sich so zu helfen wüssten. Ich bin auch ein Linux-Neuling und versuche langsam von Windows zu Linux zu migrieren. Leider gibt es noch einige Kleinigkeiten, die mich vom Volleinsatz bzw. Nur-Linux-Betrieb abhalten. Unter anderen Probleme mit dem IO-Scheduler, aber das ist eine andere Geschichte.

P.S. Vielleicht ziehen ja auch nur Tester und QA-Leute Fehler magisch an…?

Category: Linux, Software, Things went wrong | Comments (0)

XLT-Scriptrecorder Update-Benachrichtigung

Wednesday, 2. September 2009 22:49

Update Benachrichtung XLT Script-RecorderAlle Teilnehmer am XLT-3.3 Beta-Programm sollten in den nächsten Tagen von ihrem Firefox über das Update des XLT-Script-Recorders benachrichtigt werden, da die finale Version von XLT 3.3 vor einigen Tagen veröffentlicht wurde.

Der Script-Recorder ist für Firefox 3 und 3.5 geschrieben und funktioniert auf allen populären von Firefox unterstützten Plattformen. Selbst getestet haben wir die Kombination mit Microsoft Windows XP und Vista, Linux Ubuntu und Fedora, sowie MacOS X.

Category: XLT | Comments (0)

Die neuen Websites sind endlich live

Saturday, 29. August 2009 16:28

Endlich sind wir live mit unseren neuen Websites www.xceptance.de und www.xceptance.com. Das Design wurde komplett überarbeitet, alle Inhalte wurden angepasst oder oft sogar komplett neu erstellt. Besonders viel Wert haben wir auf die Präsentation unseres Produktes XLT gelegt. Wir hoffen, Euch gefällt unser neuer Auftritt. Anregungen, Vorschläge und auch Beschwerden sind jederzeit willkommen.

Wir haben in der Galerie nochmal die Evolution unserer Website zusammengefasst. Sieht doch nach Fortschritt aus, oder?

Als Hintergrundinformation sei noch verraten, dass wir Typolight als CMS einsetzen und beide Sites im gleichen System betreiben. Ganz so einfach wie wir es uns ursprünglich vorgestellt hatten, war es trotzdem leider nicht. Dazu soll aber noch ein Blogartikel folgen, der unsere Erfahrungen mit Typolight beschreibt.

Category: Misc | Comments (0)

Alles neu macht der August

Thursday, 20. August 2009 19:27

Unser Blog früherEs wurde einfach Zeit! Zeit ein neues Blogdesign aus dem Hut zu zaubern, und damit unser Blog mehr in Richtung eines einheitlichen Xceptance-Webdesigns zu bewegen.

Vom alten Design haben wir leider nur diesen kleinen Screenshot übrig. Macht aber nichts, denn es war ohnehin ein Original-Wordpress-Theme ohne Anpassungen.

Hoffentlich gefällt Euch das neue Design?! In eine ähnliche Richtung wird auch das Redesign unsere Firmen-Homepage gehen, allerdings noch radikaler. Natürlich geht dabei nicht die gewisse Prise Xceptance verloren.

Category: Misc | Comments (0)