Anzeige
Anzeige
UX & Design
Artikel merken

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.

Von
3 Min. Lesezeit
Anzeige
Anzeige

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.

Anzeige
Anzeige

Auch der Kunde soll beim Softwareentwickler hinterfragen, mit welchem Vorgehen dieser die eigene Software 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.

Anzeige
Anzeige

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.

Anzeige
Anzeige

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.

Anzeige
Anzeige

Vorteile:

  • detailliertes Testen einzelner Kompenten möglich
  • schnelle Fehlersuche bei Weiterentwicklungen/Änderungen im Sourcecode
  • schnelle Überprüfungen während der Entwicklung
  • 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:

Anzeige
Anzeige
  • 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:

Anzeige
Anzeige
  • 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:

Anzeige
Anzeige
  • 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.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
15 Kommentare
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Matthias

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

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

Antworten
Andi

Haha, genau das wollte ich auch schreiben.

„Der Klassiker: Die eingefärbte Tastatur“

Antworten
Oli

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

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
Hendrik Kokulinsky

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.

Abbrechen

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige