• 1
  •  
  •  
  •  
  •  
  •  
    1
    Share
Agiles Testing

Die Grenzen der Testautomatisierung

Immer mehr Softwaretests werden automatisiert durchgeführt. Dies erhöht insbesondere in agilen Teams die Entwicklungsgeschwindigkeit. Doch Testmanager werden deshalb nicht überflüssig.

09.01.2019Text: bbv0 Kommentare
Testautomatisierung
  • 1
  •  
  •  
  •  
  •  

Zeit ist ein wichtiger Faktor in der Softwareentwicklung. Je schneller der nächste Release rausgeht, je kürzer die Time-to-Market, umso besser. Dabei trägt die Testautomatisierung wesentlich dazu bei, die Prozesse in der Entwicklung zu beschleunigen. «Regelmässige, vollautomatisierte Tests sorgen dafür, dass sehr kurzfristig Ergebnisse vorliegen, die sofort über die Funktionalität eines Builds informieren», sagt Rolf Blattmann, Senior Testmanager bei bbv. Dazu müssen nicht zwingend spezialisierte Tester engagiert werden. «Diese Tests können in agilen Teams von Entwicklern vorgenommen werden, denn die strikte Abgrenzung der Entwicklungsphase von der Testphase, wie dies in der klassischen Softwareentwicklung üblich ist, wird im agilen Umfeld oft hinfällig.» Im Sinne von Continuous Integration wird dabei also regelmässiger und kurzfristiger getestet. Beim agilen Testen werden die Tester in den Entwicklungsprozess integriert und arbeiten ebenfalls nach dem Agilitätsprinzip.

Automatisierungsgrad je nach Testphase

Natürlich können nicht alle Tests automatisiert und mal eben ohne eigentliches Testkonzept durchgeführt werden. Je nach Entwicklungsstufe eignen sich automatisierte Tests besser oder weniger gut. Grob werden die Softwaretests in vier Phasen eingeteilt:

  1. Unit-Tests
  2. Integration-Tests
  3. System-Tests
  4. Abnahme-Tests

Während vor allem im Unit-Testing, aber auch bei Integration-Tests nahe am Code und oft vollautomatisiert getestet werden kann, ist dies bei System-Tests nur bedingt, und bei Abnahme-Tests kaum möglich. Die Vorteile von automatisierten Tests liegen auf der Hand: Sie können schnell und mit wenig Aufwand durchgeführt und beliebig oft wiederholt werden. Zudem besteht die Gefahr von Testblindheit nicht, der die Tester mit zunehmender Routine in der Testdurchführung ausgesetzt sein können.

«Vermehrt wird heute auch auf System-Ebene automatisiert getestet», erklärt Blattmann, «doch sind hier die Tests komplexer und aufwändiger, sodass sowohl die Testkonzeption als auch die Automatisierung einen wesentlich höheren Aufwand erfordert», erklärt Rolf Blattmann. «In diesen Fällen stellt sich die Kosten-Nutzen-Frage einer Automatisierung.»

Neue Rollenverteilung

Die Automatisierung der Tests hat zur Folge, dass es in agilen Arbeitsumgebungen zumindest bei den unteren, Code-nahen Ebenen weniger spezialisierte Tester braucht. Dafür müssen Entwickler das nötige Test-Know-how besitzen. Umgekehrt müssen Tester, die beispielsweise Integrationstests machen, auch tieferes technisches Verständnis einbringen können. Die Testmanager wiederum sind je nach Projektgrösse und je nach Anforderungsprofil innerhalb des Unternehmens ebenfalls von einer Verlagerung ihrer Funktion betroffen.

Weil oft eine Optik der Nutzer eingenommen werden muss und verschiedene Anwendungsfälle getestet werden sollen, kommt man nicht darum herum, die Anwendungen und Systeme von erfahrenen Testern zu überprüfen. «Testmanager, die üblicherweise die Koordination der Tests, das Reporting und andere Aufgaben übernehmen, sind meist nicht so tief im Code drin, müssen dafür aber mehr Verständnis für Use Cases und für die Business-Logik mitbringen. Zwar wird bei der agilen Entwicklung viel von den Programmierern getestet, doch ist insbesondere bei grösseren Projekten die Koordination eines Testmanagers nach wie vor erforderlich», sagt Rolf Blattmann.

Eine Neudefinition seiner Rolle erfährt der Tester auch deswegen, weil er nicht mehr autonom agieren, sondern permanent mit dem restlichen Team und mit den Prozessen in Interaktion steht. Bisherige Testmanager können also auch Teilprojektmanager oder Scrum Master sein. Je nachdem, wie viele Koordinationsaufgaben das Testing erfordert. «Gerade wenn mehrere agile Teams an einem Projekt beteiligt sind, fällt der Koordinationsaufwand für den Testmanager entsprechend höher an», sagt Blattmann.

Strukturen von Teams und Unternehmen

Bei grösseren Projekten werden die Scrum Teams auch mal aufgebrochen, die Mitglieder arbeiten nur beschränkt selbstorganisiert. «Es kommt vor, dass bei grossen Projekten Test-Spezialisten von den Scrum Teams vorübergehend «ausgeliehen» werden, um dort bei Bedarf die komplexen Tests vorzunehmen.

Schliesslich sind die agilen Projekte oft immer noch eingebettet in Firmenstrukturen, die lückenlos nachvollziehbare Tests erfordern und adäquate Reports voraussetzen. Um die Qualität der Software zu gewährleisten, wird dann nach DevOps gearbeitet. «Bestehen im Unternehmen starre Prozessvorgaben ist ein durchdachtes Testkonzept unerlässlich, meist ist es noch immer der Testmanager, der dafür sorgt, dass diese Tests entsprechend geplant und durchgeführt werden.»

Der Experte

Rolf Blattmann

Rolf Blattmann ist Senior Testmanager bei bbv. Überzeugt von agilen Testingansätzen, bringt er sein Wissen in Kundenprojekten ein. Er hat einen grossen Fundus an Erfahrungen mit Testmanagement und Testautomatisierung – vor allem in den Branchen Versicherungen, Banken, MedTech und Industrie.

Unser Wissen im Abo

Digital Responsibility in der Praxis

Übernehmt mehr Verantwortung!

  • 2
    Shares
Softwareentwicklung
Innovation in der Produktentwicklung

Überlassen Sie die Innovation nicht Ihren Software-Ingenieuren!

  • 3
    Shares
Innovation

Artikel kommentieren

Die E-Mail-Adresse wird nicht publiziert. Notwendige Felder sind mit einem * versehen.