Software Testing

Software Testing

Software Testing ist ein zentraler Bestandteil des Software-Entwicklungsprozesses, der dazu beiträgt, dass allfällige Fehler vor dem Release identifiziert werden können.

Bereits während der Entwicklung Ihrer Applikation schreiben unsere Entwickler automatisierte Unit Tests – also zusätzlichen Code, der überprüft ob der eigentliche Code so funktioniert wie erwartet. Jedes Mal wenn später bestehender Code geändert wird oder neuer Code hinzukommt, werden automatisch alle bestehenden Unit Tests ausgeführt und der neue Code kann nur veröffentlicht werden, wenn alle Unit Test ohne Fehler durchlaufen. Unit Tests stellen sicher, dass jede Komponente einer Anwendung unabhängig voneinander funktioniert und keine Fehler enthält. So können wir sicherstellen, dass jede Änderung am Code keine Auswirkungen auf andere Teile der Anwendung hat. Die automatische Validierung über Unit Tests hilft somit dabei, Fehler frühzeitig zu identifizieren und zu verhindern, dass sich diese in den Produktionscode «einschleichen».

Neben den Unit Tests setzen wir auch Linting ein. Dies ist ein automatisiertes Hilfsmittel (ähnlich wie die Rechtschreibekontrolle in Word), das den Code auf Einhaltung von Konventionen und Komplexität überprüft. Wenn ein Entwickler Code schreibt, der nicht den geltenden Standards entspricht oder zu komplex ist, gibt das Linting-Tool eine Warnung aus. Auf diese Weise stellen wir sicher, dass der Code einfach zu lesen und zu warten ist – auch wenn später ein anderer Entwickler Änderungen am Projekt vornehmen muss.

Vor dem Release erstellen wir ausserdem entlang dem kritischen Pfad der Benutzer Test Cases. Diese Testfälle decken die wichtigsten Funktionen der Anwendung ab und werden von unserer Software Testerin getestet. Wir glauben, dass es wichtig ist, dass Tests von einer unabhängigen Person durchgeführt werden, um sicherzustellen, dass keine Fehler übersehen werden. Durch das Testen entlang des kritischen Pfads können wir sicherstellen, dass die Anwendung in den zentralen Bereichen fehlerfrei funktioniert.

Entwicklung und Testing sind bei uns klar voneinander abgegrenzt und werden durch verschiedene Personen durchgeführt. Dadurch können wir sicherstellen, dass keine Fehler aufgrund von Voreingenommenheit oder «Betriebsblindheit» übersehen werden. Durch das Testen von Edge Cases können wir ausserdem sicherstellen, dass die Anwendung auch unter schwierigen Bedingungen einwandfrei funktioniert. Ein Witz (den nur Entwickler lustig finden) zum Thema «Software Testing» lautet: Ein Software-Tester betritt eine Bar und bestellt ein Bier. Er bestellt 10 Bier, 2 Bier, 0 Bier, -1 Bier, 10000 Bier, 2,31 Bier... Der Barkeeper schaut ihn verwirrt an und fragt: «Was soll das alles bedeuten?» Der Tester antwortet: «Ich teste nur, ob Ihre Bestellannahme funktioniert!».

Nach Abschluss aller Tests erhalten Sie von uns ein Testprotokoll mit dem finalen Build. Darin werden alle durchgeführten Tests und ihre Ergebnisse aufgeführt. Auf diese Weise können Sie sicher sein, dass Ihre Anwendung ausführlich getestet wurde und bereit ist für den Einsatz.