Filter anzeigen

All

News

Referenzen

  • #Software
  • #Development
  • #Testing
  • #JavaScript
  • #TDD
  • #Meetup
  • #Netzwerk
  • #JS Meetup
  • #Technologie
  • #ePrivacy
  • #DSVGO
  • #Datenschutz
  • #Digitalisierung
  • #Agil
  • #Apps
  • #Frontend
  • #Web
  • #Backend
  • #Informationsmanagement
  • #Referenzen
  • #Controlling
  • #Excel
  • #Microsoft
  • #Planning
  • #Projektmanagement
  • #Reporting
  • #SharePoint
  • #Prozesse
  • #Individualsoftware
  • #Förderung
  • #SAB
  • #UseCase
  • #Quality
  • #Electron
  • #React
  • #Tiefbau

Zeit und Nerven sparen durch Softwaretests

August 2019

von Paul Friedemann

#Software #Development #Testing #TDD
Jede genutzte Anwendung wird getestet. Das geschieht entweder freiwillig durch den Entwickler, der vorausschauend Tests für seine Anwendung schreibt, oder unfreiwillig durch den Endnutzer (Kunde), der wütend beim Entwickler anruft, weil wieder eine Anwendung nicht das macht, was sie soll. Um diese unangenehmen Gespräche zu vermeiden, sollte das Testen fester Bestandteil der Softwareentwicklung sein. Doch wie fängt man am besten damit an?

Zeit und Nerven sparen durch Softwaretests

Wozu Testen

Software ist allgegenwärtig. Die schnellste Route zu einem bestimmten Ort finden sie schnell per Handy-App. Ebenso ihre E-Mails, die sie aber auch im Browser oder durch ein E-Mail Programm auf ihrem Rechner abrufen können. Diese Funktionalitäten sind fest in unseren Alltag integriert und wer möchte schon die Bahn verpassen, weil die App, anstatt der genauen Abfahrtszeit, eine Fehlermeldung ausgibt. Um sowas zu vermeiden, sollte jeder Softwareentwickler Zeit ins Testen investieren.

Tests in Projekte integrieren

Ein neues großes Projekt kann als Designstrategie die "Testgetriebene Entwicklung" (engl. Test-Driven Development, TDD) verwenden. Für jede neue Funktionalität wird dabei der folgende Zyklus durchlaufen:

  • Test schreiben, der zunächst fehlschlägt
  • Gewünschte Funktionalität implementieren, sodass der Test erfolgreich abgeschlossen wird
  • Verbesserungen an Code und Tests vornehmen

Software, die nach diesem Prinzip entwickelt wird, hat deutliche Vorteile:

  • Kein ungetesteter Code
  • Wenig Redundanzen, da sehr schnell Verbesserungen vorgenommen werden
  • Code beschränkt sich auf das Wesentliche

Natürlich kann aber auch bereits geschriebener Code nachträglich um Tests erweitert werden. Doch was für Tests denn eigentlich?

Arten von Tests

Bevor jedoch überhaupt ein Test geschrieben werden muss, sind bereits mit Erweiterungen der Entwicklungsumgebung viele Schreib- und Typisierungsfehler vermeidbar. Linter (z.B. ESLint) helfen bei der Einhaltung der Syntaxregel einer Programmiersprache und um ein einheitliches Code-Design durchzusetzen. Auch die Wahl der genutzten Sprache kann einen enormen Einfluss auf die Anzahl potentieller Fehlerquellen haben. So bietet Typescript als Erweiterung von JavaScript ein Typsystem, um beim Programmieren Typfehler, wie den Vergleich von Zeichenketten und Nummern, zu vermeiden. Damit ist die erste Art von Tests bereits abgedeckt, die sogenannten "statischen Tests". Sie sind die Art von Tests, die bereits ohne Ausführung von Code durchgeführt werden.

Die dynamischen Tests, also Code ausführende Tests, können prinzipiell in drei Kategorien unterteilt werden. Die Grundlage und somit die Vielzahl aller Tests bilden die Unit Tests. Hierbei werden einzelne Funktionalitäten isoliert getestet.

Selbst wenn Funktionen einzeln problemlos funktionieren, ist das für die Interaktion mehrerer nicht ohne Weiteres gewährleistet. Daher ist die Implementierung von Integration Tests notwendig, die das Zusammenspiel mehrerer Bausteine testen.

Um letztlich die Interaktion des Nutzers zu simulieren, gibt es sogenannte End-to-End Tests (E2E-Tests), die das Verhalten eines Nutzers in der fertigen Oberfläche simulieren sollen.

Da ein genaueres Eingehen auf die einzelnen Arten den Rahmen sprengen würde, bleibt es in diesem Artikel bei einem kleinen Überblick. In Zukunft wird es aber auch Artikel zu den einzelnen Arten von Tests geben.

Zusammenfassung

Tests wirken im ersten Moment sehr überflüssig oder zu zeitintensiv, jedoch erspart eine ausführliche Testabdeckung viel Ärger mit den Kollegen oder dem Kunden. Natürlich kann es trotz Tests mal zu einem Bug im "fertigen" Produkt kommen, doch die Vielzahl wird bereits vorher gefunden und korrigiert. Daher sollte eine größere Anwendung getestet werden, wobei Unit Tests den größten Anteil haben sollten, gefolgt von Integration Tests und letztlich E2E-Tests zur Nutzersimulation.

