Was mutation-testing-frameworks existieren für C/C++?
Mutation testing wurde es für eine Weile jetzt, und es scheint, es gibt mindestens ein oder zwei kommerzielle mutation testing-frameworks für C/C++. Haben Sie Sie genutzt? Was sind Eure Erfahrungen? Gibt es open source-alternativen?
- Gute Frage, da ich nicht weiß about mutation-testing. Tolle Idee ^^
- Siehe stackoverflow.com/questions/246495/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine kurze Suche ergab:
http://www.itregister.com.au/products/plextest_detail.htm
http://www.parasoft.com/jsp/products/insure.jsp;jsessionid=baacpvbaDywLID?itemId=63
http://www.dcs.kcl.ac.uk/pg/jiayue/milu/
Mit dieser sagte, müssen Sie erkennen, dass die mutation Test ist nicht besonders hilfreich (zumindest von einigen Sachen, die ich schon vorher gelesen). Es ist ein Interessantes Werkzeug, wenn konfrontiert mit der harten (metaphorisch gesprochen) behauptet und dafür, dass Daten, die Anforderungen sind beachtet (beim Umgang mit
if and only if
Situationen).Meiner Meinung nach, gibt es viel mehr etablierten Möglichkeiten der Analyse der Robustheit von code.
Beachten Sie, dass Parasoft ' s tool generieren, die äquivalente Mutationen. Dass Echos beschriebene problem auf Wikipedia-Artikel über Mutation Test - ist es schwer zu unterscheiden zwischen gleichwertigen und nicht gleichwertigen Mutationen, so dass Sie beschlossen zu bleiben, entspricht.
Versuchte ich ein weiteres Interessantes tool, das automatisch erkennen von Invarianten im instrumentierten C-und C++ - code - man nennt es "Daikon". Im wesentlichen ist dabei dasselbe wie das Werkzeug erzeugt äquivalente Mutationen, sondern der Identifizierung von problematischen code gibt es Ihnen eine Reihe von Invarianten wie "A == B + 1". Ich denke, Invarianten sind nützlich, weil wenn man sich ansieht, entdeckt Invarianten es gibt Ihnen die Sicherheit, dass Ihr code korrekt ist, wenn unveränderlichen Sinn machen, und dann können Sie konvertieren Invarianten in behauptet und das gibt Ihnen mehr Vertrauen, wenn Sie den code ändern.
Ist eine geradlinig-python-Skript für mutierend c-Programmen ist abrufbar unter:
https://github.com/parunbabu/mutate.py
der Autor sagt, es funktioniert besser, wenn der getestete code ist de-kommentiert und eingerückt.
und es ist ebenfalls kostenlos und opensource ... ich denke, das ist, was Sie suchen.
Ich bin derzeit mit:
Das tool hat mir geholfen, setzen einige Testfälle, die nicht töten, die Mutanten. In einer von Ihnen, die Behauptung hatte, wurde auskommentiert.
Ich entdeckte auch, dass einige Testfälle, die zu töten die gleichen Mutanten. Dies war besonders Häufig bei der Verwendung von parametrisierten Tests.
Den bestehenden Rahmen, wo viel zu zeitaufwendig zum einrichten und verwenden, so habe ich meine eigene Implementierung, die eine schnelle und einfache Lösung, die funktionieren sollte auf jeder Maschine. Es gibt Programme für MacOSX, Windows und RaspberryPi (Linux):
https://github.com/RagnarDa/dumbmutate
Hoffe, es hilft jemand!