Software-QualitÀtssicherung

Software-QualitĂ€tssicherung ist ein fester Bestandteil der Softwareentwicklung. Es existieren verschiedene Methoden und QualitĂ€tsmodelle. In der Regel werden sie in Kombination eingesetzt, um fĂŒr Nutzer und Kunden eine hochwertige, funktionale und intuitiv zu bedienende Anwendung zu entwickeln. Vor allem im Zeitalter von Digitalisierung und Industrie 4.0 gewinnen QualitĂ€tssicherung und QualitĂ€tskontrolle im Bereich Software zunehmend an Bedeutung. Im folgenden Artikel prĂ€sentieren wir zur Info eine kurze Übersicht ĂŒber dieses komplexe Thema.
Eine Hand sortiert nebeneinander Holzsterne. Symbolbild fĂŒr eine gut SoftwarequalitĂ€t.
© Gajus

Was ist unter QualitÀtssicherung zu verstehen?

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.

Es wird zwischen zwei verschiedenen Methoden der QualitÀtssicherung unterschieden:

  1. Statische QualitÀtssicherung
  2. Dynamische QualitÀtssicherung

Statische QualitÀtssicherung

Die statische QualitÀtssicherung richtet sich nach extern vorgegebenen Parametern. Das können zum Beispiel spezifische Anforderungen von Auftraggebern (Stakeholder) in Bezug auf ein Projekt oder eine Dienstleistung sein.

Handelt es sich um einen Prozess, der das QualitĂ€tsmanagement im Unternehmen generell betrifft, wird das individuelle Erreichen der Anforderungen durch externe Auditoren geprĂŒft. Dabei ist das Ziel eines Unternehmens, nach dem Abschluss einer ÜberprĂŒfung der erfolgreichen Umsetzung von QualitĂ€tskriterien ein Zertifikat zu erhalten. Der Fokus liegt hierbei darauf, nicht das gesamte Unternehmen, sondern individuelle Bereiche zu testen. Die Zertifizierung des QualitĂ€tsmanagement-Systems einer Firma erhöht das Vertrauen potenzieller Kunden in die QualitĂ€t der Umsetzung von Projekten.

Dynamische QualitÀtssicherung

Diese QualitĂ€tssicherungs-Methode dient dem Verbessern firmeninterner Prozesse durch kontinuierliche Entwicklung eines Unternehmens. Externe QualitĂ€tsmerkmale spielen hierbei keine Rolle. Im Mittelpunkt stehen die allgemeine Kundenzufriedenheit und das Leitbild der Firma. Das wird durch organisatorische Maßnahmen erreicht, die zum Beispiel das Aneignen von Erfahrung und Kompetenzen und das Optimieren firmeninterner Prozesse sicherstellen sollen.

Bei der dynamischen QualitĂ€tssicherung wird selten auf Maßnahmen zur Zertifizierung zurĂŒckgegriffen. Kommt es dennoch zur DurchfĂŒhrung eines externen Audits, stehen dabei sĂ€mtliche qualitĂ€tsbezogene Eigenschaften der Firma auf dem PrĂŒfstand.

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.

Was ist Software-QualitÀtssicherung?

Software-QualitĂ€tssicherung ist per Definition ein kontinuierlicher Prozess im Zuge der Softwareentwicklung. 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 Software-QualitĂ€tssicherung identifiziert. Anschließend gilt es, Lösungen zu finden, um die Fehler zu beseitigen.

QualitÀtssicherung in der Softwareentwicklung umfasst unabhÀngig vom Prozess der Softwareentwicklung das generelle QualitÀtsmanagement eines Unternehmens. Das bedeutet zum Beispiel:

  • Die zustĂ€ndigen Mitarbeiter sind geschult in puncto IT-Sicherheit und Compliance.
  • 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.

Warum ist SoftwarequalitÀt wichtig?

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 besteuern, 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.

SoftwarequalitÀt durch Testing

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 Software-QualitĂ€tssicherung Tests vermieden, die nur in Bezug auf den bereits geschriebenen Code entwickelt werden.

Die Sicht der Stakeholder auf die QualitÀtskontrolle der Software

Gibt eine Organisation die Entwicklung einer Software in Auftrag, geschieht dies in der Regel aus den folgenden Kriterien:

  1. Die Firma nutzt die Software selbst fĂŒr die Produktion, die Verwaltung o.Ă€. oder
  2. Die Organisation bietet die Software Usern zur Nutzung an.

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 Stakoholder 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 Software-QualitĂ€tssicherung. 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.

Fazit: SoftwarequalitÀt hat ihren Preis

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. 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. Zu den am hĂ€ufigsten verwendete Methoden gehören:

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

Software-QualitÀtssicherung durch automatisiertes und manuelles Testing

Automatisierte Tests sind eine besonders weit verbreitete Methode. Hier werden fĂŒr die Software-QualitĂ€tssicherung 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 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 im Sinne der Software-QualitĂ€tssicherung nicht vernachlĂ€ssigt werden.

Integrationstests und Software-QualitÀtsmanagement

FĂŒr die QualitĂ€tskontrolle einer Software 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 verschiedenen Systemkomponenten.

OberflÀchentests zur QualitÀtskontrolle der Software

Diese Methode der Software-QualitĂ€tssicherung 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 Software-QualitĂ€tssicherung 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.

Software-QualitÀtsmanagement bei TenMedia

FĂŒr uns von TenMedia hat die Zufriedenheit unserer Kunden stets einen großen Wert. Bei der Entwicklung von Individualsoftware, Cloud-Anwendungen, webbasierten Datenbanken und weiteren Anwendungen setzen wir neben modernsten Technologien vor allem auf Software-QualitĂ€tssicherung. Da wir nicht nur im Bereich Software QualitĂ€tsmanagement betreiben, sondern durch kontinuierliches Management die QualitĂ€t unserer Arbeit verbessern, streben wir eine ISO-9001-Zertifizierung an.

ISO-9001 ist die Norm eines QualitĂ€tsmanagement-Systems, das auf stetige Verbesserung setzt. Voraussichtlich wird die TenMedia GmbH noch bis Ende des Jahres 2022 ein TÜV-Zertifikat fĂŒr diese Norm erhalten.

Wer eine digitale Lösung fĂŒr seine Organisation benötigt, kann jederzeit einfach mit uns in Kontakt treten. FĂŒr spannende Projekte haben wir immer ein offenes Ohr. Anhand unserer durch langjĂ€hrige Erfahrung gewonnenen Kompetenzen garantieren wir unseren Kunden höchste SoftwarequalitĂ€t. Das gilt auch fĂŒr Applikationen im Bereich Mobile Devices. Wir bieten unseren Kunden Kontakt auf Augenhöhe und Transparenz in alle Entwicklungsprozesse von der ersten Zeile Code bis zum Abschluss unserer Projekte. Bei einem ErstgesprĂ€ch inklusive kostenloser Beratung finden wir gemeinsam heraus, welches unserer Modelle zur Softwareentwicklung am besten zu Ihren Vorstellungen passt.

Mehr Informationen zu den Themen Software und Digitalsierung gibt es aktuell in unserem Blog und im TenMedia-Podcast.