Die Qualität eines Produktes oder einer Dienstleistung ist in den meisten Fällen schwierig zu quantifizieren. Dies liegt unter anderem an einer unterschiedlichen Definition, was Qualität ist und wie relevante Metriken sich auf sie auswirken. Damit die Bestimmung der Qualität möglich ist, muss die Anforderung des Produktes oder der Dienstleistung bei allen Beteiligten eindeutig sein.

Relevanz und Umsetzung von Qualität in Softwareprojekten - Bild 1

Die Anforderungen bilden die Grundlage zur Bewertung. Je besser sie erfüllt werden, desto höher ist die Qualität. Änderungen der Anforderungen, insbesondere in der Softwareentwicklung, lassen sich jedoch selten vermeiden. Deshalb sollten sie so früh wie möglich kommuniziert werden. Sehr umfangreiche Anpassungen, welche das Produkt oder die Dienstleistung fundamental ändern, sollten nach Möglichkeit ganz vermieden werden. Wie beispielsweise ein Auto, das kurz vor Produktionsstart plötzlich schwimmen können soll.

Die Qualität ist nicht der einzige Faktor, anhand dem ein Projekt als erfolgreich oder gescheitert angesehen werden kann. Stattdessen ist ein Projekt durch die drei Faktoren Qualität, Zeit und Kosten beschränkt. Diese Beziehung wird als das „Magische Dreieck“ bezeichnet.

Durch fehlende Qualität im Produktivsystem können schwerwiegende Probleme auftreten.

