做单元测试时,很多人把TESSY的结果判定等同于通过或失败,但在TESSY里,失败既可能来自期望值与实际值不一致,也可能来自覆盖率未达到最低门槛。要把“TESSY测试结果怎么判定TESSY测试结果失败时怎么定位差异”这两件事做好,你需要先把判定口径固定,再用报告与对比视图把差异落到具体变量与具体步骤上。
一、TESSY测试结果怎么判定
测试跑完后,先别急着盯着某一个红叉就下结论,正确顺序是先看测试对象级别的状态,再下钻到测试用例与测试步骤。这样你能快速区分是数据不一致导致失败,还是覆盖率门槛导致失败,再决定下一步该查哪里。
1、先在Test Project view看测试对象级别的结果状态。
在Overview视图的Test Project view里,失败状态可能表示实际值与期望值不一致,或覆盖率没有达到最低覆盖率要求;通过状态表示测试结果与覆盖率都正常。
2、把失败类型分成结果失败与覆盖率失败两类先做归因。
如果看到覆盖率条里有明显红色缺口,通常是在提示未达到要求的最低覆盖率,红色占比越大表示缺口越多;这种情况即使输出值都匹配,也可能被判为失败。
3、用Test Details Report把判定落到测试用例与测试步骤。
在Test Project view里点击【Generate Report】图标旁的下拉箭头,选择【Test Details Report】生成报告;该报告会列出测试用例的结果信息,并基于每次运行生成的XML结果文件进行汇总。
4、在报告里用绿勾与红叉确认每一步是否真的失败。
Test Details类报告会在测试用例与测试步骤层面标识执行是否成功,绿勾代表成功执行,红叉代表失败;你要以“失败发生在哪个测试步骤”为准,而不是只看总览的红色状态。
5、确认结果判定遵循你设置的evaluation mode,而不是肉眼直觉。
TESSY会按evaluation mode把实际值与期望值进行比较,结果会是failed或passed;在TDE里你可以点进对应单元格,通过内联编辑输入evaluation mode,默认是==,也支持!=、>、<、>=等。
6、把最低覆盖率门槛当作判定条件之一来审视。
在属性设置里,默认最低覆盖率通常是100;如果测试对象里存在不可达分支或条件,你可以针对单个测试对象降低最低覆盖率,以便覆盖率结果能够按实际情况判定。
二、TESSY测试结果失败时怎么定位差异
定位差异的核心是两步:先确认失败是“值不一致”还是“覆盖率不达标”,再用报告与对比工具把差异收敛到具体变量、具体步骤、具体一次运行。你只要把路径跑通一次,后续类似问题基本都能按同一套路快速定位。
1、先用状态定义把失败原因锁定在两条主线。
失败可能来自实际值与期望值不一致,也可能来自覆盖率未达到最低覆盖率;优先把这两种情况分开处理,避免一边补期望值一边又在追覆盖率门槛。
2、如果是值不一致,先从报告直接跳到失败步骤看差异点。
打开测试报告后,在右上角统计区能看到成功与失败的数量;要查看失败步骤,可以点击失败测试步骤编号让报告直接跳转到该步骤位置,再围绕该步骤的输入、期望、实际值去核对。
3、回到TDE复核期望值与evaluation mode是否写对。
在TDE里找到对应测试步骤的变量行,先看期望值是否与需求一致,再看evaluation mode是否符合判定意图,例如你需要范围判定却误用==,就会导致看似小误差被直接判失败。
4、如果是覆盖率失败,打开Coverage Viewer视图定位未覆盖位置。
测试执行后,覆盖率结果可以在Coverage Viewer视图简称CV中复核;同时你可以通过Test Project view里【Execute Test】图标下拉选择【Edit Test Execution Settings】来确认本次运行选择了哪些覆盖率测量与插桩方式,避免“看错了覆盖率口径”。
5、需要定位两次运行的差异时,用History Compare与Diff Viewer做对比。
在测试对象上点右键,选择【History】→【Compare…】,在Compare对话框里选一个历史结果与当前结果对比,或选两个历史结果互比,然后点【Compare】打开Diff Viewer;Diff Viewer会在Inputs与Results、Call Trace、Properties等标签页中把差异用红色标记出来,并支持跳到下一处差异。
6、如果History里没有可对比记录,先把历史结果采集开关打开再复现一次。
默认情况下TESSY会自动记录每次执行的测试结果到模块的.history目录;你也可以在【Options】→【Test Execution】里用【Create History Files】来启用或禁用该能力,然后重新执行一次测试,保证后续可以对比与回溯。
三、TESSY测试结果判定口径不一致怎么统一
很多团队出现“同样的代码有人判通过有人判失败”,本质不是谁看错了,而是执行设置、判定模式、覆盖率门槛与对比基线不一致。把口径统一到可复现的配置与可追溯的历史结果上,差异定位就会从争论变成证据。
1、统一测试执行入口与Test Run生成方式,避免混跑旧产物。
在Test Project view里点击【Execute Test】图标旁下拉,进入【Edit Test Execution Settings…】,明确使用【Run】还是【Create New Test Run】,并固定本次执行采用的插桩与运行选项,再点击【Execute】执行。
2、统一覆盖率测量口径与最低覆盖率门槛,先定义再评判。
先约定团队使用的覆盖率类型与插桩范围,再确认最低覆盖率是100还是允许按测试对象下调;对不可达分支要明确处理方式,否则同一份结果会因为门槛不同而出现不同结论。
3、统一evaluation mode的使用规则,避免同一变量不同判定方式。
规定哪些变量必须用==,哪些允许用区间或不等式判定,并要求在TDE里通过单元格内联编辑写清evaluation mode;这样失败时你看到的红叉才有一致的判定语义。
4、统一差异复核的证据链,固定用报告与Diff Viewer收敛问题。
约定失败必出一份Test Details Report定位到测试步骤,同时对回归问题必须用【History】→【Compare…】生成Diff Viewer对比截图或导出证据;证据链固定后,复盘与复现效率会明显提升。
总结
围绕“TESSY测试结果怎么判定TESSY测试结果失败时怎么定位差异”,你要先用Test Project view把失败归因到值不一致或覆盖率门槛,再用【Generate Report】生成Test Details Report下钻到失败步骤,必要时用【History】→【Compare…】与Diff Viewer把两次运行差异定位到具体变量与具体步骤。把evaluation mode、最低覆盖率、执行设置与历史采集口径统一后,测试结果的判定会更稳定,失败定位也更容易形成可复核的证据闭环。