Software-Design für gute Codequalität, Teil 2

Testing und Debugging von Embedded Code

| Autor / Redakteur: Dr. Val Lynch und Steve Norman * / Sebastian Gerstl

Ein einzelner ganzheitlicher Test zum Abschluss genügt nicht: Entlang jeder einzelnen Phase einer durchgängigen Softwareentwicklung lohnt es sich, einen geeigneten Testmaßstab anzusetzen.
Ein einzelner ganzheitlicher Test zum Abschluss genügt nicht: Entlang jeder einzelnen Phase einer durchgängigen Softwareentwicklung lohnt es sich, einen geeigneten Testmaßstab anzusetzen. (Bild: gemeinfrei / CC0)

Während sich der erste Teil dieses Artikels mit bewährter Software befasste, steht im Folgenden der Software-Test zur Verifizierung von Software und Design im Fokus.

Der Test gilt oft als eine Aufgabe, die am Ende jeder Phase im Entwicklungsprozess oder nach Abschluss von Konzeption und Entwicklung ausgeführt wird. Ein solches Vorgehen kann jedoch leicht fehlschlagen. Produkte, die die vorgegebenen Erwartungen verfehlen oder Qualitätsprobleme, die aufgrund eines unzureichenden Tests auftreten, sind nicht selten. Dies kann schnell dem Geschäft oder dem Ruf einer Marke schaden. Vermeiden lässt sich dies nur, wenn dem Test in allen Planungs- und Entwicklungsaktivitäten hohe Priorität eingeräumt wird.

Hierzu die drei wichtigsten Definitionen:

Validierung: Ein Prozess, der den Nachweis liefert, dass die durchgeführten Arbeiten die Erwartungen erfüllen.

Verifizierung: Ein Prozess, der den Nachweis liefert, dass die durchgeführten Arbeiten entsprechend der spezifizierten Anforderungen abgeschlossen wurden.

Compliance: Ein Prozess, der den Nachweis liefert, dass ein Produkt oder eine Dienstleistung in Bezug auf die Einhaltung eines bestimmten Qualitätsniveaus oder einer Norm getestet wurde. Oft gibt es für die Entwicklung elektronischer Systeme Bestimmungen und gesetzliche Anforderungen, die einzuhalten sind.

Bei der Bestimmung der Anforderungen für eine Entwicklungsaktivität sollte immer als erstes die Frage geklärt werden: Wie ist dies zu beweisen? Die Antwort auf diese Frage hilft beim weiteren Vorgehen.

Tests und Nachweise

Tests und Nachweise umfassen die Messung der Qualität eines Designs und einer Implementierung. Damit lässt sich ermitteln, ob ein Produkt reif für die Fertigung und letztendlich auch für die Markteinführung ist. Frühzeitig im Prozess durchgeführte Tests sparen später Zeit und Geld. Tests können einmal gemachte Fehler aufdecken, bevor sie Folgeschäden verursachen ebenso wie verhindern, dass sich Fehler einschleichen.

Insbesondere die Anwendung von Tests auf Anforderungen und Spezifikationsdokumente verringert das Risiko bisher noch unbekannter Probleme, die zu einem späteren Zeitpunkt auftreten könnten, wenn sie nurmehr kostspielig zu beheben sind und mit hoher Wahrscheinlichkeit den Zeitplan beeinträchtigen.

Zur Bestimmung von Art und Umfang der auszuführenden Tests sind die Produktanforderungen vollständig zu verstehen und die Risiken zu analysieren, die mit einer Nicht-Erfüllung der Anforderungen für ein Produkt verbunden sind. Ein medizinisches Gerät, das z. B. Informationen liefert, die sich auf verschriebene Behandlungen auswirken, ist mit einem höheren Maß an Risiko verbunden als eines, das nur zur persönlichen Information dient.

Dies bedeutet nicht, dass die an weniger riskanten Produkten durchzuführenden Tests weniger anspruchsvoll und umfangreich sein sollten. Hier geht es vielmehr darum, angesichts des Risikos eines Produktausfalls passende Tests und eine geeignete Fehlerabdeckung vorzusehen. Nach der Definition der Risiken sind die erforderlichen Konformitätsanforderungen zu spezifizieren. Ausgehend davon lassen sich dann die Validierungs- und Verifikations-Aktivitäten planen.

Bei der Test-Durchführung ist ein Kompromiss zwischen maximaler Prüfabdeckung und Effizienz zu finden. Die Ziele des Tests müssen daher klar definiert sein. Dabei geht es vor allem um folgende Punkte: Der Produktfunktionsumfang hat die Anforderungen der Spezifikation zu erfüllen, so dass nach der Produkteinführung alle Fehler im Produkt behoben, und dass die Produkt-Qualität zum Geschäftserfolg beiträgt.

