Replies: 5 comments
-
It probably means that no mutations were done on the code covered by |
Beta Was this translation helpful? Give feedback.
-
Hi,
About the conclusions:
I agree with your general conclusion. Mutation score does not accurately reflects the quality of the test suite, even more using extreme mutation. It would be better to check the number of pseudo and partially tested methods. The report produced by PIT in I think we can get some valuable information by inspecting the report files produced by each experiment. |
Beta Was this translation helpful? Give feedback.
-
Thanks @vmassol for these experiments! Another experiment, which I believe can be very interesting to capture the impact of mutation testing would be as follows: keep the same tests, but remove the assertions. Also, these experiments focus on what the mutation analysis tells about the test cases, but it's also interesting to look at what the mutation analysis says about the code: we can also look at the live mutants. |
Beta Was this translation helpful? Give feedback.
-
Removing the |
Beta Was this translation helpful? Give feedback.
-
Indeed, if coverage decreases, we can say that the test quality decreases. |
Beta Was this translation helpful? Give feedback.
-
Hi,
I'm trying to understand how the mutation score evolves on the
xwiki-commons-context
module of XWiki. Right now this module has 91% of mutation score.I did the following:
@Test
). Score remained the same when I was expecting it to drop since the quality of this new test should be very low compared to the other ones. I think it's not included in the score because it's not actually calling any code.Result: the mutation score remained at 91%. Checking the report, I don't see ExecutionContextException which I was expecting to see since the tests is exercising it. Any idea?
Experiment C: I removed one test method from
ExecutionContextTest
, namelyinheritance()
and the score didn't change (it remained at 91%). That doesn't look good. Maybe it reduced the score by less than 1% and the rounding kept it at 91%? Is that a way to have more precise percentages?Experiment D: I removed 2 test methods from
ExecutionContextTest
, namelyinheritance()
andillegalInheritance()
and this time I got a score reduction:Mutation score of 84 is below threshold of 91
. What's interesting is that the jump was pretty high: from 91% to 84%, when in experiment C there was less than 1% reduction (if any).Experiment E: I removed only
illegalInheritance()
and I got the same score reduction from 91% to 84%. So this means thatinheritance()
doesn't contribute to the mutation score.My conclusions so far:
More general conclusion: It doesn't seem that the mutation score really reflects the quality of the tests.
WDYT? Any ideas?
thx
Beta Was this translation helpful? Give feedback.
All reactions