Holen Sie sich die UMFANGREICHSTE Abdeckung für die Einhaltung von MISRA C! Erfahren Sie mehr >>

Sie möchten also eine Web-Test-Automatisierung erreichen. Was nun?

Von Daniel Garay

10. September 2018

5  min lesen

Hier diskutiere ich die Hürden, Fallstricke und Erfolge, die ich auf meinem Weg zum Aufbau einer neuen Webautomatisierungstestinfrastruktur hier bei Parasoft erlebt habe, und wie wir unsere vorhandenen manuellen Tests migriert haben.

Sie sind aufgeregt, begeistert, optimistisch und vielleicht sogar ein wenig nervös über eine neue Möglichkeit zur Automatisierung von Webtests, die Ihnen Ihr Manager bietet. Aber es trifft dich plötzlich. Wo zum Teufel fange ich an? Fange ich gerade an, einen Test zu schreiben? Welches Automatisierungstool werde ich verwenden? Sollte ich eine Art Infrastruktur einrichten? Fange ich einfach an, Tests lokal auf meinem Computer zu schreiben und portiere dann die Umgebung auf eine Staging-Umgebung? Welche Hürden sollte ich berücksichtigen, bevor ich vorwärts gehe? So viele Aufgaben zu berücksichtigen !!

Bevor Sie zwei Schritte vorwärts machen, gehen wir einfach einen Schritt zurück und überlegen, was genau wir erreichen wollen.

Aufbau einer neuen Testinfrastruktur für die Webautomatisierung

Testautomatisierung ist in unserer Branche kein neues Konzept. Es gibt zahlreiche Ressourcen, in denen die Vor- und Nachteile sowie viele verschiedene Ansätze für eine erfolgreiche Testautomatisierungsinfrastruktur erörtert werden. Hier werde ich die Hürden, Fallstricke und Erfolge diskutieren, die ich auf meiner Reise zum Aufbau einer neuen Testinfrastruktur für die Webautomatisierung hier bei erlebt habe Parasoftund wie wir unsere vorhandenen manuellen Tests migriert haben. Wenn alles gesagt und getan ist, können Sie hoffentlich meine Erfahrung nutzen, um Ihren Prozess ein bisschen effizienter zu gestalten.

Lassen Sie mich zunächst ein Szenario durchgehen, das ich durchlaufen habe, als ich die Verantwortung für ein neues Team erhielt und die Webautomatisierungstestinfrastruktur des Teams zum Laufen brachte. Das Endziel wurde definiert, aber es lag ganz bei mir zu entscheiden, welchen Weg ich einschlagen würde, um dorthin zu gelangen.

Meilensteine ​​definieren

Als erstes habe ich mich mit allen beteiligten Stakeholdern getroffen und meine Meilensteine ​​definiert.

Ich habe folgende Meilensteine ​​erreicht:

  • Recherchieren
  • Definieren Sie den Umfang / die Abdeckung der Tests
  • Erstellen und pflegen Sie Automatisierungstests und setzen Sie die Zusammenarbeit mit Teammitgliedern fort
  • Ergebnisse veröffentlichen

Lassen Sie uns das ein wenig aufschlüsseln.

Recherchieren

Wie bei jeder anderen großen Aufgabe möchten Sie immer Ihre Due Diligence durchführen und alle Tools recherchieren, die Sie benötigen, um dies zu erreichen. Was waren einige der Punkte, die wir berücksichtigen mussten, fragen Sie? Mal sehen, zuerst gab es die Frage, welche Tools wir verwenden und in welcher Skriptsprache wir schreiben würden. Ist sie skalierbar? Wie ist die Wartung, kann sie in das bestehende Ökosystem des Teams passen? Was wäre die Lernkurve für diejenigen, die die automatisierten Tests beibehalten würden? Was ist mit der Infrastruktur des vorhandenen Entwicklungsteams? Integriert es sich in diese? Und was machen wir mit der Berichterstattung? Wir mussten berücksichtigen, dass das Team mit den vorhandenen Tools im Unternehmen vertraut ist und wer den Test sowohl kurzfristig als auch langfristig durchführen würde.

Nachdem wir viele Faktoren berücksichtigt hatten, entschieden wir uns für die Verwendung Parasoft SOAtest für Webautomatisierungstests und Parasoft DTP aufgrund Berichtszwecke. Es behandelte die meisten unserer Fragen, war einfach zu bedienen und erforderte keine Vorkenntnisse in Programmiersprachen. Jedes Unternehmen, jedes Team und sogar jeder Einzelne muss eine andere Reihe von Fragen beantworten, bevor Sie fortfahren. Der Hauptpunkt besteht jedoch darin, möglichst viele Ihrer Fragen im Voraus und nicht später zu beantworten, um die möglicherweise auftretenden Engpässe zu verringern voraus.

Definieren Sie den Umfang / die Abdeckung der Tests

Als nächstes: Was sollten Sie als Umfang der zu automatisierenden Tests definieren? Sei nicht die Person, die versucht, alles zu automatisieren. Da es sich um Webfunktionstests handelt, müssen Sie sich auf die stark frequentierten Bereiche oder den am häufigsten verwendeten Teil der Weboberfläche der Anwendung konzentrieren, um Ihre automatisierten Tests optimal nutzen zu können.

Da die zu testende Anwendung (AUT) für mich neu war, musste ich sowohl mit Entwicklern als auch mit der vorhandenen Qualitätssicherung zusammenarbeiten, um die aktuellen Testfälle und das manuelle Rauchtestverfahren zu verstehen. Ihre vorhandenen manuellen Testfälle befanden sich auf einem höheren Niveau (für Erkundungstests), sodass der QS-Ingenieur mich nicht einfach auf vorhandene Testfälle für die Automatisierung verweisen konnte. Es war eine ständige Zusammenarbeit in jedem Sprint und manchmal auch in unserem täglichen Stand-up, um sicherzustellen, dass wir die Abdeckung hatten, die wir automatisieren wollten. Nachdem der Umfang definiert wurde, haben wir die Abdeckungsbereiche priorisiert, sodass ich genau wusste, woran ich zuerst arbeiten sollte. Dies ist eine gute Faustregel: Auch wenn Sie die Anwendung kennen, sollten Sie bei der Definition des Bereichs immer mit dem vorhandenen Team zusammenarbeiten.

Erstellen und pflegen Sie Automatisierungstests und setzen Sie die Zusammenarbeit mit Teammitgliedern fort

Nachdem die Infrastruktur eingerichtet und sowohl Umfang als auch Prioritäten definiert wurden, kann ich endlich mit der Erstellung der automatisierten Tests beginnen. Endlich! Ich kann meine ersten automatisierten Tests schreiben.

Für dieses Projekt habe ich zuerst die Browser-Wiedergabefunktion verwendet, um ein gutes Verständnis davon zu bekommen Parasoft SOAtest und dann einfach migriert, um meine eigenen zu erstellen und / oder vorhandene Browser-Wiedergabetests zu bearbeiten. Es ist mir nicht peinlich zu sagen, dass meine ersten Tests nicht optimal durchgeführt wurden. Aber so lernen wir alle, oder? Durch Ausprobieren.

Meine ersten Tests waren sehr abhängig von der Umgebung, in der sie nur in einer bestimmten Reihenfolge ausgeführt werden konnten. Im Rahmen meines Tests gab es kein Auf- und Abbau. Dies machte es offensichtlich schwieriger, andere Teammitglieder zu warten und Fehler zu beheben. Wir haben damit begonnen, die integrierten Funktionen des Tools zu verwenden, um Tests einzurichten / abzubauen, vorhandene Tests wiederzuverwenden (gemeinsam genutzter Test als Teilmenge eines anderen Tests) und sie so zu parametrisieren, dass sie in verschiedenen Umgebungen portierbar sind. Es war einfach, den REST-API-Test in unseren Automatisierungstest für die Webfunktion zu integrieren, was unser Leben um ein Vielfaches einfacher machte, die erforderlichen Daten zu füllen. Einzelne Tests wurden nahtlos für verschiedene Browser ausgeführt. Gelegentlich ist ein browserspezifisches Problem aufgetreten, z. B. keine Klickaktion, bei der das Element nicht sichtbar ist. Die leistungsstarke integrierte Funktion des Tools für unterschiedliche Wartebedingungen, die Fähigkeit zur Ausführung von beliebigem JavaScript, eine umfangreiche Dokumentation und ein aktives Benutzerforum haben uns jedoch gerettet.

Ergebnisse veröffentlichen

Das letzte Ziel, das ich identifiziert hatte, war der Berichtsaspekt der Testergebnisse. Und hier dreht sich alles um Sichtbarkeit. Dies war keine geheime Formel, die ich verkettet hatte und die ich für mich behalten wollte. Im Gegenteil, ich wollte, dass jeder über die Ergebnisse informiert ist, damit das gesamte Team für die Aufrechterhaltung der Tests verantwortlich ist.

Ich habe Testergebnisse eingerichtet, die in die Parasoft DTP-Berichtsplattform. Ich konnte problemlos ein Dashboard mit mehreren Gadgets erstellen, um die Testergebnisse anzuzeigen, die auf dem großen Fernsehbildschirm unserer Entwicklungsabteilung angezeigt werden konnten. Auf diese Weise gab es kein Versteck vor der Wahrheit.

Der einzige Weg, wie wir davon profitieren könnten, wäre, wenn wir die Testergebnisse zu 100% bestehen würden. Sonst wäre es nur Lärm, den niemand interessiert. Noch bevor ich anfing, hatte ich mit der Entwicklung festgestellt, dass dies ein Teamziel sein würde, das beibehalten werden sollte, und kein Ein-Personen-Job. Alle waren sich einig, und jetzt, wenn ich jeden Morgen ins Büro gehe, kann ich leicht nachschlagen und sehen, wo wir uns mit den Testergebnissen aus dem vorherigen Lauf befinden. Es ist Musik für meine Augen.

Abschließende Gedanken

Alles fertig zu stellen war nie als Ein-Personen-Job gedacht, noch wollte ich versuchen, dies alleine zu erledigen. Das Team, einschließlich des Managements, brauchte viel Zusammenarbeit und Unterstützung. Eine Sache, die ich gelernt habe, ist, dass Sie den Überblick über die Tests behalten müssen. Halten Sie es gewartet und passieren Sie es zu 100%. Denken Sie daran, Ihre automatisierten Tests sind wie ein lebender Organismus - sie müssen täglich gepflegt werden und zögern Sie nicht, Ihren Test zu optimieren.

Machen Sie zuerst Ihre Recherchen, bevor Sie in das Projekt eintauchen, und Sie werden in der Lage sein, einige der Engpässe im Voraus zu beheben. Alles in allem war dies eine großartige Lernerfahrung für mich und ich freue mich darauf, in die Feuerstelle eines anderen Teams geworfen zu werden, um die gleichen Vorgänge zu spülen und zu wiederholen, die ich gerade abgeschlossen habe.

Beginnen Sie mit der Verwendung von Softwaretesttechnologien der nächsten Generation in Ihrem Unternehmen

Von Daniel Garay

Daniel ist Parasofts Direktor für Qualitätssicherung. Er glaubt daran, dass im Rahmen des Qualitätssicherungsprozesses von Testsoftware sowohl manuelle als auch Automatisierungstests durchgeführt werden.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.