Testen Qualität

Testautomatisierung, ihre Tools und ihre Zukunft

Experten sind einig, dass Testautomatisierung die Zukunft beim Testen bestimmen wird. Einige gehen noch weiter und sehen die Perspektive in „machine learning“ (ML) vor, wo Testfälle automatisch sich anpassen, je nach Ergebnisse der historischen Testfälle.

Die IT kann sich von der Produktion abgucken, wie bereits in dem Buch „The Phoenix Buch“ erläutert. Der Trend liegt beim Automatisieren genauso wie bei den Produktion-Geschäftsmodellen. „Automatisiere repetierende Prozesse“ und spare Dir den damit verbundenen Aufwand!

Beim Test wird oftmals der Komponententest, Integrationstest und der Performance Test automatisiert gemäß Studien von dzone. Es wird nicht empfohlen komplett auf den manuellen Test zu verzichten. Sondern bei den sich wiederholenden Testaktivitäten macht eine Automatisierung Sinn. Diese Automatisierung kann schnellen Erfolg bringen. Wohingegen einige UAT Test weiterhin manuell erfolgen sollten, wo die Logik komplex und einzigartig ist. Manuelle Tester muss es immer geben, da man nur die nicht komplexen Testfälle automatisiert. Beispiel: Schauen wird uns einen Einkaufsprozess in einem online Shop an. Waren können gesucht werden und in den Warenkorb eingefügt werden. Doch vor dem finalen Einkauf muss man in einigen Fällen eine Capatcha ausgefüllt werden. Mit Capatcha versucht Google genau gegen automatische Algorithmen entgegen zu wirken. Mit Hilfe von Konfigurationsdateien sollte diese Einstellung auf AUS eingestellt werden.

Mit Testautomatisierung werden Begriffe wie, automatische „deployments“, „continuous integration“ und die damit verbundenen Aktivitäten assoziiert.

Der Ansatz der Testautomatisierung muss am Anfang bei den Entwicklern starten. Die Entwickler müssen bereits bei der Programmierung Testfälle mit einbauen, damit die Qualität von t0 an hoch ist. Am Anfang wird dies zwar als ein großer Aufwand gesehen und der Return on Investment (ROI) wird bei größeren Projekten erfahrungsgemäß positiv sein. Ein aktuell im Trend liegender Entwicklungsansatz ist der „Test Driven Development“ (TDD). Auch „pair programming“ findet mehr Reichweite, wobei zwei Programmierer vor einem Computer sitzend programmieren. Feedback zum Code gibt es sofort, so dass die Qualität der Entwicklung vom ersten Codeansatz hoch ist. Mit diesen Ansätzen gewinnt die Entwicklung im frühen Stadium bereits an Qualität.

Bei der Entwicklung liegt der Trend auch bei einem Behaviour Driven Development (BDD) mit zu berücksichtigen. Hierbei werden die Tests in einer nicht formalen Sprache kommuniziert, damit Entwickler diese dem gewünschten Verhalten entsprechend entwickelt. Besonders auch für den Inhalt von Benutzer-Handbücher können diese Testfälle mitberücksichtigt werden. Auch ein visueller Test muss durchgeführt werden. Und dieser Test darf nicht unterschätzt werden. Anhand von Screenshots sollen Änderungen verglichen werden. Hierfür sind Tools wie PhantomCSS, Backstop JS oder Galen hilfreich.

Wo liegen die Gefahren bei einer Testautomatisierung?

  • „Locator“ ändern sich. Webelemente wie Buttons, Inputfelder oder Links werden an Hand der DOM identifiziert. Dies kann mit Hilfe von IDs, xpath, css-Element identifiziert werden. Jeder dieser Elemente kann sich ändern und der automatische Test würde ein Element nicht finden, um den Test fortzuführen. Der Testfall würde kaputtgehen.
  • Veraltete Validierung bei Inputfelder – Das Skript muss bei Codeänderungen bei Felder ggf. mit angepasst werden.
  • Seite wiederherstellen – Das Timing beim Wiederherstellen von Seiten muss korrekt sein
  • Pop-ups müssen auch getestet werden. Testskript müssen diese erkennen und auf diese reagieren können.

 

Machine Learnng – Die Zukunft

Bei automatischen Testläufen werden jede Menge Daten generiert. Diese werden aktuell kaum gesammelt und ausgewertet. Sobald diese gesammelt und ausgewertet werden, können sich Testfälle anpassen je nach Anpassungsnotwendigkeit. Diese Anpassung ist aktuell noch nicht möglich, doch in naher Zukunft wird auch dieses Testen möglich sein gemäß Testexperten.

Mit Cloud basierten Test kann der Lastetest schnell und unkompliziert erfolgen. Die im Cloud hinterlegten Daten können auch für das „machine learning“ angewendet werden. Testautomatisierung wird aktuell von zahlreichen Unternehmen gelebt und auch viele Anbieter mit Softwarehilfen gibt es nun reichlich auf dem Markt. Jedes Unternehmen muss das für Ihn passende Tool vorsichtig selektieren und implementieren.

 

 

Was sagen die anderen zu der Idee?