Software Testing: „Principiis obsta!“ oder „Wer zu spät kommt …“


Jeder kennt das Zitat „Wer zu spät kommt, den bestraft das Leben“. Gemeint ist damit, den richtigen Zeitpunkt des Handelns zu finden. Bereits im Blogbeitrag über die Querulanten im eigenen Team haben wir über die Notwendigkeit des frühen Handelns in Bezug auf Tests gesprochen.

„Testende sollten frühzeitig in den Prozess eingebunden werden, denn der Test beginnt nicht erst am Ende der Softwareentwicklung, sondern bereits in deren frühen Phasen.“

  • Warum ist das frühe Handeln so wichtig?
  • Warum ist Qualitätssicherung ein Thema, das den gesamten Softwareentwicklungsprozess begleitet?

Bevor wir uns mit dem Zeitpunkt beschäftigen, zu dem Testende tätig werden sollten, werfen wir zunächst einen Blick auf potenzielle Fehlerquellen.

Wo entstehen Fehler?

Betrachtet man den Softwareentwicklungszyklus, beginnt dieser beim auftraggebenden Unternehmen, das Anforderungen an die Software stellt. Diese Anforderungen werden während des Requirements Engineering im Rahmen des Anforderungsmanagements aufgenommen und für die Entwicklung und den Test dokumentiert.

Hier lauern bereits die ersten potenziellen Fehlerquellen:

  • Der Kunde (Anforderer) kann die Anforderungen unvollständig oder fehlerhaft weitergeben.
  • Das Requirements Engineering versteht möglicherweise die Anforderungen nicht oder fehlinterpretiert diese.
  • Die Dokumentation der Anforderungen kann unvollständig sein.
  • Die Priorisierung der Anforderungen kann falsch sein.
  • Es können Fakten vorausgesetzt sein, die nicht den Anforderungen entsprechen.

Die Folge dieser Fehler ist eine fehlerhafte oder unvollständige Spezifikation.

Im weiteren Prozess werden die in der Spezifikation beschriebenen Anforderungen durch die Entwicklung in Software umgesetzt. Hierbei treten die nächsten möglichen Fehlerquellen auf.

  • Die Entwicklung kann die Spezifikation fehlinterpretieren oder die Anforderungen in der Spezifikation missverstehen.
  • Das Team verfügt gegebenenfalls nicht über die notwendigen Kenntnisse, um die Anforderungen umsetzen zu können.
  • Termindruck bei der Umsetzung kann zu Flüchtigkeitsfehlern führen.
  • Die Priorisierung von Aufgabe kann falsch vorgenommen werden.

Die Folge dieser Fehler ist eine fehlerhafte Software.

Die Aufgabe des Test- und Qualitätsmanagements besteht darin, die handelnden Personen aus den Bereichen Anforderungsmanagement, Requirements Engineering und Entwicklung bei ihrer Arbeit zu unterstützen und die entstandenen Artefakte (Spezifikationen und Software) Prüfungen zu unterziehen. Es kommen die unterschiedlichen Qualitätssicherungsmassnahmen (konstruktive und analytische Massnahmen) zum Einsatz.

Die Qualitätssicherung trifft somit vorbeugende und prüfende Massnahmen, um

  1. zu vermeiden, dass etwas „falsch“ gemacht wird und
  2. entstandene Mängel aufzudecken.

Warum ist ein frühes Handeln notwendig, wenn man die Fehlerquellen kennt?

Fehlerkosten: Die 10er Regel („Rule of ten“)

Der römischer Dichter Publius Ovidius Naso [43 v. Chr. – 17. n. Chr.] sagte einst „Principiis obsta! – Wehret den Anfängen!“. Gemeint ist damit, dass durch frühzeitiges Handeln ein grösserer Schaden abgewendet werden kann. Was damals galt, gilt auch heute und erst recht in der Softwareentwicklung.

Betrachtet man die Phasen der Softwareentwicklung, so gibt es grob die nachfolgenden sechs Phasen:

  1. Anforderungsanalyse
  2. Design
  3. Umsetzung
  4. Test
  5. Betrieb
  6. Wartung

In jeder Phase sind unterschiedliche Personen beteiligt: Anforderer:innen über Requirements Engineers, Entwickler:innen und Tester:innen bis zum Betriebsbereich der Kunden.

