en
de

Testautomatisierung – von Anfang an mit Sinn und Verstand im Projekt genutzt

20 Januar 2017
| |
Lesezeit: 5 Minutes

Flexible Ansätze mit System (a.k.a. System-Architektur) ermöglichen es uns, die individuell angepasste Testautomatisierung in Industrie und Medizintechnik projektbegleitend aufzubauen und für komplexe HW-/SW-Integrationen die erforderlichen performanten Varianten zu ergänzen.

Für die Entwicklung von sicherheitsgerichteten Systemen in Industrie oder Medizintechnik ist gründliches Testen zwingend erforderlich. In der Software-Entwicklung verwenden wir etablierte Verfahren für Continuous Integration und automatisierte Regressions-Tests. Dabei profitieren die Software-Teams von einer guten Tool-Unterstützung. In Embedded-Projekten muss aber nicht nur die Software für sich getestet werden, sondern auch die Software mit den Hardware-Baugruppen integriert werden. Integration findet auf unterschiedlichen Ebenen statt, von einzelnen Software-Modulen bis zum gesamten System. Die Testautomatisierung für die Hardware-Software-Integration ist komplexer, lohnt sich mit dem richtigen Ansatz aber auf jeden Fall.

Architektur für den Prüfstand

Wie kann man nun bei einem Hardware-Projekt bereits ab dem Projektstart mit der Testautomatisierung starten? Für so manchen stellt sich da die Frage, ob es denn überhaupt möglich ist, dass die Hardware-Entwicklung so früh einsatzfähige Baugruppen liefern und parallel noch ein neuer Prüfstand aufgebaut werden kann. Für uns bei Zühlke ist genau das bei jedem Projekt erforderlich: jedes Projekt ist eine Neu-Entwicklung, für die eine angepasste Test-Infrastruktur aufgebaut werden muss. Mit den passenden Konzepten und einer guten Architektur für Testautomatisierung und Messtechnik ist das durchführbar.

Übersicht zur System-Architektur für die Testautomatisierung

Die System-Architektur für die Testautomatisierung fokussiert auf jeweiligen Aspekte von der Continuous-Integration-Infrastruktur bis zum Device Under Test.

Wir setzen dabei auf eine Trennung der verschiedenen Kontrollebenen innerhalb des Prüfstandes. Bei den Systemen zur Orchestrierung und Testlauf-Steuerung setzen wir auf die bekannten und gut funktionierenden Tools aus der Software-Entwicklung mit einem zentralen Git-Repository und einem autonomen Build-System basierend auf Jenkins. An den Prüfständen setzen wir etablierte Steuerungs- und Messtechnik-Software von National Instruments ein. So wird jeder Prüfstand von einem Testautomatisierungsserver gesteuert, der die Testsequenzen mit NI TestStand™ ausführt. Mit NI LabView™ wiederum wird die angeschlossene Messtechnik gesteuert und die Messwerte werden erfasst.

Das letzte Stück ist die elektrische Anbindung an das Device Under Test (DUT). Hier ist in der Regel eine Signaladaption erforderlich. Da wir Testautomatisierung seit vielen Jahren einsetzen, können wir hier auf eine jahrelange Erfahrung zurückblicken und haben in dieser Zeit einen gut gefüllten Werkzeugkoffer mit Signaladaptern angelegt. Damit können wir eine große Zahl typischer Anpassungen lösen, beispielsweise Signale mit 24V, USB-Geräte automatisch anstecken/entfernen oder mehrere CAN-Busse über Weichen umschalten. Falls uns in einem Projekt spezielle Messtechnik fehlt, ergänzen wir sie nach Bedarf.
Die klare Trennung der Aufgaben auf die verschiedenen Ebenen ermöglicht uns den flexiblen Einsatz von Standard-Komponenten. Diese bieten zwei Vorteile: Sie sorgen für Geschwindigkeit, bringen aber auch die Flexibilität, auf veränderte oder zusätzliche Anforderungen an die Messtechnik im Projektverlauf zu reagieren.

Beispiel: Schnelle Datenerfassung

In einem aktuellen Industrie-Projekt konnte so der Prüfstand mit einem sbRIO 9606 um eine schnelle Datenerfassung und Vorverarbeitung erweitert werden.

Bei der Entwicklung der Messtechnik für diese Aufgabe wurde ein Konzept verfolgt, bei dem ein Testmodul bestehend aus Carrierboard für modulspezifische Funktionen und das aufgesetzte sbRIO für den generischen Teil der Funktionen vorgesehen ist. Mit dem sbRIO setzen wir eine leistungsfähige Zukauf-Komponenten ein, die durch ein programmierbares FPGA eine flexible und sehr performante Messtechnik ermöglicht.

Das sbRIO wird über einen RMC Stecker auf das Carrierboard aufgesetzt. Das Carrierboard wiederum wird in einem 19 Zoll Rack eingeschoben und auf die Backplane aufgesteckt. Über die Backplane hat ein Anwender die Möglichkeit via Ethernet mit dem Testsystem zu kommunizieren.

Je nach Bedürfnissen des Kunden können nun verschiedene Signale erfasst und adaptiert werden. Beispielsweise ist eine Anforderung, Spannung zwischen 0V und +20V und Strom bis 200mA mit einer Abtastrate von bis zu 1kHz zu erfassen. Auf dem Carrierboard wird eine Schaltung für den AD-Wandler entwickelt, die die Clockrate und weitere Steuersignale vom sbRIO erhält. Die AD-Schaltung wiederum liefert die gemessene Spannung in digitaler Form zurück an das sbRIO. Das IO-Mapping wird angepasst und mit dem FPGA auf dem sbRIO implementiert.

