I am currently trying to extract mutations generated from tools' reports, and I'm currently struggling with Pitest.
Given an XML Pitest report, it has a mutation list; each mutation element has n attributes, including index and block, which I cannot understand what they represent.
Excluding them, I have a problem of mutation overlapping, i.e. two different mutations have the same parameters; including them, I don't have this problem.
What does they represent?
This is an example of a report with two colliding mutations:
<?xml version="1.0" encoding="UTF-8"?>
<mutations>
<mutation detected='false' status='SURVIVED' numberOfTestsRun='2'><sourceFile>HelpFormatter.java</sourceFile><mutatedClass>org.apache.commons.cli.HelpFormatter</mutatedClass><mutatedMethod>renderOptions</mutatedMethod><methodDescription>(Ljava/lang/StringBuffer;ILorg/apache/commons/cli/Options;II)Ljava/lang/StringBuffer;</methodDescription><lineNumber>786</lineNumber><mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_ELSE</mutator><index>122</index><block>37</block><killingTest/><description>removed conditional - replaced equality check with false</description></mutation>
<mutation detected='false' status='SURVIVED' numberOfTestsRun='1'><sourceFile>HelpFormatter.java</sourceFile><mutatedClass>org.apache.commons.cli.HelpFormatter</mutatedClass><mutatedMethod>renderOptions</mutatedMethod><methodDescription>(Ljava/lang/StringBuffer;ILorg/apache/commons/cli/Options;II)Ljava/lang/StringBuffer;</methodDescription><lineNumber>786</lineNumber><mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_ELSE</mutator><index>125</index><block>39</block><killingTest/><description>removed conditional - replaced equality check with false</description></mutation>
</mutations>
And this is the Java line that caused these two mutations:
if (argName != null && argName.length() == 0)