Qualität ja – genau so viel, wie nötig!

Qualität in der Software Entwicklung ist wichtig und kann gemessen werden. Verschiedene Faktoren beeinflussen die Qualität. Je nach Anwendung ist nicht jeder Faktor gleich wichtig. Eine Online-Banking Anwendung hat andere Qualitätsfaktoren als eine Vereinsbuchhaltung. Bei allen Anwendungen gibt es bezüglich Qualität eine Gemeinsamkeit: Nur so viel Qualität wie nötig!

Qualitätssteigerung in der Software Entwicklung

In Anlehnung an ISO 25010 gibt es 8 Merkmale:

  • Funktionalität: Sind alle Funktionen vorhanden und korrekt umgesetzt.
  • Performanz: Sind die Antwortzeiten genügend schnell und ist der Ressourcenverbrauch OK.
  • Kompatibilität: Auf welchen Betriebssystemen, Browsern muss es funktionieren.
  • Benutzerfreundlichkeit: Kann der Benutzer die nötigen Aufgaben in nützlicher Frist lösen.
  • Zuverlässigkeit: Wie fehlertolerant ist die Anwendung, gibt es Abstürze.
  • Sicherheit
  • Wartbarkeit: Wie einfach können neue Funktionen umgesetzt werden.
  • Portierbarkeit

Der Fokus liegt in diesem Blog bei kleineren Anwendungen. Da sind Funktionalität, Performanz, Benutzerfreundlichkeit, Zuverlässigkeit und Wartbarkeit am Wichtigsten. Die Merkmale müssen als Ganzes beurteilt werden, da sie sich gegenseitig beeinflussen können.

In einem ersten Schritt wird beschrieben, wie die Qualität dieser fünf Merkmale gemessen werden kann. In einem zweiten Schritt geht es darum, die Qualität als Ganzes zu verbessern.

Qualitätsmessung

Die Qualität kann nicht immer absolut gemessen werden. Darum macht es Sinn, sog. Qualitätsfaktoren zu definieren und diese zu bewerten oder zu messen.

Time-Cost-Quality

1.      Funktionalität

Damit die Funktionalität gemessen werden kann, muss diese beschrieben sein. Dazu gibt es verschiedene Möglichkeiten:

  • Pflichtenheft mit funktionalen und nicht-funktionalen Anforderungen
  • Prototyp / Mockup (Visualisierung)
  • Anwendungsfälle (Use Cases)

Je detaillierter die Beschreibung, desto einfacher ist die Messung resp. Überprüfung. Eine Kombination dieser Möglichkeiten ist sinnvoll.

2.      Performanz

Typischerweise werden die Antwortzeiten verschiedener Funktionen definiert. Wichtig sind die Randbedingungen: Wie viele Benutzer führen die Funktion gleichzeitig aus, wie gross ist die Datenmenge etc.

Beispiel: Das Lesen aller Hotel-Reservationen eines einzelnen Tages muss < 0.5 sec dauern.

Randbedingungen: 5 Benutzer gleichzeitig, die Datenmenge besteht aus 2000 Hotel-Reservationen.

Die Datenmenge kann einen erheblichen Einfluss auf die Antwortzeit haben. Sind nur 10 Hotel-Reservationen vorhanden, ist die Antwortzeit kürzer als bei 2000.

3.      Benutzerfreundlichkeit

Es gibt viele Möglichkeiten, die Benutzerfreundlichkeit (Usability) zu messen. Diese sind teilweise aufwändig und teuer.

  • Der Benutzer wird beobachtet, entweder im Labor oder in der richtigen Arbeitsumgebung. Beim Eye-Tracking wird geschaut, welchen Bereichen der Benutzeroberfläche am meisten Beachtung geschenkt wird.
  • Inspektion durch Experten, Überprüfung auf Normkonformität und allgemein anerkannte Richtlinien und Standards.
  • Fragebogen an Benutzer abgeben.
  • Mündliche Befragung (Interview).
  • Der Benutzer denkt bei der Durchführung laut und äussert so seine Gedanken und Gefühle.
  • Auswertung der Logfiles, z.B. Verweildauer, Navigationswege.

