Blog TIY - Test it yourself

TIY - Test it yourself

Wer aufmerksam unseren Blog verfolgt und uns in Projekten erlebt hat, weiß, dass wir uns in den aktuellen Technologien bestens auskennen und mit geeigneten ArchitekturansĂ€tzen die bestmögliche Lösung fĂŒr unsere Kunden schaffen. Dabei kommt bei uns allerdings nie der ‘craftsmanship ‘ Ansatz (s. softwarecraftsmanship)  zu kurz . Als engagierte Software-Handwerker packen wir auch schonmal richtig zu. Als Beispiel dafĂŒr, wie wir tatkrĂ€ftig Hand anlegen und mit einfachen Mitteln schnelle Lösungen realisieren, sind nachfolgend zwei Szenarien aus der aktuellen Entwicklung aufgezeigt.

Laboraufbau auf die einfache Art

In einem unserer Entwicklungsprojekte soll der Nachweis erbracht werden, dass 42 eHealth-CardTerminals – einer  zentralen Einheit (Konnektor) zugeordnet und entsprechend konfiguriert – innerhalb einer vorgegeben Zeitspanne von diesem Konnektor erkannt und betriebsbereit im Netz verbunden werden können.

Aus organisatorischer Sicht ist in einem solchen Szenario bereits einiges zu beachten: 42 Kartenterminals beanspruchen von sich aus bereits einen bestimmten Raum (knapp 15 cm in der Breite), sie sind zudem mit je einem Netzteil und LAN-Kabel verbunden. DarĂŒber hinaus mĂŒssen sie wĂ€hrend der Inbetriebnahme zugĂ€nglich sein, so dass PIN-Eingaben am Tastenfeld möglich sind. Ein Rack fĂŒr diesen Einsatzzweck konnten wir auf die Schnelle nicht finden.

Als ‚echtes Kölner Traditionsunternehmen‘ sind bei uns natĂŒrlich neben einer Zapfgarnitur auch BierbĂ€nke und Tische jederzeit verfĂŒgbar. Was liegt also nĂ€her, als selbige fĂŒr den geforderten Testaufbau zu verwenden?

Die nachfolgenden Bilder zeigen, dass ein solcher Testaufbau mit BierbĂ€nken einfach und ĂŒbersichtlich,  vor allem aber auch schnell und preiswert zu realisieren ist. Zudem ein recyclefĂ€higer Ansatz


Apparatur 1 Apparatur 2

Apparatur 3 Apparatur 4

Testen, testen, testen

Arbeitet man im Testbereich, gibt es mitunter Situationen, die sich durch viele, immer gleich ablaufende, monotone Tasks auszeichnen, so etwa Regressionstests und Last- oder Performancetesting. Setzt man solche Tests auf und fĂŒhrt sie wiederholt aus, ist es nicht auszuschließen, dass einem nach kurzer Zeit ein altes Volkslied in eher bedrĂŒckender Art und Weise auf den Lippen liegt:

Stumpfsinn, Stumpfsinn, du mein VergnĂŒgen,
Stumpfsinn, Stumpfsinn, du meine Lust;
gĂ€b’s keinen Stumpfsinn, gĂ€b’s kein VergnĂŒgen,
gĂ€b’s keinen Stumpfsinn, gĂ€b’s keine Lust.

Stumpfsinn hat allerdings - insbesondere in agilen Projekten - keinen Platz und es muss Abhilfe geschaffen werden! Das folgende Beispiel zeigt auf, wie man der Monotonie ein Schnippchen schlagen und mit etwas handwerklichem Einsatz eine effektive Lösung schaffen kann.

Ab in die Werkstatt!

Im gleichen Kundenprojekt wie dem ersten Beispiel sind TestfÀlle definiert, in denen eine Karte mehrfach sequentiell in ein Kartenterminal gesteckt werden muss, um so die Ablaufzeiten in der Abarbeitung einzelner Kartenoperationen nachzuweisen bzw. zu optimieren.

100 und mehr sequentiell auszufĂŒhrende Steckaktionen an einem Kartenterminal: Das schreit ja förmlich nach Automatisierung!

Eine Apparatur, die das automatisierte Ziehen und Stecken einer Karte aus einer Testroutine heraus ermöglicht, ist schnell konzipiert. Rahmenbedingungen hierzu:

  • Ansteuerung via SOAP oder REST (als Testwerkzeug  sind vorwiegend SOAPUI und Groovy-Routinen im Einsatz)
  • Steuerung der mechanischen Anteile via Raspberry Pi (weil er sowohl hardwaretechnisch die Voraussetzungen bringt, als auch softwareseitig zahlreiche Moduln verfĂŒgbar sind. Und weil zudem noch  einer verfĂŒgbar ist
)
  • Antriebseinheit: Ein Servo aus dem Modellbau.

Teile dieser Apparatur lassen sich natĂŒrlich nicht mehr im BĂŒro erledigen, also heißt es erst einmal: ‚Ab in die Werkstatt!‘ (frei nach dem Holzwerker Guido Henn).

Der Architekturentwurf dieser Apparatur sieht  eine Grundplatte vor, welche die Antriebseinheit  (Servo) und den Adapter zur Befestigung und FĂŒhrung der eigentlichen Karte beinhaltet. Diese Grundplatte kann dann wiederum von unterschiedlichen Supporteinrichtungen in unterschiedlichen Winkeln und AbstĂ€nden zum Kartenterminal montiert werden.

Der Ja, aber - Faktor

