Nicht aus der Schweiz? Besuchen Sie lehmanns.de

Testgetriebene Entwicklung mit JavaScript (eBook)

Das Handbuch für den professionellen Programmierer
eBook Download: PDF | EPUB
2015 | 1. Auflage
234 Seiten
dpunkt (Verlag)
978-3-86491-648-9 (ISBN)

Lese- und Medienproben

Testgetriebene Entwicklung mit JavaScript -  Sebastian Springer
Systemvoraussetzungen
Systemvoraussetzungen
29,90 inkl. MwSt
(CHF 29,20)
Der eBook-Verkauf erfolgt durch die Lehmanns Media GmbH (Berlin) zum Preis in Euro inkl. MwSt.
  • Download sofort lieferbar
  • Zahlungsarten anzeigen
Entwickeln oder warten Sie JavaScript-Webapplikationen und haben immer ein ungutes Gefu?hl, wenn Sie Ihre Software in Betrieb nehmen? Dann wird es höchste Zeit, dass Sie sich mit testgetriebener Entwicklung vertraut machen. Dieses Buch zeigt JavaScript-Entwicklern, wie Test-Driven Development (TDD) in der Praxis funktionieren kann. Anschaulich macht Sie Sebastian Springer zunächst mit den allgemeinen TDD-Grundlagen vertraut. Er zeigt, wie Sie diese auf das JavaScript-Umfeld u?bertragen können und stellt verschiedene Testframeworks vor (Jasmine, QUnit, Karma und JsTestDriver). In einer ausfu?hrlichen Beispielanwendung können Sie das Gelernte dann im Red-Green-Refactor- Zyklus praktisch nachvollziehen und u?ben. Darauf aufbauend lernen Sie weitere Facetten der testgetriebenen Entwicklung mit JavaScript kennen, die fu?r Ihre tägliche Arbeit hilfreich oder notwendig sind, u.a.: • Testinfrastruktur fu?r mehrere Browser • Spys, Stubs und Mocks • Abhängigkeiten vom DOM • Asynchrone Operationen • Testen von Bestandscode • Node.js-Anwendungen testgetrieben entwickeln • Werkzeuge, die das Testen leichter machen TDD-Einsteiger haben nach der Lektu?re einen Überblick u?ber TDD im JavaScript-Umfeld und können eigene Projekte testgetrieben durchfu?hren. JavaScript-Entwickler, die bereits testgetrieben entwickeln, können die fortgeschrittenen Kapitel zum Nachschlagen und Vertiefen verwenden. Vorausgesetzt werden Erfahrungen in der JavaScript-Entwicklung.

Sebastian Springer ist Diplom-Informatiker (FH) und arbeitet als JavaScript-Entwickler bei der Mayflower GmbH in Mu?nchen. Neben seiner Tätigkeit als Consultant unterrichtet er als Dozent an der Hochschule Rosenheim. Er ist außerdem als Autor fu?r verschiedene Fachmagazine und Referent auf Konferenzen zum Thema Web- und JavaScript-Entwicklung tätig.

Sebastian Springer ist Diplom-Informatiker (FH) und arbeitet als JavaScript-Entwickler bei der Mayflower GmbH in München. Neben seiner Tätigkeit als Consultant unterrichtet er als Dozent an der Hochschule Rosenheim. Er ist außerdem als Autor für verschiedene Fachmagazine und Referent auf Konferenzen zum Thema Web- und JavaScript-Entwicklung tätig.

1 Testgetriebene Entwicklung


JavaScript ist eine dynamische Skriptsprache für Webapplikationen. Mit ihr können Sie von einer einfachen Formularvalidierung über kleine Anwendungen bis hin zu komplexen Webapplikationen, die umfangreiche Businessprozesse abbilden, alles umsetzen.

Ein zentrales Merkmal einer Webapplikation, das sie von einer gewöhnlichen Webseite unterscheidet, ist, dass sie eine gewisse Applikationslogik beinhaltet. Durch dieses programmierte Verhalten reagiert die Applikation auf bestimmte Ereignisse wie beispielsweise die Interaktion eines Benutzers. Je mehr Logik in einer Applikation enthalten ist, desto wahrscheinlicher wird es, dass sich Fehler einschleichen. Diesem Problem können Sie begegnen, indem Sie Ihre Software testen.

Hierfür existieren zahlreiche Möglichkeiten. Die einfachste besteht aus dem manuellen Testen Ihrer Applikation, d.h., Sie entwickeln eine neue Funktionalität, testen sie im Anschluss und lassen sie im nächsten Schritt von unabhängigen Testern prüfen. Die Schwachstelle von solch manuellen Tests ist, dass sie nur mit hohem Aufwand reproduzierbar sind. Das bedeutet: Wenn Sie ein neues Feature entwickelt haben, müssten Sie eigentlich sämtliche Funktionalität Ihrer Applikation überprüfen, um sicherzustellen, dass keine bestehende Funktionalität negativ beeinflusst wird. An dieser Stelle kommen automatisierte Tests ins Spiel.

