Qualitätssicherung in der Softwareentwicklung

Qualitätssicherung in der Softwareentwicklung

Was macht Softwarequalität aus? Und was genau ist gute Software? Wir geben Ihnen einen Überblick über das Thema Qualitätssicherung in Softwareentwicklungsprojekten. Dazu klären wir zunächst für Sie die wichtigsten Punkte, zeigen Ihnen Kriterien auf und geben einen Überblick über gelungene Methoden zur Planung individueller Qualitätssicherung.

Funktionale Anforderungen in der Qualitätssicherung der Softwareentwicklung

Qualitätssicherung bei automotive Software

In der Softwareentwicklung stellt es eine Selbstverständlichkeit dar, dass alle spezifizierten Funktionen erfüllt sind. Wirklich? Moderne IT-Unternehmen wenden heute in der Regel agile Softwareentwicklungsmethoden an, bei denen zu Beginn der Entwicklung keine vollständige Spezifikation feststeht. Es kommt auch vor, dass aus Zeitgründen nicht alle spezifizierten Funktionen von Anfang an vollständig implementiert sein werden. Da es oft unterschiedliche Erwartungen zwischen Auftraggebenden und Auftragnehmenden gibt, ist es wichtig, dass die Erwartungen aller gut verstanden werden.

Nicht-funktionale Anforderungen in der Softwarequalität

Qualitätsmanagement Softwareentwicklung

Dass alle Erwartungen geklärt sein müssen, gilt umso mehr für nicht-funktionale Anforderungen – etwa an Performanz oder Wartbarkeit. Diese können in den verschiedenen Parteien auf unterschiedlich starkes Eigeninteresse treffen und manchmal auch versteckt sein: Während Benutzer*innen den größten Wert auf eine intuitive und ansprechende User Experience und die ihnen wichtigen Funktionen legen, werden die Bereitstellenden auch großen Wert auf Robustheit, Sicherheit, Erweiterbarkeit und Kosteneffizienz legen. Für Entwickler*innen spielen eher Eigenschaften wie gute Lesbarkeit, Wartbarkeit oder Testbarkeit des Quellcodes eine tragende Rolle.

Auch der geplante Einsatzbereich von Software erzeugt verschiedene Erwartungen an die Qualität. So hat beispielsweise eine Desktopapplikation für die ergonomische Anpassung des Arbeitsplatzes andere Anforderungen an die Ausfallsicherheit und das Erscheinungsbild als der Betrieb der Onlinepräsenz für die Frankfurter Allgemeinen Zeitung. Diese Aspekte tragen zur Softwarequalität bei – und damit auch zur Antwort auf die Frage nach guter Software: Die Qualität stimmt dann, wenn die funktionalen und nicht-funktionalen Anforderungen aller relevanten Parteien zu jedem Zeitpunkt bekannt sind und im vereinbarten Maß erfüllt werden. Um das sicher zu stellen, ergreifen wir bedarfsspezifisch verschiedene Maßnahmen zur Qualitätssicherung.

Drei Säulen der Qualitätssicherung

Tools und Methoden

  • Agile Methoden
  • Test-Driven Development (TDD)
  • Clean Code/Architecture
  • HIL-Test
  • Design for Test (DFT)
  • Testautomatisierung

Rahmenbedingungen

  • Qualitätssicherung als integrierter gemeinsamer Anspruch im Projekt
  • Commitment von allen Beteiligten
  • Vorausschauende Aufwandsplanung

Kultur

  • Mitarbeiterzentrierte Unternehmenskultur
  • Wertschätzung und Vertrauen
  • Personalentwicklung mit Vertrauenslernzeit
  • Exzellente Fortbildungsangebote
  • Positive Fehlerkultur

Je nach Projekt kann es vorkommen, dass die Anwendung von Qualitätssicherungsmaßnahmen allein nicht ausreicht, sondern die Qualitätssicherungsmaßnahmen selbst zum Gegenstand eines definierten Prozesses werden müssen – etwa für sicherheitskritische Anwendungen in Bereichen der Medizintechnik oder in Kraftfahrzeugen. Dann muss gewährleistet und dokumentiert werden, dass die Qualitätssicherung zu jeder Zeit funktioniert und bestehende Risiken erkannt und benannt werden. Dies ist Aufgabengebiet des Qualitätsmanagements (QM). Es behandelt u. a. die Definition von Qualitätskriterien und Zuständigkeiten und ist in verschiedenen Normen festgeschrieben (z. B. ISO9001, oder Automotive SPICE).

Aufwände im Qualitätsmanagement effizient planen: Das magische Dreieck

Der für die Softwareentwicklung nötige Aufwand entsteht sowohl aus den funktionalen als auch den nicht-funktionalen Anforderungen an die Software sowie aus den Maßnahmen zur Qualitätssicherung. Hierbei gilt, dass sich ein sehr hohes Maß an Qualität bereits mit geringen Aufwänden absichern lässt. Zudem können aber schnell signifikante Aufwände entstehen, die von Vornherein berücksichtigt sein müssen. Beispielsweise, wenn Qualitätsmanagement nötig ist oder bei ungewöhnlich hohen Anforderungen an die Testabdeckung. Maximaler Funktionsumfang, maximale Qualität und minimaler Aufwand können in jedem nichttrivialen Entwicklungsprojekt nicht zugleich erreicht werden. Sie bilden dementsprechend ein magisches Dreieck. Bei einem magischen Dreieck müssen zur Annäherung an einen Pol immer Abstriche bei den anderen gemacht werden. Anders formuliert: Es gibt keine eierlegende Wollmilchsau.