Die Kunst eines effizienten Tests liegt in der Auswahl der zu prüfenden Einheiten. Hier sind Software-Abschnitte, elektronische Einheiten und Funktionseinheiten zu definieren. Diese Einheiten können so groß oder so klein wie nötig sein, um die erforderlichen Tests für den Nachweis der Einhaltung der Anforderungen durchzuführen. Bereits während der Entwicklung vorgenommene Tests der Software-Abschnitte fördern das Vertrauen in das Gesamtsystem, während die Softwareentwicklung voranschreitet.

Embedded Code erfordert hohe Sorgfalt

Software-Design für gute Codequalität, Teil 1

Embedded Code erfordert hohe Sorgfalt

23.11.17 - Guter Code ist Code, der offensichtlich korrekt ist. Offensichtlich korrekter Code ist einfach lesbar, einfach zu warten und einfach überprüfbar. Wie erstellt man also guten Code? lesen

Elektronik-Designs sollten eine Komponentenprüfung durchlaufen. Bereits vor dem Aufbau physischer Hardware können Schaltungssimulationen und Design-Reviews durchgeführt werden. Sobald die Hardware verfügbar ist, lässt sich jeder Schaltungsblock individuell testen. Ähnlich wie beim Test von Software-Abschnitten nimmt das Vertrauen in das Gesamtsystem in dem Maße zu, wie die Komponententests fertiggestellt werden. Dann folgen Funktions- und Systemtests an der integrierten Soft- und Hardware. Die aus dem Komponententest gewonnene solide Basis bietet einen guten Ansatzpunkt für weitere Untersuchungen.

Alles zu testen ist jedoch nicht möglich. Als nächstes folgen bei High-Integrity-Designs formale Prüfmethoden, die mathematisch die Fehlerabdeckung eines Tests ermitteln. Der Einsatz solcher Verfahren kann allerdings kostspielig sein. Ohne einen definierten Endpunkt für den Test kann das betreffende Produkt selbst unter Berücksichtigung dieser Methode nur schwer die Marktreife erreichen und so die Chancen der Markteinführung verpassen. Es empfiehlt sich daher, Testziele entsprechend den ermittelten Risiken festzulegen. Werden die Risiken bereits bei der Planung des Tests bestimmt, lassen sich Prioritäten festlegen und Informationen zur Risikominderung zusammenstellen. Die Tests sind an dem Punkt abgeschlossen, an dem genügend Nachweise für die Erfüllung der Compliance-Anforderungen vorliegen.

Einsatz von Werkzeugen

Test und Debugging erfordern leistungsfähige Werkzeuge. Beispielsweise ohne die Möglichkeit, Breakpoints im Code zu setzen, oder einer Inspektion der Datenvariablen während der Codeausführung, ist ein System nur schwer zum Leben zu erwecken, geschweige denn ein Komponententest effizient durchzuführen. Die Synergy Tools umfassen viele Test- und Debugging-Funktionen. Analysefenster, Tracing-Funktionen und weitere Features unterstützen den Entwickler während des gesamten Prüfprozesses und helfen nachzuweisen, dass die Software korrekt läuft.

Allerdings ist es stets wichtig, die Grenzen eines Designs zu verstehen und einzuordnen. Dies erfordert weitergehende Tests. Ziel solcher Tests ist es, die Grenzen eines Designs aufzudecken, indem diese den Funktionsumfang eines Produkts über seinen beabsichtigten Einsatzbereich hinaus testen. In einer kontrollierten Umgebung ausgeführte Tests entsprechen nur selten der alltäglichen Interaktion zwischen Produkt und Anwender. Zudem sind die spezifizierten Anforderungen oder Profile typischer Anwender nur selten richtig genau. Überraschungen bei der Markteinführung lassen sich durch die Einbindung von Tests vermeiden, die Szenarien am Rande oder außerhalb der Anforderungen berücksichtigen.

Planung ist entscheidend für einen effizienten Test. Eine frühzeitige Planung von Tests zu Beginn eines Projekts sowie während der Entwicklung schafft die nötige Sicherheit für die Produkteinführung.

Der vorliegende Artikel enthält eine Reihe von Verweisen auf Renesas Synergy. Renesas Synergy ist eine vollständige und qualifizierte Embedded-Hard- und Software-Plattform auf ARM-Cortex- Basis, die die Embedded-Entwicklung beschleunigt und eine bessere Produkt-Differenzierung ermöglicht.

* Dr. Val Lynch ist CEO bei AND Technology Research.

* Steve Norman ist Manager Global Ecosystems bei Renesas Electronics Europe.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45017405 / Embedded Software)