Instrumentierung von Unit-Tests

FirmaHengstler GmbH
SchwerpunktUnit-Tests als Voraussetzung für SIL Zertifizierung für
magnetisch-optischen Präzisions-Drehwinkelgeber nach SIL
ZeitraumQ3 2014 bis Q3 2015
ProjektbeschreibungBeim ACURO-Savety AS37 handelt es sich um einen neu entwickelten magnetisch-optischen Drehwinkelgeber von hoher Präzision. Von Seiten des Kunden wurde eine Zertifizierung nach Sicherheits-Integrationslevel (SIL) 2 (später 3) angestrebt. Der hierfür erforderliche Nachweis von Unit-Tests wurde von uns gewährleistet. Aufgrund der speziellen Rahmenbedingungen wurde in Abstimmung mit dem Kunden und dem TÜV entschieden die Tests On-Line durchzuführen. Das heißt, dass die funktionalen Tests direkt auf dem Zielgerät (Target) ausgeführt werden. Dies war eine große Herausforderung und stellte einen erheblichen Mehraufwand dar.
Zunächst wurde in Zusammenarbeit mit dem Kunden ein Unit-Test-Framework entwickelt. Dadurch war es in einem speziellen Modus möglich Testparameter und Ergebnisse über den S4Wire Bus zu versenden.
Anschließend erfolgte die Testinstrumentierung jeder einzelnen Funktion. Dabei wurden die Funktionen durch gekapselte Testblöcke erweitert. Diese dienten zur Bereitstellung der Eingangsparameter von der Testumgebung zu Beginn der Funktion und dem Auslesen der Ergebniswerte am Ende der Funktion. Vorhandene Funktionsaufrufe innerhalb der Funktion mussten dabei durch sog. Stubs (Dummies) ersetzt werden. Gleiches galt für die Abfrage von Ports, Prozessorregister und anderer nicht von außen beeinflussbarer Parameter.
Gleichzeitig mit der Instrumentierung erfolgte auch das Definieren der Testfälle, d.h. das Festlegen der Eingangsparameter und der zu erwartenden Ergebnisse. Durch eine Erweiterung des Test-Frameworks wurde es außerdem ermöglicht, zusammen mit den Tests auch das vollständige Durchlaufen aller Funktionspfade zu dokumentieren.
Parallel dazu erfolgte die Entwicklung eines Test-Tools (PC-Programm) für den automatisierten Testablauf (Start und Überwachung der Tests, Auslesen und Protokollierung der Ergebnisse).
Die Umsetzung erfolgte in der Programmiersprache C (Firmware) und C# (PC-Programm).
Für die Definition der Testfälle war eine umfassende Einarbeitung in die physikalischen Grundlagen, sowie die verwendeten Algorithmen und Protokolle erforderlich.
Tools und TechnologienTarget basiertes Unit-Testing
dsPIC33 Programmierung
XC16-Compiler
MPLAB IDE von Microchip
ICD-3 Debugger