• Zur Hauptnavigation springen
  • Zum Inhalt springen
  • Zur Hauptsidebar springen
  • Zur Fußzeile springen
IndustrieDigital – Industrieblog der ccc

IndustrieDigital - Industrieblog der ccc

Der Corporate Blog der ccc software gmbh. Alles rund um Digitalisierung in der Industrie.

  • Home
  • Alle Themen
    • Digitalisierung
    • Instandhaltung
    • Energiemanagement
    • Softwareentwicklung
    • Unternehmen
  • Downloads
  • Über uns
    • Kontakt
  • 🗗 Zur Webseite
  • E-Mail
  • LinkedIn
  • YouTube

Qualitätssicherung in der Softwareentwicklung

Bei der Qualitätssicherung in der Softwareentwicklung handelt es sich um die strategische und operative Überprüfung, Identifikation und Lösung von Softwarefehlern mit dem Ziel, eine funktionierende Lösung bereitzustellen. „Qualität ist kein Zufall, sie ist immer das Ergebnis angestrengten Denkens.“ John Ruskin Zur Sicherung der Softwarequalität gibt es verschiedene Methoden und Modelle. Im Folgenden sind einige Beispiele […]

9. Januar 2019 by Thomas Grafe 2 Kommentare

Qualitätssicherung in der Softwareentwicklung Titel

Bei der Qualitätssicherung in der Softwareentwicklung handelt es sich um die strategische und operative Überprüfung, Identifikation und Lösung von Softwarefehlern mit dem Ziel, eine funktionierende Lösung bereitzustellen.

„Qualität ist kein Zufall, sie ist immer das Ergebnis angestrengten Denkens.“

John Ruskin

Zur Sicherung der Softwarequalität gibt es verschiedene Methoden und Modelle. Im Folgenden sind einige Beispiele genannt.

Modelle der Qualitätssicherung:

  • Organisatorische Qualitätsmodelle (z.B. Automotive SPICE oder Capability Maturity Model)
  • Prozessmodelle, wie zum Beispiel:
    • Capability Maturity Model Integration
    • Rational Unified Process (RUP)
    • Hardware in the Loop (HIL)
    • Agile Methoden
    • V-Modell

Methoden zur Qualitätssicherung:

  • Spiralmodell
  • Refactoring
  • Iterative Softwareentwicklung
  • Testgetriebene Entwicklung
  • Unterschiedliche Testarten und Methoden bei Softwaretests, zum Beispiel:
    • UnitTest
    • Intergrationstest
    • Funktionstest
    • Systemtest
    • Regressionstest
    • Abnahmetest
    • Oberflächentest

Wie sieht Qualitätssicherung bei ccc aus?

Wir bei ccc stellen hohe Ansprüche an die Qualität unserer Softwarelösungen. Tests bedeuten jedoch auch immer ein gewisses Maß an Zeit und Aufwand. Umso wichtiger ist es deshalb, für sich eine gute Mischung aus den Testarten zu finden. Wir nutzen verschiedene der oben genannten Methoden, um die Qualität unserer Anwendungen sicherzustellen und möchten diese kurz vorstellen.  

Agiles Arbeiten Qualitätssicherung in der Softwareentwicklung

Agile Methoden

Im Vordergrund stehen bei uns die Methoden der agilen Softwareentwicklung. Diese setzen wir ein, um folgende Ziele zur erreichen: 

  • Wissensverteilung
  • Wissenstransfer
  • Schnelleres Erkennen von Hürden und Problemen bei der Umsetzung
  • Wenig Inselwissen
  • Absicherung bei Ausfall von Mitarbeitern,

Agile Entwicklung wird bei uns jedoch nicht „nach Lehrbuch“ angewendet, sondern wurde auf die Bedürfnisse unserer Kunden und Mitarbeiter angepasst.

