t3n News Entwicklung

Software-Testing: In 4 Schritten zum besseren Software-Entwickler

Software-Testing: In 4 Schritten zum besseren Software-Entwickler

Jeder macht Fehler – auch Entwickler. Den Fehler im Sourcecode zu finden, kann zu einer sehr aufwendigen und zeitintensiven Aufgabe werden. Abhilfe schafft hier das Software-Testing.

Software-Testing: In 4 Schritten zum besseren Software-Entwickler

Das Testing ist viel mehr als nur Mehraufwand.

Software Testing: Warum soll getestet werden?

Welcher Entwickler kennt das nicht? Insbesondere wenn die Applikation – egal ob Web-, Client-, Mobile- oder Serversoftware – größer, komplexer und umfangreicher wird, sind fortlaufende Tests unumgänglich. Mögliche Fehler können durch geschicktes Software-Testing vermieden werden und eine schnellere Fehlersuche wird durch die Implementierung von Tests unterstützt. Daher sollte parallel zur Softwareentwicklung auch an das Testen gedacht werden. Wir zeigen euch welche Tests ihr beachten solltet.

Auch der Kunde soll beim Softwareentwickler hinterfragen, mit welchem Vorgehen dieser die eigene testet. Folgende Fragen unterstützen Kunde und Softwareentwickler dabei, das Vorgehen zu hinterfragen:

  • Werden kontinuierliche Tests durchgeführt?
  • Testet der Entwickler erst vor der Übergabe?
  • Gibt es eigene Tester im Unternehmen?

Software Testing: Wo soll ich anfangen zu Testen?

Jeder stellt sich zu Beginn die Frage, wo begonnen werden soll, erste Tests in die Arbeit zu integrieren. Es gibt unterschiedliche Ansätze, die jeder für sich selbst ausprobieren muss. Ein gemeinsamer Nenner wäre eine erste Analyse, welche Teile des Sourcecodes oder der gesamten Software sich für einen ersten Test-Anlauf gut eignen würden. Einfache Überprüfungen von Variablen oder Ergebnissen von Methodenaufrufen sollten leicht zu bewältigen sein.

In vier Schritten wird ein mögliches Vorgehen erklärt, wie eine Software durchgängig getestet werden kann. Dabei beginnt das Testen bereits bei den einzelnen Komponenten des Sourcecodes und endet eigentlich erst bei der Übergabe der Software an den Kunden.

Software Testing in vier aufbauenden Testkategorien

Beim Testen von Software beziehungsweise Sourcecode können vier grundlegende Testkategorien unterschieden werden: Unit-Test, Integrationstest, Systemtest und Abnahmetest. Diese Kategorien sind systematisch aufgebaut und sollten auch dementsprechend durchgängig in der Softwareentwicklung angewendet werden.

Software-Testing: Unit-Test

Unser Weg beginnt mit dem ersten Schritt, nämlich dem Unit-Test beziehungsweise dem Komponententest. Dabei werden kleinere Bestandteile, sogenannte „Units“, des Sourcecode beziehungsweise Module einer Software getestet. Der Entwickler schreibt für seinen eigenen Sourcecode Testmethoden, um diese einzelnen Units zu testen. Ihr testet somit die Funktionalität in bestimmten Teilen der Software, zumeist aber einzelner Methoden.

Vorteile:

  • detailliertes Testen einzelner Kompenten möglich
  • schnelle Fehlersuche bei Weiterentwicklungen/Änderungen im Sourcecode
  • schnelle Überprüfungen während der
  • gute Trennung von Sourcecode und Test-Code
  • Wiederverwendbarkeit von Tests, um das Testen zu vereinfachen
  • überlegteres Vorgehen beim Entwickeln

Software Testing: Teste die Schnittstellen deiner Software

Nach umfangreichen Unit-Tests geht es auf unserem Weg zu einer höheren Softwarequalität weiter mit den Integrationstests. Im Vergleich zum Unit-Test wird hierbei nicht mehr die einzelne Komponente getestet, sondern die Abhängigkeit zwischen einzelnen Komponenten. Schnittstellen und Ergebnisse kompletter Abläufe bilden den Testschwerpunkt und sollen die Zusammenarbeit zwischen den beteiligten Komponenten testen. Somit können auch Fehler bei der Übergabe von Werten oder eventuelle Denkfehler beim Prozessablauf aufgedeckt werden.

Vorteile:

  • Abhängigkeiten können getestet werden
  • definierte Abläufe können „durchgespielt“ werden
  • Zusammenspiel zwischen einzelnen Komponenten wird geprüft
  • Teamkommunikation verbessert sich durch das Testen

Software Testing: Sind alle Funktionen integriert?

In der nächsten (Test)stufe der professionellen Softwareentwicklung, nach Unit- und Integrationstests, folgt der Systemtest. Diese Teststufe des Software-Testing überprüft die Software auf alle Anforderungen (zum Beispiel aus dem Pflichtenheft). In einer definierten Testumgebung wird der Systemtest durchgeführt, um alle funktionalen und nicht-funktionalen Anforderungen zu prüfen. Dabei bestimmen Funktionale Anforderungen die konkreten Funktionen beziehungsweise die Aufgaben einer Software, wobei nicht-funktionale Anforderungen zum Beispiel Zuverlässigkeit, Benutzerfreundlichkeit oder Wartbarkeit sein können. Nicht-funktionale Anforderungen sind schwerer zu prüfen als funktionale Anforderungen.

Die ausgewählte Testumgebung stimmt im Normalfall mit der Produktivumgebung des Kunden überein und findet noch immer in der Softwareschmiede statt.

