Blog
Misvattingen rondom testautomatisering - Misvatting 1: Die Silberkugel

Dieser Blogbeitrag ist der erste in einer Reihe von Beiträgen, die sich mit dem Thema Testautomatisierung befassen. Ziehen Sie hierher, um den Artikel zu lesen.
Misvatting
"Testautomatisering ist die Lösung für alle Probleme, die mit Tests und Qualität zusammenhängen."
Toelichting
Es handelt sich hierbei also um eine nicht zu unterschätzende, aber auch nicht zu unterschätzende Fehlentwicklung bei den Interessengruppen auf (Jugend-) Managementebene. Daher ist diese Fehlentscheidung auch nicht unproblematisch. Aufgrund dieses impliziten Charakters wird diese Art der Zusammenarbeit sehr lange dauern, so dass sie nicht (mehr) notwendig und auch nicht (mehr) sinnvoll ist.
Soms manifesteert zich deze misvatting in iets minder absolute termen, doordat men er niet zozeer van uitgaat dat zonder meer alle (of tenminste de meeste) problemen opgelost zullen worden, maar men in ieder geval een aantal belangrijke voordelen veronderstelt die er niet zijn. Wenn Sie wissen wollen, dass die Ziele auch in
Werkelijkheid
Naar een realistischer beeld van de voordelen van testautomatisering
Automatisering als sinnvoll und engmaschig genomen, hat nur Auswirkungen auf die Effizienz des Tests, nicht aber auf die Effektivität des Tests. Die Testautomatisierung ist also auch ein strategisches Mittel, um die Effizienz zu steigern. Aber das ist nicht alles: Es gibt noch viele andere (wichtige) Gründe, wie z.B. die Wiederholbarkeit von Testfällen oder die Motivation der Tester, ihre Arbeit zu verbessern und zu verbessern. Aber in erster Linie ist die Testautomatisierung ein Instrument, um Feedback-Zyklen zu erstellen, die in einer kürzeren Zeitspanne besser ausfallen können und die aufgrund dieser Schnelligkeit in einer kürzeren Zeitspanne besser funktionieren. Wenn Sie einen erfolgreichen Test durchführen, kann die Automatisierung auch dazu führen, dass unwirksame Tests schneller und effizienter durchgeführt werden. Auch dies kann zu einem Verlust an Sicherheit führen. Dies führt auch dazu, dass wir bei einem sehr konkreten Fall von Automatismus, den wir mit Hilfe von Testautomatisierung innerhalb einer kurzen Zeitspanne durchführen können, die Möglichkeit haben, einen unausgefüllten Testbericht zu erstellen oder zehn Minuten zu warten. Es handelt sich hierbei um eine spezielle Einstellung, die darauf abzielt, dass der Mensch zur Automatisierung von Testdesigns, bei denen die Qualität nicht ausreicht und die sich schnell ändern können, überfordert ist. Wenn wir 'alles' testen können, müssen wir nicht mehr kritisch und selektiv sein, um unsere Testentwürfe anzuerkennen, so wie der naive Gedankengang. Das Problem dabei ist, dass das Verbreiten eines geeigneten Testmusters nicht unbedingt notwendig ist, aber auch nicht unbedingt notwendig ist. Ich werde diesen ersten (und auch den letzten) Beitrag in einem späteren Posting weiter ausführen und dokumentieren. Auch unsere automatisierten Testdesigns müssen daher durch unsere Testintelligenz in Form von Risikoanalysen und Testtechnologien entwickelt und ausgewählt worden sein. Aber auch dieser Aspekt der Testdurchführung führt dazu, dass neben der Testautomatisierung auch andere Faktoren eine Rolle spielen, die den Ablauf eines Testzyklus beeinflussen können. Daher kann die Testautomatisierung, auch wenn sie automatisiert ist, innerhalb eines Entwicklungszyklus zu einem Flaschenhals werden. Die Testautomatisierung kann die Testkombinationen in einem überkomplexen Testpaket nicht kompensieren! Der gesamte Ausführungsumfang der Testautomatisierung ist auch in der aktuellen Version überkompensiert. Diese Überschattung wird in Form von ongeïnformeerde (d.h. naïeve), onrealistische verwachtingen aangaande potentiële voordelen, die niet expliciet (laat staan concreet) gemaakt zijn, maar die als onuitgesproken (en vage) veronderstellingen bestaan, sogar al benoemd. Abgesehen von den Variablen, die in den meisten Fällen sehr hilfreich sind, wurden auch alle anderen 'fiktiven' Variablen in den vorgeschlagenen Testautomatisierungsprozess einbezogen. Die Testautomatisierung wird daher als eine Art heilige Gralshüter der Risikobewältigung und des Risikomanagements angesehen, als die 'Wunderwaffe', die alle Probleme beim Testen und bei der Risikobewältigung in Ihrem Unternehmen beseitigen kann. Das klingt nicht sehr überzeugend, aber in der Praxis werden diese Annahmen immer wieder in Frage gestellt.
Naar een realistischer beeld van de nadelen van testautomatisering
Neben den offensichtlichen Problemen und Problemen gibt es auch verschiedene, der Testautomatisierung inhärente Probleme in Form von verschiedenen Arten von Lösungen, Risiken und Kosten.
Ein Beispiel für ein solches Problem ist die der Testautomatisierung inhärente Beeinträchtigung der Abdeckung. Laten we therear bij wijze van illustratie iets dieper op ingaan.
Wanneer een menselijke tester handmatige GUI-level tests uitvoert volgens een vooropgezet plan, zoals bijvoorbeeld een testscript, dan zullen haar ook eventuele onregelmatigheden (d.i. onverwachte systemeemgedragingen) opvallen die plaatsvinden in andere delen van het scherm dan die welke volgens het momenteel uitgevoerde testgeval de focus zouden hebben moeten. Ein automatisierter Test erkennt den passenden System-Output und -Gedanken, für den auch explizite Validierungen programmiert werden können. Ein automatisch durchgeführter Test konzentriert sich daher ausschließlich auf(bestimmte Arten und Bereiche) von verwalteten Ergebnissen, die vorher festgelegt wurden.
So kann ein Menschentester, auch wenn er sich selbst erkundet und motiviert ist, on-the-fly zusätzliche Testvariablen erstellen, die sich von den voorgedefinierten Testvariablen unterscheiden oder völlig neu sind. Dies kann auf der Grundlage von Systemanalysen und Testergebnissen geschehen, die durch die Kreativität, das Gespür und die Intuition des Testers erzielt werden. Ein automatisch durchgeführter Test kann nicht ohne Weiteres auf der Grundlage eines von Anfang an durchdachten Lernprozesses durchgeführt werden. Es gibt keine Dynamik in einem Test, der von einem Programmierer durchgeführt wird.
Anders ausgedrückt: Automatisierte Tests lassen die Intelligenz, die Kreativität, die Intuition und das Verständnis eines menschlichen Testers(im Winter) vermissen. Außerdem kann ein Teil der Intelligenz, Kreativität usw. selbst programmiert werden. Aber das muss für eine nicht ganz einfache Aufgabe herhalten. Das ist ein Hinweis auf eine konsequente Fehlerkorrektur bei der Durchführung des Tests, um die Vermeidung von (übersehenen) Fehlern, falsch positiven Ergebnissen usw. zu vermeiden. Oftmals ist das auch der Fall, wenn der Test gescheitert ist. Es gibt noch viele weitere Hinweise auf die Vorteile, Risiken und Kosten der Testautomatisierung. Diese werden in den nachfolgenden Beiträgen nicht mehr erwähnt.
Auswirkungen von Fehlvatierungen
Das Übermaß an Selbstvertrauen und das Übermaß an Vertrauen in die eigenen Fähigkeiten führt zu einem "falschen Gefühl der Sicherheit". Dies führt sowohl zu einem übermäßigen und übermäßigen Vertrauen in das automatisierte System (Overconfidence) als auch zu einem übermäßigen Vertrauen in das System (Overreliance). Diese Zwiespältigkeit kann zu Überheblichkeit und Uneinsichtigkeit führen, während andere, wesentliche Momente und Aspekte des Tests nicht berücksichtigt werden können.
Anzeigen/Maatregelen
Hanteer een breed perspectief
Die Testautomatisierung kann nicht alle Probleme im Zusammenhang mit der Qualität und den Tests lösen. Durch die Identifizierung und Behebung von zwangsläufigen Ereignissen in der überladenen Testumgebung können Tests automatisiert werden, auch innerhalb der überladenen Umgebung, um die Sicherheit zu erhöhen. Die Testautomatisierung funktioniert vollständig in der Software und ist in dieser Hinsicht nicht mehr (aber auch nicht weniger) als einer der grundlegenden Erfolgsfaktoren für ein effektives Testregime. Er hat alles im Griff, auch das, was schon einmal gesagt wurde und was noch zu tun ist. Immers: Scheiß rein, Scheiß raus. Aber nicht nur das. Daher sollte ein effektives Gesamttestpaket und eine Strategie für alle relevanten Bereiche (Methoden, Technologien, Systeme und Prozesse) und für alle relevanten kritischen Momente (z.B. Risikoanalyse und Testverfahren) erstellt werden. Dies ist eine wichtige Voraussetzung für den Erfolg eines Testregimes im Allgemeinen und für die Testautomatisierung im Besonderen. Die Einführung der Testautomatisierung ändert nichts an dem Gezeigten. Daher werde ich nicht behaupten, dass ich der Befürworter eines zwangsweise durchgeführten und formalisierten Testverfahrens bin. Ich will nur darauf hinweisen, dass unsere Testintelligenz nicht nur relevant ist, sondern auch in der richtigen Form und in der richtigen Zusammensetzung eingesetzt werden muss, um unsere automatisierten Testdesigns zu vermitteln.
Kom to een geïnformeerde automatiseringsstrategie
Eerste Klammer: Voorlichten
Informieren (d.h. 'ausbilden') Sie nicht nur die Praktiker, sondern auch die relevanten geschäftlichen Interessengruppen, die sich um einige grundlegende, 'unternehmenskritische' Themen kümmern. Unter 'unternehmenskritischen' Unternehmen verstehe ich hier die Unternehmen, die ein starkes Engagement und ein starkes Engagement für die Automatisierung von Prozessen und deren Umsetzung zeigen wollen.
Wir werden Sie hier sofort und umfassend über die wichtigsten Probleme informieren, die sich aus der Nutzung dieser Dienste ergeben. Zu diesen Fehlern gehören unter anderem die üblichen Kosten, die Kosten/Vorteile, die Kosten, die Kosten, die Kosten, die Randbedingungen und die Risiken, wie z.B. die Testautomatisierung. Es gibt also eine Reihe typischer Beispiele für zulässige Fehlentwicklungen, aber auch solche, die
Tweede stap: Strategie beibehalten
Mit diesem Kader 'in place' können wir unseren Stakeholdern in einem weiteren Schritt helfen, ihre Wünsche zu erläutern, zu konkretisieren und zu verwirklichen und sie auch auf der anderen Seite zu steuern (zu 'alignieren'). Dazu müssen sowohl die Vorteile als auch die Nachteile (z.B. Kosten) und Risiken, die mit dem geplanten Automatisierungsprozess verbunden sind, berücksichtigt werden. Eine gute Möglichkeit, dies zu tun, ist die Formulierung einer geeigneten Automatisierungsstrategie innerhalb der Gruppe der Beteiligten. Der nächste Beitrag beschäftigt sich mit der Form und dem Inhalt einer Testautomatisierungsstrategie und mit dem Bereich, den sie in einem Projekt einbezieht, das zu einem effektiven, geordneten und erfolgreichen Automatisierungsprozess führen soll. Ich werde daher auf dieser Seite eine Reihe von Maßnahmen ergreifen. In einer oder mehreren interaktiven Sitzungen (Work Shops) helfen Sie den Stakeholdern in der ersten Minute, sich selbst und anderen ihre Sorgen in Bezug auf Tests und Qualität zu erklären: Was sind die Probleme, Probleme und Risiken, die wir in diesen Bereichen haben und die wir mit Testautomatisierung lösen können? Aus diesem 'negativen' Kontext heraus können die Stakeholder vervolgens, 'positiv', ihre verwachtingen ten aanzien van de testautomatiseringsoplossing formuleren in termen van de strategic, high-level doelen (waarin o.a. verwaltete Voordelen verdisconteerd zijn) en scope (waarin o.a. verwachte beperkingen verdisconteerd zijn) und de daarbij volgens hen geldende constraints (waarin o.a. verwachte costsoorten verdisconteerd zijn) en risico's. Die oben erwähnten ('positiven') Aufgaben und Möglichkeiten dürfen daher nicht mit den stärker ausgeprägten ('negativen') Problemen, Anforderungen und technischen Lösungen im Rahmen des Testregimes verwechselt werden. Was davon besonders wichtig ist, muss in der nächsten Ausgabe der Zeitschrift berücksichtigt werden. Die formulierte Strategie in Bezug auf High-Level-Doelen, Umfang usw. muss das Design des Frameworks unterstützen, damit die Umsetzung der Doelen im Rahmen des festgelegten Umfangs und unter Berücksichtigung der bestehenden Einschränkungen gewährleistet werden kann. So können Sie die wichtigsten und verwalteten Ziele realisieren und die wichtigsten und wichtigsten Kosten, wie z.B. die Kosten und die Kosten für die Arbeit, mit den Zielen in Einklang bringen. Im nächsten Beitrag werde ich dies weiter konkretisieren und auch aus der Hand von Praktikern illustrieren. Merken Sie sich, dass dieser Ansatz eine zwangsläufige Top-Down-Behandlung implizieren sollte. Dies führt dazu, dass der aktuelle Trend, dass Teams nur noch auf eigene Initiative, d.h. von unten nach oben, und innerhalb eines agilen Kontextes Automatisierungsinitiativen initiieren und umsetzen, nicht mehr berücksichtigt wird. Nur in größeren Organisationen, in denen zulässige Initiativen von der Geschäftsleitung ausgehen und in denen auch (auf sehr kurze Sicht) vollständige Automatisierungsprozesse in der Zeit, in der die Organisation unterbrochen wird, geduldet werden, ist dieser Trend zu beobachten. Auch wenn ich in meinem Beitrag noch einmal darauf hinweise, ist es nicht nur verständlich, sondern auch notwendig, eine Automatisierungsstrategie in Absprache mit den Stakeholdern zu entwickeln. Es ist auch wichtig, dass eine solche Strategie auf eine sehr pragmatische und inspirierende Art und Weise umgesetzt werden kann.
Samenvatting
Testautomatisering ist eine notwendige, aber nicht ausreichende Voraussetzung für ein effektives Testregime.
Auch wenn es ein offenes Ziel sein sollte, ist dies in der Praxis nicht immer offensichtlich. Integendeel, met name onder ongeïnformeerde stakeholders op management niveau, heerst vaak de opvatting dat testautomatisering niet alle een conditio sine qua non is, maar zelfs de 'alleen zaligmakende' oplossing voor all onze problemen rondom tests en kwaliteit.
Verfasst von
Michael Hallik
Unsere Ideen
Weitere Blogs

Testgetriebene Entwicklung (TDD) mit dbt: Erst testen, dann SQL
Testgetriebene Entwicklung mit dbt: Erst testen, dann SQL Wenn Sie mehr als drei Tage als Analytik-Ingenieur verbracht haben, hatten Sie...
Dumky de Wilde

Python Mocking, die heimtückischen Bits
Bei dem Versuch, eine Funktion in meinem Python-Code zu spiegeln, bin ich auf diesen hervorragenden Blog von Durga Swaroop Perla gestoßen. Der Blog...
Jan Vermeir
Contact