Jede dieser Personen kann in der jeweiligen Phase, in der sie tätig ist, Fehler machen.

Wird der Fehler in einer frühen Phase entdeckt, ist der Aufwand zu dessen Behebung geringer, als wenn er in einer späten Phase entdeckt wird.

Konkret bedeutet das: Die Kosten für die Beseitigung von nicht entdeckten Fehlern steigen mit jeder Phase ca. um den Faktor 10 an [„Rule of ten“].

  • Je früher ein Fehler entdeckt wird, desto günstiger ist seine Behebung.
  • Je später der Fehler entdeckt wird, desto teuer ist die Behebung.

Principiis obsta!

Das liegt darin begründet, dass bei der Behebung des Fehlers ggf. alle Phasen erneut durchlaufen werden müssen (Anpassung der Spezifikation – Entwicklung – Test – Auslieferung …).

Per Definition wird in den frühen Phasen von Fehlerverhütung und in den späten Phasen von Fehlerentdeckung gesprochen.

Grafik_Fehler_DE

Hier setzt das Test- und Qualitätsmanagement an: Primäres Ziel ist die Fehlerverhütung, da 70 % aller Produktmängel ihre Ursachen in den frühen Phasen der Planung und Entwicklung haben.

Um diese Aufgaben wahrzunehmen, stehen der Qualitätssicherung diverse Massnahmen zur Verfügung. Jede einzelne Massnahme kostet Geld und Zeit. ABER: Geld und Zeit sind immer ein kostbares Gut, denn es gibt Lieferverpflichtungen und Budgetvorgaben, die eingehalten werden müssen.

Grundsätzlich gilt: Mit steigendem Qualitätsgrad nehmen die Fehlerkosten ab, im Gegenzug die Prüfkosten zu.

Bei der Qualitätssicherung wird ein Kostenoptimum angestrebt. Dieses liegt im Schnittpunkt der Kurven für die Fehlerkosten (Beseitigung) und der Prüfkosten (Qualitätssicherung).

  • Bei zu wenig Qualitätsmanagement (geringer Qualitätsgrad) entstehen geringe Prüfkosten, in der Folge können die Fehlerkosten sehr hoch ausfallen.
  • Bei zu viel Qualitätsmanagement (hoher Qualitätsgrad) wird sehr viel in die Prüfkosten investiert, in der Folge sind die Fehlerkosten wahrscheinlich sehr niedrig.

Die Aufgabe der Qualitätssicherung besteht darin, die Massnahmen auf ein Kostenoptimum auszurichten. Nicht immer trifft das Sprichwort „Viel hilft viel“ zu.

Es gilt das „Richtige“ zum „richtigen Zeitpunkt“ im „richtigen Masse“ durchzuführen. Deshalb ist es bspw. essenziell, dass Testende bereits in frühen Phasen die Spezifikation prüfen, um zu vermeiden, dass Fehler bis zur Entwicklung oder zum Kunden gelangen, um gemäss der „Rule of ten“ die Prüfkosten geringzuhalten. Denn jeder Fehler, der frühzeitig gefunden wird, ist günstiger in der Behebung als in den späten Phasen. Da nicht alle Fehler in den frühen Phasen gefunden werden können, ist es wichtig, die Qualitätssicherung als einen Prozess zu verstehen, der die Dauer der gesamten Softwareentwicklung begleitet.

Am Ende bleibt die Frage: „Wenn das Optimum der Qualitätsgesamtkosten erreicht wird, ist dann die Software fehlerfrei?“ Dieser Fragestellung werden wir uns in dem kommenden Blog „Fehlerfreie Software – Ist das möglich?“ widmen.

Sie möchten mehr darüber erfahren, was unsere Software für Versicherer leisten kann? Dann wenden Sie sich gerne an unseren Experten Karsten Schmidt, Head of Business Development.

Alle Artikel

Sie haben Interesse an Produkten von adesso insurance solutions?

Hier finden Sie eine Übersicht aller Software-Lösungen für alle Versicherungssparten – für Bestandsführung, Leistungsmanagement, Schadenbearbeitung, Produktmodellierung oder zur allgemeinen Digitalisierung.

Produktseite
}