Software-QualitÀtssicherung

Software-QualitĂ€tssicherung ist ein fester Bestandteil der Softwareentwicklung. Es existieren verschiedene Methoden und QualitĂ€tsmodelle, die in der Regel kombiniert eingesetzt werden. Wie viel davon in einem Projekt steckt, zeigt sich meist erst nach der Abnahme, wenn Fehler im laufenden Betrieb auffallen und nicht mehr in einer Testumgebung. Auftraggeber können vorher prĂŒfen, welche Verfahren ein Entwicklungspartner einsetzt und wie er sie belegt.
Eine Hand sortiert nebeneinander Holzsterne. Symbolbild fĂŒr eine gute SoftwarequalitĂ€t.
© Gajus

Was ist Software-QualitÀtssicherung?

Der Begriff klingt nach PrĂŒfstelle und Abschlusstest, beschreibt aber eine Aufgabe, die vom ersten AnforderungsgesprĂ€ch bis in den Betrieb lĂ€uft. Wer die Software-QualitĂ€tssicherung erst bei der Abnahme einplant, hat den grĂ¶ĂŸten Teil ihrer Wirkung schon verschenkt.

Software-QualitĂ€tssicherung umfasst alle geplanten Maßnahmen, mit denen wĂ€hrend der Entwicklung geprĂŒft wird, ob eine Anwendung die vereinbarten Anforderungen erfĂŒllt. Dazu gehören Reviews, automatisierte und manuelle Tests, Versionsverwaltung und feste Freigabeschritte. Ziel ist es, Fehler und SicherheitslĂŒcken zu finden, solange ihre Behebung noch Teil der Entwicklung ist und nicht des Betriebs.

Im Berichtszeitraum Juli 2024 bis Juni 2025 wurden weltweit tĂ€glich durchschnittlich 119 neue Schwachstellen in IT-Systemen bekannt, rund 24 Prozent mehr als im Zeitraum davor (BSI-Lagebericht 2025). Nicht jede davon geht auf einen Programmierfehler zurĂŒck. Jede einzelne zeigt aber, dass PrĂŒfen kein Vorgang ist, der sich auf das Projektende legen lĂ€sst.

Durch bestĂ€ndiges Testen soll sichergestellt werden, dass die Software nach Abschluss des Entwicklungsprozesses den Anforderungen der Auftraggeber an die QualitĂ€tsmerkmale entspricht. Dazu wird die Software strategisch anhand operativer Methoden auf Fehler (sogenannte Bugs) ĂŒberprĂŒft. Diese werden im Rahmen der QualitĂ€tssicherung von Software identifiziert. Anschließend gilt es, Lösungen zu finden, um die Fehler zu beseitigen.

QualitĂ€tssicherung in der Softwareentwicklung greift ĂŒber das einzelne Projekt hinaus und ist damit Teil des Software-QualitĂ€tsmanagements eines Unternehmens. Gemeint ist die Organisation hinter der Entwicklung, nicht der einzelne PrĂŒfschritt im Projekt. Das bedeutet zum Beispiel:

☞ Die zustĂ€ndigen Mitarbeiter sind geschult in puncto IT-Sicherheit, Compliance und Vorgaben wie dem IT-Grundschutz. ☞ Das Wissen der zustĂ€ndigen Entwickler ist immer auf dem neuesten Stand. ☞ Das Können der Mitarbeiter wird anhand kontinuierlicher Verbesserungsprozesse (KVP) weiterentwickelt. ☞ Das Unternehmen sorgt fĂŒr ein gutes Arbeitsklima und die DurchfĂŒhrung von Weiterbildungen, um die Leistungen der Mitarbeiter zu verbessern.

Software-QualitÀtskontrolle: was ist der Unterschied?

Beide Begriffe werden im Alltag durcheinander verwendet, bezeichnen aber zwei verschiedene Aufgaben. QualitĂ€tssicherung richtet den Blick auf den Prozess und legt vorher fest, wie entwickelt, geprĂŒft und freigegeben wird. Die Software-QualitĂ€tskontrolle richtet ihn auf das Ergebnis und stellt am fertigen Stand fest, ob er den Anforderungen entspricht.

