Automatisiertes Testen: Warum Sie ein Framework benötigen

Vor zwei Tagen ging ich mit meinem Chef zum Vorverkauf. Der Hauptzweck bestand darin, unsere automatisierten Testdienste zu verkaufen. Das Tool war HP UFT. Personen, die Automatisierung durchgeführt haben, sollten wissen, dass UFT bereits eines der besten Tools im Bereich automatisierter Tests ist. Da der Kunde ein Mensch mit technischem Hintergrund ist, ist es nicht leicht, ihn zu täuschen. Wir haben viele Folien über die Vorteile automatisierter Tests vorbereitet, also kam er vorbei und fragte direkt nach den Mängeln Ihrer Tools. Dann fing ich an, mit ihm über die Mängel zu sprechen. Was außer Kontrolle geriet, war, dass er jedes Mal, wenn ich ihm ein Problem erklärte, weitere Fragen hatte. Am Ende war mein Mund trocken und ich konnte nicht alles klar erklären. Abgesehen davon, dass ich seufze, dass es nicht so einfach ist, Geld zu verdienen, kann ich mir nur selbst die Schuld geben, dass ich nicht in der Lage bin, fließend Englisch zu sprechen.

Es gibt eine Frage, über die ich lange nach meiner Rückkehr nachgedacht habe. Damals zeigte er auf das von mir erstellte POC-Skript (Prove of Concept) und fragte: „Da Aufnahme und Wiedergabe als Skript verwendet werden können, warum brauchen wir dann ein automatisiertes Test-Framework?“ Kurz gesagt, warum sollte ich mehr ausgeben? Geld? Geld, um Ihr Framework zu kaufen? Meine erste Reaktion war: Was? willst du mich verarschen? Wie führt man automatisierte Tests ohne Framework durch? Natürlich war meine Antwort sehr offiziell, hauptsächlich aus der Perspektive der Wartung, Wiederverwendbarkeit und Benutzerfreundlichkeit. Ich habe es ihm erklärt, aber er schien nicht sehr zufrieden zu sein.

Rückblickend dachte ich darüber nach: Warum brauchen wir ein automatisiertes Test-Framework? Je mehr ich darüber nachdenke, desto trauriger fühle ich mich, denn ich möchte alle Entwickler fragen: Warum verwenden Sie Frameworks, wenn Sie Projekte durchführen? Dann besteht die Essenz der Automatisierung darin, Programme zu schreiben, um Programme zu testen. Da für die Entwicklung ein Framework erforderlich ist, warum nicht automatisiertes Testen?

Beschwerden sind Beschwerden. Ich habe einige Informationen sorgfältig geprüft.

Was ist ein Framework?

Ein Framework ist ein wiederverwendbarer Entwurf eines gesamten Systems oder eines Teils davon, dargestellt durch eine Reihe abstrakter Komponenten und Interaktionsmethoden zwischen Komponenteninstanzen. Eine andere Definition besagt, dass ein Framework ein Anwendungsskelett ist, das von Anwendungsentwicklern angepasst werden kann. Ersteres wird aus einer Anwendungsperspektive definiert, während Letzteres aus einer Zweckperspektive definiert wird. Man kann sagen, dass ein Framework eine wiederverwendbare Designkomponente ist, die die Anwendungsarchitektur festlegt, die Abhängigkeiten, die Verantwortungsverteilung und den Kontrollfluss zwischen dem gesamten Design und den zusammenarbeitenden Komponenten klärt und als eine Reihe abstrakter Klassen und ihrer Instanzen ausgedrückt wird. Eine Methode der Zusammenarbeit zwischen Komponenten, die Kontextbeziehungen für die Wiederverwendung von Komponenten bereitstellt. Daher erfordert die Wiederverwendung von Komponentenbibliotheken in großem Maßstab auch ein Framework. Tatsächlich gibt es bisher keine einheitliche Definition von Framework. Ich bevorzuge die Definition von Ralph Johnson:

Ein Framework ist ein wiederverwendbares Design, das durch eine Reihe abstrakter Klassen und kollaborative Beziehungen zwischen ihren Instanzen ausgedrückt wird [Johnson 98]. Diese Definition definiert das Framework aus der Perspektive der Konnotation des Frameworks. Natürlich kann die Definition des Frameworks auch aus der Perspektive des Zwecks des Frameworks gegeben werden: Ein Framework ist ein Teil des Entwurfs und der Implementierung einer Anwendung innerhalb eines gegebenen Problemfeldes [Bosch 97].

Warum ein Framework verwenden?

