Ihre Herausforderungen bei den klassischen Testansätzen

In der heutigen Zeit bringen Entwicklungsteams neue Features binnen Kurzem in Produktion. Dies ist erforderlich, um den Herausforderungen der Digitalisierung zu begegnen. Häufig bleiben für aufwändige Integrations- und Abnahmetests keine Zeit mehr. Dennoch ist die korrekte Umsetzung von Anforderungen unerlässlich: Falsch umgesetzte Features kosten Zeit und Geld. Schlimmer noch, sie demotivieren Fachbereiche, Endanwender und Entwickler. Als Ergebnis sinkt die Leistungsfähigkeit aller Beteiligten.

Klassische Ansätze prägen die Idee, dass Testaktivitäten außerhalb der Entwicklungsteams stattfinden. Hauptmotivation ist die Sicherung einer unabhängigen Sicht auf die Software.

Weitere scheinbare Vorteile

  • Tester vertiefen ihre Spezialisierung auf diese Aufgabe und fokussieren ihre Aktivitäten.
  • Eine vermeintliche Optimierung der Einsatzplanung von Testexperten. Sie erlaubt ihnen potenziell die Mitarbeit in mehreren Teams und Projekten.
  • Outsourcing der Aufgaben erscheint einfach möglich und kostensenkend.
  • Niedrige Ansprüche an die Qualifizierung der Tester vereinfachen die Suche nach geeigneten Kandidaten. Dadurch kann in Stoßzeiten skaliert werden.
Klassische Teams verteilen die Aufgaben zeitlich

Klassische Teams verteilen die Aufgaben zeitlich.Quelle: eigene Darstellung

Die Anforderungen des Marktes haben sich jedoch stark verändert. Diese klassischen Ansätze erzielen nicht nur den erwünschten Effekten nicht mehr, sondern wirken sich sogar geschäftsschädigend aus, da sie stark bremsen.

Als Produkt- und Serviceanbieter müssen Sie sehr schnell auf Marktänderungen reagieren. Sie wollen deshalb Ideen effektiv und leichtgewichtig ausprobieren, um Ihre Innovationen voranzutreiben. Dabei werden Ihre Produkte und Applikationen im Gesamten immer mächtiger und komplexer.

Das hat zwei Auswirkungen

  1. Auf der einen Seite haben Ihre Teams zu wenig Zeit für das Testen von Änderungen oder neu entwickelten Features. Die bekannten Prozesse sind langsam und aufwändig, was die Weiterentwicklung verzögert.
  2. Andererseits versagen die klassischen Ansätze beim Testen des Zusammenspiels der komplexen Systeme: Komponenten verteilter Anwendungen, entwickelt von verschiedenen Teams, können mit den bekannten Mitteln und Werkzeugen nicht unabhängig bereitgestellt werden. Black-Box-, Integrations- , System- und End-to-End-Tests stellen dabei die größten Herausforderungen dar.

Diese Aspekte zeigen, dass nachgelagertes Testen Ihre Teams an einer direkten Auslieferung hindert. Die Probleme erstrecken sich jedoch weiter: Gutes agile Testing hat über die Betrachtung der Testbarkeit, frühem Input von Endnutzern und vielem mehr einen positiven Einfluss auf das Design der Anwendung. Dies entfällt beim klassischen Ansatz und die Systeme werden unnötig komplex.

„Trying to improve software quality by increasing the amount of testing is like trying to lose weight by weighing yourself ”

Steve McConnell, CEO & Chief Software Engineer, Construx Software

Ausschließliche Automatisierung der manuellen Tests ist keine Lösung

Einige Unternehmen begegnen diesen Herausforderungen durch die Automatisierung ihrer bislang manuell durchgeführten Testaktivitäten. Trotz hoher Aufwände und teurer Werkzeuge sind viele, wenn nicht die meisten, dieser Vorhaben gescheitert. Hauptgrund ist die falsche Ebene der Automatisierung. Sie ist der Natur der Strategie geschuldet: „Klassische” Tester erproben die Anwendung über ihre externen Schnittstellen, meist sind dies grafische Oberflächen. Aus diesen Grund zielen diese Automatisierungsvorhaben genau darauf ab.

Solche Testarten sind naturgemäß aufwändig in der Umsetzung und der Wartung. Zudem sind sie meist instabil, langsam oder gar beides.

