Zuhause Entwicklung Was ist Mutationstest? - Definition aus techopedia

Was ist Mutationstest? - Definition aus techopedia

Inhaltsverzeichnis:

Anonim

Definition - Was bedeutet Mutationstest?

Mutationstests sind eine Methode zum Testen von Software, bei der ein Programm oder Quellcode absichtlich manipuliert wird, gefolgt von einer Reihe von Tests mit dem mutierten Code. Die in den Quellcode eingeführten Mutationen sollen allgemeine Programmierfehler imitieren. Eine gute Unit-Testsuite erkennt normalerweise die Programmmutationen und schlägt automatisch fehl.


Mutationstests werden auf vielen verschiedenen Plattformen verwendet, einschließlich Java, C ++, C # und Ruby.

Techopedia erklärt Mutationstests

Mutationstests sind eine einfache, aber geniale Methode, um die Korrektheit des Quellcodes und den Testprozess zu überprüfen. Das Konzept wurde erstmals 1971 von Richard Lipton entwickelt und ist seitdem auf reges Interesse gestoßen.


Der Arbeitsmechanismus von Mutationstests ist einfach und unkompliziert. Es wird ein Quelltext ausgewählt, der alle Komponententests umfasst. Nachdem alle positiven Tests für einen bestimmten Quellcode überprüft wurden, wird eine Mutation in das Programm eingefügt.


Der Grad der Mutation, der auf einen bestimmten Codeblock angewendet wird, kann variieren. Eine übliche Implementierung von Mutationstests umfasst das Ersetzen eines logischen Operators durch dessen Inverse. Beispielsweise wird der Operator "! =" Anstelle von "= =" verwendet. In einigen Fällen müssen bei einer Mutation die Zeilen neu angeordnet werden, um die Ausführungsreihenfolge zu ändern oder sogar einige Codezeilen zu löschen. Komplexe Mutationstests können zu Kompilierungsfehlern führen.


Sobald ein Programm geändert wurde, wird eine Reihe von Komponententests für den mutierten Code ausgeführt. Der mutierte Code besteht den Komponententest je nach Testqualität oder besteht ihn nicht. Ein gut geschriebener Komponententest muss mutierte Codefehler erkennen, die zum Fehlschlagen führen. Ein Komponententest, bei dem Codefehler nicht erkannt werden, erfordert möglicherweise ein Umschreiben.


Mutationstests bieten folgende Vorteile:

  • Programmcode-Fehlererkennung
  • Effektive Testfallentwicklung
  • Erkennung von Lücken in Testdaten
  • Verbesserte Software-Programmqualität
  • Beseitigung von Code-Mehrdeutigkeiten

Zu den Nachteilen von Mutationstests gehören:

  • Schwierige Implementierung komplexer Mutationen
  • Teuer und zeitraubend
  • Benötigt erfahrene Tester mit Programmierkenntnissen

Was ist Mutationstest? - Definition aus techopedia