提问人:Jack Johns 提问时间:2/13/2023 最后编辑:Mark RotteveelJack Johns 更新时间:2/14/2023 访问量:54
从 XML 输出中计算测试强度,“检测到”代表什么?
Calculating Test Strength from the XML output, what does 'detected' represent?
问:
我正在尝试根据 PIT 的 XML 输出中的数据计算 HTML 输出生成的测试强度,但是我计算的数字与 HTML 报告中的测试强度不一致。
我使用等式 ,其中:(mutationsKilled / (totalMutations - mutationsNotCovered) * 100)
mutationsKilled
是通过计算条目生成的,其中status = "KILLED"
totalMutations
是通过计算条目总数生成的mutationsNotCovered
是通过计算条目生成的,其中detected = "false"
但是,我怀疑最后一个可能是问题所在,因为在回顾原始 XML 输出时,我发现检测到的指标可能不一定表明突变是否被覆盖。
有没有一种久经考验的方法?还值得一提的是,我正在运行 PIT 1.9.4 以及增量分析模式,如果这与问题有任何关系。
答:
0赞
Jack Johns
2/13/2023
#1
在进行实验并故意降低测试覆盖率以产生未覆盖的突变体后,我发现存在一种可能的状态。通过调整上述等式,通过对 的条目进行计数来生成正确的统计数据。NO_COVERAGE
mutationsNotCovered
status = "NO_COVERAGE"
评论
0赞
henry
2/14/2023
这仍然是不正确的,因为您没有考虑TIMED_OUT等状态。Pitest 将为它认为测试可以检测到的所有突变体设置 detected = 'true'。我建议用它来代替检查状态=“KILLED”
0赞
Jack Johns
2/14/2023
@henry澄清一下是有道理的:mutationsKilled 使用 detected='true',totalMutations 计算文件中的所有突变,mutationsNotCovered 使用 status = 'NO_COVERAGE'。使用上述公式和这些定义将产生测试强度。感谢您的帮助。
评论