Das hat mehrere Gründe

  • Sie sind stark von der Umgebung abhängig: Betriebssystem, Arbeitsspeicher, Festplattenkapazität, Auflösung, Browser und mehr beeinflussen die Resultate.
  • Die benötigten Testdaten müssen wiederholbare Tests gewährleisten. Dies ist nicht immer machbar. Ein Beispiel dafür sind Kontonummern in Banking-Systemen oder Vertragslaufzeiten von Versicherungen.

Das Problem der Testdaten ist durch verschiedene Techniken lösbar. Beispielsweise bieten sich separate Endpoints für die Datenmanipulation in Test-Profilen an. Allerdings bedeutet das drastischen Mehraufwand und zusätzliche Änderungsrisiken. Eine steigende Komplexität des Systems steigert dies weiter. Hat das Team keine Kontrolle über die Datenbank eines Fremdservices, lassen sich keine Testdaten injizieren. Dementsprechend können keine passenden Tests gegen das reale System ausgeführt werden. Spätestens dann entsteht soziale Komplexität: Eigene Teams für Testdaten und die Stabilität der dezidierten Testumgebungen werden benötigt.

Darüber hinaus werden IT Produkte zunehmend kritischer für den Geschäftserfolg der Unternehmen. Sie entwickeln sich zu einem unentbehrlichen Teil des Geschäfts. Und das selbst bei Unternehmen, die bisher wenig Erfahrung mit IT haben. Hier sind selbst die klassischen Testansätze wenig bekannt, was die Thematik zusätzlich erschwert.

Die Einführung agiler Entwicklungsmethoden ist getrieben durch den Bedarf an kürzeren Lieferzyklen und erhöhter Flexibilität. Scrum bietet für viele Entwicklungsteams den Einstieg und setzt das Ziel eines auslieferbaren Inkrements pro Sprint. Unsere Erfahrung zeigt, dass dies erst der Anfang ist: Continuous Delivery ermöglicht die Auslieferung mehrerer Inkremente pro Tag auf produktive Systeme und agile Teams nutzten dies zunehmend.

Die Sicherung der Qualität ist bei jedem Go-Live selbstverständlich und notwendig. Der klassische, nachgelagerte Testansatz steht jedoch in Konflikt mit agiler Entwicklung. Er hemmt die durch agile Prozesse gewonnenen Vorteile durch zeitlich verzögertes Feedback. Dies blockiert die Auslieferung neuer Features und erzeugt einen anwachsenden Rückstau. Der klassische Ansatz wird somit zur Bremse. Schnell wird deutlich: Die Testaufwände sind ohne gekonnt umgesetzte Automatisierung nicht mehr beherrschbar. Und diese muss zum Vorgehen agiler Teams passen.

Was ist Agile Testing?

Agile Testing
ist die (R)Evolution bei der Umsetzung guter Qualitätssicherung im Softwareentwicklungsprozess. Agile Testing geht deutlich über eine Verifizierung der Richtigkeit umgesetzter Features hinaus und betrifft nicht nur die Testaufgaben sowie deren Umsetzung sondern auch die zugehörigen Rollen und Verantwortlichkeiten.

Dabei beantwortet Agile Testing die zentrale Frage in der modernen Entwicklung: Wie können Teams ihre Ziele für die Qualität ihrer Software erreichen? Und wie gelingt das in einem Kontext mit steigender technologischer Komplexität, zunehmenden Erwartungen der Endnutzer und immer kürzeren Lieferzyklen?

Die Erfahrung zeigt: Eine reine Optimierung bisheriger Ansätze ist nicht mehr ausreichend für diese neuen Herausforderungen einer dynamischen, komplexen und agilen Welt. Ein neuer Blick ist notwendig. Ein Umdenken. Von der Idee bis zum Go-Live!

Als Novatec unterstützen wir gerne beim Wandel hin zu agilem Testing.

So leben wir Agile Testing

Agile Teams zielen auf eine Bereitstellung kontinuierliche Verbesserungen ihrer Produkte in kurzen Zyklen ab. Allerdings bremst eine nachgelagerte Teststrategie diese Vorgehensweise aus.

