Die Erkennung von Softwarefehlern ist eine der größten Herausforderungen in der Qualitätssicherung bei Softwareherstellern. Software-Fehler können vor oder nach ihrer Freigabe erkannt werden. Es gibt jedoch nur begrenzte Ressourcen für die Erkennung und Korrektur von Fehlern [1]. Fehler lassen sich im Allgemeinen in zwei Kategorien einteilen: Syntaxfehler und semantische Fehler. Da es viele leistungsfähige automatisierte Werkzeuge zur Erkennung von Syntaxfehlern gibt, ist es sehr unwahrscheinlich, dass solche Fehler zum Zeitpunkt der Freigabe erkannt werden. Semantische Fehler sind solche, die als Folge von anderen Problemen als Syntaxfehlern und greifbaren menschlichen Fehlern auftreten und in der Regel durch Inkonsistenzen in verschiedenen Teilen des Codes verursacht werden, die manchmal sehr ungreifbar sind. In solchen Fällen können solche Fehler nicht einfach durch ein Code-Review entdeckt werden. Dies gilt nicht für semantische Fehler, da viele Faktoren zum Auftreten solcherFehler beitragen können