Der Unterschied ist kein akademischer, sondern ein vertraglicher. Ein Review-Verfahren, ein verbindlicher Freigabeschritt und eine vereinbarte Testabdeckung gehören zur QualitĂ€tssicherung. Der einzelne Softwaretest, der Abnahmedurchlauf und die Fehlerliste daraus gehören zur Software-QualitĂ€tskontrolle. Kontrolle allein findet Fehler, verhindert sie aber nicht, und sie lĂ€sst sich anders als die QualitĂ€tssicherung auch nachtrĂ€glich beauftragen. Bleibt in einem Projekt nur die Software-QualitĂ€tskontrolle ĂŒbrig, entsteht daraus eine MĂ€ngelliste und kein wartbares System. PrĂŒfverfahren und Ergebniskontrolle zusammen bilden das Software-QualitĂ€tsmanagement eines Vorhabens.

Wo im Entwicklungsprozess die QualitÀtssicherung ansetzt

QualitĂ€tssicherung in der Softwareentwicklung ist keine Phase, sondern eine Kette von PrĂŒfpunkten. Der erste liegt vor der ersten Zeile Code. Eine Anforderung, die zwei Beteiligte unterschiedlich lesen, erzeugt spĂ€ter einen Fehler, den kein Test findet, weil die Software genau das tut, was im Lastenheft steht. Die PrĂŒfung beginnt deshalb bei den Anforderungen und nicht beim fertigen Programm.

Im Entwurf entscheidet die Architektur darĂŒber, was ĂŒberhaupt prĂŒfbar ist. Ein System, dessen Bestandteile sich nicht einzeln ansprechen lassen, kann auch nicht einzeln getestet werden. WĂ€hrend der Umsetzung greifen Review und Codeanalyse, danach die Tests auf den verschiedenen Stufen, und zur Abnahme prĂŒft der Auftraggeber gegen die vereinbarten Kriterien statt gegen den eigenen Eindruck.

Nach dem Produktivstart hört die QualitĂ€tssicherung der Software nicht auf. Jede Änderung an einer laufenden Anwendung kann eine Funktion beschĂ€digen, die vorher lief, weshalb der Regressionstest zum Standard jeder Wartung gehört. Fehlt dieser Aufwand in einem Angebot, lohnt die Nachfrage: Er entfĂ€llt nicht, er wird nur spĂ€ter und teurer nachgeholt.

QualitÀtssicherung als Teil des QualitÀtsmanagements

QualitĂ€tssicherung dient als Teilgebiet vom QualitĂ€tsmanagement der Einhaltung von zuvor definierten QualitĂ€tskriterien eines Produkts oder einer Dienstleistung. Das bedeutet: Um die QualitĂ€t eines Produkts zu gewĂ€hrleisten, wird ein Konzept zur QualitĂ€tssicherung erstellt. WĂ€hrend des gesamten Herstellungsprozesses werden technische und organisatorische Maßnahmen getroffen, um die definierten Kriterien umsetzen zu können.

Handelt es sich um eine Dienstleistung, dauern die Maßnahmen zur QualitĂ€tssicherung bis zur Beendigung der Leistung an. In diesem Fall kann es sich auch um einen dauerhaften Prozess handeln, mit dem eine Firma ihre Leistungen kontinuierlich verbessern will. Um die Einhaltung der unterschiedlichen Kriterien sicherstellen zu können, erfolgt in der Regel eine QualitĂ€tskontrolle in Form einer internen oder externen ÜberprĂŒfung.

Auf der Ebene des Unternehmens wird die Einhaltung dieser Vorgaben von außen geprĂŒft. Externe Auditoren bewerten dabei nicht das einzelne Projekt, sondern einzelne Bereiche der Organisation, und am Ende eines erfolgreichen Verfahrens steht ein Zertifikat. Daneben stehen die intern getriebenen Verfahren wie kontinuierliche Verbesserungsprozesse, die ohne externe Vorgaben arbeiten und ihre MaßstĂ€be aus Kundenzufriedenheit und Leitbild ziehen.

Innerhalb eines Softwareprojekts greifen vier Gruppen von Maßnahmen ineinander:

  1. PrĂŒfung der Anforderungen und des Entwurfs, bevor Quellcode entsteht
  2. PrĂŒfung des Quellcodes, ohne ihn auszufĂŒhren
  3. PrĂŒfung der lauffĂ€higen Anwendung durch Tests
  4. Organisatorische Absicherung durch Freigaben, Rollen und Dokumentation

Die ersten beiden Gruppen fasst die Fachsprache als statische, die dritte als dynamische QualitĂ€tssicherung zusammen. Die vierte gehört zum Software-QualitĂ€tsmanagement und reicht ĂŒber das einzelne Projekt hinaus.

Statische QualitÀtssicherung

Statische Verfahren prĂŒfen ein Arbeitsergebnis, ohne es auszufĂŒhren. GeprĂŒft wird also der Text und nicht das laufende Programm, also Anforderungsdokumente, ArchitekturentwĂŒrfe, Datenmodelle und Quellcode. Klassisch geschieht das im Review, bei dem eine zweite Person das Ergebnis gegenliest, und in der Inspektion, die dasselbe nach einem festen Ablauf mit Rollen und Protokoll tut.

Den grĂ¶ĂŸten Teil dieser Arbeit ĂŒbernehmen inzwischen Werkzeuge. Die statische Codeanalyse durchsucht den Quellcode nach Mustern, die erfahrungsgemĂ€ĂŸ zu Fehlern fĂŒhren, etwa ungeprĂŒfte RĂŒckgabewerte, unerreichbaren Code oder unsichere Verarbeitung von Zeichenketten. Der Vorteil der statischen Software-QualitĂ€tssicherung liegt im Zeitpunkt. Sie greift, bevor ĂŒberhaupt etwas lauffĂ€hig ist, und findet Fehler damit in einer Phase, in der ihre Behebung wenig kostet.

Dynamische QualitÀtssicherung

Dynamische Verfahren fĂŒhren die Software aus und vergleichen ihr Verhalten mit dem erwarteten. Sie brauchen dafĂŒr einen lauffĂ€higen Stand und greifen deshalb spĂ€ter als die statischen, erfassen aber das Zusammenspiel, das sich am Text allein nicht beurteilen lĂ€sst. Dazu gehören Unit-, Integrations-, System- und Abnahmetests sowie Last-, Sicherheits- und OberflĂ€chenprĂŒfungen. Zusammen bilden sie den messenden Teil der Software-QualitĂ€tskontrolle.

Beide Gruppen der Software-QualitĂ€tssicherung ersetzen sich nicht, und genau darin liegt der Grund, beide zu planen. Ein Review findet eine missverstĂ€ndliche Anforderung, die jeder Test bestĂ€tigen wĂŒrde, und ein Lasttest findet ein Verhalten unter Volllast, das kein Review vorhersagt.

Am Anfang einer Entwicklung steht die Vision

Der folgende Punkt gilt fĂŒr jeden Produktionszweig und nicht nur fĂŒr den Bereich Software: QualitĂ€tsmanagement und QualitĂ€tssicherung fußen immer auf einer Grundlage, einer Vision. Sie umfasst die Anforderungen und Spezifikationen, die als Basis fĂŒr ein Projekt, ein Produkt oder ein Business-Modell dienen. Die Vision kann das Ziel sein, das ein Stakeholder mit einem Produkt oder einer Firma erreichen will. Sie kann aber auch dem Leitbild der Firma entsprechen, mit dem sie sich von anderen Unternehmen in ihrem Segment besonders abheben will.

QualitÀtssicherung in der Softwareentwicklung: der Nutzen

Egal ob es sich um Standardsoftware, Firmensoftware oder Individualsoftware handelt: In erster Linie ist eine Anwendung ein Produkt. Die Entwickler stellen es her, das auftraggebende Unternehmen vertreibt es und die Kunden oder User nutzen es. FĂŒr jede dieser drei Interessengruppen stehen dabei individuelle QualitĂ€tskriterien und Anforderungen im Mittelpunkt.

Software-QualitÀtssicherung und Modifizierbarkeit