Agile Testing bietet für diesen Konflikt eine Lösung: Mit dem richtigen Mindset, guten Methoden und passendem Tooling erlangt das Team bereits während der Entwicklung die Kontrolle über die Qualität der Software. Dies gelingt, in dem Testaktivitäten und Qualitätsbewusstsein in alle Phasen der Produktentwicklung einfließen. Der erste Schritt ist der Aufbau von Textexpertise und -verantwortung im Team, z. B. durch eine dedizierte Testing Rolle. Diese bringt ihr Wissen bereits früh in alle Bereiche der Entwicklung ein und erweitert ihren Werkzeugkoffer um Neues aus jenen von Entwicklern und Fachexperten.

Agile Entwicklungsteams vereinen die drei Bereiche

Agile Entwicklungsteams vereinen die drei Bereiche.Quelle: eigene Darstellung

Langwierige Akzeptanztestphasen nach Fertigstellung eines Releases verschwinden und an ihre Stelle treten besser geeignete Methoden. Diesen Wandel beginnen viele Teams, indem sie ihre Tests als Teamleistung automatisieren. Kooperieren Tester und Entwickler, stellen sie die Qualität der Software gemeinsam sicher. Die Qualität der Arbeit beider steigt, denn sie kennen unterschiedliche Tools und Methoden, deren Kombination ihr volles Potential im agilen Testing entfaltet.

Der Testgedanke ist auch im Zuge der Analyse und Klärung von Anforderungen wichtig. Dabei steigert er die Kommunikation zwischen Stakeholdern und beeinflusst die Umsetzbarkeit positiv. Gemeinsames Verständnis wird früh aufgebaut und fachliche Lücken schnell identifiziert. Auch die Einblicke des Testers in Laufzeitverhalten und Entwurf von Anwendungen bieten Mehrwert für die Beteiligten. Dieses Wissen gewinnt er durch die Zusammenarbeit mit Entwicklern des Teams.

Testbarkeit als Designprinzip unterstützt die Änderbarkeit von komplexen Anwendungen und reduziert die Wartungsaufwände. Anwendungen müssen nämlich so entworfen werden, dass sie leicht testbar sind. Das reduziert automatisch die Kopplung der Anwendungskomponenten und die Aufwände für die Testautomatisierung.

Zur technischen Umsetzung sind gute Tools für Continuous Integration und Continuous Delivery unerlässlich. So kann die Qualität nach Änderungen validiert und die Anwendung automatisiert bereitgestellt werden.

Beherrscht das Team den Deployment-Prozess gut, kommt der Testgedanke auch hier zum Einsatz. Rollouts neuer Features erfolgen zunächst ohne Einfluss auf die Endanwender. Diese werden sukzessive aufgeschaltet, was Testing in Production bei geringem Risiko ermöglicht. Neue Kanäle für Feedback eröffnen sich, so zum Beispiel Canary-Releases. Das Teams gewinnt Wissen über seine Nutzer, was sich positiv auf die Entwicklung und den Erfolg des Unternehmens auswirkt.

Unsere Erfahrungen haben gezeigt, dass die erwünschten Ziele am besten durch die richtige Mischung der im folgenden vorgestellten Techniken und Methoden und deren sinnvolle Integration in den zugrunde liegenden Entwicklungsprozess erreicht werden.

Unser Modell für Agile Testing

Unser Agile Quality Engineering Modell

Unser Agile Quality Engineering Modell.Quelle: eigene Darstellung

Obige Abbildung zeigt unser Modell mit allen bewährten Techniken und Methoden und bildet diese in geeigneten Phasen und Rollen eines Entwicklungsprozesses ab. Deutlich erkennbar ist die Verzahnung der Ideengenerierungs- und Planungsaktivitäten (linker Zyklus) mit der Implementierung der erwünschten Features (rechter Zyklus). Neben der Darstellung der behandelten Artefakte zeigt die Abbildung zusätzlich die Einbindung der verschiedenen Experten in die verschiedenen Phasen. So sind beispielsweise Entwickler und Tester in die Planung und der Product Owner beziehungsweise die Business Experten in die Implementierung involviert.

Im Folgenden beschreiben wir die einzelnen Phasen detailliert

Gute Ideen für wichtige Features sind die Basis jeder erfolgreichen Anwendung. Fachexperten entwickeln diese zusammen mit Endnutzern. Das Team liefert so zielsicher seinen Endnutzern den angestrebten Mehrwert. Für diesen Mehrwert definiert das Team Metriken, welche zur Bewertung des Erfolges dienen. Agile Tester stellen als Teil der Gruppe Strategien zu deren Überprüfung bereit.

Große Features teilen sich auf in User Stories, welche für sich genommen bereits Mehrwert liefern. User Story Mapping, #NoEstimates und weitere Methoden unterstützen Product Owner und Fachexperten bei der Priorisierung. So arbeitet das Team an den wichtigen Themen zur richtigen Zeit.

Zur Umsetzung von Anforderungen muss das Team diese verstehen. Eine zeitlich begrenzte Sitzung zur tieferen Analyse schafft bei allen Beteiligten ein gemeinsames Verständnis. Deshalb ist sie ein wichtiger Bestandteil des agilen Vorgehens und vereint alle Perspektiven beispielsweise im Refinement Meeting des Scrum Prozesses.

Dabei entstehen aus zentralen Punkten der Anforderungen prägnante Beispiele als Testfälle für Behaviour Driven Development (BDD), Acceptance Test Driven Development (ATDD) und Specification by Example (SpecByEx). Diese Testfälle bieten die Basis für eine automatisierte Teststrategie. Das Erarbeiten dieser Beispiele deckt zudem fehlendes Verständnis im Team frühzeitig auf und ermöglicht eine effiziente Arbeit.

Das Team wählt umzusetzende Stories für den nächsten Entwicklungszyklus aus. Im agilen Kontext sind Zeit, Budget und Qualität fest, während der Scope flexibel bleibt. Ein priorisierter Backlog liefert die wichtigsten Stories. Das Team betrachtet Abhängigkeiten und Risiken bei der Planung und vermeidet so Probleme. Die Kapazität des Teams sowie die Testbarkeit der Features und mögliche Einschränkungen bei der Umsetzung sind wichtige Eingangsinformationen für dieses Meeting.

Entwickler, Tester und Product Owner planen gemeinsam die nächste Story. Das Team schärft das Verständnis für das Feature und beginnt dann mit dessen Umsetzung. Bei Bedarf wird diese Umsetzung verfeinert und in Tasks aufgeteilt. Akzeptanzkriterien und deren automatisiertes Testing stehen im Fokus. Test Driven Development unterstützt die Entwicklung der einzelnen Bestandteile des Features.

Alle Tasks einer Story erfüllen kombiniert die Definition of Done. Während des Specification Workshops entwickelte Beispiele dienen in diesem Schritt als Input für automatisierte Tests. Sie sind die Grundlage für Behaviour Driven Development während der Entwicklung. So stellt das Team bei der Umsetzung sicher, dass die Anforderungen wie von Fachexperten und Endnutzern gewünscht funktionieren. Entwickler und Product Owner diskutieren nach Abschluss der Entwicklung gemeinsam die Ergebnisse. Nach der Abnahme stellen sie das Feature zum Deployment bereit.

Spezifizierte und umgesetzte Akzeptanztests stellen eine ausführbare Spezifikation des Systems dar. Sie entstehen aus praktischen Beispielen der Fachbereiche und Nutzer. Eine detaillierte Beschreibung der Anforderung rundet diese Tests ab, wobei die Formulierung für alle Beteiligten des Projekts verständlich ist. Eine automatisiert ausführbare und stets aktuelle Spezifikation der Anforderungen dient somit als Living Documentation (Lebende Dokumentation). Sie ist eine Single Source of Truth für die Beschreibung der Funktionalität.

Automatisiert überprüfbare Spezifikationen aller Anforderungen im Sinne von BDD stellen die Basis für Regression Testing dar. Sie validieren das im Wandel befindliche System bei jeder Änderung. Eine Continuous Integration Pipeline sichert dies ab und liefert schnelles Feedback über den aktuellen Zustand der Anwendung. Dadurch gelangen Zustände, welche der definierten Funktionalität widersprechen, nicht auf produktive Systeme.

Möglichst viele automatisierte Tests sind ein wichtiges Ziel agilen Testens. Dennoch gerät der Mensch dabei nicht in Vergessenheit. Exploratives Testen ist ein bedeutender Zusatz und findet während des gesamten Prozesses der Entwicklung statt. Dazu dient eine Testing Session, zeitlich begrenzt und unter Einbeziehung aller beteiligten Experten. Hierbei erforscht das Team die Grenzen sowie die Robustheit des Systems und validiert dessen allgemeine Funktion.

Das Team stellt die im letzten Zyklus fertiggestellten Features als Release auf allen Produktionsumgebungen bereit. Sie sind allerdings zunächst deaktiviert. Alternativ sind sie auf eine begrenzte Gruppe von Testanwendern begrenzt. Eine gut gelebte DevOps-Kultur fördert dies und vereinfacht eine zuverlässige Bereitstellung von Änderungen. Nach diesem Schritt stehen die fertiggestellten Inkremente für den Go-Live bereit.

Das Team stellt Funktionalitäten einer wachsenden Anzahl an Usern zur Verfügung. Dadurch entsteht zunehmend Feedback in realen Szenarien im Hinblick auf Akzeptanz gegenüber Ideen sowie deren Erfolg. Die schrittweise Vorgehensweise erlaubt eine schnelle Reaktion des Teams auf Unvorhergesehenes. Das minimiert potenzielle Risiken in sich schnell ändernden Bereichen. Ein hoher Grad an Kontrolle über den Go-Live wird durch fortgeschrittene Methoden ermöglicht, beispielsweise durch #A/B-Testing und Testing in Production.

Aktive Änderungen auf produktiven Systemen stellen einen wichtigen Input dar. Das Team validiert deren Erfolg im Hinblick auf die in der Impact Analyse definierten Metriken, indem die Ergebnisse den ursprünglichen Annahmen gegenübergestellt wird. Product Owner und Fachexperten nutzen die Ergebnisse zur Bewertung zukünftiger Pläne und deren Anpassungen.

Unser Agile Testing Modell wird gelebt

Unser Agile Testing Modell zum Download

Das Modell hilft Ihnen dabei, die Phasen und Rollen eines Entwicklungsprozesses besser zu verstehen.

Download Agile Quality Engineering Modell

Ihre Vorteile durch den Einsatz der Agile Testing Methoden

Dem Wunsch nach beschleunigter Entwicklung begegnet Agile Testing durch einen Wandel der Teams bezüglich Zusammensetzung und Mindset. Alle Beteiligten verinnerlichen den Qualitätsgedanken über den gesamten Prozess hinweg.

So entsteht eine zielgerichtete und effiziente Teststrategie mit einem klaren Ergebnis: Eine konkurrenzfähige Time-To-Market ohne bremsende Abnahmephasen. Stattdessen entstehen kurze Feedbackzyklen mit besserer Kommunikation zu allen Stakeholdern. So können neue Ideen schnell und risikofrei geprüft und Kundenwünsche schnell umgesetzt werden. Das stärkt die Innovation im Unternehmen und erhöht die Kundenzufriedenheit – eine wichtige Grundlage für den dauerhaften Erfolg Ihrer Produkte!

Beseitigen Sie die Ursachen anstatt Fehler zu suchen!

Klassische Strukturen sehen Entwickler, Tester und Fachexperten als separate Teams. Nicht nur mentale Mauern liegen dazwischen, sie befinden sich in verschiedenen Gebäuden oder zumindest Büros. Sie verstehen sich nicht als Team, obwohl sie gemeinsam am selben Produkt auf ein gemeinsames Ziel hinarbeiten sollten. Stattdessen arbeitet jeder isoliert für sich. Dabei schieben sie die Verantwortung für die Qualität der Software stets umher. Diese ist allerdings Aufgabe des gesamten Teams! Niemand kann die Qualität alleine sicherstellen und kümmert sich keiner, sind Probleme vorprogrammiert. Die Kooperation aller Beteiligten löst dieses Problem frühzeitig. Deshalb helfen wir gerne, diese Mauern abzubauen.

Als Novatec vereinen wir stets verschiedene Aufgabenbereiche. Tester, Fachexperten und Entwickler arbeiten eng zusammen in unseren DevOps Projekten. Wir kennen nicht nur die Theorie, wir leben sie täglich. Frei nach dem Motto „practise what you preach”. Unsere Erfahrung zeigt: Eine frühe Integration agiler Testing Methoden senkt die Aufwände im Team und erhöht die Qualität des entwickelten Produktes maßgeblich. Gute Kooperation ist der Wegweiser zum Erfolg. Aus diesem Grund stehen Menschen im Mittelpunkt, nicht komplexe Prozesse oder teure Tools.

Insgesamt entsteht so eine nachhaltige Teststrategie für das agile Umfeld. Das Team verfügt über eine Auswahl an Methoden für automatisiertes Testing. Wir verdeutlichen dabei, für welchen Kontext sie sich eignen. Exploratives Testen erweitert den agilen Prozess zu einem stimmigen Gesamtpaket.

Begeistern Sie Ihre Anwender von Ihren Produkten

„Software testing is not about finding bugs. It’s about delivering great software.“

Harry Robinson, Principal SDET – Microsoft Internet of Things

Die korrekte Umsetzung wichtiger Features ist besonders wichtig für erfolgreiche Anwendungen. Und genau hier entstehen Herausforderungen: Fachexperten schreiben Anforderungen aus ihrer Sicht. Entwickler setzen sie nach ihrem Verständnis um. Tester validieren die Anforderungen aus ihrem Blickwinkel. Und daraus entsteht ein Konflikt: Die drei Gruppen haben eigene Sprachen und lesen aus derselben Beschreibung andere Anforderungen heraus.

Agile Testing löst dieses Problem durch mehr Kooperation. Fachexperten analysieren Anforderungen, stimmen diese im gesamten Team ab und dokumentieren klare Beispiele. Das gemeinsame Verständnis wird geschaffen. Tester und Entwickler automatisieren die Beispiele in Form von Tests, welche zentral gelagerte und dokumentierte Anforderungen validieren.

Dieses Konzept stellt drei Dinge unmittelbar sicher:

  1. Die aktuell nötigen Features sind in Entwicklung.
  2. Die Anforderungen sind das Zentrum der Entwicklung – für jeden zugreifbar und durch die CI-Pipepline automatisiert validiert.
  3. Probleme fallen während der Entwicklung früh auf und nicht erst in nachgelagerten Testzyklen. Das Vertrauen der Beteiligten untereinander in das Produkt und die Strategie steigt.

Insgesamt wird deutlich: Agile Testing ist keine Methode der Bug-Suche. Das Ziel ist die Auslieferung guter Produkte. Relevante Anforderungen und deren regelmäßige Validierung sind zwei Seiten derselben Medaille.

Testen Sie früh und schützen Sie die Zeit Ihrer Experten

Ein häufiger Einwand, dieses Vorgehen verschlinge viel Zeit, ist paradox. Die automatisierten Tests sparen kurz- bis mittelfristig Ressourcen bei Fachexperten, Testern und Entwicklern. Sie erlauben diesen, sich auf wichtige neue Anforderungen zu konzentrieren. Darüber hinaus schafft dies die notwendigen Freiräume, um Marktvorteile in sich schnell ändernden Branchen zu erzielen.

Zudem sind Bugs teurer als Aufwände für gutes Testing. Im besten Fall meldet eine nachgelagerte und aufwendig durchgeführte Qualitätssicherung solche Fehler. Die Folge ist ein Context-Switch der Entwickler, deren Produktivität sinkt. Im schlechtesten Fall fällt der Fehler beim Kunden auf, wird teuer und schadet dem Ruf des Projekts und der Beteiligten.

Beide Fälle haben eines gemeinsam: sie senken Produktivität, Motivation und Engagement aller Beteiligten. Der Entwicklungszyklus kommt ins Stocken und die Marktvorteile agiler Vorgehensweisen werden verringert. Auch die Optimierung der bestehenden Verfahren löst dieses grundsätzliche Problem nicht. Neue Methoden, passend zu den Gegebenheiten der aktuellen Zeit, sind gefragt.

Eine gute Testautomatisierung reduziert den Gesamtaufwand von Projekten bereits im zweiten Projekt oder im zweiten Projektjahr, was in der folgenden Grafik verdeutlicht wird.

Entwicklung der Gesamtaufwände durch Agile Testing.

Entwicklung der Gesamtaufwände durch Agile Testing.Quelle: eigene Darstellung

Steigern Sie Zufriedenheit und Orientierung durch kurze Feedbackzyklen

Softwareprojekte kennen eine Vielzahl von Stakeholdern. Deren Zufriedenheit ist wichtig für den Erfolg des Unternehmens. Agile Testing setzt deshalb auf Feedback und involviert alle Beteiligten bereits früh in den Entwicklungsprozess. Der Endnutzer ist ein gutes Beispiel. Klassische Ansätze beziehen ihn nur wenig ein. Im besten Fall tritt er in zwei Phasen auf: bei einer sehr rudimentären Anforderungsanalyse sowie bei einer spät stattfindenden Beta-Testing Phase. Das Risiko: Die Anwendung kann sich am Endnutzer vorbei entwickeln.

Anstelle dessen setzt agile Testing auf kurze Feedbackzyklen aller Beteiligten. Am Beispiel des Endnutzers zeigt sich dies. Er wird in die Ideenfindung und Spezifikation von Features direkt eingebunden. Im Rahmen von explorativen Testing Sessions lernt er die Ergebnisse früh und regelmäßig kennen. Die DevOps Grundgedanken verstärken den Effekt.

Regelmäßige kleine Inkremente bieten Pakete neuer Funktionalitäten, welche dem Nutzer einen Mehrwert liefern. Das Team kann deren Einfluss auf den Alltag der Anwender beobachten. Dadurch lernen alle Beteiligten dazu und das Feedback dient als Inspiration für die weitere Entwicklung. Somit ist der Endnutzer nicht nur eine virtuelle Persona in Testszenarien. Er begleitet als aktives Mitglied des Teams den Prozess.

Einsatzmöglichkeiten von Agile Testing

Starten Sie agile Projekte mit agilem Testing

Agile Projekte etablieren sich in den meisten Unternehmen als Standard. Und selbstverständlich genießt die Qualität der Software einen hohen Stellenwert. Das Testing bleibt allerdings klassisch, was diesen beiden Zielen fundamental gegenübersteht. Klassische Testansätze verzögern die Bereitstellung von Features durch ihre nachgelagerte Natur und die dadurch auftretenden Verzögerungen in den meist starren Prozessen.

Denken Sie daher neue Projekte von Beginn an neu! Durch die direkte Integration des Testers in den gesamten Entwicklungsprozess ändert sich das entstehende Produkt maßgeblich. Das Team prüft nicht nur direkt von Beginn an die Qualität des Entwickelten, die Mitglieder achten auch gemeinsam auf eine testbare Architektur. Außerdem verbreitet sich Wissen verschiedener Stakeholder schneller über alle Beteiligten, was das Verständnis für das Zielprodukt bei allen schärft.

Ersetzen Sie nachgelagertes Testing schrittweise mit agilem Testing

Je größer Projekte werden, desto komplexer werden Testpläne und deren Ausführung. Damit aber nicht genug: Mit der Komplexität steigt auch die Ausführungsdauer und das Go-Live neuer Features trennt sich zunehmend von deren Fertigstellung in der Entwicklung. Die gute Nachrichte: agile Ansätze beim Testing lassen sich in bestehende Projekte eingliedern. Damit kann die Bugwelle manueller und langsamer automatisierter Tests stückweise reduziert werden. So gewinnt Ihr Team langsam aber sicher wieder die Kontrolle über die eigene Anwendung und deren Entwicklung.

Verringern Sie unnötige Iterationen mit agilem Testing

Nichts ist besser als funktionierende Software, die ihren Zweck ohne Probleme erfüllt. In der Praxis zeigt sich aber häufig, dass Entwickler die Anforderungen der Fachbereiche nicht korrekt verstehen und Tester weder die Anforderung noch die Entwicklung. Dementsprechend iterieren alle Beteiligten mehrere Wochen über ein und dasselbe kleine Feature. Der Grund: Sie sprechen nicht kontinuierlich miteinander und verstehen sich nicht als ein Team. Agiles Testing sieht dies als eine der zentralen Herausforderungen an und inkludiert alle Beteiligten einer Software in deren Entstehungsprozess. Das steigert die Qualität er Software zunehmend und reduziert unnötige Iterationen zur Beseitigung von Verständnisproblemen.

Reduzieren Sie plattformspezifische Tests mit agilem Testing

Gerade Webanwendungen teilen sich meist folgende Anforderung: sie müssen auf verschiedensten Zielsystemen funktionieren. Deshalb setzen viele Unternehmen auf manuelle Tests mit verschiedenen Endgeräten und Browsern. Das ist nicht nur teuer, sondern bindet auch Ressourcen. Gerade letztere sind bei der Entwicklung von Marktvorteilen besser eingesetzt. Moderne Technologien und Lösungen beim Testen von Anwendungen ermöglichen es, verschiedene Endgeräte direkt zu unterstützen. Außerdem können agile Teams mit integriertem Testing den Bedarf nach plattformspezifischem, aufwändigem und teurem Testing auf ein Minimum reduzieren. Das senkt nicht nur die Aufwände bei deren Erstellung, sondern auch bei deren Wartung. Gerade letzteres ist bei vielen sich permanent verändernden Umgebungen besonders wichtig.

