Entwickler Magazin 2.16

Unit Tests mit C++

Erhältlich ab: Februar 2016
Umfang: 100 Seiten
Autoren / Autorinnen:
Philipp Otto Behrens, Sabine Bernecker-Bendixen, Olena Bochkor, Carsten Eilers, Dr. Veikko Krypczyk, Martin Mohr, Danny Reinhold, Alexander Rudolph, Sascha Sambale, Wolfgang Schmidt, Helmut Stoiber

78,00 140,20 

Abonnement Typ
Auswahl zurücksetzen

11,50 

Heft bestellen

Highlights dieser Ausgabe

Stiftung Unit Test – Nutzwertanalyse von Unit-Test-Frameworks für C++

Es lebe die Kultur! – Teil 1: Wie DevOps mehr Kultur in die Unternehmen bringt

Es werde grün! – Teil 1: Gartenbewässerung mit dem LOGO! von Siemens

Lebendige Blöcke – Teil 7: Charakteranimationen in blockbasierten Landschaften

Magazin

Zahlen & Fakten

News

UX Best Practices
Teil 2: Das User-Experience-Dossier

Methoden

Es lebe die Kultur!
Teil 1: Wie DevOps mehr Kultur in die Unternehmen bringt

Internet of Things

Es werde grün!
Teil 1: Gartenbewässerung mit dem LOGO! von Siemens

Development

Stiftung Unit Test
Nutzwertanalyse von Unit-Test-Frameworks für C++

Daten, Daten, Daten
Teil 6: Datenbanken und Datenmodellierung für Entwickler im Überblick

Wie die Bilder laufen lernen
Teil 1: Einführung in die Programmierung von 2-D-Spielen

Lebendige Blöcke
Teil 7: Charakteranimationen in blockbasierten Landschaften

Biometrische Technologien
Teil 1: Grundlagen und Standards

Security

Bargeldlos => Geld los?!
Wie sieht es mit der Sicherheit des mobilen Zahlens aus?

Web

Aus der Architektur entsteht die Lösung
Teil 2: Implementierung der einzelnen Container auf Basis der festgelegten Architektur

„Drum prüfe, was sich ewig bindet!“

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 Liste 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 Systemeinstellung 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!

Ihr
Tom Wiesseckel


Weitere Ausgaben

X
- Gib Deinen Standort ein -
- or -