Software-QualitÀtssicherung
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:
- Statische QualitÀtssicherung
- 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:
- Die Firma nutzt die Software selbst fĂŒr die Produktion, die Verwaltung o.Ă€. oder
- 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.