Qualität als Erfolgsfaktor für Softwareprojekte

Jan te Kock 21.01.2019

Test als Qualitätssicherung

Qualität ist für die meisten Softwareprodukte ein wichtiges Merkmal - und doch ein “schwammiger” Begriff. Jeder erwartet sie, daher ist es wichtig, zu verstehen, was hinter dem Begriff steckt und wie man in der Softwareentwicklung die Qualität messen kann.

Wortwolke Test

Was macht Qualität aus?

Qualität ist deshalb so ein “schwammiger” Begriff, weil er von der Erwartungshaltung jedes einzelnen abhängig ist. Dies kann man gut an der Qualitätswaage verdeutlichen:
Qualitätswage
Wenn ein Produkt die Erwartungen des Konsumenten übererfüllt, hat das Produkt eine hohe Qualität - falls die Erwartungen nicht erfüllt werden, eine schlechte. Allerdings muss man immer den Standpunkt betrachten, denn die Erwartungen an ein Produkt steigen in der Regel mit dessen Renomée und dessen Preis. Somit können günstige Produkte auch eine gute Qualität besitzen, selbst wenn sie nicht den Funktionsumfang eines höherpreisigen haben.

Qualität in der Softwarenentwicklung

Nach der DIN ISO/IEC 25000:2014 ff.: System und Software-Engineering - Qualitätskriterien und Bewertung von System- und Softwareprodukten (SQuaRE) lautet die Definition von Software-Qualität folgendermaßen: „Software-Qualität ist die Gesamtheit der Merkmale und Merkmalswerte eines Software-Produkts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen.“
Dabei unterscheidet sie Funktionale und Nicht-Funktionale Qualitätsmerkmale und die entsprechenden Ausprägungen. Die sechs auch schon in der DIN ISO/IEC 9126 enthaltenen Software-Qualitätsmerkmale sind:

  • Funktionalität
  • Übertragbarkeit
  • Zuverlässigkeit
  • Effizienz
  • Benutzbarkeit
  • Änderbarkeit

Je nach Wichtigkeit und Riskoeinschätzung muss eine Software also nicht nur auf ihre Funktionalität geprüft werden, sondern auch auf die anderen Qualitätsmerkmale. Eine Methode, die Qualität meßbar zu machen, ist der Softwaretest.

Grundlagen zum Softwaretest

Grundsätzlich testet man, um die Qualität eines Produktes messbar zu machen. Dazu müssen natürlich die Anforderungen gut beschrieben sein (nicht zwingend schriftlich, je nach Vorgehensweise), auf denen dann Testfälle basieren können. Die Kunst ist es, genau das richtige Maß an Testfällen zu finden, die die wichtigen Bedürfnisse überprüfen. Denn Qualität kann man nicht Gratis bekommen. Testen sollte nie mehr kosten, als die Fehlerkosten, die eintreten können. Um dies zu Gewährleisten sollte risikobasiert mit den zutreffenden Testmethoden getestet werden. Falls Sie dazu näheres Erfahren möchten, schreiben Sie uns an.
Außerdem gelten die sieben Grundsätze des Testens. Diese sind:

  1. Testen zeigt die Anwesenheit von Fehlern, nicht die Fehlerfreiheit eines Systems oder einer Software.
  2. Ein vollständiger Test ist unmöglich.
  3. Testen sollte so früh wie möglich begonnen werden.
  4. Fehlerzustände und damit Fehlerwirkungen häufen sich: Wo Fehler gefunden werden, werden meist noch mehr Fehler gefunden.
  5. Wiederholungen der gleichen Tests helfen im allgemeinen nicht beim Finden weiterer Fehler: Tests müssen weiterentwickelt werden.
  6. Testen ist abhängig vom Umfeld.
  7. Ist ein System (formal) fehlerfrei, muss es noch lange nicht den Erwartungen der Kunden entsprechen.
Test im Agilen Umfeld

Das Agile Umfeld ist ein besonders herausforderndes.
Besonders das Vorgehensmodell SCRUM enthält einige Besonderheiten, die im “klassischen Test” anders gehandhabt werden. Zum Beispiel gibt es keine Testerrolle, sondern das Team übernimmt den Test mit. Dies birgt Vor- und Nachteile. Aber mehr als in Projekten mit anderen Vorgehensweisen ist es enorm wichtig, dass die Entwickler bereits den Qualitätsgedanken leben. Am Besten ist es, wenn das Test-Driven-Development genutzt wird. Dazu sind Codereviews essentiell. Um in diesen Projekten zu testen, sollte man ein wirklich gutes Technikverständnis mitbringen. Durch die Zyklen der Entwicklung werden automatisierte Regressionstests enorm wichtig. Der Testing-Iceberg beschreibt, wo genau die Automatisation in der Regel stattfindet, und wie man mit vertretbarem Aufwand die Tests in einem agilen Modell gut durchführen kann.
Eisbergmodell Test

Warum frobese?

Als Profis im Projekt ist es uns natürlich wichtig, die Anforderungen an die Software zu verstehen, umzusetzen und zu gewährleisten, dass sie den Erwartungen des Kunden entspricht. Dazu haben wir geschultes Personal. Wir verfolgen das Ziel, dass alle Mitarbeiter das ISTQB - Certified Tester Foundation Level Zertifikat erhalten und so ein generelles Qualitätsbewusstsein erlangt haben. Nicht nur im eigentlichen Testumfeld, sondern schon im Requirement-Engineering, der Business-Analyse und der Entwicklung. Somit kann der Test schon früh eingebunden werden und ist damit besonders effizient. Darüber hinaus bietet die Firma frobese spezialisierte Mitarbeiter, die unterschiedliche Rollen im Test besetzen können. Diese haben mindestens ein ISTQB Certified Tester Advanced Level Zertifikat und Projekterfahrung.
Weiterhin bringen wir einige Werkzeuge mit, welche sich schon in anderen Projekten bewährt haben, um so schnell Testprozesse zu etablieren.

Jan te Kock

Senior Consultant bei der frobese GmbH