Die Entwickler vertrauen auf ihre Erfahrung und ihre Kompetenzen. Sie wissen zum Beispiel, dass ein großer Teil ihrer Arbeitszeit nicht nur in das Schreiben, sondern auch in das Lesen von Quellcode investiert werden muss. Da in der Regel mehrere Programmierer als Team BeitrĂ€ge zu einer Software beisteuern, muss der Quellcode so geschrieben werden, dass er gut nachvollzogen werden kann. Ermöglicht der Code eine flexible Modifizierung, können zu jeder Zeit Änderungen vorgenommen werden. Das ist vor allem dann wichtig, wenn vonseiten der Stakeholder neue Features verlangt werden. Muss dazu der komplette Code noch einmal ĂŒberarbeitet werden, bedeutet das einen großen Mehraufwand. Das treibt die Kosten der Softwareentwicklung in die Höhe.

Testbarkeit von Anfang an mitplanen

Auch das manuelle und automatische Testen der Software darf nicht zu kurz kommen. Nicht erst beim Implementieren, sondern bereits beim Entwurf der Software-Architektur sollte darauf geachtet werden, den Code in einer Art zu schreiben, die eine PrĂŒfung durch Tests jederzeit ermöglicht.

DarĂŒber hinaus gehört auch zum Bereich Software-QualitĂ€tsmanagement, bereits zu Beginn der Anwendungsentwicklung auszuloten, ob eine sogenannte testgetriebene Entwicklung (Test Driven Development) sinnvoll ist. Bei testgetriebenen Methoden werden bereits vor dem Coden feste Tests definiert. Testgetriebene Modelle der Softwareentwicklung kosten zwar mehr Zeit. Allerdings werden durch diese Art der QualitĂ€tssicherung fĂŒr Software Tests vermieden, die nur in Bezug auf den bereits geschriebenen Code entwickelt werden.

Software-QualitÀtskontrolle aus Sicht der Auftraggeber

Gibt eine Organisation die Entwicklung einer Software in Auftrag, hĂ€ngen ihre Erwartungen an das Ergebnis davon ab, in welcher Rolle sie das tut. Damit verschiebt sich auch der PrĂŒfmaßstab bei der Abnahme, weil nicht jede Rolle dieselben Fehler als kritisch empfindet. Typisch sind vier Ausgangslagen:

  1. Die Firma nutzt die Software selbst fĂŒr Produktion, Verwaltung oder Logistik.
  2. Die Organisation stellt sie ihren Kunden oder BĂŒrgern zur Nutzung bereit.
  3. Die Software lÀuft als Bestandteil eines Produkts oder einer Anlage mit.
  4. Die Software ersetzt ein Altsystem, dessen Daten und AblĂ€ufe weiter tragen mĂŒssen.

Bei jeder Form der Nutzung sind die Stakeholder daran interessiert, dass eine Anwendung fehlerfrei funktioniert. Bugs schleichen sich schnell in eine Software ein und oft können sie in GÀnze erst nach dem ersten Release korrigiert werden. Dennoch reduziert die Minimierung der Fehler in der Entwicklungsphase Aufwand und Kosten der Entwicklung.

QualitÀt bedeutet auch Sicherheit von Daten

Auch die Sicherheit spielt fĂŒr die Stakeholder eine nicht unwesentliche Rolle. Ist eine Software angreifbar gegenĂŒber Hackern und Datendieben, bedeutet das zusĂ€tzliche Kosten fĂŒr Sicherheitsupdates und eventuellen Kundensupport. Sind personenbezogene Daten, mit denen die Software arbeitet, nicht ausreichend geschĂŒtzt, kann das aufgrund eines Verstoßes gegen die Datenschutzrichtlinien rechtliche Konsequenzen nach sich ziehen.

Software-QualitÀtssicherung und Benutzerfreundlichkeit

Besonderes Augenmerk richten die Auftraggeber auf die User Experience. Das bezieht sich in diesem Zusammenhang auf sĂ€mtliche Erwartungen, die Nutzer an die QualitĂ€t einer Software stellen. Dazu gehören u.a. Ă€ußere Software-Eigenschaften wie FunktionalitĂ€t, ansprechendes Design und ZuverlĂ€ssigkeit. Damit ist das Thema Benutzerfreundlichkeit ein fester Bestandteil der QualitĂ€tssicherung einer Software. Im Zeitalter der Digitalisierung spielt vor allem Mobile First eine wachsende Rolle. Der Großteil aller Anwendungen ist heutzutage Web-basiert. Eine Software wird vor allem auch dafĂŒr geschĂ€tzt, dass garantiert werden kann, dass sie auf jedem System bzw. in jedem Browser fehlerfrei genutzt werden kann.

Stakeholder mĂŒssen zu Beginn des Entwicklungsprozesses eine möglichst plastische Vorstellung von Funktionen und Design der Software haben. Aufgabe der Entwickler ist es, diese Spezifikationen zu identifizieren und in Form von Anforderungen an die Software zu definieren.

Was QualitÀtssicherung kostet und was sie einspart

Wer bereit ist, in die Entwicklung eines Produkts zu investieren, möchte in der Regel möglichst viele Leistungen fĂŒr einen möglichst geringen Preis. Das gilt auch fĂŒr den Bereich Softwareentwicklung. Software-QualitĂ€tssicherung ist ein Kostenpunkt, dessen Höhe abhĂ€ngig davon ist, welche Modelle der QualitĂ€tssicherung gewĂ€hlt und wie viele Tests durchgefĂŒhrt werden.

Eine umfassende Software-QualitĂ€tssicherung sollte möglichst alle Ă€ußeren und inneren Kriterien der Software-Anforderungen berĂŒcksichtigen. Auf diese Weise kann von vornherein ein Mehraufwand vermieden werden. ZusĂ€tzlicher Aufwand entsteht beispielsweise durch die nachtrĂ€gliche Beseitigung von Bugs, das umstĂ€ndliche Integrieren neuer Funktionen oder fehlende KompatibilitĂ€t zu einem anderen System. Auch bei einer Datenmigration spielt QualitĂ€tssicherung eine zentrale Rolle, um Datenverluste und Inkonsistenzen frĂŒhzeitig zu erkennen. Nicht erkannte Probleme in Bezug auf FunktionalitĂ€t und User Experience können zu wirtschaftlichen Verlusten fĂŒhren, wenn zum Beispiel eine firmeninterne Software schlecht funktioniert oder sich eine Anwendung am Markt schlecht verkauft.

Im Endeffekt rechtfertigt also eine umfassende Software-QualitÀtssicherung eine Investition an Aufwand und Zeit, um ein spÀteres finanzielles Risiko zu minimieren.

Welche Methoden der Software-QualitÀtssicherung gibt es?

FĂŒr die QualitĂ€tssicherung von Software existieren verschiedene Modelle und Methoden, die je nach Eignung kombiniert werden können. Welche davon zum Einsatz kommen, hĂ€ngt an GrĂ¶ĂŸe, KritikalitĂ€t und Lebensdauer der Anwendung und wird sinnvollerweise vor Projektbeginn vereinbart. Zu den am hĂ€ufigsten verwendeten Methoden gehören:

  • Automatisierte Tests
  • Manuelle Tests
  • OberflĂ€chentests
  • Source Control
  • Pull Request
  • Integrationstests
  • Agile Methoden

Automatisierte und manuelle Tests

Automatisierte Tests sind eine besonders weit verbreitete Methode. Hier werden fĂŒr die QualitĂ€tssicherung der Software Tools eingesetzt, die speziell dafĂŒr programmiert wurden, Bugs und Konflikte im Code zu erkennen. Anstatt vorgefertigte Tools zu verwenden, setzen viele Softwareentwicklungsfirmen auf eigene Technologien. Diese sind speziell auf die zu testende Software zugeschnitten und werden meist parallel zur Anwendung entwickelt.

Manuelle Tests werden in erster Linie angewendet, um neu hinzugefĂŒgte Funktionen und Features oder die Software als Ganzes zu testen. Hierbei wird zwischen Entwicklertests und Usertests unterschieden.

Software-QualitÀtssicherung durch Versionsverwaltung

Mithilfe von Versionsverwaltungssystemen wie Git, die eine verteilte Verwaltung ermöglichen, können die unterschiedlichen Versionen eines Quellcodes miteinander verschmolzen werden. Diesen Prozess bezeichnen wir als „Merging“. Auch das Integrieren von Änderungen innerhalb eines Entwickler-Teams lĂ€sst sich durch die Versionsverwaltung bewerkstelligen. DarĂŒber hinaus ist es durch ein Versionsverwaltungssystem möglich, sĂ€mtliche Änderungen zu protokollieren. FĂŒr das Software-QualitĂ€tsmanagement ist das ein großer Vorteil. Das kleinteilige Nachverfolgen von Änderungsschritten erleichtert das Suchen nach Problemen und Konflikten, zum Beispiel beim Auftreten von neuen Bugs.

Die Pull-Request-Methode

Bei diesem Konzept der Software-QualitĂ€tssicherung werden sĂ€mtliche Änderungen im Code nach der Änderung durch einen zweiten Entwickler geprĂŒft. Die Bezeichnung „Pull“ bedeutet, dass neue oder geĂ€nderte Code-Zeilen ĂŒber die Versionsverwaltung in die Programmiersoftware des prĂŒfenden Entwicklers heruntergeladen werden. Das Hochladen von Änderungen wird als „Push“ bezeichnet. Beim „Pushen“ ist es möglich, einen kurzen Kommentar zu den getĂ€tigten Änderungen ins System einzupflegen. Diese Option sollte fĂŒr die QualitĂ€tssicherung der Software nicht vernachlĂ€ssigt werden.

Integrationstests und Software-QualitÀtsmanagement

FĂŒr die Software-QualitĂ€tskontrolle sind Integrationstests von großer Wichtigkeit. Sie finden in der Regel im fortgeschrittenen Verlauf der Softwareentwicklung statt. Dabei werden durch einzelne Tests die verschiedenen Komponenten einer komplexen Anwendung im Zusammenwirken miteinander ĂŒberprĂŒft. Das erleichtert das Suchen nach Konflikten zwischen den Systemkomponenten.

OberflÀchentests in der Software-QualitÀtskontrolle

Diese Methode der QualitĂ€tssicherung von Software dient zum ÜberprĂŒfen des Frontends einer Anwendung. Im Fokus stehen Klickwege, Navigation, Bedienelemente und andere Kriterien, die bei Interaktionen mit der Software-OberflĂ€che wichtig sind. Diese Tests können manuell erfolgen. Standard ist jedoch das Testing mittels spezieller Frameworks und Tools.

Agile Methoden der Software-QualitÀtssicherung

Agile Modelle der QualitĂ€tssicherung fĂŒr Software sind fest in der agilen Softwareentwicklung verwurzelt. Agiles Software-Testing wird nicht nach einem festgelegten Schema betrieben. Jeder Schritt wird flexibel anhand des Entwicklungsstandes geplant. Die Stakeholder bekommen nicht nur das Endresultat der Softwareentwicklung zu sehen. Agiles Software-QualitĂ€tsmanagement bietet ihnen eine Möglichkeit, den jeweiligen Stand der Entwicklung nachzuverfolgen. Das garantiert ein Höchstmaß an Transparenz und gibt den Kunden die Möglichkeit, frĂŒhzeitig BeitrĂ€ge zu Funktionen und BenutzeroberflĂ€che beizusteuern.

FAQs

Wie viel Aufwand ist fĂŒr die Software-QualitĂ€tssicherung einzuplanen? keyboard_arrow_down keyboard_arrow_up
Ein fester Prozentsatz lĂ€sst sich nicht seriös nennen. Der Aufwand richtet sich nach KritikalitĂ€t, Lebensdauer und Änderungsrate der Anwendung. Als Anhaltspunkt gilt, dass PrĂŒfaufwand und spĂ€terer Korrekturaufwand gegenlĂ€ufig sind. Was wĂ€hrend der Entwicklung geprĂŒft wird, fĂ€llt im Betrieb nicht als Störung an.
Welche Nachweise zur QualitÀtssicherung lassen sich von einem Entwicklungsdienstleister verlangen? keyboard_arrow_down keyboard_arrow_up
Verlangen lassen sich das Testkonzept, die gemessene Testabdeckung der kritischen Funktionen, das Review-Verfahren mit ZustĂ€ndigkeiten und die Fehlerliste aus der Abnahme. Ein QualitĂ€tsmanagement-Zertifikat nach ISO 9001 belegt dokumentierte AblĂ€ufe im Unternehmen, sagt aber nichts ĂŒber die PrĂŒftiefe im einzelnen Projekt.

Aktuelle Themen