Auf dem FPGA werden nun die digitalisierten Spannungen in Spannungs- und Stromwerte umgerechnet und den richtigen Variablen zugewiesen. Um resultierende Messfehler aus der Messkette, z.B. von dem AD-Wandler, zu berücksichtigen, wird auf dem FPGA ein Messdatenabgleich durchgeführt. Ist bei dem SUT eine Abhängigkeit von Spannung und Strom vorhanden, lohnt sich ein aufwändigeres Verfahren beim Abgleich. Eine Möglichkeit ist hier der Abgleich durch eine Interpolation der 2D gestreuten Daten unter Zuhilfenahme einer 2D Scattering Funktion. Dabei werden beim Abgleich die Stützpunkte für Strom und Spannung mit dem AD-Wandler und einem parallel betriebenen (kalibrierten) Messgerät aufgenommen und in den EEPROM des Carrierboards geschrieben. Während der eigentlichen Messung wird auf dem FPGA nach den passenden Stützpunkten gesucht und der entsprechende korrigierte Messwert wird berechnet. Zusätzlich besteht die Möglichkeit auf dem FPGA Schutzmechanismen zu implementieren. Steigt beispielsweise der gemessene Strom bedrohlich hoch an, kann ein digitales Signal erzeugt werden, um auf dem Carrierboard einen Transistor anzusteuern, welcher den Stromkreis unterbricht und so kritische Bauteile vor Überlastung schützt.
Diese Funktionalitäten bedeuten eine Gesamtauslastung von ca. 90% des FPGAs. Dabei werden 70% der insgesamt 27288 LUTs des FPGA auf dem sbRIO9606 verwendet.

Entwicklung der FPGA-SW

Das LabView FPGA Modul als Teil der LabView Entwicklungsumgebung bietet die Möglichkeit Code für FPGAs in gewohnter LabView Umgebung zu erzeugen und wird dann mit einem Compiler in ein Bit-File umgewandelt und auf den FPGA geladen.

Auf dem Real-Time System des sbRIO stehen die vorverarbeiteten Spannungs- und Stromwerte vom FPGA zur Verfügung und die Erfassung wird mit einem Zeitstempel für jeden Messwert komplettiert. Dabei ist es je nach Anwendung oder Einsatzgebiet des Testsystems naheliegend, die Signale zu filtern und Mittelwerte zu bilden. Zusätzlich können zeitkritische Aufgaben wie Regelungen implementiert werden. Bei hohen Abtastraten werden die Messwerte gebuffert, so dass das Hostsystem in jedem Fall alle Messwerte zu gegebener Zeit empfangen kann.

Auf der Host-Seite werden die Messdaten in Modul-Nachrichten verpackt. Für das Beispiel der Messung von Spannung und Strom beinhalten die Modul-Nachrichten den Zeitstempel des Mess-Zeitpunktes sowie den gemessenen Spannungswert. Für digitale Signale wiederum besteht eine Modul-Nachricht aus Zeitstempel, Zustand und Ereignis (Flankenwechsel).

In TestStand erstellte und ausgeführte Sequenzen rufen StepTypes auf, welche die Modul-Nachrichten auswerten und die Resultate in Reports zusammenfassen. Einige StepTypes sind in TestStand vorhanden, andere können mit LabView spezifisch für Testmodule erstellt werden und bilden dann die Test-DSL.

Benefits

Der Aufwand für die Testautomatisierung ist aus unserer Sicht gerechtfertigt. Durch die Automatisierung können wir während dem gesamten Projektverlauf die Zwischenergebnisse häufiger und schneller testen. Getestet werden Software-Regressionen, aber auch Hardware-Kompatibilität und Performance über verschiedene Revisionsstände. Die Feedback-Schleifen für die Entwickler sind kleiner und damit erheblich effektiver und damit auch erheblich günstiger. Dabei erreichen wir mit unseren Prüfständen typischerweise eine Voll-Automatisierung bei 80%-90% aller Testfälle. Gleichzeitig verringert sich die Ausführungszeit für einen Testdurchlauf wesentlich, ein Faktor 10 ist hier erreichbar.

Gerade um diese Benefits nutzen zu können, sollte die Testautomatisierung so früh wie möglich verfügbar sein und dann im gleichen Maße wachsen wie der Entwicklungsgegenstand selbst. Damit erreicht man von Anfang an eine höhere Qualität und hält sie bis zum Projektabschluss.

Schaffen Sie auch das Freitesten einer Release für ein Medizinprodukt an einem Vormittag? Oder wie lange dauern Ihre Tests?

Wir freuen uns auf Fragen und Anregungen zur Testautomatisierung. Hinterlassen Sie uns gerne ein Kommentar oder schreiben Sie uns direkt über LinkedIN oder per Email.

Kommentare (0)

×

Updates

Schreiben Sie sich jetzt ein für unsere zwei-wöchentlichen Updates per E-Mail.

This field is required
This field is required
This field is required

Mich interessiert

Select at least one category
You were signed up successfully.

Erhalten Sie regelmäßige Updates zu neuen Blogartikeln

Jetzt anmelden

Oder möchten Sie eine Projektanfrage mit uns besprechen? Kontakt aufnehmen »