Daraus lassen sich sogenannte Metriken ableiten:

  • Effektivität: Anteil erfüllter Aufgaben x Erfüllungsgrad der Aufgaben
  • Effizienz: Effektivität / Aufgewendete Zeit
  • Benutzerzufriedenheit: Subjektive Eindrücke der Benutzer, statistisch ausgewertet
  • Anzahl Hotlineanrufe, Tickets

4.      Zuverlässigkeit

Verfügbarkeit, Fehlertoleranz und Wiederherstellbarkeit bilden als Ganzes die Zuverlässigkeit.

Die Verfügbarkeit kann einfach gemessen werden: Gesamtzeit – Ausfallzeit / Gesamtzeit.

Bei einfacheren Anwendungen entspricht die Fehlertoleranz der Robustheit der Benutzeroberfläche und/oder der Schnittstellen:

  • Ungültige / fehlende Eingaben bei Benutzeroberflächen dürfen zu keinem Fehler / Absturz führen.
  • Ungültige / fehlende Daten, welche über eine Schnittstelle bezogen werden, dürfen zu keinem Fehler / Absturz im nachfolgenden Ablauf führen.

Eine einfache Möglichkeit zur Messung der Fehlertoleranz besteht darin, die möglichen Eingabefehler / Schnittstellenfehler zu spezifizieren und zu testen.

Wiederherstellbarkeit bezeichnet die Fähigkeit, die Bereitstellung zu dem Punkt wiederherzustellen, zu dem ein Ausfall erfolgt ist. Die Fähigkeit zum schnellen Wiederherstellen nach einem Systemausfall erfordert nicht nur die Verfügbarkeit aktueller Sicherungen der Daten. Vielmehr muss auch ein Plan vorhanden sein, um diese Daten auf neuer Hardware wiederherstellen zu können.

Gemessen wird die Zeit, die es braucht, um das System auf der laufenden oder neuen Hardware wiederherstellen zu können.

Software-Quality-Management

5.      Wartbarkeit

Wiederverwendbarkeit, Modularität, Testbarkeit und Änderbarkeit bilden als Ganzes die Wartbarkeit. Letztendlich geht es darum, wie einfach eine bestehende Anwendung durch neue Funktionen erweitert werden kann. Die einzelnen Teile beeinflussen sich gegenseitig: Eine modulare Anwendung ist mit grosser Wahrscheinlichkeit besser testbar.

Bei Wiederverwendbarkeit geht es hier um Module. Ein Modul bietet eine in sich geschlossene Funktionalität an. Ein Modul kann innerhalb der gleichen Anwendung oder in verschiedenen Anwendungen wiederverwendet werden. In welchen Anwendungen ein Modul eingesetzt wird, kann meist durch Referenzen auf dieses Modul festgestellt und somit gemessen werden.

Modularität ist wie ein Baukasten. Im Idealfall werden aus dem Baukasten die einzelnen Module ausgewählt und miteinander verbunden / verlinkt. Modularität allein zu messen macht wenig Sinn. Stattdessen ist die Modularität Bestandteil der Wiederverwendbarkeit.

Die Testbarkeit wird indirekt gemessen resp. hängt vom Testaufwand ab. Je geringer die Testbarkeit, desto grösser der Testaufwand.

Die Änderbarkeit ist ein Mass dafür, wie schnell, fehlerfrei und einfach eine Änderung gemacht werden kann. Letztendlich wird die Zeit gemessen, welche dafür nötig ist. Ein absoluter Vergleich ist schwierig. Ist der Kunde bereit, die benötigte Zeit zu bezahlen, ist die Änderbarkeit gut. Nach mehreren Änderungen ist ein Trend ersichtlich.

6.      Zusammenfassung

Qualität wird wie folgt gemessen:

  • Funktionalität: Vergleich mit Pflichtenheft, Prototyp, Use Cases
  • Performanz: Messung von Antwortzeiten bestimmter Funktionen
  • Benutzerfreundlichkeit: Effizienz, Benutzerzufriedenheit, Hotline Anrufe
  • Zuverlässigkeit: Ausfallzeit, Wiederherstellungszeit, Spezifikation möglicher Fehler und Test
  • Wartbarkeit: Testaufwand, Zeit für Änderungen, Anzahl Wiederverwendungen / Modul

Im nächsten Beitrag werden die Möglichkeiten zur Verbesserung der Software Qualität beschrieben.

Weiterführende Links:

Qualitätsmerkmale von Software

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert