Lean Testing und eine Beobachtung der letzten Jahre – ein Gastbeitrag von Nils Langner

17. Januar 2017

0 Kommentare

Über den Autor: Einige von euch kennen Nils vielleicht aus seinem Blog phphatesme, die anderen von Konferenzen oder ähnlichem. Vor einem Jahr hat er sich aufgemacht das “Lean Testing”-Vorgehen unter die Leute zu bringen. Das liegt hauptsächlich daran, dass diese Testing-Methodik wunderbar zum Internet passt, aber vielleicht auch, weil er mit Leankoala die erste “Software as a Service”-Lösung in diesem Bereich auf den Markt gebracht hat. Ach ja, er schreibt Texte über sich gerne in der dritten Person.

Was haben wir nicht alles die letzten Jahre ausprobiert?! Seit über zehn Jahren habe ich mich jetzt schon in das Thema des Qualitätsmanagements gestürzt. Die meiste Zeit davon im Web. Ausprobiert habe ich fast alles und vieles lieben gelernt. Begonnen haben wir oft mit einfachen Testplänen, die wir dann genutzt haben, um manuell Webseiten durchzutesten, wenn einem das zu blöd wurde, hat man Selenium angeworfen und echte Browser automatisiert ferngesteuert. Danach wurde man etwas mutiger und hat sich Behaviour Driven Development angeschaut. Auch eine feine Sache. Die Testabdeckungen wurden immer ausgereifter und umfänglicher, was leider häufig dazu geführt hat, dass die Wartbarkeit gelitten hat. Alles in allem war man aber glücklich, da trotz des manchmal hohen Aufwandes man trotzdem schneller mit der Testen von Funktionen war, als die Entwickler neue Features rausgebracht haben.

2012, nachdem wir fast alles ausprobiert hatten, was der Markt so zu bieten hatte, wollten wir etwas Neues ausprobieren. Also schrieben wir unser eigenes kleines Werkzeug, um uns zu helfen Tests zu schreiben und durchzuführen. Wir haben es LiveTest2 genannt und es sollte dabei behilflich sein einfache Eigenschaften von Webseiten abzutesten. So konnte man zum Beispiel in einer Konfigurationsdatei sagen, dass auf jeder hinterlegten Seite der String Impressum vorkommen soll. So wollten wir sicherstellen, dass der Footer überall gerendert wird. Ziel war es möglichst einfach simple Smoke-Tests aufzustellen. Ein Test wie dieser muss schnell durchgeführt sein, um zu entscheiden, ob es sich lohnt die teuren, lange dauernden Tests auszuführen. Zu dieser Zeit sind wir zweigleisig gefahren. Einfache Tests als erste Testphase und danach die Tests, die wir mit unserem QA-Stolz gebaut hatten.

Nach einer gewissen Zeit kam dann die angekündigte Beobachtung. Jedes Mal wenn die einfachen günstigen Tests angeschlagen haben, haben uns auch die teuren alarmiert. Und wenn die einfachen Tests gesagt haben, dass alles grün ist, so haben sich die teuren angeschlossen. Daher haben wir erstmal die Theorie aufgestellt, dass LiveTest2 genauso gut ist wie andere Testing-Tools, nur mit weniger initialen Aufwand. Betrachtet man die beiden Herangehensweisen genauer, fällt einem ein großer Unterschied auf. Bei Unit-Tests, BDD-Tests und Selenium-Tests versucht man häufig jeden möglichen Fehlerfall auszutesten. Jeder potentiellen Ursache von Fehlern sollte möglichst ein Test zugeordnet sein. Bei unserer neuen Methodik ging es nicht mehr um Ursachen, sondern um Symptome.

Nehmen wir wieder das Beispiel des Footers. Sobald das Wort Impressum nicht mehr vorhanden ist, wissen wir, dass wir funktionale Probleme haben. Welche Ursache dies hat, können wir anhand des Testes nicht sagen. Der Erfahrung nach ist den Entwicklern dies aber trotzdem sehr schnell klar.

2014 kamen wir dann mit dem Begriff Lean Testing auf, den ich für diese Art des Testens prägen wollte. Dabei geht es darum sich auf Symptome zu konzentrieren und nicht mehr auf Ursachen.

Wenn man eine Weile im Internet unterwegs ist, dann ist einem klar, dass die Anzahl der Symptome, die klassischerweise auftauchen, sehr beschränkt ist. So kommt man mit einem einfachen “Http-Status-Code 200”-Test in der Integrations- oder Stage-Umgebung schon sehr weit. Fügt man dann noch die Möglichkeit hinzu nach Texten zu suchen ist man fast durch. Weil man das Web kennt garniert man das ganze noch mit XPath und Css-Selektoren. Dazu hatten wir 2015 das Open-Source Tool Smoke released, was all diese Tests beinhaltet.

2016 haben wir begonnen diese Methodik in eine “Software as a Service”-Lösung zu gießen und es ist mit dem Anfang dieses Jahre die erste Produktivversion unter www.leankoala.com erschienen.

¬ geschrieben von gjerokrsteski in Externe News & Posts

Prüfe die Brücke – die dich tragen soll

27. Juli 2012

0 Kommentare

Zum Testen von Software gehören sowohl das Aufspüren von Fehlern während der Entwicklung, als auch die Überprüfung des Gesamtproduktes. Das heißt, man sucht zunächst in einzelnen Codefragmenten nach Fehlern, und überprüft dann das Gesamtpaket auf seine Vollständigkeit und Korrektheit hin. Unzureichende oder unvollständige Dokumentationen führen häufig zu einer unzulänglichen Erfassung von fehlerhaften Anforderungen. Dies fällt besonders bei sich wiederholenden und sich schnell verändernden PHP-Entwicklungen ins Gewicht. Dies macht eine Überprüfung des Gesamtproduktes schwer und ist ein Argument gegen die klassische Software-Überprüfung in PHP-Projekten. Einige Eigenschaften von PHP in der LAMPUmgebung (LAMP= kombinierter Einsatz von Linux, Apache, MySQL und PHP) beeinflussen die Herangehensweise an Tests von Applikationen mit hohen Qualitätsansprüchen. Den ganzen Beitrag lesen.

¬ geschrieben von gjerokrsteski in Continuous Integration, PHP Tricks und Tipps

Ein Prozess im Unternehmen implementieren

4. Februar 2011

1 Kommentar

In unseren Berufsalttag entwickeln wir eine Software. Wir erzeugen kein Gegenstand, sondern verrichten eine Tätigkeit, also ein Prozess, bei dem was hergestellt wird. Dabei ist es sehr wichtig sich auf dem Prozess und auf das Produkt zu konzentrieren. Kein Kunde wird sich freuen wenn sein Produkt nicht genau das leistet was er erwartet hat, oder wenn er das Produkt nicht rechtzeitig ausgeliefert bekommt. Den ganzen Beitrag lesen.

¬ geschrieben von gjerokrsteski in Projektmanagement

Crashkurs – Testgetriebene Entwicklung

18. Dezember 2010

4 Kommentare

Letzte Woche habe ich einen zweitägigen Workshop zum Thema „Testgetriebene Entwicklung“ bei mir im Unternehmen verantwortlich gestaltet. Ich wollte euch hierüber alles schreiben: Was bedeutet das Thema? Was ist Testgetriebene Entwicklung? Wie geht man vor? Und vieles mehr.
Mein Tipp: schaut euch, wie ich das gemacht habe, vier geniale Videos bei youtube.com an. Die Videos sind von Henning Koch von der makandra GmbH und vermitteln euch alles Wissenswerte zum Thema Testgetriebene Entwicklung. Laut Henning Koch richten sich die vier Video-Crashkurse an Software-Entwickler, die einen schnellen Einstieg in die Testgetriebene Entwicklung suchen. Die vorgestellten Techniken sind für alle Sprachen relevant, egal ob Ruby on Rails, PHP, Java, Python, C# oder andere. Die Themen beinhalten unter anderem: Was sind Tests? Ein einfaches Beispiel, Testgetriebenes Implementieren von neuen Features, Testgetriebenes Bugfixing, den Überblick behalten: Kontextbeschreibungen, mit Datenbanken testen, Testumgebungen, Testdaten effizient erzeugen, Factories, Code mit Nebenwirkungen bändigen, Stubs und Mocks, Das Frontend (die GUI) testen, Scriptbare Browser. Den ganzen Beitrag lesen.

¬ geschrieben von gjerokrsteski in Externe News & Posts

Powered by Wordpress • Abonniere den RSS Feed