Entwickler Magazin - 02.2016 - Unit Tests mit C++


Preis: 8,50 €

Erhältlich ab:  Februar 2016

Umfang:  100

Autoren / Autorinnen: Veikko Krypczyk, Elena Bochkor, Tom Wießeckel, Jan Weddehage, Sascha Sambale, Sabine Bernecker-Bendixen, Martin Mohr, Philipp Otto Behrens, Wolfgang Schmidt, Danny Reinhold, Alexander Rudolph, Helmut Stoiber, Carsten Eilers

Liebe Leserinnen, liebe Leser,

der gemeine Homo sapiens ist der geborene Tester. Morgens nach dem Aufstehen testen wir, ob der Kaffee oder der Tee zu heiß ist – eine Verbrühung wäre schließlich der denkbar schlechteste Start in den Tag. Kurz darauf testen wir die Witterungsverhältnisse, damit wir uns nicht erkälten oder den garstigen Hitzetod sterben. Wir lesen vor teuren Anschaffungen Tests im Internet oder in einschlägigen Fachmagazinen, und selbst Partnerschaften unterziehen wir einem Test. Drum prüfe, wer sich ewig bindet … man kennt das ja. Dieses Verhalten praktizieren wir den lieben langen Tag, sieben Tage die Woche, 52 Wochen im Jahr. Immer und immer wieder, unermüdlich.

Nun aber Hand aufs Herz: Wie oft saßen Sie im letzten Jahr vor irgendeiner Art von Programm – am Rechner, dem Smartphone, Tablet, der Spielekonsole, dem Smart-TV, der programmierbaren Kaffeemaschine … diese Lis­te lässt sich beliebig fortsetzen – und haben sich (wie es bei mir gerne der Fall ist) lautstark über Fehler geärgert, die offensichtlich keiner der für die Programmierung zuständigen Entwickler getestet hat? Warum funktioniert dieses nicht? Warum klappt jenes nicht? Und wieso um Himmels willen schließt sich die System­einstellung mit einer nichtssagenden Fehlermeldung, wenn ich auf diese Option klicke?

Warum testet das denn niemand? Können die denn gar nichts?

Natürlich sind Bugs jeder Art sehr ärgerlich. Einige sind zum Teil gar nicht mal so schlecht für uns, wie so genannte Glitches in Videospielen, die Spielern durch kleinere Fehler im Code Vorteile verschaffen, die von den Entwicklern so nicht vorgesehen waren. Andere können schwerwiegende Folgen haben, wenn es zum Beispiel zu Pannen durch Computerfehler beim weltweiten Aktienhandel kommt; der „schwarze Donnerstag 2.0“ im Mai 2010 hat gezeigt, wie anfällig eine Wirtschaft sein kann. Und wären die Programme und Routen der Raumsonde Rosetta und deren Lander Philae nicht immer und immer wieder getestet worden, dann wären die Gerätschaften im Wert von etwas mehr als einer Milliarde Euro nach einer Reise von über sechs Milliarden Kilometern (!) wahrscheinlich mehr oder weniger knapp am Ziel vorbei gerauscht. Man weiß ja nie so genau, was das in kosmischen Maßstäben bedeutet. Ich weiß nur, dass ich nicht mal aus ein paar Metern Entfernung mit jedem Wurf die Dartscheibe treffe …

Die meisten Fehler jedoch sind eben „nur“ ärgerlich und sorgen im schlimmsten Fall dafür, dass einige Stunden Arbeit vernichtet werden. Kommt vor. Auch heute noch.

Oft genug beschleicht einen das Gefühl, dass Code heutzutage nicht ausreichend getestet wird. Natürlich werden Programme immer komplexer und müssen mit zahllosen Hardwarekonfigurationen in Einklang gebracht werden; wir reden von „Time to Market“ und „Return of Investment“ – Zeit und Geld für das Testen aufzubringen, kann da schon einmal dafür sorgen, dass der alles entscheidende Wettbewerbsvorteil auf der Strecke bleibt. Dabei gibt es so viel zu beachten! Greifen alle Dienste ineinander, funktionieren alle Abhängigkeiten, sind alle Funktionalitäten auf allen Devices erreichbar … All das sind Dinge, die naheliegend sind und relativ leicht getestet werden können. Komplizierter wird es, wenn wir uns fragen, was passiert, wenn Nutzer mit den Programmen Sachen anstellen, die wir nicht erwartet haben; schließlich kann man unmöglich ahnen, was Anwendern alles durch den Kopf geht. Und dann erwarten User zu allem Überfluss auch noch eine gewisse „Experience“. Ach herrje.

Wir müssen uns bewusst werden, dass Ansprüche an Software und deren Komplexität gleichermaßen steigen, ja beinahe schon direkt miteinander in Verbindung zu stehen scheinen. Am Ende setzt sich noch immer das Produkt durch, das durch Qualität überzeugt und den Anwender dabei nicht überfordert. In Zeiten, in denen Microservices den Entwicklerkosmos durchdringen, ist es ein kleiner Service von uns für den Nutzer, dafür zu sorgen, dass alles wie erwartet seinen Dienst verrichtet. Das entsprechende Handwerkszeug dafür existiert für jede Sprache; wir müssen es nur einsetzen und die Verwendung in die Routine des Tagesgeschäfts einfließen lassen. Genau so, wie wir die Temperatur unserer Getränke testen.

Bleiben Sie wachsam!

wiesseckel_thomas_sw.tif_fmt1.jpgTom Wießeckel, Redakteur

Website Entwickler Magazin Entwickler Magazin Entwickler Magazin

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang