Software-Qualität verbessern

Die fünf Gebote der Embedded-Software-Entwicklung

28. September 2015, 10:02 Uhr | von Dr. John Paliotta
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Tests vereinfachen

Es ist keine Überraschung, dass die meisten kritischen Fehler in diesem Bereich das Ergebnis einer Mischung von Parametern sind, die so nicht erwartet wurden. Der sagenumwobene »Heisenbug« zum Beispiel ist ein Fehler, der verschwindet oder sich verändert, sobald versucht wird, ihn zu ergründen oder zu isolieren. Für C-Programmierer ist er das Ergebnis von nicht-initialisierten automatischen Variablen, gleichwohl aber auch eine Frustrationsquelle, da sogar die Beobachtung des Codes ausreicht, um ihn zu verändern. Hier gilt ein systemnahes Unit-Testen als kritisch. Modul- oder Unit-Tests ermöglichen das Einfügen von Fehlern und somit das Testen der Fehlerhandhabung in einer Weise, wie es in einer Produktionsumgebung nicht möglich wäre.

In der Theorie hört es sich an wie ein simpler Plan: die Tests einfach durchführbar und die Testergebnisse einfach verständlich machen. Praktisch allerdings kann dies eine große Herausforderung bedeuten. In der Vergangenheit wurden diverse Varianten von Tests erstellt und von verschiedenen Entwicklern gepflegt, oftmals auch mit verschiedenen Werkzeugen:

 

  • Entwicklertests werden genutzt, um die Korrektheit der systemnahen Bausteine einer Anwendung zu beweisen,
  • Integrationstests dienen dazu, die korrekte Funktion ganzer Subsysteme zu beweisen, und
  • Systemtests werden erstellt, um die Richtigkeit aus der Sicht des Endnutzers zu beweisen.

passend zum Thema

Bild 2: Der Schlüssel, um einen solchen Work-Flow zu ermöglichen, ist eine gemeinsame Test-Kollaborationsplattform, die alle Tests mit ihren Voraussetzungen und erwarteten Ergebnissen erfasst
Bild 2: Der Schlüssel, um einen solchen Work-Flow zu ermöglichen, ist eine gemeinsame Test-Kollaborationsplattform, die alle Tests mit ihren Voraussetzungen und erwarteten Ergebnissen erfasst
© Vector Software

Werden Tests auf diese Weise partitioniert, lässt sich jede Testvariante einer anderen Entwicklergruppe zuordnen und von dieser pflegen, anstatt auf alle Mitarbeiter des gesamten Entwicklungsteams aufgeteilt zu werden. In der Tat ist es in den meisten Unternehmen ziemlich unmöglich, dass ein QS-Ingenieur einen Entwicklertest durchführt oder ein Entwickler einen Systemtest.

Um die Qualität zu verbessern, müssen diese Barrieren überwunden werden. Es muss für jedes Mitglied des Entwicklungsteams möglich sein, jeden Test zu jeder Zeit auf jeder Version der Anwendung durchzuführen. Der Schlüssel zu einem solchen Arbeitsablauf ist eine gemeinsame Test-Kollaborationsplattform, die alle Tests mit ihren Voraussetzungen und erwarteten Ergebnissen erfasst (Bild 2). Entwickler sollten einzelne Test oder aber alle Tests per Knopfdruck durchführen können. Zusätzlich ist es essenziell, dass die Entwickler in der Lage sind, die Fehler in fehlerhaften Tests schnell zu beseitigen.


  1. Die fünf Gebote der Embedded-Software-Entwicklung
  2. Tests vereinfachen
  3. Änderungsbasiertes Testen
  4. Kontinuierliches Refaktorieren des Codes

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Vector Software Germany