Die zentrale Dokumentation erfolgt im Azure DevOps (ehemals Visual Studio Team Services) von Microsoft. Besonders wichtig ist dabei die Nachvollziehbarkeit – jeder Entwickler sollte zu jeder Zeit in der Lage sein, nachzuvollziehen, warum welches Stück Code entstanden ist. Dafür werden Git Commits mit User Stories bzw. Tasks verknüpft. Ein Commit darf dabei auch nur einer User Story zugeordnet werden. Wichtig ist, dass die User Stories entsprechende Detailinformationen enthalten – inklusive entsprechender Dokumente wie E-Mails, Skizzen usw.

Um eine gute Grundlage für agiles Arbeiten zu schaffen, werden daneben verschiedene Standards aus dem Bereich Clean Code umgesetzt. Das Ziel ist es, eine gewisse Einheitlichkeit in der Arbeitsweise und damit im Code zu schaffen. Gleichzeitig soll so das Verständnis der Mitarbeiter für Code, der von anderen Kollegen geschrieben wurde, erhöht werden. Dabei wird beispielsweise darauf geachtet, dass Funktionen möglichst kleinteilig sind und nicht untereinander vermischt werden, oder Abhängigkeiten unter den verschiedenen Klassen bzw. Projekten so gering wie möglich zu halten. Gerade für Unit Tests ist das wichtig – dazu später mehr.

Testgetriebene Entwicklung

In einigen Bereichen kommen auch die Prinzipien des Test Driven Development (TDD) zum Einsatz. Hier geht es darum, dass erst die notwendigen Tests definiert werden, bevor auch nur eine Zeile Code geschrieben wird. Denn wenn Testfälle schon im Voraus definiert werden, hilft das, die Entwicklung inklusive der Struktur und nötiger Klassen besser zu durchdenken.

Die testgetriebene Entwicklung ist zwar zeitintensiv, macht aber an einigen Stellen Sinn. Denn: So wird verhindert, dass nur die Tests entwickelt werden, zu denen auch Code geschrieben wurde.

Unit Tests - Qualitätssicherung in der Softwareentwicklung

Unit Tests

Regelmäßige Unit Tests, also Tests einzelner Funktionen und Algorithmen, sichern die Funktionsfähigkeit der Software, insbesondere nach Updates.

Der Vorteil hier: Der Code funktioniert immer so wie er soll und bei Änderungen wird sofort deutlich, ob ungewollte Auswirkungen auftreten. Schnittstellen können auch gekapselt getestet werden. Das macht die Fehlersuche weniger aufwändig.

Sämtliche Unit Tests werden automatisch im Rahmen der Kontinuierlichen Integration (Continuous Integration) auf dem Buildsystem ausgeführt, sobald Quellcode auf dem Hauptentwicklungszweig eingecheckt wird. Jeder Entwickler kann sie auch in seiner Entwicklungsumgebung ausführen.

Manuelle Funktionstests -
 Qualitätssicherung in der Softwareentwicklung

Manuelle Funktionstests

Ergänzend zu den Unit Tests finden in seltenen Fällen auch manuelle Funktionstests statt. Diese sind jedoch sehr zeitintensiv, sodass sie lediglich bei der Entwicklung von einzelnen Features oder in Ausnahmefällen bei Fehlern eingesetzt werden.

Abnahmetests

Gemäß den Prinzipien der agilen Entwicklung werden dem Kunden bei Neuentwicklungen regemäßig neue Versionen bereitgestellt. Dabei werden oft einzelne Abnahmetests vereinbart, um sicherzustellen, dass der Kunde ordnungsgemäß mit dem Programm arbeiten kann. Diese Tests kommen insbesondere bei neuen Schnittstellen oder bei einzelnen neuen Features zum Einsatz.

Oberflächentests Qualitätssicherung in der Softwareentwicklung

Oberflächentests

Noch nicht im Einsatz, aber in der Planung sind zusätzliche Oberflächentests. Spezielle Frameworks bzw. Programme testen die Software aus Sicht des Users. Dabei werden Oberflächenelemente und Interaktionen automatisiert getestet – also Texte, Icons, Bedienelemente wie Buttons, Fehlermeldungen, etc.

Hierfür gibt es verschiedene Methodiken, wie ein Bedienelement ermittelt werden kann – über die Angabe des Namens des Bedienelements oder die pixelgenaue Position. Anschließend kann das Bedienelement ausgelesen oder bedient werden.