Fehlende Qualität kann zu teils schwerwiegenden Problemen führen, wie die folgenden Beispiele zeigen.

  1. Lernplattformen für Schulen sind überlastet: Aufgrund der Corona-Pandemie konnte kein durchgehender Präsenzunterricht stattfinden. Viele Schulen verwendeten stattdessen digitale Angebote und Plattformen wie z. B. Moodle und Microsoft Teams. Von den Bundesländern sind teilweise auch eigene Plattformen entwickelt oder angepasst worden. Dabei wurde nicht berücksichtigt, dass die Lernplattform einer Schule und einer Universität sich in ihren Anforderungen unterscheiden: In einer Schule nutzen fast alle Schüler*innen das System zeitgleich, etwa beim Schulbeginn um 8 Uhr. Das System sollte daher eigentlich durch Last- und Stresstests entsprechend getestet werden, um Ausfälle zu vermeiden.
    (weitere Information: https://www.zdf.de/nachrichten/politik/corona-schule-lernplattformen-100.html, https://www.news4teachers.de/2020/12/hinter-den-akuten-problemen-mit-schulplattformen-steckt-ein-denkfehler-ministerien-versuchen-sich-als-it-entwickler-das-kann-nur-schiefgehen/)
  2. Ungewöhnliche Ladezeiten bei GTA 5: Bei dem Computerspiel „Grand Theft Auto 5“ gab es sieben Jahre lang ein Problem, wodurch die Ladezeit im Online-Modus deutlich länger als im Offline-Modus ausfiel. Ein Nutzer schaute sich die Sache genauer an und stellte fest, dass ein JSON-Dokument sehr ineffizient geparst wurde und Gegenstände unnötig dupliziert wurden. Er verbesserte den Code und reduzierte die Ladezeit bei seinem System um etwa 70 Prozent.
    (weitere Information https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/, https://support.rockstargames.com/articles/360061161574/GTAV-Title-Update-1-53-Notes-PS4-Xbox-One-PC)
  3. Schnelltests von Aldi: Durch die Schnelltests der Aesku Group sollten Anwender*innen nach einem negativen Test einen QR-Code einscannen und so ein entsprechendes Zertifikat erhalten. Es gab jedoch einige Probleme: Der QR-Code ist von außen sichtbar, weswegen der Test für ein Zertifikat nicht gekauft werden musste. Außerdem konnte der QR-Code im Zertifikat zum Erstellen von neuen Zertifikaten verwendet werden. Weiterhin war anfangs die Anzahl der Zertifikate pro QR-Code nicht begrenzt. Durch die spätere Einschränkung auf maximal fünf Zertifikate können Kund*innen ihren QR-Code vielleicht gar nicht verwenden. Darüber hinaus war die URL im QR-Code des Zertifikates leicht zu erraten, da sie sich nur um einen Zeitstempel unterschieden hat. So können die persönlichen Daten von Nutzer*innen ausgelesen werden.
    (weitere Information: https://www.heise.de/news/Corona-Selbsttests-bei-Aldi-Negativ-Zertifikate-von-Aesku-faktisch-wertlos-5987246.html)

Qualitätsunterschiede bei internen und externen Projekten

Ein Unternehmen sollte sich die Frage stellen, ob es Unterschiede zwischen der Qualität in intern durchgeführten Projekten und Kundenprojekten gibt und warum dies der Fall ist. Interne Projekte können generell zwei Ziele verfolgen, entweder die Umsetzung einer vom Unternehmen benötigten Funktionalität oder zur Weiterbildung der eigenen Mitarbeiter*innen. Beide Ziele gleichzeitig zu verfolgen ist generell schwierig. Bei der MT AG arbeiten beispielsweise viele Studierende zunächst an internen Projekten, um sich auf den konkreten Einsatz im Kundenprojekt vorzubereiten, und ein nutzbares Ergebnis wird lediglich angestrebt. Bei einem Kundenprojekt ist stattdessen die Weiterbildung der Angestellten zweitrangig. Problematisch wird dies jedoch, wenn sich die Fortbildung vor allem auf neue Technologien, Programmiersprachen etc. beschränkt. Dadurch liegt kein oder nur ein geringer Fokus auf dem Softwaretesting.

Testpyramide

Relevanz und Umsetzung von Qualität in Softwareprojekten - Bild 2

Generell wird Software nach dem Prinzip der Testpyramide getestet. Dabei wird zunächst die Funktionalität von kleinen Einheiten überprüft. Darauf aufbauend wird die Interaktion getestet. Am Ende wird sichergestellt, dass ein vollständiger Anwendungsfall korrekt ausgeführt werden kann. Der Komponenten- und der Modultest werden in der Praxis häufig gleichgesetzt. Eigentlich überprüft der Komponententest bereits das Zusammenspiel der einzelnen Klassen in einer Komponente. Deswegen befindet sich dieser in einer etwas höheren Teststufe.

Beim Testen wird der Wissensstand der Testperson beachtet: Bei einem Black-Box-Test wird nur die Funktionalität aus der Sicht der Benutzer*innen erprobt. Die Testperson benötigt daher kein Wissen über den Quellcode. Beim White-Box-Test wird hingegen die Struktur untersucht, wodurch der Quellcode der Testperson bekannt sein muss. Generell sollte beachtet werden, dass Entwickler*innen und Nutzer*innen einen anderen Blickwinkel auf eine Software haben, insbesondere wenn Personen beteiligt sind, die an der Entwicklung der Software mitwirken. Für Entwickler*innen sind bestimmte Aspekte eventuell unterbewusst selbstverständlich und es wird gezielter getestet. Dadurch können aber auch bestimmte Aspekte unterbewusst vergessen werden.

Außerdem gibt es Tests, bei denen die Software ausgeführt werden muss. Bei diesen dynamischen Tests kann die Software entweder manuell oder automatisch geprüft werden. Letzteres benötigt Tools wie Jasmine, Selenium oder Cypress. Bei den automatischen Tests werden sogenannte Regressionstests verwendet, durch die überprüft wird, ob alte Tests bei einer neuen Softwareversion zum gleichen Resultat führen.

Bei statischen Tests bzw. Analysen wird die Software nicht ausgeführt. Darunter fällt die Verifizierung hinsichtlich der Spezifikation, die Überprüfung von bestimmten Qualitätsmerkmalen wie die Verständlichkeit der Methodennamen oder Kommentare. Dafür werden häufig Reviews und Tools wie SonarQube oder Linter – für JavaScript etwa ESLint und Prettier – verwendet. In Abbildung 2 ist eine typische Unterteilung der beiden Aspekte in der Testpyramide dargestellt.

Umfrage über die Softwarequalität in internen Projekten

Kostenlose Downloads rund um das Thema IT und Digitalisierung

Keine Kommentare

    Schreibe einen Kommentar

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