Unsere Dienstleistungen im Bereich Agile Testing

Um eine nachhaltige und agile Teststrategie in Ihrem Projekt oder Unternehmen zu etablieren, müssen verschiedene Aspekte betrachtet und bei Bedarf angepasst werden. Wir werfen daher einen Blick auf die Kultur in Ihrem Unternehmen, beispielsweise im Bereich Entwicklung und Betrieb. Wie betrachten die Skills und das Wissen Ihrer Mitarbeiter um ggf. Lücken zu identifizieren. Selbstverständlich gehört dazu auch eine Analyse der Architektur Ihrer Anwendungen sowie Ihrer technischen Infrastruktur. Als Ergebnis entsteht so ein vollständiges Bild, aus dem wir zielgerichtet Maßnahmen ableiten können. Nach diesem initialen Blick beraten wir entsprechend Ihrer individuellen Bedarfslage. So stellen wir beispielsweise sicher, dass erhöhte Geschwindigkeit nicht zulasten der Qualität umgesetzt wird. Oder wie wir es nennen: „mehr Speed ohne Pfusch”.

Ganz konkret unterstützen wie Sie bei den folgenden Themen:

  • Wir definieren mit Ihnen eine geeignete Werkzeugkette
  • Wir durchleuchten Ihre Entwicklungsprozesse und erkennen Handlungsfelder
  • Wir durchleuchten Ihre Anwendungsarchitektur auf Testbarkeit und den Code auf Qualität
  • Außerdem beraten, schulen und coachen wir Ihre Teams
  • Gerne setzen wir die Vorschläge auch als Teil Ihres Teams um

Im Verlauf dieser methodischen Vorgehensweise nutzen wir verschiedene Leistungen aus unserem Portfolio. Diese bieten wir natürlich auch separat an:

  • Festlegung und Priorisierung der Ziele des Testvorhabens
  • Durchführung von GAP-Analysen zwischen den Zielen und dem aktuellen Status-Quo Ihres Projekts oder Unternehmens
  • Ausarbeitung einer nachhaltigen, zielgerichteten und agilen Testing Strategie
  • Herstellerneutrale Auswahl geeigneter Tools und Frameworks
  • Durchführung von Proof of Concepts
  • Pilotierung und Roll-Out der Testing Strategie
  • Schulung aller beteiligten Mitarbeiter. Das schließt alle am Projekt beteiligten ein: vom Fachexperten über den Tester bis hin zu Entwicklern, Product Ownern und Managern.
  • Werfen Sie dazu auch einen Blick auf unsere Trainings
  • Aktive Unterstützung Ihrer Teams bei der Automatisierung der Tests sowie beim Aufbau der Infrastruktur für Build und Deployment
  • Durchführung von Architektur und Code Reviews zur Verbesserung von Testbarkeit und Code Qualität

Eine Time-To-Market von einigen Stunden ist bald keine Seltenheit mehr. Wir sind überzeugt, dass es bald sogar der Standard sein wird. Unternehmen, die sich nicht rechtzeitig anpassen werden, riskieren den Erfolg ihres Geschäfts. Sie werden daher keine Zeit mehr für aufwändige Abnahmetests haben. Und „nightly Builds” als Frequenz für die Anwendungsbereitstellung wird nicht mehr ausreichen. Sie brauchen neue Ideen, Ansätze, eine neue Kultur, neue Architekturkonzepte, die eine schnellere Reaktionsfähigkeit unterstützen. Vor allem müssen sie ihre Teststrategien agilisieren.

Mit uns schaffen Sie den Sprung in die Zukunft, ohne Risiken einzugehen!

Ihr Ansprechpartner

bildhübsche fotografie | Andreas Körner | www.a-koerner.de | info@a-koerner.de | +49 711 22 11 20

Anis Ben Hamidene

Head of Practice Area Agile Quality Engineering
Inhaltsverzeichnis
Ihr Ansprechpartner Anis Ben Hamidene Head of Practice Area Agile Quality Engineering