Fazit: Qualitätssicherung in der Softwareentwicklung ist besonders langfristig wichtig

„Natürlich kostet Qualität, aber fehlende Qualität kostet mehr.“

Prof. Dr. Hans-Jürgen Quadbeck-Seeger

Tests sind zwar in der Regel zeitintensiv, bringen aber auf lange Sicht und besonders für den Kunden einen hohen Nutzen, indem der Aufwand für Änderungen oder Support geringer wird. Der Verzicht auf Tests aus Gründen der Zeit oder Kosten, ist aus unserer Sicht oft zu kurz gedacht.

Trotzdem versuchen wir natürlich den Aufwand für Tests zu minimieren. Wann immer möglich setzen wir deshalb auf praxisbewährte (und getestete) Module und gemeinsame Bibliotheken.


Das könnte Sie auch interessieren: IT-Systeme ausfallsicher gestalten – am Beispiel MES


Verwandte Beiträge

Alle Artikel,  Softwareentwicklung,  Unternehmen Softwareentwicklung

Leser-Interaktionen

Kommentare

  1. finn meint

    25. Juni 2019 um 17:11

    Der Sohn interessiert sich für den Beruf des Softwareentwicklers. Um den Code zu schreiben, sind bestimmt die Fachkenntnisse benötigt. Aber die ersten Bemühungen auf diesem Weg brauchen doch Selbstüberprüfen. Meinen Dank für die Hinweise! Werde sie an ihn weiterleiten. Qualität ist doch immer das Ergebnis angestrengten Denkens!

    Antworten
  2. Christian meint

    6. September 2022 um 8:05

    Das Thema ­­­­­­Qualitätssicherung in der Softwareentwicklung interessiert mich besonders und ich habe diesen Artikel sehr gerne gelesen. Ich wünsche https://blog.ccc-industriesoftware.de/ weiterhin viel Erfolg. Macht weiter so.

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Seitenspalte

Über uns

Wir sind die ccc software gmbh, ein mittelständischer IT-Dienstleister und Softwareentwickler mit über 30-jähriger Erfahrung. Von Leipzig aus arbeiten wir für Kunden in ganz Deutschland und darüber hinaus.

Unsere Softwarelösungen

imaso® maintenance

imaso® energy

imaso® shiftbook

Fertigungsmanagement / MES

Speziallösungen für die Produktion

Download-Bibliothek

Neueste Beiträge

  • Testbetrieb gestartet: diGuRaL sammelt Echtzeitdaten für die Mobilität von morgen
  • MES-Software: Der Schlüssel zu mehr Effizienz in der modernen Fertigung
  • Kennzahlen der Instandhaltung: Welche sind wichtig?
  • Die besten Strategien für eine erfolgreiche Instandhaltungsplanung
  • Wartungsprogramm in Aktion: Bewährte Tipps und Strategien

Themen

Arbeit 4.0 Ausfallsicherheit Digitalisierung Einstieg Industrie 4.0 Energiemanagement e³f Industrie 4.0 Instandhaltung Instandhaltung 4.0 Instandhaltungsplanung Instandhaltungssoftware intelligente Instandhaltung Intern MES Optimierung der Instandhaltung Partner Predictive Maintenance Prozessoptimierung Ressourceneffizienz Software Softwareentwicklung SPS Videoanalyse Wartung Wartungssoftware

Neugierig?

Auf unserer Webseite erfahren Sie mehr zu uns und unseren Produkten.

ZUR WEBSEITE

Footer

Social

Follow along on social media.

  • LinkedIn
  • XING
  • YouTube

Software

imaso® maintenance

imaso® energy

imaso® shiftbook

Fertigungsmanagement / MES

Speziallösungen für die Produktion

Service

Ressourcen & Fachwissen

Blog

Kontaktanfrage

Karriere

Fernwartung

Kontakt

ccc software gmbh
Mozartstraße 3
04107 Leipzig

 

Adresse in Google Maps öffnen
0341-30548-30
contact@ccc-software.de

 

IMPRESSUM | DATENSCHUTZ

Copyright © 2025 ccc software gmbh