Nachdem der erste Entwurf fertig ist und der Prototyp die Werkstatt verlassen hat erfolgt die Vorstellung im Team.

Und wie das immer so ist, wenn man einen Prototypen vorstellt kommen dann die ‚Ja, aber 
‘ – EinwĂ€nde.

  • Ja, aber der Apparat kann ja nur einen Typ von Kartenterminal 

  • Ja, aber man könnte statt des Raspberry doch auch 

  • Ja, aber ...

Ja, richtig! Denn in solchen Situationen hilft es oft, sich noch einmal  einige der bewĂ€hrten Philosophien aus der Unixwelt vor Augen zu fĂŒhren. Diese fokussieren zwar in erster Linie auf die Softwareentwicklung, haben aber auch fĂŒr diese Apparatur ihre Geltung. Eine kleine Auswahl:

  • Klein ist schön!
  • Gestalte jedes Programm so, dass es genau eine Aufgabe gut erledigt (mache nur eine Sache und mache sie gut)!
  • Erzeuge so bald wie möglich einen funktionierenden Prototyp!
  • Schlechter ist besser!
  • Und natĂŒrlich nicht zu vergessen die Regel 6: Es gibt keine Regel 6.

Der Prototyp erweist sich aufgrund des verwendeten Servos noch etwas ‚schwachbrĂŒstig‘, ein stĂ€rkerer Servo löst das Problem jedoch und die Apparatur funktioniert.

Ein paar Worte zur Technik

Der Betrieb des Servos wird durch eine externe 6 V- Spannung  sichergestellt (so wird der Raspberry entlastet, denn der benötigte Strom an den PINs liegt höher als 500 mA), deren Plusleitung direkt am Servo angeschlossen ist und deren Minuspol mit einem GRD-Pin des Raspberry verbunden ist.

Die Ansteuerung des Servo selbst erfolgt ĂŒber eine Steuerleitung, welche – ĂŒber einen 1 KOhm – Widerstand entkoppelt – an einen GPIO-Pin des Raspberry gefĂŒhrt ist.
Das zur Ansteuerung notwendige hardwarebasierte Pulsweitensignal wird durch ein frei verfĂŒgbares Pythonmodul (RPIO.PWM) realisiert. Die Steuerung selbst ist ebenfalls in Python implementiert und reduziert sich dann darauf, das Pulsweiten-Modul mit einem dedizierten PIN zu initialisieren und entsprechend dem gewĂŒnschten Drehwinkel einzustellen.

Auch der SOAPServer ist mit wenigen Python-Zeilen rasch erstellt und offeriert die Operationen MoveUp, MoveDown sowie MoveNeutral.

Die ‚Kalibrierung‘ der Apparatur ist durch ein eigenes Script realisiert, welches den Servo in eine definierte Position fĂ€hrt, so dass dann die KartenzufĂŒhrung  anhand einer Stellschraube fixiert werden kann.

Die Testsuite ist in diesem speziellen Fall als einfache Groovy-Routine realisiert. Diese Groovy-Routine nutzt fĂŒr alle anfallenden SOAP-Operationen die wslite-Bibliothek, so dass die eigentliche Testsuite mit wenigen Zeilen Code auskommt.

Wie im Video zu sehen, laufen die Tests nun automatisiert ab.


Begutachtet man nach getaner Arbeit sein Testsetting und liest im Testlog die EintrĂ€ge ‚Karte stecken, Lauf 92 von 100‘,  lĂ€sst man unwillkĂŒrlich seinen Blick zum Servo schweifen und sinniert still vor sich hin: ‚Stumpfsinn, Stumpfsinn, Du mein VergnĂŒgen!‘.

Zuletzt aktualisiert am 10.12.2015  

Kommentar schreiben

Sicherheitscode
Aktualisieren

Überlegungen zu...
Alexander Krumeich
Zielklausur bei n-design
Janine HĂŒbner
Testen im Team mit OpenSSL
Alexander Krumeich
Testen im Team
Alexander Krumeich
TIY - Test it yourself
Stephan Hoffmann-Emden
Mocking Frameworks...
Andreas Klotz
Docbook - Integration in...
Thomas Spadzinski
Docbook - Dokumentieren...
Thomas Spadzinski
Chaos bei privaten...
Mandy Boujatouy
Smart Home statt Altenheim!
Albert HoltmĂŒller
WEB oder APP in der...
Dominic Sommer

Newsletter

NewsletterNewsletter abbonieren

Verpassen Sie nicht unseren quartalsmĂ€ĂŸigen Newsletter, der ĂŒber aktuelle Neuigkeiten und Angebote aus dem Hause der n-design GmbH informiert sowie ĂŒber wichtige Themen und Trends der gesamten eHealth Branche.

News

n-design lÀuft mit beim 6. Kölner Leselauf

20.06.2016

Am Donnerstag, den 09. Juni 2016, fand in Köln der 6. Kölner Leselauf statt. Wir...

n-design NeujahrsrÀtsel 2016 - Kölner Tafel e.V.

31.03.2016

In diesem Jahr wurde wieder fleißig gegrĂŒbelt und gerĂ€tselt. Die Hauptgewinner...

n-design NeujahrsrĂ€tsel 2015 - Scheck fĂŒr das Kinderprojekt „Die Arche“ in Köln-Ehrenfeld

05.03.2015

Auch in diesem Jahr wurde wieder gegrĂŒbelt und gerĂ€tselt. Die drei Hauptgewinner...