Vorteile:

  • gute Vorbereitung zur Abnahme der Software
  • dokumentiert die Funktionalität der Software nach bestimmten Vorgaben

Software Testing: Abnahmetest & Übergabe beim Kunden

Schlussendlich testet der Kunde selbst die gelieferte Software. Zumeist findet dieser Test intuitiv statt, da ein Großteil der Kunden vor Bezahlung der Rechnung die Software durchtesten wollen. Damit möchte der Kunde sichergehen, dass auch das geliefert wurde, was er bestellt hat.

In dieser Teststufe überprüft der Kunde bereits die Software (meistens) mit Echtdaten des eigenen Unternehmens. Hier ist zu sagen, das auch bei den bisherigen Tests möglichst mit Echtdaten oder zumindest – in der Idealvorstellung – sehr realistischen Daten getestet werden sollte.

Vorteile:

  • erfolgreicher Abschluss ist gleichzeitig eine rechtswirksame Übernahme der Software
  • sofern alle zuvor beschriebenen Testphasen positiv absolviert wurden, wird auch dieser Test positiv durchlaufen

Fazit

Ja, das Testen bedeutet einen Mehraufwand in der Softwareentwicklung, aber gleichzeitig ist das Testing ein Qualitätssicherungsprozess der eigenen Arbeit. Denn: damit können Fehler in der Entwicklung sichtbar gemacht, beziehungsweise Fehler in der Weiterentwicklung durch Änderungen oder neue Funktionen vermieden werden. Testing sollte nicht als ein notwendiges Übel betrachtet werden, sondern als ein Instrument zur Qualitätssicherung der Implementierung.

Zusammenfassend kann gesagt werden: Testen ist ein Werkzeug der Softwareentwicklung, das in jedem Werkzeugkasten des Entwicklers vorhanden sein sollte.

Newsletter

Bleibe immer up-to-date. Sichere dir deinen Wissensvorsprung!

Vorheriger Artikel Zurück zur Startseite Nächster Artikel
5 Antworten
  1. von Matthias am 21.07.2014 (19:25 Uhr)

    Habt ihr eure eigenen Beiträge vergessen? ;) Es ist sogar haargenau das gleiche Bild :D

    http://t3n.de/news/stock-images-motive-518156/

    Antworten Teilen
  2. von Andi am 21.07.2014 (21:10 Uhr)

    Haha, genau das wollte ich auch schreiben.

    "Der Klassiker: Die eingefärbte Tastatur"

    Antworten Teilen
  3. von Oli am 22.07.2014 (09:51 Uhr)

    Ihr habt einen der wichtigsten Punkte des professionellen software Testens vergessen: software Tests beginnen so für wie möglich und nicht erst mit dem Code, sondern mit der Spezifikation, denn 80% der Kosten können in den ersten 20% des Projektes eingespart werden. Denn je genauer die abnahmekriterien bestimmt sind, desto genauer weiß der Entwickler, worauf es ankommt.
    Meiner Erfahrung nach entstehen die meisten Fehler durch missverstandene oder missinterpretierte Anforderungen.

    Antworten Teilen
    • von Michael Ulm am 22.07.2014 (17:43 Uhr)

      ich stimme dir zu, dass die Spezifikationen auch wichtiger Bestandteil der Softwareentwicklung sind, da sie zum Testen dazugehören.

      Auf deinen Input bin ich bereits etwas im Artikel zu Lastenheft / Pflichtenheft eingegangen. Hast du dir diesen Artikel schon durchgelesen?

      Antworten Teilen
      • von Hendrik Kokulinsky am 25.07.2014 (16:09 Uhr)

        Das Themengebiet welches Oli anspricht ist eher dem Requirements Engineering zuzuordnen. In diesem Eintrag geht es ja vorrangig um das Testen zur Laufzeit des Projektes nach der Konzeptphase.

        Teilen
Deine Meinung

Bitte melde dich an!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Mehr zum Thema Software
Software-, Web-, Frontend-, Mobile-, PHP-Entwickler oder UX-Designer: hardwrk, Sixt, plentymarkets, Otto, FitX, Spark5 und viele mehr haben noch Plätze frei
Software-, Web-, Frontend-, Mobile-, PHP-Entwickler oder UX-Designer: hardwrk, Sixt, plentymarkets, Otto, FitX, Spark5 und viele mehr haben noch Plätze frei

Zweimal pro Woche verweisen wir hier auf aktuelle und interessante Jobangebote aus unserer Stellenbörse „t3n Jobs“. Heute können wir euch 24 Angebote aus den Bereichen „Entwicklung“ und … » weiterlesen

Prinzipien der Software-Entwicklung einfach erklärt: SOLID
Prinzipien der Software-Entwicklung einfach erklärt: SOLID

Wer ernsthaft versucht, sich selbst das Programmieren beizubringen, wird schnell auf Objektorientierung, ihre Prinzipien und Designs treffen. In diesem Artikel stellen wir euch eine Methode vor: … » weiterlesen

Windows-Notebooks: Gefährliche Sicherheitslücken in vorinstallierter Hersteller-Software
Windows-Notebooks: Gefährliche Sicherheitslücken in vorinstallierter Hersteller-Software

Windows-Rechner aller großen Hersteller haben sie an Bord: „Testversionen“ diverser Softwareanbieter, auch als Bloatware bekannt, und angepasste Update-Programme, mit denen OEMs mehr Kontrolle … » weiterlesen

Alle Hefte Jetzt abonnieren – für nur 35 €

Kennst Du schon unser t3n Magazin?