Modernes Testen - Die Entwicklung der QS-Rolle

Die Softwareentwicklung hat sich aus den Tagen von Waterfall, Agile und jetzt DevOps entwickelt. Natürlich hat das Testen als Disziplin auch einige wesentliche Veränderungen erfahren, um den neuen Arbeitsweisen und der Bereitstellung von Software Rechnung zu tragen.

Es gibt jedoch immer noch ein großes Missverständnis und eine falsche Wahrnehmung der Rolle von Testern und der Qualitätssicherung insgesamt.

In diesem Beitrag werfen wir einen Blick darauf, wie sich das Testen insbesondere im letzten Jahrzehnt entwickelt hat und was QS-Profis tun müssen, um dem Spiel einen Schritt voraus zu sein.


Testen kann nur interessanter werden!

Während sich die Aktivitäten zum Testen von Software geändert haben, um sich an die neuen Arbeitsweisen anzupassen, sehe ich immer noch viele altmodische Ansichten zum Testen und zur Rolle einer Qualitätssicherung.


Es ist entmutigend zu sehen, dass es in der IT-Branche immer noch viele Menschen gibt, die QAs oder Tester als Endergebnis betrachten. Tester werden oft nur als Funktionstester angesehen, die erst testen, wenn die Entwickler mit der Arbeit an einer Funktion fertig sind. „Qualitätssicherung“ wird als Testen, Auffinden und Melden von Fehlern und als grünes Licht für die Freigabe angesehen.

Noch besorgniserregender ist, dass diese Wahrnehmung der QA-Rolle bei Testern und QA-Fachleuten selbst von größter Bedeutung ist.



Traditionelles Testen von Software

Historisch gesehen würden Tests, die in den letzten Phasen eines Wasserfallprojekts eine Führungsrolle übernehmen, fest auf der rechten Seite des Projektlebenszyklus stehen. Nach der Definition der Anforderungen im Voraus nahmen die Tester am Ende der Entwicklungsphase den Stab vom Entwicklungsteam und führten langwierige, detaillierte Testskripte aus, häufig manuell und in der Regel durch isolierte Teams und Gruppen von KMU.

Testfälle wurden im Voraus sorgfältig geplant, Skripte wurden von Spezialisten ausgeführt, Fehler wurden erkannt und gemeldet, und Testzyklen wurden ausgeführt und erneut ausgeführt, bis die vordefinierten Qualitätsniveaus erreicht waren.


Vor allem gab es immer eine klare Trennung zwischen Entwicklern und Testern, ohne dass sich Verantwortlichkeiten oder Aktivitäten überschnitten. In der Tat konzentrierten sich die Aktivitäten in der eigentlichen, zweckgebundenen Testphase ausschließlich auf die Funktionsvalidierung von Software mit dem Hauptziel, Fehler zu finden und zu melden.



Qualitätssicherung im Zeitalter der Agilität

Das Aufkommen agiler Methoden und Arbeitsweisen verschmolz die Aktivitäten der Entwicklung und des Testens in einem solchen Ausmaß, dass Softwaretests keine eigenständige Phase mehr waren. Stattdessen wurde das Testen zu einer impliziten Aktivität bei der Codierung und Entwicklung von Software.

In einigen Fällen ist es schwierig, die Unterscheidung zwischen einem „Tester“ und einem „Entwickler“ zu erkennen, da jeder die Fähigkeit hat, die Aktivitäten des anderen nahtlos durchzuführen.

'Qualität' wurde nicht mehr zur alleinigen Verantwortung der Tester und zu einer gemeinsamen Verantwortung aller an der Entwicklung und Lieferung des Produkts Beteiligten.


Mit dieser Entwicklung ging von Anfang an eine Verlagerung der Testverantwortung nach links von der Entwicklung einher, die im Wesentlichen die Backqualität betraf.

Der Fokus verlagerte sich von der Suche nach Fehlern in der erstellten Software auf die Verhinderung, dass Fehler überhaupt in die Software gelangen.

