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.
Software-Qualitätssicherung
© Gajus
Teilen

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:

Qualitätskriterien und Anforderungen Software
Entwickler Stakeholder User
Gute Nachvollziehbarkeit Gute User Experience Gute Bedienbarkeit
Gute Modifizierbarkeit Möglichst geringer Aufwand an Zeit und Kosten Funktionalität
Gute Testbarkeit Sicherheit Ansprechendes Design
Gute Wartbarkeit Minimierung der Fehler Zuverlässigkeit
Kompatibilität verschiedener Komponenten Effizienz
Gute Skalierbarkeit

Für die User stehen am ehesten die sogenannten äußeren Qualitätsmerkmale im Vordergrund. Sie bevorzugen es, eine Software zu nutzen, die gut und zuverlässig funktioniert und sich intuitiv bedienen lässt. Diese Eigenschaften bilden die Grundlage für die Softwareentwicklung und sind wichtige Eigenschaften der Software Quality. Zu Beginn und während der Umsetzung kommen dann weitere Spezifikationen seitens der an der Entwicklung beteiligten Parteien hinzu.

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.ä.
  2. oder

  3. 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.

Bleibe auf dem Laufenden in Sachen Software, IT und Start-ups mit unserem Newsletter.
Jetzt abonnieren!
Bleibe auf dem Laufenden in Sachen Software, IT und Start-ups mit unserem Newsletter.
Jetzt abonnieren!
Gefällt dir was du siehst? Teile es!
Kontaktperson
Susan Niemeier
+49 (0) 30 5 490 650-0
susan.niemeier@tenmedia.de
Du hast auch ein spannendes Projekt?
Gerne bespreche ich ganz unverbindlich alle Projektdetails ein einem persönlichem Gespräch.

Neueste Beiträge

Menschen mit verschiedenem Geschlecht und verschiedenen Hautfarben stehen im Kreis. Nur ihre Hände ragen ins Bild. Sie fügen Zahnräder aus Holz zusammen. Eine Metapher für die Zusammenarbeit Glossar > Begriffe
Eine überdreht wirkende Frau stutzt einen Buxbaum mit einer Heckenschere. Symbolbild für die Arbeit an guter Softwarequalität. Glossar > Begriffe

Zufällige Beiträge

Mitarbeiter freuen sich über die neue Cloud Software in ihrem Unternehmen. Glossar > Begriffe
Mitarbeiter einer Webagentur entwickeln APIs. Glossar > Begriffe
Ein Team sitzt in einem Großraumbüro an Laptops und arbeitet mit einer Intranet Lösung. Glossar > Services

Zufällige Glossareinträge

Blick auf die Oberbaumbrücke und den Fernsehturm in Berlin vom Wasser aus Glossar > Städte
Mitarbeiter freuen sich über die neue Cloud Software in ihrem Unternehmen. Glossar > Begriffe
Junger Mann mit Bart hält Notebook in der Hand. Er ist ein mysql-programmierer. Glossar > Services