JavaScript: Unit-Testing

Arten der Testautomatisierung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Neben Unit Tests gibt es noch Oberflächen- und Integrationstests. Wo sich die verschiedenen Testarten voneinander abgrenzen, erklärt dieser Film.
07:16

Transkript

Unit Test sind nicht die einzige Form der Testautomatisierung diesen Bereich der Softwareentwicklung gibt. Es gibt außerdem noch zwei andere Arten und alle drei also Unit Test und die beiden anderen die werden wir uns in diesem Video ansehen. Wenn Sie einmal nach Arten der Testautomatisierung suchen, dann wenn sie relativ schnell Auf die Testpyramide stoßen. In der Testpyramide sehen wir die drei Arten nämlich Modul- oder Unit Tests, Integrationstests und UI oder Oberflächentest dargestellt. Die Form der Pyramide wurde übrigens ganz bewusst gewählt, es ist also exakt kein Testkreis oder kein Testrechteck, da die Pyramide bereits darstellt, dass es eine Gewichtung zwischen den verschiednene Tests gibt. Das Fundament sollten die Modultest oder Unit Test bilden, die auch den größten Anteil im Rahmen unserer Teststrategie haben sollten. Danach kommt die integrations und dann die UI oder Oberflächentest. Was sind aber diese verschiedenen Testarten, die wir hier sehen? Fangen wir ganz oben mit den Oberflächentest an. Oberflächentests testen Ihr System indem sie die Benutzeroberfläche automatisieren. Bedeutet also, es gibt ein Programm das Ihr Programm fernsteuert. Und das Programm, das klickt auf Buttons, das gibt Texte in Eingabefelder ein und wertet Bildschirmmasken Inhalte aus. Dabei führt es die gleichen Schritte aus, die auch ein echter Benutzer ausführt, es gibt also keine Abkürzungen, sondern das Programm gestartet, man muss sich vielleicht einloggen und so weiter. Da genau das gemacht wird, was auch ein Benutzer macht, können diese Tests sehr langsam laufen bedeutet also, Sie lassen sie nicht ständig auf Ihrem Entwicklungsrechner laufen, weil sie sonst ja nichts anderes mehr machen würden. UNd je nachdem welches Werkzeug sie benutzen im Web Umfeld ist das übrigens häufig das Werkzeug selenium, können Sie diese Test entweder von einem Entwickler programmieren oder von einfach Anwender Aufzeichnen lassen. Dieses aufzeichnen oder entwickeln der Oberflächentests, das können Sie bereits durchführen während Sie die Software schreiben, natürlich sollen sie das nur für fertige Dialoge machen zu dem Zeitpunkt wenn so ein Dialog schon eine gewisse Stabilität hat. Ansonsten haben Sie zu viel Änderungen und Oberflächentests sind relativ schwer zu warten bedeutet also, dort möchte man eigentlich nicht mehr so viele im Nachhinein ändern müssen. Da es auch echt lange dauert Oberflächentest zu erstellen, sollten Sie den Umfang auf häufig genutzte Funktionen konzentrieren, sprich also all das was der Anwender sehr oft in Ihrem System ausführen wird. Alternativ auch Kernfunktion also solche Funktion die vielleicht nicht ganz so oft ausgeführt werden, die aber sehr wichtig in Ihrer Software sind oder eben solche Dialoge die in der Vergangenheit häufig Fehler aufgewiesen haben weil sie vielleicht sehr komplex sind. Sie können mit solchen Oberflächentest fast alles testen, was auch ein manueller Tester testen würde aber eben nur fast was Sie zm Beispiel nicht testen können ist die gefühlte Performance, denn ein Anwender nimmst die Performance vielleicht ganz anders wahr als das ein Programm durch Messung machen würde. Der Aufwand für solche Oberflächentest ist sehr hoch. Warum sollten wir dann, wenn es so hoch ist, solche Test schreiben? Der zum einen haben sie damit die Möglichkeit ein komplett Wiederholen beim Test des Gesamtsystems durchzuführen. Auf Knopfdruck wissen Sie also funktioniert mein System noch. Außerdem können die Test nicht nur vom Auftragnehmer spricht von der Entwicklungsfirma oder Entwicklungsabteilung geschrieben werden, sondern auch vom Auftraggeber insofern dieser Entwickler nach Haus hat. Das ist ein großer Vorteil denn ich kann als Auftraggeber sehr schnell sehen, ob ein gelieferter Software Update noch funktioniert. Unterhalb der Oberflächentest haben die Integrationstest gesehen. Integrationstest testen jetzt nicht die Oberfläche sondern sie testen das System ab einem bestimmten Einsprungspunkt nach hier unten hin durch bedeutet also wenn ich mich dazu entscheide zum Beispiel meine Geschäftslogik in einem Integrationstest zu testen, dann würde auch die Datenzugriffslogik mit getestet werden uns wieder hinunter bis auf die Datenbank gehen. Ansatzpunkt und Hauptziel für ein Integrationstest ist es zu prüfen ob die verschiedenen Komponenten die sie in ein System haben korrekt zusammenarbeiten. hat dieser Test da Sie bis hinunter auf die Datenbank gehen oder vielleicht einen externen Webservice aufrufen, können sehr langsam laufen bedeutet also, Sie werden die hauptsächlich auf Ihre BildServer Später ausführen und nicht die ganze Zeit auf Ihrem Entwicklungsrechner ausführen. Geschrieben werden solche Tests von Entwicklern also nicht der Fachanwender und das geschieht parallel zur Entwicklung des Hauptcode und parallel zu Unit Tests. Vorstellen können wir das ganze also wie folgt, wenn unser systemaler Test wie eben schon gesagt, die Geschäftslogik oder auch die Oberflächenlogik ist dann würden alle genutzten Komponenten mit diesem Test mit getestet werden. Warum schreibt man solche Migrationstests? Zum einen weil wir schauen wollen ob die Komponenten die wir für sich einzeln bereits getestet haben, ob die auch zusammen funktionieren. Außerdem sind Integrationstests, der einfachste Weg um in das Thema Testautomatisierung einzusteigen. Dann wenn die Architektur ist nicht hergibt Komponenten separat zu testen, dann kann man zumindest schon einmal mit Integrationstest in das Thema Testautomatisierung einsteigen. Wenn die Architektur es übrigens hergibt, dann starten Sie natürlich mit Modul oder Unit Tests. Und diese Tests, die betrachten nur nicht das Gesamte System Auch nicht das System ab einem Einsprungspunkt, sondern die betrachten immer genau eine Komponente des Systems. Wenn Sie Abhängigkeiten an andere Komponenten haben, wenn Sie also beispielsweise in Ihrem Quellcode, den Sie testen möchten, einen Webservice aufrufen, dann werden Sie diese Abhängigkeit durch sogenannte Stellvertreter Objekte man spricht ja auch häufig von Mocks Dubs oder Fakes ersetzen. Unit Test laufen in der Regel extrem schnell nämlich im Millisekundenbereich. Das hat einen guten Grund. Die werden nämlich vom Entwickler bereits während der Entwicklung geschrieben und ständig ausgeführt. Immer dann wenn Sie etwas ständig ausführen dann wollte ich nicht auf das Ergebnis warten, Sie wollen sofort wissen ob es funktioniert hat oder nicht. Wenn wir noch mal die Vergleich ziehen zum Integrationstest, dann sehen wir hier wenn wir eine bestimmte Komponente testen möchten, dann werden genutzte Komponenten nicht mit getestet, darum ist das ganze hier Grau dargestellt. Zusammenfassend können wir also sagen es gibt drei Arten der Testautomatisierung. Wir haben hier UI Tests, die testen die komplette Anwendung von oben nach unten durch. Wir haben Integrationstests. Diese wählen ein Einsprungpunkt in System zum Beispiel Geschäftslogik oder Oberflächen Logik. Und von dort wird das System nach unten hin bis zur Datenbank oder bis zu externen Webservices durch getestet. Fundament und Grundlage unserer Testautomatisierungsstrategie sollten Unit Test oder wie sie im Deutschen heißen Modultest bilden. Diese testen nur eine Komponente und laufen extrem schnell.

JavaScript: Unit-Testing

Steigen Sie in die Grundlagen des Unit-Testings ein und sehen Sie, wie Sie mit dem Jasmine-Framework Ihren JAvaScript-Code professionell testen können.

2 Std. 7 min (21 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:19.05.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!