© Matej Kotula/Shutterstock.com
JavaScript Kompendium
Teil 4: Unit- und Integrationstests mit Node.js

Alles im grünen Bereich?

Wer hin und wieder mal einen Blick in die Patchnotes von Software wirft, kennt sicherlich den generischen Eintrag „Bugfix“. Manchmal ist er auch genauer spezifiziert. Ärgerlich wird es, wenn in der folgenden Version der gleiche Bug wieder auftritt. Das stimmt den Benutzer nicht positiv und ist auch für den Entwickler ärgerlich, da er das gleiche Problem abermals lösen muss. Wie das passieren kann, ist ziemlich klar: Es existieren keine automatisierten Softwaretests, ansonsten wäre der Fehler bereits aufgefallen.

Manuel Rauber


Artikelserie Teil 1: JavaScript als alternative Möglichkeit der Backend-Entwicklung Teil 2: Moderne Web-APIs mit Node.js Teil 3: Datenbanken mit Node.js Teil 4: Unit- und Integrationstests mit Node.js Teil 1: JavaScript als alternative Möglichkeit der Backend-EntwicklungTeil 2: Moderne Web-APIs mit Node.jsTeil 3: Datenbanken mit Node.jsTeil 4: Unit- und Integrationstests mit Node.jsEine Sache wurde beim Entwickeln des Prototyps allerdings nicht umgesetzt – schließlich sollte dieser ja nie in Produktion gehen: das Erstellen von automatisierten Softwaretests. Sicherlich wurde während der Entwicklung immer mal wieder manuell getestet und ausprobiert. Oftmals aber nur die neuen Features oder Bugfixes, die man soeben gemacht hat. Niemand möchte manuell immer wieder die gleichen Tests machen. Es gibt allerdings jemanden, der Aufgaben gerne schnell und wiederkehrend erledigt: unser Computer. Wenn wir unserem schnellen Rechenkollegen einmal beigebracht haben, wie unsere Software getestet werden soll, wird er liebend gerne dafür sorgen, dass die Tests ausgeführt werden. Um ihm das Testen beizubringen, sollten wir uns erst einmal darauf verständigen, welche Arten zu testen es gibt. Denn Softwaretests haben viele Namen und existieren in vielen Ausprägungen. Generell kristallisieren sich jedoch drei Gruppen von Tests heraus: Unit-Test (oder auch Modultest, Komponententest): Es handelt sich hierbei um das isolierte Testen einer einzelnen Komponente (was zumeist exakt einer Klasse entspricht). Abhängigkeiten (z. B. der Zugriff auf die Festplatte oder das Absetzen von HTTP-Anfragen) innerhalb dieser Komponente werden durch so genannte Mocks ersetzt. Bei Unit-Tests kann man vergleichsweise einfach positive und negative Fälle betrachten und testen. Integrationstest: Ein Integrationstest testet das Zusammenspiel mehrerer Komponenten. Was zuvor im Unit-Test als Mock abstrahiert wurde, kann nun wieder durch eine echte Komponente ersetzt werden (z. B. werden nun echte HTTP-Anfragen ausgeführt). Das Mocken von Komponenten ist bei Integrationstests dennoch erlaubt und erwünscht (oftmals verzichtet man hier beispielsweise auf das Testen des User Interface oder der Datenbankanbindung). Systemtest (oder auch Akzeptanztest, Acceptance-Test, End-to-End-Test): Durch den Verzicht auf Mocks wird das System in seiner Gesamtheit getestet. In diesem Fall werden oftmals nur Erwartungshaltungen getestet (also der positive Fall), da Fehlerfälle bereits inte...

JavaScript Kompendium
Teil 4: Unit- und Integrationstests mit Node.js

Alles im grünen Bereich?

Wer hin und wieder mal einen Blick in die Patchnotes von Software wirft, kennt sicherlich den generischen Eintrag „Bugfix“. Manchmal ist er auch genauer spezifiziert. Ärgerlich wird es, wenn in der folgenden Version der gleiche Bug wieder auftritt. Das stimmt den Benutzer nicht positiv und ist auch für den Entwickler ärgerlich, da er das gleiche Problem abermals lösen muss. Wie das passieren kann, ist ziemlich klar: Es existieren keine automatisierten Softwaretests, ansonsten wäre der Fehler bereits aufgefallen.

Manuel Rauber


Artikelserie Teil 1: JavaScript als alternative Möglichkeit der Backend-Entwicklung Teil 2: Moderne Web-APIs mit Node.js Teil 3: Datenbanken mit Node.js Teil 4: Unit- und Integrationstests mit Node.js Teil 1: JavaScript als alternative Möglichkeit der Backend-EntwicklungTeil 2: Moderne Web-APIs mit Node.jsTeil 3: Datenbanken mit Node.jsTeil 4: Unit- und Integrationstests mit Node.jsEine Sache wurde beim Entwickeln des Prototyps allerdings nicht umgesetzt – schließlich sollte dieser ja nie in Produktion gehen: das Erstellen von automatisierten Softwaretests. Sicherlich wurde während der Entwicklung immer mal wieder manuell getestet und ausprobiert. Oftmals aber nur die neuen Features oder Bugfixes, die man soeben gemacht hat. Niemand möchte manuell immer wieder die gleichen Tests machen. Es gibt allerdings jemanden, der Aufgaben gerne schnell und wiederkehrend erledigt: unser Computer. Wenn wir unserem schnellen Rechenkollegen einmal beigebracht haben, wie unsere Software getestet werden soll, wird er liebend gerne dafür sorgen, dass die Tests ausgeführt werden. Um ihm das Testen beizubringen, sollten wir uns erst einmal darauf verständigen, welche Arten zu testen es gibt. Denn Softwaretests haben viele Namen und existieren in vielen Ausprägungen. Generell kristallisieren sich jedoch drei Gruppen von Tests heraus: Unit-Test (oder auch Modultest, Komponententest): Es handelt sich hierbei um das isolierte Testen einer einzelnen Komponente (was zumeist exakt einer Klasse entspricht). Abhängigkeiten (z. B. der Zugriff auf die Festplatte oder das Absetzen von HTTP-Anfragen) innerhalb dieser Komponente werden durch so genannte Mocks ersetzt. Bei Unit-Tests kann man vergleichsweise einfach positive und negative Fälle betrachten und testen. Integrationstest: Ein Integrationstest testet das Zusammenspiel mehrerer Komponenten. Was zuvor im Unit-Test als Mock abstrahiert wurde, kann nun wieder durch eine echte Komponente ersetzt werden (z. B. werden nun echte HTTP-Anfragen ausgeführt). Das Mocken von Komponenten ist bei Integrationstests dennoch erlaubt und erwünscht (oftmals verzichtet man hier beispielsweise auf das Testen des User Interface oder der Datenbankanbindung). Systemtest (oder auch Akzeptanztest, Acceptance-Test, End-to-End-Test): Durch den Verzicht auf Mocks wird das System in seiner Gesamtheit getestet. In diesem Fall werden oftmals nur Erwartungshaltungen getestet (also der positive Fall), da Fehlerfälle bereits inte...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang