Was gehört eigentlich in ein Regressionsset?

23.5.2021

Ist diese Funktionalität überhaupt noch aktuell? Haben wir das nicht bereits mit einem anderen Test abgedeckt?

Wir möchten, dass die Regression eine möglichst hohe Testabdeckung erreicht und zum grössten Teil automatisiert getestet wird. Die Realität sieht oft anders aus: Tausende manuelle Testfälle im Regressionsset und man ist sich sicher, dass man mindestens 25% davon gar nicht braucht, aber welche? Warum haben sich so viele Tests angesammelt? An einem Praxisbeispiel möchten wir erläutern, welche Testfälle in eine Regression gehören und welche nicht. Die korrekte Selektion ist ein Schlüsselelement zu einem aufgeräumten, effektiven Regressionsset.

Dieses Praxisbeispiel eignet sich auch zur Schulung von Fachpersonen, welche erst wenig Kontakt mit dem Testing hatten.

Inhalt
  1. Beispielspezifikation
  2. Herleitung der Systemtests
  3. Erstellung des Regressionssets
  4. Wartung des Regressionssets
  5. Zusammenfassung
Beispielspezifikation

Eine Firma hat ein Digitalisierungsprojekt gestartet. Es soll eine App für Kunden erstellt werden, welche folgende Aufgaben lösen kann:

  • Die App zeigt die aktuelle Adresse an
  • Mit der App können Adressänderungen vorgenommen werden

Folgende Feinheiten sind ebenfalls zu beachten:

  • Die App kann von juristischen Personen und natürliche Personen benutzt werden
  • Die App darf nur von Kunden ab 16 Jahren benutzt werden. Für Jüngere Kunden soll das Herunterladen der App gesperrt sein
  • Falls eine ungültige, neue Adresse eingegeben wird, erscheint eine Fehlermeldung
  • Pflichtfelder für natürliche Personen sind: Vorname, Nachname, Strasse, PLZ, Ort, Land
  • Pflichtfelder für juristische Personen sind: Firmenname, Strasse, PLZ, Ort, Land
  • Nach der Adressänderung kann man wählen, ob man eine Bestätigung per E-Mail oder Brief erhalten möchte
Herleitung der Systemtests

Die ersten beiden Teststufen, Unittest und Integrationstest, werden gewöhnlich von Entwicklern oder technischen Testern ausgeführt. Hier wird die Funktionalität einzelner Module getestet, beziehungsweise die Zusammenarbeit voneinander abhängigen Komponenten. Bei den Systemtests testen wir die Anforderungen in der Spezifikation bei Verfügbarkeit des Gesamtsystems. Es ist wichtig, dass die Systemtests eine hohe Testabdeckung aufweisen, um Fehler in der Software vor der Einführung in der Produktion zu erkennen. Es ist vorteilhaft, wenn die Systemtests relativ kurz sind, damit man die potentiellen Fehler besser finden und zuordnen kann. Folgende Systemtests würden sich für die oben genannte Spezifikation anbieten:

  1. Natürliche Person. Benutzer ist unter 16 Jahre alt (Herunterladen gesperrt)
  2. Natürliche Person lässt sich aktuelle Wohnadresse anzeigen
  3. Natürliche Person gibt ungültige Adresse ein, z.B. eingegebene PLZ existiert nicht (Fehlermeldung)
  4. Natürliche Person gibt gültige Adresse ein und wählt die Bestätigung per E-Mail
  5. Natürliche Person gibt gültige Adresse ein und wählt die Bestätigung per Post
  6. Natürliche Person. Verifikation der Pflichtfelder. Eingabe einer unvollständigen Adresse und Verifikation der Fehlermeldungen
  7. Juristische Person lässt sich aktuellen Firmensitz anzeigen
  8. Juristische Person gibt ungültige Adresse ein, z.B. eingegebene PLZ existiert nicht (Fehlermeldung)
  9. Juristische Person gibt gültige Adresse ein und wählt die Bestätigung per E-Mail
  10. Juristische Person gibt gültige Adresse ein und wählt die Bestätigung per Post
  11. Juristische Person: Verifikation der Pflichtfelder. Eingabe einer unvollständigen Adresse und Verifikation der Fehlermeldungen
Erstellung des Regressionssets

Die Systemtests werden nach Go-Live der Software zu Regressionstests umgewandelt. Die Anzahl Testfälle für die Regression soll signifikant reduziert werden. Das Ziel der Regression ist es unerwünschte Nebeneffekte von Softwareänderungen zu erkennen. Es geht hierbei nicht darum, die komplette Spezifikation/Software erneut zu testen. Dies gilt auch, wenn eine Automatisierung der Tests vorgesehen wird, denn auch automatisierte Tests benötigen regelmässige Wartung und sind somit in der Ausführung nicht «gratis». Die Regressionstests konzentrieren sich aufs Wesentliche. Es kann auch einen Vorteil bringen mehrere Systemtests miteinander zu kombinieren um Ausführungszeit zu sparen. Die Fehlerdichte bei Regressionstests ist gewöhnlich viel tiefer als bei Systemtests. Wir haben die wichtigsten Systemtests ausgewählt und wo sinnvoll miteinander kombiniert. Daraus ergibt sich folgendes Regressionsset:

  1. Natürliche Person (>16J) lässt sich die aktuelle Adresse anzeigen, gibt dann eine gültige, neue Adresse ein und wählt die Bestätigung per Post
  2. Juristische Person lässt sich die aktuelle Adresse anzeigen, gibt dann eine gültige, neue Adresse ein und wählt die Bestätigung per E-Mail
  3. Juristische Person gibt ungültige Adresse ein, z.B. eingegebene PLZ existiert nicht (Fehlermeldung). Anschliessend wird das Feld Strasse leer gelassen (Fehlermeldung).
Wartung des Regressionssets

Was passiert nun, wenn in einem nächsten Release die App weiterentwickelt wird? Das Regressionsset benötigt regelmässige Wartung. Wir nehmen an, die Spezifikation wird um folgenden Punkt erweitert:

  • Es ist möglich die Adressänderung erst zu einem zukünftigen Datum zu aktivieren («Zukunftsadresse»)

Daraus resultieren erneut mehrere Systemtests, die wir hier nicht auflisten. Anstatt nach dem Release das Regressionsset zu vergrössern kann das bestehende Testset angepasst werden, sodass die Prüfung der Zukunftsadresse ebenfalls inkludiert ist:

  1. Natürliche Person (>16J) lässt sich aktuelle Adresse anzeigen, gibt dann eine gültige, neue Zukunftsdresse ein und wählt die Bestätigung per Post
  2. Juristische Person lässt sich aktuelle Adresse anzeigen, gibt dann eine gültige, neue Adresse ein (Änderung per sofort) und wählt die Bestätigung per E-Mail
  3. Juristische Person gibt ungültige Adresse ein, z.B. eingegebene PLZ existiert nicht (Fehlermeldung). Anschliessend wird das Feld Strasse leer gelassen (Fehlermeldung).

Es ist auch möglich, dass nach einer Softwareänderungen Testfälle aus dem Regressionsset gelöscht werden können, falls sie durch die Softwareänderung nicht mehr relevant sind (Beispiel: Falls Adressänderungen nur noch per App möglich sind, braucht es keine Tests mehr um dies via Webseite zu testen).

Zusammenfassung
  • Es gibt mehrere Teststufen. Nur ein kleiner Anteil der Systemtests fliesst in die Regression.
  • Auch wenn eine Automatisierung der Tests vorgesehen ist, soll das Regressionsset klein gehalten werden. Auch automatisierte Tests sind nicht «gratis» und benötigen Wartung.
  • Systemtests können kombiniert werden für die Regression um Ausführungszeit zu sparen.
  • Das Regressionsset muss nach jedem Release gewartet werden.

Wie sieht Ihr Regressionsset aus? Falls sie eine Beratung wünschen können Sie sich gerne bei uns melden.

Trainings zu diesem Thema

Alle anzeigen
No items found.

Wir sind bereit für Ihren nächsten Schritt!

Sie möchten unsere Expertise nutzen und technologische Innovationen umsetzen?

Diese Webseite
verwendet Cookies

Cookies werden zur Benutzerführung und Webanalyse verwendet und helfen dabei, diese Webseite zu verbessern. Sie können hier unsere Cookie-Erklärung anzeigen oder hier Ihre Cookie-Einstellungen anpassen. Durch die weitere Nutzung dieser Webseite erklären Sie sich mit unserer Cookie-Richtlinie einverstanden.

Alle akzeptieren
Auswahl akzeptieren
Optimal. Funktionale Cookies zur Optimierung der Webseite, Social-Media-Cookies, Cookies für Werbezwecke und die Bereitstellung relevanter Angebote auf dieser Website und Websites Dritter sowie analytische Cookies zur Verfolgung von Website-Zugriffen.
Eingeschränkt. Mehrere funktionale Cookies für die ordnungsgemässe Anzeige der Website, z. B. um Ihre persönlichen Einstellungen zu speichern. Es werden keine personenbezogenen Daten gespeichert.
Zurück zur Übersicht

Sprechen Sie mit einem Experten

Haben Sie eine Frage oder suchen Sie weitere Informationen? Geben Sie Ihre Kontaktinformationen an und wir rufen Sie zurück.

Vielen Dank. Wir haben Ihre Anfrage erhalten und werden uns im angegebenen Zeitraum bei Ihnen melden.
Oops! Something went wrong while submitting the form.