Eine andere Frage natürlich. Denn die Entwicklung von Softwaresystemen ist heutzutage sehr komplex geworden, insbesondere von serverseitiger Software, die zu viel Wissen, Inhalte und Probleme erfordert. Die Verwendung ausgereifter Frameworks anderer Personen ist in einigen Aspekten gleichbedeutend damit, andere einige grundlegende Arbeiten für Sie erledigen zu lassen. Sie müssen sich nur auf die Fertigstellung des Geschäftslogikdesigns des Systems konzentrieren. Darüber hinaus ist das Framework im Allgemeinen ausgereift und robust und kann viele Details des Systems bewältigen, wie z. B. Transaktionsverarbeitung, Sicherheit, Datenflusskontrolle und andere Probleme. Es gibt auch Frameworks, die im Allgemeinen von vielen Leuten verwendet werden, daher ist die Struktur sehr gut, die Skalierbarkeit ist also auch sehr gut und es wird ständig aktualisiert, sodass Sie direkt die Vorteile der Code-Upgrades anderer Leute genießen können.

Warum ein automatisiertes Test-Framework erstellen?

Früher dachte ich, dass das Wichtigste beim automatisierten Testen darin besteht, das Testobjekt zu finden. Jetzt verstehe ich eine Wahrheit: Automatisierte Tests ohne Framework können das Objekt nicht finden, und selbst wenn es gefunden wird, wird es nicht glücklich sein. Genau wie in der Realität ist es für Menschen ohne Auto oder Haus schwierig, einen Partner zu finden.

Die Entwicklung automatisierter Tests wird in der Regel durch die Anforderungen automatisierter Tests bestimmt. Diese Anforderung umfasst im Wesentlichen:

  1. Automatisierte Tests sind einfacher zu implementieren. Das bedeutet, dass Sie in der Lage sein müssen, Testskripte bequem zu schreiben. Ein gutes Framework für automatisierte Tests ermöglicht es Leuten, die nicht sehr technisch versiert sind, automatisierte Testskripte zu schreiben, hm.
  2. Lösen Sie Probleme, die im automatisierten Testskript selbst bestehen, wie z. B. Ausnahmebehandlung und Szenariowiederherstellung.
  3. Tests sind einfach zu warten. Bei automatisierten Testprojekten mangelt es grundsätzlich an guter Verwaltung und Wartung, was eine große Gefahr darstellen muss. Ich kann mit gutem Gewissen sagen, dass Sie ohne automatisierte Tests in anderthalb Jahren kein Ergebnis sehen werden. Management und Wartung werden daher zu den wichtigsten Dingen. Ein guter Rahmen kann die personellen und materiellen Ressourcen reduzieren, die Sie in Verwaltung und Wartung investieren.
  4. Wiederverwendbarkeit. Eine der Bedeutungen eines Frameworks besteht darin, dass es wiederverwendet werden kann. So können Sie im Framework einige allgemeine Funktionen implementieren und den Skriptentwicklungsprozess vereinfachen.
  5. Schöne und leicht lesbare Testberichte. Nehmen Sie als Beispiel UFT. Die von ihm erstellten Testberichte basieren nur auf Testskripten und es gibt keine Berichte, die auf Testsätzen basieren. Wenn Sie es also möchten, können Sie es im Testframework implementieren.

Es gibt viele Testanforderungen, ich kann sie nicht alle auflisten. Die meisten Anforderungen können im Testframework angepasst werden. Jetzt können Sie die obige Frage beantworten. Die Aufnahme und Wiedergabe wird nicht zufriedenstellend sein, Sie benötigen ein automatisiertes Test-Framework.

Bitte überlegen Sie sorgfältig, ob automatisierte Tests erforderlich sind (hohe Kosten und hohes Risiko).

Automatisiertes Testen ist eine sehr arrogante Sache und sehr wählerisch. Erstens muss der Projektzyklus lang sein, aber die Anforderungen werden sich nicht häufig ändern; zweitens müssen die meisten Objekte im System identifizierbar sein und es sollte nicht viele Plug-Ins von Drittanbietern geben. Und Sie müssen wissen, dass Sie nicht erwarten können, dass automatisierte Tests Ihnen dabei helfen, neue Fehler zu finden. Automatisierte Tests selbst sind nicht einfallsreich (im Vergleich zu manuellen Tests). Sein Vorteil liegt in wiederholten Iterationen und sein Mehrwert liegt in langfristigen Regressionstests, um langfristig stabile Versionsaktualisierungen des zu testenden Produkts sicherzustellen.

Bezüglich des Einstiegspunkts für automatisierte Tests sind die Grundvoraussetzungen für die Einführung automatisierter Tests in der Regel erst nach einem vollständigen Systemtest gegeben.

Die erfolgreichen Fälle automatisierter Tests, die ich bisher durchgeführt habe, verfügen alle über ein gutes Management und hervorragende Test-Frameworks. Ohne eines von beiden wird automatisiertes Testen unweigerlich zu einer großen Gefahr.

Schließlich ist das Füllen von Löchern sehr teuer

2023 neueste Jmeter-Schnittstellentests vom Einstieg bis zur Beherrschung (vollständiger Satz praktischer Projekt-Tutorials)

Ich denke du magst

Origin blog.csdn.net/mashang123123123/article/details/132093399
Empfohlen
Rangfolge