{"id":1376,"date":"2020-08-27T20:22:03","date_gmt":"2020-08-27T20:22:03","guid":{"rendered":"https:\/\/jan.schnasse.org\/blog\/?p=1376"},"modified":"2026-09-28T11:38:33","modified_gmt":"2026-09-28T09:38:33","slug":"mutation-testing-with-pitest","status":"publish","type":"post","link":"https:\/\/jan.schnasse.org\/blog\/2020\/08\/27\/mutation-testing-with-pitest\/","title":{"rendered":"Mutation Testing with Pitest"},"content":{"rendered":"<p><a href=\"http:\/\/pitest.org\/\">http:\/\/pitest.org\/<\/a><\/p>\n<p>Beim Mutation-Testing wird die G\u00fcte automatisierter Tests bewertet. Das klassische Mittel zur Bewertung ist die Codecoverage, d.h. eine Analyse wieviele Codezeilen durch automatisierte Tests aufgerufen werden. Dies liefert jedoch keine Aussage dar\u00fcber, wie gut der Code tats\u00e4chlich gepr\u00fcft wurde. Hier setzt Mutation-Testing an. Hierf\u00fcr werden automatisiert <a href=\"http:\/\/pitest.org\/quickstart\/mutators\/\">kleine \u00c4nderungen am Code<\/a> vorgenommen und es wird \u00fcberpr\u00fcft, ob die automatisierten Tests anschlie\u00dfend fehlschlagen. Je sensibler die Tests auf \u00c4nderungen reagieren, desto besser funktioniert die \u00dcberpr\u00fcfung &#8211; so die Faustregel. Vorallem liefert das Mutation-Testing aber Hinweise, zu welchen Aspekten noch Assertions (Zusicherungen\/\u00dcberpr\u00fcfungen) fehlen k\u00f6nnten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>http:\/\/pitest.org\/ Beim Mutation-Testing wird die G\u00fcte automatisierter Tests bewertet. Das klassische Mittel zur Bewertung ist die Codecoverage, d.h. eine Analyse wieviele Codezeilen durch automatisierte Tests aufgerufen werden. Dies liefert jedoch keine Aussage dar\u00fcber, wie gut der Code tats\u00e4chlich gepr\u00fcft wurde. Hier setzt Mutation-Testing an. Hierf\u00fcr werden automatisiert kleine \u00c4nderungen am Code vorgenommen und es wird [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-1376","post","type-post","status-publish","format-standard","hentry","category-bookmarks"],"_links":{"self":[{"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/posts\/1376","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/comments?post=1376"}],"version-history":[{"count":1,"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/posts\/1376\/revisions"}],"predecessor-version":[{"id":4116,"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/posts\/1376\/revisions\/4116"}],"wp:attachment":[{"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/media?parent=1376"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/categories?post=1376"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jan.schnasse.org\/blog\/wp-json\/wp\/v2\/tags?post=1376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}