Fragen und Antworten mit Max Saperstone von Coveros: Teil Eins – Erste Schritte mit der Testautomatisierung
Von Markus Lambert
19. Februar 2020
5 min lesen
Die Bewältigung der Herausforderungen, die mit der Testautomatisierung einhergehen, ist mit einer fachkundigen Anleitung möglich. Sehen Sie sich an, was der Testautomatisierungsingenieur Max Saperstone zu den ersten Schritten mit der Testautomatisierung zu sagen hat.
Zum Abschnitt springen
In diesem Satz von drei Blog-Posts erhalten wir einen Einblick in die Erstellung einer effektiven Teststrategie und die Verwendung der Testautomatisierung als Teil dieser Strategie. Ich interviewe Max Saperstone, Director of Test Automation bei Abdeckungen. Max ist ein erfahrener Testingenieur mit Schwerpunkt auf Testautomatisierung im CI / CD-Prozess. Er hilft verschiedenen Kunden dabei, ihre Test- und Automatisierungsbemühungen in Gang zu bringen. Max ist auch ein erfahrener und zertifizierter agiler Entwickler und wird für Vorträge auf Test- und Agile-Entwicklerkonferenzen gesucht. Wir haben das Glück, Max 'Erfahrung zu diesem Zeitpunkt zu haben, um hier bei Parasoft Themen zu diskutieren, die uns am Herzen liegen.
Dies ist der erste Teil einer dreiteiligen Serie, in der Max Gedanken zum Einstieg in die Testautomatisierung erörtert werden. Eines ist klar, Max hilft seinen Kunden gerne dabei, einen Schritt zurückzutreten und das Gesamtbild zu betrachten, bevor er in die Testautomatisierung eintaucht. Hilft seinen Kunden bei der Beantwortung wichtiger Fragen wie „Warum automatisiere ich Tests?“ damit sie klare Ziele für ihre Bemühungen setzen können. Wir unterhalten uns auch kurz über API-Tests und Max scheint auf derselben Seite zu sein wie wir – API-Tests sind von entscheidender Bedeutung. Schauen wir uns an, was Max zu sagen hat.
Erste Schritte mit der Testautomatisierung
Markus Lambert: Hallo Max, es ist toll, wieder bei dir zu sein. Ich weiß, dass es bei Coveros darum geht, Kunden mit effektiven Testautomatisierungsstrategien zu unterstützen. Können Sie uns sagen, was Ihrer Meinung nach eine effektive Testautomatisierungsstrategie ist? Wo soll ein Team anfangen?
Max Saperstein: Hallo Markus, das ist eine tolle Frage! Es ist interessant, weil meine Spezialität, wie Sie wissen, die Automatisierung ist. Trotzdem lautet mein Rat zu Beginn eines Teams normalerweise: „Tauchen Sie nicht nur in die Automatisierung ein.“
Der beste Ausgangspunkt ist, die Qualitätssicherung als Ganzes zu betrachten. Als Erstes müssen Sie also verstehen, was „Qualität als Ganzes“ für Ihr Projekt bedeutet und wie Sie es überprüfen werden. Erst wenn Sie die Antwort auf diese Fragen kennen, können Sie wirklich entscheiden, was und was Sie automatisieren möchten nicht automatisieren wollen.
Für mich ist dies immer eine der größten Herausforderungen. Ich sehe viele Teams, die eintauchen, um Selenium-Skripte oder QTP-Skripte zu schreiben, und sie haben eine ganze Reihe von „Sachen“. Aber letztendlich, wie wird das Zeug verwendet? Wie gehen Sie mit Testergebnissen um? Wie entscheiden Sie, wann Sie das Produkt versenden?
Normalerweise empfehle ich, einen Schritt zurückzutreten und herauszufinden, was Sie überprüfen müssen - und wie das geht. Es gibt diese wirklich coole Methode namens MSCW.
Markus Lambert: Was ist die MSCW-Methode?
Max Saperstein: Die MSCW-Methode ist eigentlich nur ein Akronym. Es ist was MSie müssen nur automatisieren, was SSolltest du automatisieren, was? CKönnten Sie automatisieren, und was WSie automatisieren nicht. Die Idee ist, tatsächlich etwas Zeit und Gedanken in Ihre Automatisierungsstrategie zu investieren, um herauszufinden, wo der größte Knall für Ihr Geld liegt.
Für mich geht das immer auf den ROI zurück. Welche Tests werden konsistent ausgeführt? Was sind die wirklich hochwertigen Bereiche Ihrer Anwendung, in denen Sie einfach nicht zulassen können, dass etwas schief geht? Was wird die Benutzer am meisten beeinflussen? Sie beginnen mit dem, was immer unter Ihr „Muss“ fällt, und fallen immer unter Ihr „Muss“.
Dann gelangen Sie in einige andere Bereiche Ihrer „Könner“ und „Wünsche“. Wenn Sie beispielsweise die Benutzerfreundlichkeit testen, ist dies sehr schwierig und schwer zu automatisieren: Wie können Sie einer Maschine sagen, was sich richtig anfühlt und was nicht?
Ein weiterer Bereich, der schwer zu automatisieren ist, sind Integrationen von Drittanbietern. Angenommen, Sie haben eine FitBit-Integration, die Sie möglicherweise automatisieren können. Aber das wird Wochen oder Monate dauern. Lohnt es sich wirklich, so viel Zeit zu investieren, um das zu automatisieren?
Wenn ich eine Teststrategie schreibe, verbringe ich Zeit damit, meinen Testplan auf diesem hohen Niveau herauszufinden. Was sind die Bereiche der Anwendung, die mir wirklich wichtig sind? Welche Bereiche lassen sich leicht automatisieren? Normalerweise fange ich damit an.
Markus Lambert: Wie organisieren Sie das?
Max Saperstein: Natürlich spricht dies wirklich immer noch von einer funktionalen Ebene. Sobald Sie einen Schritt zurücktreten und Ihre Strategie in Bezug auf die Testpyramide und die verschiedenen Rollen, die mit der Qualität verbunden sind, betrachten, weil es nicht nur Tester sind. Entwickler sollten Unit- und Integrationstests im unteren Teil der Testpyramide schreiben. Ab einem bestimmten Punkt übernehmen die Tester wie die Spitze eines Eisbergs. Unter der Oberfläche möchten Sie sicherstellen, dass der gesamte Code mit Komponententests getestet wird. Stellen Sie sicher, dass der Code das tut, was der Entwickler vom Code vorschreibt. Die nächste Ebene sind die Integrationstests, die sicherstellen, dass die verschiedenen Teile der Anwendung tatsächlich so funktionieren, wie die anderen Teile glauben, dass sie funktionieren werden. Schließlich haben Sie die Tester, die oben auf dem Eisberg sitzen und wirklich sicherstellen möchten, dass die gesamte Anwendung das tut, was der Endkunde tatsächlich will.
Wenn Sie diese beiden zugrunde liegenden Teile nicht ordnungsgemäß ausführen lassen - wo sich die Automatisierung auszahlt und auf diesen niedrigen Ebenen schnell und einfach ist -, sind Fehler auf der obersten Ebene schwer zu debuggen und zu beheben. Sie haben keine Ahnung. „Ist es ein funktionales Problem? Ist es ein Komponentenproblem? Oder ist es ein Code-Problem? " Wenn Sie jedoch wissen, dass all diese anderen Dinge ordnungsgemäß funktionieren, ist es sehr einfach, diese Probleme zu lösen.
Wenn Sie jedoch wissen, dass alle Unit- und Integrationstests bestanden wurden, können Sie Fehler schneller als wahrscheinliche Funktionsprobleme diagnostizieren. Die gegenteilige Situation mit einer schlechten Automatisierungsstrategie ist ein Kampf um die Ermittlung der Grundursache, viel Debugging. Ein gutes Problem bei der Automatisierungsstrategie, das viel einfacher zu testen ist.
API-Tests
Mark Lambert: Hier bei Parasoft sprechen wir seit fast zwei Jahrzehnten über API-Tests, doch die Einführung von API-Tests ist für viele Menschen noch neu. Dies kann an der versteckten Natur von APIs liegen, es befindet sich in der Ebene zwischen der Benutzeroberfläche und dem Code und viele Leute sehen es nicht. Was denkst du ist der Weg nach vorne? Wie nutzen Unternehmen API-Tests wirklich so effektiv wie möglich?
Max Saperstein: Das ist eine gute Frage. Ich liebe API-Tests, weil sie von einem Tester stammen, der nicht unbedingt Zugriff auf den gesamten Code hat. Dies ist eine großartige Möglichkeit, viele Tests aus einer Black-Box-Perspektive durchzuführen. Nur weil ich nicht weiß, was der Code tut, heißt das nicht, dass ich keinen guten Einblick in die API habe.
Hoffentlich kann ich sehen, welche Eingaben eine API erwartet und welche Ausgaben sie generiert, unabhängig davon, ob eine WSDL oder ein Swagger-Dokument damit verknüpft ist. Mit API-Tests kann ich sehr schnell testen, da es zu diesem Zeitpunkt datengesteuert ist. Ich habe einen Endpunkt, wirf so viele verschiedene Kombinationen von Eingaben, wie ich für gültig halte, und überprüfe alle verschiedenen Ausgaben davon. Ich muss nicht unbedingt so viel über Code wissen, und es gibt eine ganze Reihe wirklich guter Frameworks, die das für mich erledigen.
Aus Testersicht ist das absolut der Grund, warum ich API-Tests liebe. Außerdem sind sie schnell und normalerweise nicht spröde. Wenn Sie eine Organisation haben, die Verträge einrichtet und genau definierte Endpunkte hat, die nicht häufig geändert werden, müssen nur sehr wenige Wartungsarbeiten an API-Tests durchgeführt werden, und sie geben Ihnen viele Informationen über das System.
Mark Lambert: Ich denke, was Sie gerade angesprochen haben, weil API-Tests schnell und stabil sind, ist wirklich der Grund, warum sie sehr wertvoll geworden sind. Außerdem sind sie ein großartiger Kommunikationsmechanismus zwischen den Testern und den Entwicklern innerhalb einer Organisation.
Max Saperstein: Absolut. Wenn ich mit Organisationen über Integrationstests spreche, machen API-Tests normalerweise einen großen Teil davon aus. Sie sind schnell, geben Ihnen viele wirklich wertvolle Informationen und sind viel stabiler als UI-Tests.
Lesen Sie mehr von Max in diesem Blog Post über den Aufbau einer Teststrategie und seine Einstellung zur Testpyramide.
Hören Sie mehr von Max Saperstone in unserer Aufnahme Webinar darüber, wie Sie bei der Bereitstellung hochwertiger Software mit verhaltensorientierter Entwicklung (BDD) effektiver sein können. Weitere Informationen.