Rette die Mutanten!

Hier eine Durchsage vom SW-Begeisterten: Rette die Mutanten! Halt worum geht es, habe ich zu viel getrunken? Oder das Falsche. Nö, hab ich nicht. Aber ich habe mir neulich das Thema Mutant Testing angeschaut. Das Konzept ist hier auf Wikipedia erklärt: Wikipedia.

Ausprobiert habe ich diese Art des Testens mit rspec und Ruby on Rails. Ich habe ein paar Mutanten gefunden, die überlebt haben. Deutlich weniger als ich es erst vermutet hatte, aber ein paar haben überlebt. Cool fand ich den Hinweis in der Konsole „Kill all mutants“.

Nein, ich will nicht alle Mutanten killen

Noch nicht dachte ich. Soll ich das wirklich tun? Um ein höhere Testabdeckung zu haben. Ja, das ist ein guter Grund, mach ich aber erst einmal trotzdem noch nicht. Vorher will ich mir die Mutanten nochmal genau anschauen. Vielleicht wollen sie mir auch noch mehr über meinen Quellcode verraten als ich das auf den ersten Blick erwarte. Wenn ich ganz genau zuhöre sagen sie: Hallo, hier ist Code, der durch ganz einfach Änderungen die komplette Funktionalität ändert. Jetzt kann man auch fragen, warum sind diese Operationen überhaupt austauschbar? Die Operationen, die für Objekttypen möglich sind hängen vom Typ ab. Wenn man mit Abstraktion arbeitet, kann man die Anzahl an möglichen Operationen stärker einschränken. Dadurch gibt es weniger Mutanten und weniger Fehler. Also mein Learning hier war: Wenn möglich, nutze Objekte anstatt native Typen für Operationen, damit die Fehlerquelle per Design reduziert ist. Ich hab noch zwei Videos für euch ausgesucht die zu dem Thema passen. Viel Spaß beim Schauen.