dreieck prozess qualitätssicherung

Mit geeigneten Maßnahmen und Werkzeugen der Qualitätssicherung ist es aber durchaus möglich, das magische Dreieck zu entschärfen, d. h. signifikant höhere Qualität ohne große Einbußen in Funktionalität oder wesentlich höhere Kosten zu erzielen. Um falsche Erwartungen zu vermeiden, ist es entsprechend empfehlenswert, die nichtfunktionalen Anforderungen – auch an die Softwarequalität – schon vor Projektstart zu klären und zu wissen, wo das Projekt im magischen Dreieck verortet ist. Ein positiver Nebeneffekt dabei ist, dass auf diese Art und Weise aufwandsintensive nachträgliche Änderungen am Entwicklungsprozess vermieden werden. Die Qualität ist dann bei gleichem Preis von vornherein schon höher, weil das benötigte Level der Qualitätssicherung vom ersten Tag ab realisiert und verfolgt wird und die Maßnahmen von Beginn an mit der Entwicklung verzahnt sind.

Bausteine der proaktiven Qualitätssicherung bei jambit

Unser Motto – 100 % Begeisterung – heißt für uns, dass Qualität im Zentrum unserer Arbeit steht, und das in einem sehr hohen Maß. Es heißt nicht, dass wir keine Fehler machen, sondern dass wir dazu stehen und Nutzen daraus ziehen. Wir lernen daraus und stärken damit die Qualität unserer Projekte und das Vertrauen unserer Kund*innen. Grundlage bildet unsere Top-of-Mind Kultur, die einen Rahmen mit fortschrittlichen Methoden und Arbeitsweisen schafft, und das sehr hohe Qualitätsniveau sichert. Damit spüren wir effizient Fehler auf und schaffen eine vertrauensbasierte und konstruktive Arbeitskultur.

Unsere Mitarbeitenden stehen im Zentrum der jambit-Kultur. So schaffen sie die Atmosphäre, in der reibungslose Softwareentwicklung möglich wird und in der die Wertschöpfung im Zentrum steht. Das motiviert! Und nur wer motiviert und glücklich ist, bringt das nötige intrinsische Interesse am Erfolg und die Leidenschaft für Ihre Projekte auf. Nur solche Mitarbeitenden denken über die bloße Implementierung von Anforderungen hinaus, machen sich die Projektvision zu eigen und führen das Projekt zum Erfolg. Wir bieten unseren jambitees eine Vielzahl von Weiterbildungs- und Entfaltungsmöglichkeiten. Eine kompetenzbasierte Einsatzplanung vereinbart Stärken und Interessen unserer Mitarbeitenden mit Bedarfen unserer Kund*innen.

Nicht zuletzt ist für Qualität aber auch die Verpflichtung unserer Kund*innen erforderlich – vom Bewusstwerden der Anforderungen bis zum ermöglichten Zugang zu Testgeräten und Spezifikationen. Insbesondere, wenn der Nachweis eines bestimmten Reifegrades nötig ist. Etwa im Kontext der funktionalen Sicherheit ist es beispielsweise essenziell, dass eine möglichst realistische Testumgebung bereitgestellt wird. Wir sind der Überzeugung, dass eine frühzeitige Investition in Qualität – proaktive Qualitätssicherung – sich immer auszahlt, weil so kostspieliges Nacharbeiten vermieden werden kann.

Was bedeutet proaktive Qualitätssicherung für uns jambitees?

Je nach Projekt setzen wir verschiedene Methoden, Werkzeuge oder Paradigmen ein, um die Qualität in der täglichen Arbeit vom ersten Tag an auf einem sehr hohen Niveau abzusichern – mit und ohne formalisiertem Qualitätsmanagement. Dazu gehören der Einsatz agiler Methoden unter Einhaltung der gängigen Best Practices wie Clean Code und Clean Architecture, das Befolgen der DevOps-Prinzipien oder ein stringentes Testmanagement. Die meisten davon sind mit keinem oder sehr geringem Mehraufwand anwendbar. Sie lassen sich mit leichten Abwandlungen meist sowohl in agilen Projekten als auch in Projekten mit Gewerkscharakter abbilden.

Nehmen Sie jetzt Kontakt mit uns auf

* Pflichtfeld
Thomas Rottach

Thomas Rottach

Leiter Business Division Automotive

Cookie-Einstellungen

Diese Website verwendet Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und Zugriffe auf die Website zu analysieren. Zudem werden Informationen zu Ihrer Verwendung der Website an Partner für soziale Medien, Werbung und Analysen weitergegeben. Die Partner führen diese Informationen möglicherweise mit weiteren Daten zusammen, die Sie ihnen bereitgestellt haben oder die sie im Rahmen Ihrer Nutzung der Dienste gesammelt haben.

Weitere Informationen finden Sie in unserer Datenschutzerklärung. Dort können Sie nachträglich auch Ihre Cookie-Einstellungen ändern.

contact icon

Kontakt aufnehmen