Mit dem gemeinsamen Ziel, sicherzustellen, dass das Produkt oder die Funktion nicht nur funktionsfähig ist und den Anforderungen entspricht, sondern auch zweckmäßig ist und ein hohes Maß an Benutzerzufriedenheit bietet.

Verbunden:


Die Beteiligung der Tester an Verfeinerungen von Storys, Peer-Code-Überprüfungen, Unit-Tests und Praktiken wie TDD, BDD und kontinuierlichen Tests stellte sicher, dass Tests und Qualität im Vordergrund standen und in die Entwicklung eingebettet waren.

Obwohl Agile einen langen Weg zurückgelegt hat, um die Aktivitäten und Praktiken von Entwicklung und Test zu kombinieren, war das Betriebsteam immer noch isoliert. Die beiden Arbeitsströme (Dev & Ops) waren sich der Aktivitäten des anderen oft nicht bewusst.

Wenn in der Produktion etwas schief gehen würde, würde die Untersuchung lange dauern. Entwickler hatten keinen Einblick in die langfristige Leistung ihrer Anwendung in der Produktion. Es gab keine Transparenz oder Klarheit der Zusammenarbeit zwischen den beiden Teams.



Willkommen bei DevOps

DevOps bezieht sich auf die Zusammenarbeit von Entwicklungs- und Betriebsteams bei der Erstellung, Bereitstellung, Wartung und dem Support von Software. Es bezieht sich auf eine kontinuierliche Vereinigung von Ressourcen, Prozessen und dem Produkt selbst.


DevOps ermöglicht Methoden zur kontinuierlichen Integration und Bereitstellung von Wert für den Endbenutzer.

Die DevOps-Bewegung hat eine neue Perspektive auf das Testen eröffnet und neue Möglichkeiten für Tester selbst geschaffen.

In dieser neuen Ära müssen Tester sowohl auf die Entwicklung als auch auf den Betrieb ausgerichtet sein.

Der Testauftrag beschränkt sich nicht mehr auf das Produkt, sondern auch auf das Testen der Infrastruktur, in der das Produkt letztendlich ausgeführt wird.

Continuous Integration (CI) und Continuous Delivery (CD) sind zum De-facto-Standard bei der Entwicklung und Bereitstellung von Software geworden. Daher wird jetzt ein Großteil des Testaufwands für die Sicherstellung der CI / CD-Pipeline, -Umgebungen und -Infrastruktur aufgewendet.

Dies ist die Wirbelsäule, die sowohl die Entwicklung als auch die Lieferung unterstützt.

Wenn Tests dieser vernachlässigt werden, kann dies zu schuppigen Umgebungen führen, wobei viel Aufwand für die Untersuchung wiederholter Infrastrukturprobleme verschwendet wird und letztendlich ein hohes Risiko für die Entwicklung und eine schnelle Lieferung besteht.



Modernes Testen - Qualitätsorientierte Entwicklung

Obwohl viel getan wurde, um die Qualität in jeder Entwicklungsphase einzubetten, und das Testen daher einen viel größeren Umfang hat, glaube ich immer noch, dass QAs den größten Teil ihrer Zeit damit verbringen, nach funktionalen Problemen zu suchen und sich auf die Verifizierung von Software zu konzentrieren.

Die meisten QAs erkennen nicht die Bedeutung ihrer Rolle und die Auswirkungen, die sie auf Entwicklung und Bereitstellung haben können.

Trotz der erheblichen Veränderungen in der Entwicklungspraxis in den letzten zehn Jahren bin ich der Meinung, dass Tester ihre Rolle immer noch auf altmodische Weise betrachten und somit in der alten Ära des Testens verankert bleiben.

Das Testen als Beruf und die Rolle eines Testers stehen seit einiger Zeit unter Beschuss mit dem Aufkommen des „automatisierten Testens“. Tatsächlich glauben viele Branchenfachleute immer noch, dass die Rolle eines Testers einfach darin besteht, die von den Entwicklern erstellte Anwendung zu testen, die alle automatisiert werden kann.

Wenn Entwickler besser geeignet und geschickter sind, den für automatisierte Tests erforderlichen Code zu schreiben, welche Notwendigkeit besteht dann überhaupt für einen Tester im Team?

Es ist an der Zeit, diese Wahrnehmung zu ändern. Wir müssen den Unterschied in Wert und Fähigkeiten zwischen „Testen“ und „Qualitätssicherung“ anerkennen, da die Qualitätssicherung keine einzelne Aktivität ist, wenn das Testen eine Funktionsüberprüfung und Validierung von Software ist. Die Qualitätssicherung besteht aus einer Reihe von Prozessen, einschließlich Tests und Best Practices, um sicherzustellen, dass den Benutzern ein Qualitätsprodukt geliefert wird.

Wir müssen uns um eine qualitätsorientierte Entwicklung bemühen und den QS-Beruf als zentrale und zentrale Funktion bei der Entwicklung und Bereitstellung von Software betrachten Modernes Testen .

Die Qualitätssicherung ist jetzt eine Schlüsselkomponente der Entwicklung von Anfang bis Ende des gesamten Prozesses. Und obwohl die allgemeine Sprache besagt, dass jeder in einem Lieferteam für die Lieferung eines Qualitätsprodukts verantwortlich ist, bin ich fest davon überzeugt, dass es in der Verantwortung einer Qualitätssicherung liegt, sicherzustellen, dass das Team die Qualitätspraktiken einhält.



Wer ist die moderne Qualitätssicherung?

Während der Testberuf oft als Zugang zu Entwicklung, Projektmanagement oder anderen - normalerweise lukrativeren - Disziplinen angesehen wurde, ist die neue Qualitätssicherung eine hochqualifizierte Rolle, die ein ganzheitliches Wissen über Entwicklungspraktiken erfordert.

Es erfordert ein umfassendes Verständnis der Herausforderungen der Codierungspraktiken, ein Verständnis der Bereitstellungsmethoden und -umgebungen sowie der Leistungs- und Sicherheitsstandards, -methoden und -herausforderungen.

Dies ist eine T-förmige Rolle, bei der die Ressource nicht nur ihr tiefes Fachwissen und ihre Erfahrung einsetzen kann, um ihren Kernauftrag zu erfüllen, sondern auch ein breiteres Kontextwissen über Architektur und Entwicklung hinweg anwenden kann.

Die moderne Qualitätssicherung, die im Mittelpunkt eines jeden Projekts steht, sollte ein gutes Verständnis für Architektur, Leistung, Sicherheit und Cloud-Angebote haben, technisch fundiert sein und den Durst haben, neue Technologien zu erlernen, um im Spiel zu bleiben.

Hinweis:Ein weiterer Bereich, der immer beliebter wird und wichtige Datenqualitätsprüfungen durchführt, nämlich das Testen von Big Data, Data Lakes und Data Warehouses.

Es ist an der Zeit, die Wahrnehmung der QS-Rolle und das, was Tester tun, zu ändern. Dies muss von den Testern selbst ausgehen. Der Ausgangspunkt ist, tief auf Qualität zu achten.

Tester sind nicht nur dazu da, Funktionstests durchzuführen und Fehler zu melden. Die QS-Rolle ist viel größer. Wir werden auf ein Projekt gesetzt Qualitätspraktiken sicherstellen .

Wenn wir eine Anwendung gründlich testen, müssen wir über fundierte Kenntnisse über den gesamten Betrieb des Systems verfügen und die Anwendung nicht nur als Black Box betrachten.

Um dieses intime Wissen zu haben, müssen wir kontinuierlich lernen und mit neuen Technologien und Arbeitsweisen Schritt halten. Vor allem müssen die Qualitätssicherungsmaßnahmen anpassungsfähig sein.

Wenn QAs ihren Zweck in einem Projekt verstehen und anfangen zu glauben, dass ihre Rolle das Kernstück der Softwareentwicklung und -bereitstellung ist, wenn wir die modernen Testprinzipien anwenden, können wir nur dann die Wahrnehmung anderer ändern.