测试已经运行,覆盖率却仍显示未达标,先别急着增加用例。Cantata的覆盖目标由覆盖规则集确定;规则集选错、目标数值填错,或者查看结果时筛选了错误的构建变体,都可能让结果与预期不一致。下面按设置、核对、调整的顺序操作。
一、Cantata怎么设置测试覆盖目标
设置前先确定项目要求检查哪种指标。语句覆盖、判定覆盖和MC/DC覆盖对应不同的代码结构,不能只看一个总百分比来判断是否达标。
1、选定被测代码和覆盖指标
①在Cantata项目中打开【Test Script Wizard】,选择要测试的源文件或函数。
②查看项目测试要求,确定需要检查语句、判定还是MC/DC覆盖。
③在向导的【Coverage Rule Set】选项中,选择与要求对应的规则集;确认所选规则集包含需要检查的指标。
2、核对规则集中的目标值
①打开生成的测试脚本,找到rule_set函数。
②逐项查看ANALYSIS_CHECK中的覆盖指标和目标数值。
③如项目要求的目标值与脚本不符,按要求修改对应数值并保存。修改后重新构建、运行测试,查看新的检查结果。
3、运行测试并查看结果
①构建并运行测试脚本,确认测试用例执行完成。
②打开【Coverage Viewer】,选择本次测试产生的覆盖数据。
③逐项查看实际覆盖率和目标检查结果,记录未达标的文件与指标。
二、Cantata覆盖目标配置不正确如何调整
调整时先分清两件事:目标是否设错,以及测试是否真的没有达到目标。若指标和目标值符合项目要求,就应查看未覆盖的代码,而不是直接调低数值。
1、指标选错时重新选择规则集
①返回测试脚本的【Coverage Rule Set】设置,核对当前规则集。
②选择包含所需覆盖指标的规则集,重新生成或更新测试脚本。
③打开rule_set函数,再核对一次生成的覆盖检查项。
2、目标百分比填错时修正数值
①对照项目要求,找到rule_set中对应的ANALYSIS_CHECK。
②修改该检查项的目标数值,保存测试脚本。
③重新构建并运行测试,以新结果核对目标是否已生效。后续若重新生成脚本,也要再次检查该数值。
3、没有覆盖数据时检查测试构建
①打开测试运行记录,确认测试脚本已成功构建并执行。
②查看运行输出中是否出现覆盖插桩被禁用、插桩被禁用等提示。
③检查本次构建的覆盖设置,启用所需插桩后重新构建、运行测试。官方示例脚本会对插桩被禁用的情况给出提示。
4、结果与预期不符时核对筛选范围
①在【Coverage Viewer】中检查所选项目、测试用例和覆盖数据文件。
②检查【Build Variants】筛选条件,切换到要验收的构建变体。
③检查【Coverage Metrics】筛选条件,重新查看对应指标的结果。不同构建变体的代码执行情况可以分别查看,也可以查看汇总数据。
三、目标正确但覆盖率仍未达标怎么办
当目标配置和结果范围都核对无误,下一步是找到缺口。Cantata可以从项目结果逐层查看到具体代码结构,适合按未覆盖位置补充测试。
1、定位未覆盖的代码
①在【Coverage Viewer】中展开未达标的项目、文件和函数。
②查看未覆盖的语句或判定分支,记下对应的输入条件。
③回到测试脚本,为这些条件补充用例并重新运行。
2、检查自动生成用例的缺口
①使用AutoTest时,打开【AutoTest Generation Report】。
②查看未生成用例或预计覆盖不足的提示,定位相应代码路径。
③调整测试输入或补充手工用例,再运行测试并核对实际覆盖结果。
总结
覆盖率数字只有和正确的指标、目标值及构建范围放在一起,才有判断意义。遇到未达标结果,沿着规则集、测试运行记录和未覆盖代码逐项查,比反复改百分比更容易找到问题。希望这篇文章能帮助大家理清Cantata覆盖目标的设置思路;如有Cantata相关需求,欢迎联系我们咨询。