5 Gründe, warum funktionales Testen komplexer ist als Entwicklung

5 Reasons Why Functional Testing Is More Complex than Development

So erschienen auf DevOps.com

Bis vor einigen Jahren galt die Qualitätssicherung allgemein als Low-Level-F & E. Infolgedessen zeichneten sich QA-Teams durch ein niedriges Budget, mangelnde Aufmerksamkeit und in den meisten Fällen eine schlechte innere Einstellung aus. Darüber hinaus galten QA-Ingenieure als die Feinde der Entwickler und des Produkts.

Heutzutage ist dies jedoch nicht mehr der Fall und die Qualitätssicherung ist Teil des gesamten Software-Lebenszyklus. Heute verstehen Unternehmen, wie sich die Qualität eines Produkts auf den Ruf einer Marke und die Kundenbindung auswirkt. Im agilen Ökosystem konzentrieren sich die QA-Mitarbeiter nicht mehr nur auf das Testen, sondern erfüllen auch eine wichtige Rolle in den Bereichen Planung und Delivery. Der ‚Shift-Left‘-Ansatz – bei dem Tests früher im Lebenszyklus durchgeführt werden – erfordert, dass QA-Mitarbeiter über größere technische Fähigkeiten verfügen und am gesamten CI / CD-Prozess mehr beteiligt sind. Dennoch sollten QS-Manager, die normalerweise die Eingliederung in das Scrum-Team, sowie ein schnelles Feedback für User Stories und Automatisierung unterstützen, das Hauptziel der Qualitätsmitarbeiter nicht vergessen – ein qualitativ hochwertiges Produkt und eine nahtlose Benutzererfahrung für Kunden.

Hohe Qualität erfordert Tests und Verifizierungen. Es gibt verschiedene Arten von Tests, die durchgeführt werden können, um Qualitätsziele zu erreichen. In einem ihrer Blogartikel beschreibt Testing Excellence fast 60 Arten von Tests, die an einem Produkt durchgeführt werden können.

Das funktionale Testen ist klar eine der wichtigsten Arten des Testens. Anders als andere Formen des Testens gilt das funktionale Testen als einer der am weitesten entwickelten Testtypen und als der umfassendste.

Selbes Team, sehr unterschiedliche Verantwortlichkeiten

