[Python-de] Python Test Hardware

Christopher Arndt chris at chrisarndt.de
Fr Dez 14 13:11:46 EST 2018


Am 14.12.18 um 18:45 schrieb Scherer Ralf:
> Hallo Leute,
> 
> wenn man nach "python test" googled, landet man ziemlich bald bei
> "25.3. unittest — Unit testing framework"
> Das sieht ja mal ganz nett aus, aber ich wollte eigentlich Hardware
> testen und nicht Software!?

Dann ist unittest nicht das, wonach du suchst. Wie Name und Beschreibung
hergeben, mach man damit Unit-Tests, also Tests für gekapselte
Funktionalitäten einzelnen Funktionen und Methoden. Bei Unittests will
man eigentlich den Einfluss jeglicher Schnittstellen ausblenden. Und
dazu gehört auch der Zugriff auf Hardware. Dies werden dann i.A. durch
sogenannte Mock-Objekte ersetzt, die das Verhalten des System hinter der
Schnittstelle simulieren.

Was du aber anscheinend machen willst, sind *Funktions*test, und noch
dazu solche von Funktionen, die von externen Systemen oder
Benutzereingaben abhängen. Die Tools dafür hängen naturgemäß sehr von
der Art des externen System oder des Frameworks für die Benutzereingabe ab.

Für Browser-basierte GUIs benutzt man z.B. oft Selenium, mit dem man den
Browser fernsteuern kann. Für Qt gibt es auch Tools, die einen Benutzer
simulieren. Suchstichwort wäre hier "GUI automation". Das erfasst dann
auch die Simulation von Benutzereingaben wie Maus oder Tastatur.

Bei Hardware kann es m.E. keine allgemein funktionierendes Testframework
gegen, das die Schnittstelle, je nach Hardware einfach zu
unterschiedlich ist. Wenn es sich "nur" darum dreht, die Kommunikation
mit einem Mikroprozessor, der per serieller Schnittstelle, I2C oder SPI
angebunden ist, schaust du dich am besten mal bei den bekannten SDKs für
solche um, also Arduino, Mbed, RTOS, MicroPython usw.

Alles weitere muss auf die jeweilige Hardwareanbindung und die
Schnittstellen, die am Rechner, auf dem die Tests laufen, vorhanden
sind, angepasst werden. Übliche PC-Systeme haben ja z.B. idR. gar keine
GPIOs, für so etwas gibt's dann SBC (Single Board Computer), aka
Raspberry Pi und Verwandte.


Gruß, Chris







Mehr Informationen über die Mailingliste python-de