TESSY进行单元测试和组件测试时,可以通过结构覆盖结果判断测试数据实际执行了哪些代码路径。分支覆盖率不足往往说明某些判断结果、异常路径或边界场景还没有被现有测试触发,但也可能与条件编译、代码变体或不可达代码有关。围绕“TESSY怎么查看分支覆盖率,TESSY分支覆盖率不足时如何查找未覆盖路径”,重点是从覆盖率数字继续定位到具体分支,再判断真正缺少的是测试数据还是覆盖依据。
一、TESSY怎么查看分支覆盖率
TESSY可以在执行测试时对源码进行插桩,并在Coverage Viewer中汇总覆盖结果。分支覆盖通常以Branch C1 Coverage表示,可进一步结合流程图和源码高亮查看实际执行情况。Razorcat当前版本仍将Coverage Viewer、流程图和源码着色作为代码覆盖分析的重要组成部分。
1、确认已经启用分支覆盖
①打开目标Module和Test Object,进入当前测试对象的覆盖率配置。
②在覆盖类型中确认已经启用【Branch Coverage】或【Branch C1 Coverage】。
③如果项目按照ISO 26262等标准建立测试配置,检查当前标准对应的覆盖测量项是否满足项目要求。
④修改配置后重新执行测试,避免继续查看旧测试产生的覆盖结果。
2、在Coverage Viewer中查看结果
①完成测试执行后进入【Coverage Viewer】。
②选择需要分析的函数或Test Object,查看对应的分支覆盖统计。
③切换到【Branch C1 Coverage】,检查总分支数、已执行分支以及当前覆盖比例。
④同时查看【Flow Chart】和源码区域,确认哪些分支已经被执行。
⑤需要判断单个测试用例贡献时,只选择对应Test Case或Test Step,再观察覆盖结果变化。
TESSY的Coverage Viewer能够把覆盖率与源码、流程图结合显示,比单独查看百分比更适合定位具体缺口;当前版本还提供针对分支和条件的前后导航能力。
二、TESSY分支覆盖率不足时如何查找未覆盖路径
发现Branch Coverage没有达到预期后,不建议立即增加大量测试数据。更有效的处理方式是先找到没有执行的控制流边,再反推它依赖哪些输入、状态和外部函数返回值。
1、从未覆盖分支反推触发条件
①在【Coverage Viewer】中选择覆盖率不足的函数。
②在【Flow Chart】中找到未执行的分支,必要时使用分支导航逐项定位。
③沿控制流向前查找决定该路径的if、else、switch或循环条件。
④把相关输入参数、全局变量、静态状态以及外部函数返回值整理出来。
⑤根据条件表达式计算能够进入该分支的实际输入组合,再回到测试数据中核对是否已经存在。
例如某条路径要求“输入值超过上限并且状态为故障”,现有测试如果只分别满足其中一个条件,即使测试数量很多,也仍然无法进入目标路径。
2、检查边界值和Stub是否限制了路径
①对比较判断分别补充【小于边界】【等于边界】【大于边界】等能够改变判断结果的数据。
②路径依赖全局状态时,检查测试执行前的初始化值是否始终固定在同一状态。
③外部函数已经Stub时,检查Stub返回值是否一直相同,导致另一分支永远无法进入。
④异常路径依赖接口失败、超时或错误返回时,为对应Stub增加不同响应场景。
⑤新增数据后只运行目标测试,再确认未覆盖分支是否已经变为已执行。
这一步的重点是让测试数据直接服务于目标控制流,而不是通过增加随机组合碰运气提高覆盖率。
3、检查是否存在代码变体差异
①核对当前Module使用的宏定义、编译选项和预处理结果。
②检查目标路径是否受到#ifdef等条件编译控制。
③如果不同Variant生成了不同源码结构,不要把当前变体中不存在的路径当成普通未覆盖代码。
④多个变体都需要纳入覆盖评价时,再结合【Code Access】和【Hyper Coverage】检查不同变体中的代码覆盖情况。
TESSY的Code Access可以识别不同源码变体中的隐藏或未测试代码,Hyper Coverage则能够汇总不同测试层级和代码变体的覆盖结果。
三、未覆盖路径找出来后怎样判断是否必须补测
覆盖率分析做到这里还不能结束。某条路径没有执行,既可能是测试设计遗漏,也可能属于当前软件配置下无法到达的防御性代码。两种情况需要形成完全不同的处理结论。
1、判断路径是否具有可执行条件
①列出进入未覆盖分支所需的全部前置条件。
②正常接口输入能够满足这些条件时,应补充测试用例并验证对应输出。
③如果只有破坏函数前置条件才能进入,检查该路径是否属于防御性保护。
④如果当前代码变体从逻辑上无法到达,应保留分析依据,不要构造失真的测试条件强行提高覆盖率。
2、对确实无法覆盖的代码建立评审依据
①在源码视图中定位确认不可达的代码区域。
②使用【Coverage Review】记录不能执行的具体原因。
③将原因与软件设计、编译配置或防御性代码设计对应起来。
④在后续源码或Variant发生变化时重新检查原结论,避免旧的不可达判断长期沿用。
TESSY当前的Coverage Review专门用于处理未到达源码,可以记录预定义或自定义说明;官方给出的典型情况包括隐藏的调试代码和不可达的default分支,相关评审还会进入测试总结结果。
总结
TESSY怎么查看分支覆盖率,TESSY分支覆盖率不足时如何查找未覆盖路径,真正关注的并不是最终百分比本身,而是测试是否充分验证了代码中的不同控制流行为。未覆盖分支能够暴露边界条件、异常场景、外部依赖模拟和代码变体中的测试缺口;对于客观不可达的代码,则需要形成能够复核的分析依据。把覆盖结果与测试设计和需求验证结合起来,才能让分支覆盖真正反映测试完整性。希望本文对大家开展TESSY结构覆盖分析有所帮助,如需进一步了解TESSY分支覆盖率查看与未覆盖路径分析方法,欢迎联系咨询。