Tech Talk: Warum Affen die besseren Softwaretester sind

Im September hielt Thomas einen Tech Talk, bei dem er der Frage auf den Grund ging, warum Affen die besseren Software-Tester sind. Im Speziellen ging es darum herauszufinden, wie und warum wir unsere Software testen und welche Herausforderungen dabei entstehen.

Damit ein Code weiterhin verändert werden kann, ohne die vorherigen Auswirkungen negativ zu beeinflussen, muss ein Software-Entwickler besonders zwei Dinge beachten:

  1. Wer einen falschen Stein zieht, lässt den ganzen Stapel zusammenbrechen. Das heißt: Software-Entwickler müssen aufpassen, dass Sie die Codes der anderen Software-Entwickler nicht kaputt machen, während sie selbst daran arbeiten.
  2. Man muss aufpassen, dass einem keiner die Bananenschalen vor die Füße wirft. Sprich, wenn man einen Code bastelt, sollte man dafür sorgen, dass dieser keinen anderen Code unwirksam macht.

 

Dies ist vor allem für die Strukturverbesserung der Quellcodes – dem sogenannten Refactoring – wichtig. Das ist der Fallschirm, das Sicherheitsnetz, das den Code vor dem tiefen Fall bewahrt. Unsere Software-Entwickler bei myposter achten dafür vor allem auf fünf Qualitätsmerkmale: Funktionalität, Effizienz, Änderbarkeit, Zuverlässigkeit, Benutzerfreundlichkeit.

Für das Testen von Codes gibt es in der Software-Entwicklung zwei Möglichkeiten: Das Black-Box Testing und das White-Box Testing. Beide Male wird eine bestimmte Code-Sequenz getestet, nur wissen die Software-Entwickler bei dem einen Test schon vor dem Test welches Ergebnis dabei herauskommt und bei dem anderen Test eben nicht. Letzterer nennt sich Black-Box-Test.

Doch wie behält man bei den ganzen Zahlen den Überblick über die Richtigkeit?

Wer einen neuen Code schreibt, kann sein Werk nicht auf einmal testen – Funktioniert der Code nämlich nicht, kann der Software-Entwickler oft nicht schnell herausfinden, wo sein Fehler steckt. Deshalb teilt er seinen Code also zuerst in kleine Units. Diese Units sind die kleinste zu testende Software-Einheit, deren Test vom Software-Entwicklungsteam erstellt wird. Diese Units kann man sehr schnell testen, da sie sehr klein sind.

Anschließend kombiniert man mehrere Units zu einer Gruppe und testet deren Zusammenspiel miteinander. Auch dieser Test wird von uns selbst erstellt. Dabei können eventuell vorkommende Fehler jedoch „maskiert“, also überlagert werden. Dann gibt es noch die sogenannten automatischen Klicktests: Hier wird das Klickverhalten des Users simuliert. Dieser Test ist oft sehr komplex und dauert verhältnismäßig lange.

Abschließend folgt der Akzeptanztest: Diesen Test führt nicht das Software-Entwicklungsteam, sondern der Kunde durch. Dadurch können die Software-Entwickler herausfinden, ob die Anforderungen aus Sicht der Kunden erfüllt werden oder nicht. Hier ist das Ergebnis besonders wichtig: Der Testumfang gilt als negativ, wenn beispielsweise unerwartete oder ungültige Eingaben gemacht wurden. Dies erhöht das Vertrauen in die Robustheit. Bei einem positiven Testergebnis werden hingegen nur erwartete Eingaben gemacht, was das Vertrauen in die Korrektheit erhöht.

Und was soll das mit den Affen?

Bei der Programmierung ist es extrem wichtig genaue Angaben zu machen, damit am Ende das richtige Ergebnis bei rumkommt. Denn wenn von ihm z.B. ein rotes Schloss gefordert wird (ohne weitere Angaben), denkt er entweder an ein riesiges Haus, oder an einen Sicherheitsmechanismus an Türen. Selbst die Farbe rot kann noch extrem verschieden verstanden werden. Deshalb ist es oberste Regel seine Wünsche konkret zu formulieren. Und genau dabei kommen die Affen ins Spiel: Man könnte auch Kleinkinder nennen, oder Laien, oder oder oder. Hauptsache ist, der Betroffene muss sich genauestens überlegen, was er haben will. Dies muss er so detailliert wie möglich erklären – als ob er es einem Affen verklickern wollen würde. Denn das Gegenüber hat nicht unbedingt den gleichen Fachverstand wie man selbst.

Klicken Sie auf den unteren Button, um den Inhalt von www.slideshare.net zu laden.

Inhalt laden

PGlmcmFtZSBzcmM9Ii8vd3d3LnNsaWRlc2hhcmUubmV0L3NsaWRlc2hvdy9lbWJlZF9jb2RlL2tleS8xeXlyd2VxMXlVNWhNUCIgd2lkdGg9IjU5NSIgaGVpZ2h0PSI0ODUiIGZyYW1lYm9yZGVyPSIwIiBtYXJnaW53aWR0aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIiBzY3JvbGxpbmc9Im5vIiBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCAjQ0NDOyBib3JkZXItd2lkdGg6MXB4OyBtYXJnaW4tYm90dG9tOjVweDsgbWF4LXdpZHRoOiAxMDAlOyIgYWxsb3dmdWxsc2NyZWVuPiA8L2lmcmFtZT4=