In diesem Kapitel erfahren Sie mehr über die Hintergründe der testgetriebenen Entwicklung und welche Auswirkungen diese Methode auf Ihre tägliche Arbeit hat. Außerdem sehen Sie, welche Voraussetzungen Sie für erfolgreiche testgetriebene Entwicklung erfüllen müssen und welche Vorteile Ihnen daraus entstehen.

1.1 Was ist testgetriebene Entwicklung?


TDD

Bevor Sie sich weiter mit testgetriebener Entwicklung (engl. Test-Driven Development, TDD) beschäftigen, ist es zunächst hilfreich, wenn Sie eine klare Vorstellung haben, was dieser Begriff bedeutet und welche Konsequenzen der Einsatz dieser Methode mit sich bringt.

Bei der testgetriebenen Entwicklung schreiben Sie zuerst einen sogenannten Unit-Test und führen ihn aus. Dieser schlägt daraufhin fehl, da die Funktionalität noch nicht existiert. Danach entwickeln Sie den Teil der Software, der dafür sorgt, dass der Test erfolgreich durchlaufen kann. Im Anschluss daran können Sie Ihren Quellcode verbessern. Dieser letzte Schritt wird als Refactoring bezeichnet.

Unit-Test

Ein Unit-Test oder auch Modultest wird in der Softwareentwicklung angewendet, um die funktionalen Einzelteile (Module) von Computerprogrammen zu testen, d.h., sie auf korrekte Funktionalität zu prüfen.

(de.wikipedia.org/wiki/Modultest)

Testgetriebene Entwicklung ist eine Methode, die nicht auf eine bestimmte Plattform oder Programmiersprache beschränkt ist. Die einzige Voraussetzung, die Sie für testgetriebene Entwicklung erfüllen müssen, ist, dass Sie über ein Testframework verfügen. Diese existieren allerdings für beinahe jede Programmiersprache. So gibt es beispielsweise Implementierungen für C, Java und PHP. Aber auch JavaScript macht hier keine Ausnahme. Sowohl für clientseitiges JavaScript im Browser als auch für serverseitiges JavaScript, das beispielsweise mit Node.js umgesetzt wird, existieren verschiedene Frameworks, von denen Sie einige im Verlauf dieses Buchs näher kennenlernen werden.

Umdenken in der Entwicklung

Testgetriebene Entwicklung bedeutet in erster Linie ein Umdenken im Entwicklungsprozess. Statt wie gewohnt eine Funktionalität zu implementieren und diese danach zu testen, schreiben Sie bei der testgetriebenen Entwicklung zuerst den Test und danach die eigentliche Funktionalität. Wenn Sie das erste Mal mit testgetriebener Entwicklung in Berührung kommen, wird diese Herangehensweise sehr ungewohnt und umständlich für Sie sein. Auch werden Sie im Vergleich zur traditionellen Entwicklung ohne vorherige Tests viel langsamer sein.

Dieses Buch zeigt Ihnen, wie Sie diese Einstiegshürde überwinden und das Potenzial der testgetriebenen Entwicklung in JavaScript voll ausschöpfen können. Außerdem erfahren Sie, wie Sie mit verschiedensten Problemstellungen im Alltag umgehen können.

1.2 Woher kommt testgetriebene Entwicklung?


Zu Beginn eine gute Nachricht: Testgetriebene Entwicklung ist kein Modephänomen, das bald wieder verschwinden wird. Bereits im Jahr 1999 finden Sie Erwähnungen von testgetriebener Entwicklung im Werk von Kent Beck über Extreme Programming. Seine ersten Berührungen mit testgetriebener Entwicklung hatte Beck bei der Entwicklung des ersten Unit-Test-Frameworks der xUnit-Serie für Smalltalk mit dem Namen SUnit im Jahr 1994. In seinem Buch Kent Beck’s Guide to Better Smalltalk erwähnt er dieses Testframework zum ersten Mal.

Extreme Programming

Extreme Programming ist eine Methode der agilen Softwareentwicklung, in der testgetriebene Entwicklung von zentraler Bedeutung ist. Im Gegensatz zu Scrum und anderen agilen Methoden beschäftigt sich Extreme Programming mit überwiegend techniknahen Vorgehensweisen. Dabei wird zwischen insgesamt fünf Werten wie beispielsweise Kommunikation und Respekt, 14 Prinzipien, die unter anderem Qualität und kleine Schritte bei der Entwicklung umfassen, und schließlich zahlreichen Praktiken unterschieden. Eine dieser Praktiken, die Sie als Entwickler bei der agilen Softwareentwicklung einsetzen sollen, ist die testgetriebene Entwicklung. Weitere Praktiken, die der testgetriebenen Entwicklung recht nahestehen, sind beispielsweise Pair Programming oder Refactoring.

Das erste Buch zur testgetriebenen Entwicklung

2002 erschien ein Buch von Kent Beck mit dem Titel Test-Driven Development By Example, das sich ausschließlich dem Thema der testgetriebenen Entwicklung widmet. Dieses Buch bietet Ihnen als Leser durch die Verwendung eines anschaulichen Beispiels einen guten Einstieg in die Thematik. Im letzten Teil des Buchs erfahren Sie außerdem mehr über Patterns im Umgang mit Unit-Tests. Eine wichtige Lehre, die Sie aus diesem Buch ziehen können, ist, dass testgetriebene Entwicklung nicht für eine bestimmte Programmiersprache gilt, sondern das Konzept stattdessen allgemeingültig ist und in nahezu jeder Programmiersprache angewandt werden kann.

Frühere Erwähnungen von testgetriebener Entwicklung

Kent Beck ist allerdings nicht der Erfinder von testgetriebener Entwicklung. Vielmehr hat er diese Art der Programmierung wiederentdeckt und ihr zu neuem Glanz verholfen. Bereits in den 1960er-Jahren wurde testgetriebene Entwicklung im Mercury-Projekt der NASA eingesetzt. Bei dem Mercury-Projekt handelt es sich um das erste bemannte Weltraumprogramm der NASA. Hierbei wurde in sehr kurzen Zyklen von jeweils einem halben Tag entwickelt und das Ergebnis dann einem Review unterzogen.

Testgetriebene Entwicklung und JavaScript

Die ursprüngliche Variante der testgetriebenen Entwicklung von Kent Beck war für die Sprache Smalltalk gedacht. Durch den Erfolg dieser Methode wurde die testgetriebene Entwicklung allerdings recht schnell auch für andere Programmiersprachen wie beispielsweise Java übernommen. Der Einsatz von testgetriebener Entwicklung ist sehr eng an die Verfügbarkeit von Testframeworks geknüpft, die es Ihnen als Programmierer leichter machen, Tests zu schreiben. Diese Grundvoraussetzung ist auch in JavaScript gegeben. Sie können hier auf zahlreiche Testframeworks zurückgreifen. Mehr zum Thema Testframeworks erfahren Sie im zweiten Kapitel.

Da es sich bei der testgetriebenen Entwicklung um eine Methode handelt, die wie bereits erwähnt nicht an eine bestimmte Plattform oder Programmiersprache gebunden ist, können Sie diese Vorgehensweise auch in JavaScript einsetzen. Im Jahr 2010 hat Christian Johansen mit seinem Buch Test-Driven JavaScript Development das erste Werk veröffentlicht, das sich intensiv mit dem Thema der testgetriebenen Entwicklung in JavaScript auseinandersetzt. Seit dieser Zeit etabliert sich das Testen von JavaScript-Code zunehmend. Dies macht sich vor allem durch besser getestete Applikationen, aber auch durch die Anwendung von testgetriebener Entwicklung in JavaScript bemerkbar.

Im Folgenden erfahren Sie, wie die testgetriebene Entwicklung im Kern funktioniert.

1.3 Wie funktioniert testgetriebene Entwicklung?


Der testgetriebenen Entwicklung liegt ein recht einfaches Schema zugrunde: Red, Green, Refactor. Diese drei Begriffe beschreiben, wie Sie vorgehen, wenn Sie testgetrieben entwickeln.

  • Der erste Schritt, Red, besteht darin, dass Sie einen Test schreiben. Dieser Test muss fehlschlagen, da noch keinerlei Quellcode zur Problemlösung geschrieben wurde.

  • Das einzige Ziel des nächsten Schrittes, Green, besteht darin, dass der Test erfolgreich ablaufen kann. Sie müssen nun gerade so viel Quellcode schreiben, wie nötig ist, um den Test funktionsfähig zu machen.

  • Im dritten und letzten Schritt können Sie mit einem gezielten Refactoring Ihren Quellcode verbessern und Redundanzen entfernen.

Endlosschleife

Diese drei...

Erscheint lt. Verlag 25.2.2015
Verlagsort Heidelberg
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik
Schlagworte Continuous Integration • ECMAScript • Grunt • gulp • Jasmine • Karma • Qunit • Softwaretest • testgetrieben
ISBN-10 3-86491-648-8 / 3864916488
ISBN-13 978-3-86491-648-9 / 9783864916489
Haben Sie eine Frage zum Produkt?
Wie bewerten Sie den Artikel?
Bitte geben Sie Ihre Bewertung ein:
Bitte geben Sie Daten ein:
PDFPDF (Wasserzeichen)
Größe: 4,8 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

EPUBEPUB (Wasserzeichen)
Größe: 5,3 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür die kostenlose Software Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür eine kostenlose App.
Geräteliste und zusätzliche Hinweise

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Konzepte, Methoden, Lösungen und Arbeitshilfen für die Praxis

von Ernst Tiemeyer

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
CHF 68,35
Konzepte, Methoden, Lösungen und Arbeitshilfen für die Praxis

von Ernst Tiemeyer

eBook Download (2023)
Carl Hanser Verlag GmbH & Co. KG
CHF 68,35