Sollten sie Fragen zu Testing haben, dann helfen wir ihnen gern und finden gemeinsam eine Lösung für ihr Problem!

Zeit und Nerven sparen durch Softwaretests

August 2019

von Paul Friedemann

#Software #Development #Testing #TDD

Jede genutzte Anwendung wird getestet. Das geschieht entweder freiwillig durch den Entwickler, der vorausschauend Tests für seine Anwendung schreibt, oder unfreiwillig durch den Endnutzer (Kunde), der wütend beim Entwickler anruft, weil wieder eine Anwendung nicht das macht, was sie soll. Um diese unangenehmen Gespräche zu vermeiden, sollte das Testen fester Bestandteil der Softwareentwicklung sein. Doch wie fängt man am besten damit an?

Zeit und Nerven sparen durch Softwaretests

Wozu Testen

Software ist allgegenwärtig. Die schnellste Route zu einem bestimmten Ort finden sie schnell per Handy-App. Ebenso ihre E-Mails, die sie aber auch im Browser oder durch ein E-Mail Programm auf ihrem Rechner abrufen können. Diese Funktionalitäten sind fest in unseren Alltag integriert und wer möchte schon die Bahn verpassen, weil die App, anstatt der genauen Abfahrtszeit, eine Fehlermeldung ausgibt. Um sowas zu vermeiden, sollte jeder Softwareentwickler Zeit ins Testen investieren.

Tests in Projekte integrieren

Ein neues großes Projekt kann als Designstrategie die "Testgetriebene Entwicklung" (engl. Test-Driven Development, TDD) verwenden. Für jede neue Funktionalität wird dabei der folgende Zyklus durchlaufen:

  • Test schreiben, der zunächst fehlschlägt
  • Gewünschte Funktionalität implementieren, sodass der Test erfolgreich abgeschlossen wird
  • Verbesserungen an Code und Tests vornehmen

Software, die nach diesem Prinzip entwickelt wird, hat deutliche Vorteile:

  • Kein ungetesteter Code
  • Wenig Redundanzen, da sehr schnell Verbesserungen vorgenommen werden
  • Code beschränkt sich auf das Wesentliche

Natürlich kann aber auch bereits geschriebener Code nachträglich um Tests erweitert werden. Doch was für Tests denn eigentlich?

Arten von Tests

Bevor jedoch überhaupt ein Test geschrieben werden muss, sind bereits mit Erweiterungen der Entwicklungsumgebung viele Schreib- und Typisierungsfehler vermeidbar. Linter (z.B. ESLint) helfen bei der Einhaltung der Syntaxregel einer Programmiersprache und um ein einheitliches Code-Design durchzusetzen. Auch die Wahl der genutzten Sprache kann einen enormen Einfluss auf die Anzahl potentieller Fehlerquellen haben. So bietet Typescript als Erweiterung von JavaScript ein Typsystem, um beim Programmieren Typfehler, wie den Vergleich von Zeichenketten und Nummern, zu vermeiden. Damit ist die erste Art von Tests bereits abgedeckt, die sogenannten "statischen Tests". Sie sind die Art von Tests, die bereits ohne Ausführung von Code durchgeführt werden.

Die dynamischen Tests, also Code ausführende Tests, können prinzipiell in drei Kategorien unterteilt werden. Die Grundlage und somit die Vielzahl aller Tests bilden die Unit Tests. Hierbei werden einzelne Funktionalitäten isoliert getestet.

Selbst wenn Funktionen einzeln problemlos funktionieren, ist das für die Interaktion mehrerer nicht ohne Weiteres gewährleistet. Daher ist die Implementierung von Integration Tests notwendig, die das Zusammenspiel mehrerer Bausteine testen.

Um letztlich die Interaktion des Nutzers zu simulieren, gibt es sogenannte End-to-End Tests (E2E-Tests), die das Verhalten eines Nutzers in der fertigen Oberfläche simulieren sollen.

Da ein genaueres Eingehen auf die einzelnen Arten den Rahmen sprengen würde, bleibt es in diesem Artikel bei einem kleinen Überblick. In Zukunft wird es aber auch Artikel zu den einzelnen Arten von Tests geben.

Zusammenfassung

Tests wirken im ersten Moment sehr überflüssig oder zu zeitintensiv, jedoch erspart eine ausführliche Testabdeckung viel Ärger mit den Kollegen oder dem Kunden. Natürlich kann es trotz Tests mal zu einem Bug im "fertigen" Produkt kommen, doch die Vielzahl wird bereits vorher gefunden und korrigiert. Daher sollte eine größere Anwendung getestet werden, wobei Unit Tests den größten Anteil haben sollten, gefolgt von Integration Tests und letztlich E2E-Tests zur Nutzersimulation.

Sollten sie Fragen zu Testing haben, dann helfen wir ihnen gern und finden gemeinsam eine Lösung für ihr Problem!

Bevorzugte Kontaktaufnahme

esveo wird alle hier bereitgestellten Informationen ausschließlich in Übereinstimmung mit der Datenschutzerklärung verwenden