在TESSY里看代码覆盖率,先要把两件事分开。一件事是覆盖率怎么跑出来,另一件事是这次到底选哪种覆盖准则。Razorcat官方手册写得很清楚,覆盖率不是默认一直开着的,而是在执行测试时通过instrumentation选项启用;启用后,TESSY会为选定的覆盖类型插装代码,再把结果放到Coverage Viewer、代码高亮和各类coverage report里展示。也就是说,覆盖率统计的起点不是报表,而是测试执行设置。
一、TESSY代码覆盖率怎么统计
先把覆盖率测量打开,再去看结果,这条路径最稳。官方手册的Quickstart里已经给出标准步骤,也就是在执行测试前进入执行设置,勾选要做的覆盖率类型,然后重新跑一次测试。
1、先进入测试执行设置
在Test Project视图里,点击执行测试按钮旁边的下拉入口,进入Edit Test Execution Settings。官方手册说明,覆盖率测量是在这里选的,不是测试跑完以后再补算。
2、在instrumentation里勾选覆盖类型
如果要做覆盖率统计,就把Use preselected coverage取消,再手动勾选需要的覆盖准则。官方手册示例里列出了Branch Coverage C1、MC/DC等项目,说明覆盖率测量本身是按类型单独选择的。
3、执行后到Coverage Viewer看结果
测试跑完以后,切到Coverage Viewer。官方手册说明,CV会显示上一次执行得到的覆盖率结果,而且会把test object以及其调用函数的覆盖情况一起展示出来。
4、结果不只看百分比
官方说明里提到,覆盖率结果除了百分比,还会在彩色代码视图和流程图里标出覆盖状态,覆盖到的位置会高亮,未完全覆盖的位置会保留未覆盖提示。所以统计覆盖率时,不要只盯总数值,还要回头看哪些代码块没走到。
二、TESSY语句覆盖率与分支覆盖率怎么选
语句覆盖率和分支覆盖率不是谁一定替代谁,而是严格程度不同。Razorcat官方产品页和手册都把它们分开列为Statement Coverage C0和Branch Coverage C1,这本身就说明二者的目标不一样。
1、先理解语句覆盖率看什么
C0关注的是语句有没有被执行到。官方coverage report说明里写得很直接,statement coverage report会统计语句总数、已到达语句数和总体语句覆盖率,所以它更适合先看代码有没有大面积没跑到。
2、再理解分支覆盖率看什么
C1关注的是分支有没有走到。官方coverage report里同样明确写到,branch coverage report会统计分支总数、已到达分支数和总体分支覆盖率。也就是说,哪怕一条if语句已经执行过,只走了true没走false,C0可能已经满足,但C1仍然不够。
3、一般项目先用C0找盲区
如果你当前先想确认基本测试有没有把主流程跑起来,C0更适合作为起步,因为它能很快把没执行到的代码块暴露出来,成本也更低。这一点虽然不是手册里的口号式结论,但它直接符合C0只看语句执行的定义。
4、安全要求高时优先补到C1
如果项目更关心控制流是否真正被验证过,C1会比C0更有约束力。Razorcat的公开资料里长期把C1单独列成重要覆盖类型,早期认证资料也明确把C1和MC/DC放在安全相关开发可用特性里,这说明分支覆盖在严肃测试场景里更常作为基本要求。
三、TESSY覆盖率结果怎么看更合适
TESSY覆盖率结果怎么看更合适,关键不是只看最后一个百分比,而是把总览、代码位置和报告三层一起用。官方手册说明,Coverage Viewer可以给出概览,代码视图能高亮具体未覆盖位置,Coverage Report则会把统计信息和源码一起列出来。把这三层合起来看,才更容易知道是测试数量不够,还是测试路径没设计对。
1、先看Test Project里的累计结果
官方手册提到,测试运行后,Test Project视图会新增对应覆盖列,而且模块、文件夹和测试集合还能看到累计结果。这个视角适合先判断问题是集中在单个函数,还是整组对象都偏低。
2、再看Coverage Viewer的函数明细
Coverage Viewer里的Called Functions view会把测试对象本身以及它调用到的函数一起列出来。这个视图特别适合处理“主函数覆盖率不低,但下层被调函数基本没测到”的情况。
3、最后用Coverage Report收口
官方说明里写到,最多可以有五类coverage reports,而且C0、C1各有自己的汇总报告。真正做评审或留测试证据时,report比单纯截图更稳,因为里面会同时给出统计项和源码上下文。
总结
TESSY代码覆盖率怎么统计,核心就是先在执行设置里启用对应instrumentation,再跑测试,最后到Coverage Viewer和coverage report里看结果。TESSY语句覆盖率与分支覆盖率怎么选,简单说,C0更适合先确认代码有没有被执行到,C1更适合进一步确认控制分支有没有真正跑全。实际项目里,先用C0找盲区,再用C1补关键判断路径,通常会比只盯一个百分比更有效。