Eine wichtige Tatsache, die jeder QA-Mitarbeiter im Hinterkopf behalten muss, ist, dass Entwickler entwickeln und QA-Mitarbeiter testen. Obwohl QA und Entwickler Teil desselben Scrum-Teams sind, sind ihre Arbeit, ihre Methoden und ihre Denkweise völlig unterschiedlich. In Fällen, in denen der wesentliche Beitrag der Qualitätssicherung nicht für das gesamte Team sichtbar ist, kann das Testen als eine einfache und klare Aufgabe angesehen werden. Ganz im Gegenteil, das Testen einer Anwendung ist viel komplizierter und verzwickter, als sie zu entwickeln. Bei der Planung und Durchführung von Tests müssen die QA-Mitarbeiter verschiedene Aspekte berücksichtigen, über die Entwickler wahrscheinlich nie nachdenken.

  1. Denken, wie ein Kunde

    Die hauptsächliche Unterscheidung zwischen Entwicklung und QA ist die Denkweise. Während Entwickler Code-Teile schreiben, die später zu Features in der Anwendung werden, wird von der Qualitätssicherung erwartet, dass sie versteht, wie echte Benutzer denken, Kunden dazu zu motivieren, Business-Szenarien zu erlernen und zu bestätigen, dass die Anwendung die Kundenbedürfnisse erfüllt.

    Schauen wir uns beispielsweise eBay an. Jedes erfahrene F & E-Mitglied wird zustimmen, dass eBay keine einfache Einkaufsanwendung ist, sondern ein umfassendes System. Ebay beinhaltet eine ganze Reihe von Web- und Mobil-Funktionen, die mit großer Aufmerksamkeit und tiefem Verständnis eingehend überprüft werden müssen, um sicherzustellen, dass sie korrekt funktionieren. In einer so mächtigen und ausgereiften Online-Plattform können wir verschiedene Benutzertypen und viele Fälle erkennen, wie die Anwendung genutzt werden kann. Ein Verkäufer führt andere Schritte aus als ein Käufer und benötigt andere Funktionen, während ein Support-Agent eine völlig andere Version der Anwendung benötigt. Bei der Planung von Tests müssen alle diese Rollen mit einem bestimmten Testplan für jede einzelne Rolle berücksichtigt werden. Das Testen der Funktionalität ist nicht nur eine Simulation von Benutzertätigkeiten.

    Dazu kommt, dass eBay keine unabhängige Anwendung ist. Seine Webanwendung befindet sich im Browser und hängt folglich von den Regeln und Verhaltensweisen dieses Browsers ab. Dies gilt auch für die mobile App von eBay, die die OS-Einschränkungen erfüllen muss, damit sie korrekt funktioniert, egal ob man zum Store eines Verkäufers navigiert oder einen Kauf tätigt.

    Dies macht das Testen der Kompatibilität zu einem wesentlichen Bestandteil des funktionalen Testens. Die meisten Entwickler denken beim Programmieren nicht über die Projektverfügbarkeitsmatrix nach. QA muss daher alle Möglichkeiten berücksichtigen, in denen sich der Kunde mit der Anwendung auseinandersetzt und die Funktionalität für jede überprüfen.

  1. Testen der gesamten Anwendung

    Das erste und offensichtlichste Merkmal, bei dem sich Entwicklung und QA unterscheiden, ist ihre Perspektive. Während sich Entwickler auf die Entwicklung von User Stories konzentrieren, testet QA die User Story, zu der die Funktion gehört, und das Verhalten der Anwendung mit dem neuen Code. Das Testen der Integration ist ein entscheidender Teil der Anwendungsüberprüfung und erfordert eine breitere Sicht auf die Anwendung und darauf, wie die neue Funktionalität Teil davon ist

    Das End-to-End-Testing ist die Erfüllung der beiden obigen Aspekte und bestätigt, dass sich reale Benutzerszenarien im Kontext mehrerer Regionen erwartungsgemäß verhalten. End-to-End-Tests erhöhen die Testabdeckung und reduzieren das Risiko, dass beim Hinzufügen des neuen Codes zur Anwendung entsteht.

  2. Verstehen der Benutzererfahrung

    Wie zuvor erläutert, ist das Testen der Anwendungsfunktionalität lediglich ein Schritt im funktionalen Testen. Das Testen der in der Anwendung verfügbaren Operationen umfasst einen anderen Testtyp – die Benutzererfahrung. Wenn eine neue Funktion entwickelt wurde, Benutzer jedoch keinen einfachen Zugriff darauf haben oder nicht verstehen, wie sie verwendet wird, ist es so, als ob die Funktion nicht existiert. QA-Mitarbeiter müssen die Benutzererfahrung als eine Hauptmetrik der Funktionen einbeziehen, damit Benutzer keinen Raum für Fehler haben, welche zu Missbrauch und Frustration führen können.

    Beispielsweise wurden in der Vergangenheit auf der „Alle Kategorien“ -Seite von eBay standardmäßig alle Kategorien angezeigt, obwohl einige der Kategorien keine Elemente enthielten. Während dies funktional gesehen das richtige Verhalten war, führte dies zu Verwirrung und Misstrauen der Benutzer, und die Ansicht „Alle Kategorien“ wurde in der Folge so geändert, dass nur Kategorien mit Elementen angezeigt wurden.

    Eine “Tunnelblick“-Herangehensweise an eine aktuell vorliegende Aufgabe kann dazu führen, dass Entwickler Funktionen so implementieren, wie es ihnen gesagt wird, ohne die Spezifikationen zu hinterfragen oder näher zu betrachten. Gleichermaßen entgeht Testern, die Funktionen testen, ohne zu erkennen, wie Kunden sie wahrnehmen, ein wichtiger Nutzen des Tests.

    Die obigen drei Aspekte – Denken wie die Kunden, das Testen der Anwendung als Ganzes und die Beachtung der Benutzererfahrung – drehen sich um die Art und Weise, wie Entwickler und QA-Mitarbeiter neue Funktionen verstehen. Während Entwickler dazu neigen, einseitig zu denken und die Spezifikationsrichtlinien zu befolgen, müssen QA-Tester im Hinblick auf die Verwendung der Features über den Tellerrand hinausdenken. Betrachten wir die nächsten beiden Aspekte, die die QA-Arbeit kompliziert und dennoch unfassbar wertvoll machen: Testwartung und Testautomatisierung.

  3. Aufrechterhaltung hoher Qualität während des Releases

    Im Allgemeinen teilen Entwickler ihre Zeit zwischen der Entwicklung neuer Funktionen und der Fehlerbehebung auf. Die QA-Arbeit ist um einiges vielfältiger. Ein wesentlicher Teil des Releases wird auf das Testen der Funktionalität aufgewendet, die bereits releast und verwendet wurde. Während die Hauptanstrengungen beim Entwerfen und Schreiben von Testplänen für diese Funktionalität in früheren Releases investiert wurden, erfordert jedes neu entwickelte Feature einen Testplan und einen Wartungsaufwand für vorhandene Tests. Eines der Hauptziele von QA-Managern ist es, diesen Aufwand auf ein Minimum zu reduzieren. Teams, die eindeutige und wiederverwendbare Tests erstellen, vereinfachen den Wartungsaufwand und optimieren die Testerfassungszeit.

  4. Eliminierung von Risiken durch Automatisierung

    Die kosteneffizienteste Lösung für die Qualitätssicherung ist jedoch die Testautomatisierung. Am Ende eines Releases, wenn sich die QA in ihrer stressigsten Phase befindet und jeder Commit ein neues Risiko mit sich bringen kann, beseitigt die Automatisierung von Tests die Risiken und liefert frühzeitiges Feedback zu jeder Änderung. Agile Teams bemühen sich um den höchsten Automatisierungsgrad, sodass das Entwicklerteam Änderungen guten Gewissens auch noch spät im Release vornehmen kann. Nur ist die Entwicklung nicht daran interessiert, Zeit in die Automatisierung zu investieren. Sicher unterstützen sie die QA-Automatisierung, aber sie wollen sich die Hände nicht mit Testen „schmutzig machen“. Ganz gleich, ob es sich um eine Benutzeroberflächenautomatisierung handelt, bei der die Eindeutigkeit der Elemente unverzichtbar aber schwierig ist und ein Eingreifen der Entwicklung erfordert, oder um einen API-Test für APIs ohne ordnungsgemäße Dokumentation – die QA steht vor komplizierten Herausforderungen, die anspruchsvolle Lösungen erfordern. Während sich das Entwicklerteam auf den Status neuer Features konzentriert, kümmert sich die QA um die Anwendung als Ganzes und achtet besonders darauf, durch eine Änderung entstandene Regressionen zu identifizieren.

Machen Sie den QA-Prozess für jedermann sichtbar

Das Testen einer Anwendung erfordert eine völlig andere Denkweise als ihre Entwicklung. Eine der Hauptherausforderungen der agilen Methodik besteht darin, bei den Entwicklungs-Teams ein Qualitätsbewusstsein zu schaffen, andere Beteiligte in die Qualitätssicherungsaktivitäten einzubinden und den QA-Prozess für alle sichtbar zu machen. QA-Manager müssen verstehen, wie sich die tägliche QA-Arbeit von der Arbeit anderer Teammitglieder unterscheidet, damit sie wirklich die Komplexität, die Bemühungen und letztendlich den Erfolg abbilden können. F & E-Gruppen, die sich zusammenschließen und verstehen, dass QA weit über die eigentlichen Aufgaben des QA-Teams hinausgeht, setzen hohe Standards für die Qualität ihrer Produkte und haben eine viel höhere Chance auf Verbesserungen. Die Implementierung geeigneter Methoden und die Nutzung der richtigen Tools führen zu einer Steigerung der Kundenzufriedenheit und -bindung.

State of Functional Testing Report

Start changing with confidence

Book a demo
Skip to content