仅为测量而运行全部测试
插桩代码只能报告实际执行到的部分,因此,要获得指标就必须执行整个测试套件——即使您只关注一个函数。
在后台自动更新,无需单独执行测量流程。
基于插桩的覆盖率测量会给工作流程的每个环节增加负担。您需要的指标绝非一键可得——必须以反复重新运行测试为代价。
插桩代码只能报告实际执行到的部分,因此,要获得指标就必须执行整个测试套件——即使您只关注一个函数。
每次修改测试都会使汇总结果失效。要再次信任该指标,就必须重新执行整个测试套件——每次迭代都要重复付出这一成本。
插桩会改变二进制文件,因此在插桩代码上得到的结果不能计作交付代码的结果。要证明未插桩生产代码的覆盖率,就必须再次执行全部测试——工作量翻倍。
每当创建、修改或删除测试用例时,BTC TestStack 都会在后台计算并更新覆盖率。覆盖率按子函数和子系统计算,因此您关注的任意子集均可一键查看覆盖率——无需重新运行,也无需单独执行报告步骤。
覆盖率在后台更新,无需插桩步骤,也无需专门执行测量流程。
结果可细化到各个子函数和子系统,而不只是整个构建的一项汇总指标。
选择一个范围,即可立即查看其覆盖率。由于数据已经存在,筛选不会触发再次执行。
对于每个覆盖目标,您会立即看到覆盖它的测试用例列表——无需手动交叉引用来确定哪个测试达到了哪个目标。
结构指标、稳健性、值域检查和自定义目标——各类覆盖率并列呈现,并始终保持最新。
统一计算功能安全证据所需的全套结构指标。
各类运行时错误都被视为覆盖目标:BTC TestStack 要么证明代码能够抵御这些错误,要么生成可触发故障的测试。
定义或导入每个接口对象的有效值和值域,BTC TestStack 随后会直接跟踪这些值域的覆盖率。
借助可访问所有接口变量的编辑器,您可以将任意目标表示为布尔表达式或数学表达式,然后测量测试是否达到该目标。
当覆盖率尚不完整时,BTC TestStack 会帮助您补齐缺口。模型检验算法无需猜测输入,而是推导出达到 100% 结构覆盖率所需的最小、最短测试用例集。
它可直接访问输入和标定值;如果某个目标无法达到,则会返回该目标不可达的数学证明,使您可以将其归为死代码,而无需继续追查。
随机工具猜测。 模型检验证明。
后台更新使指标始终保持最新——无需再记得单独执行测量流程。
提供每个子函数和每个子系统的结果——任意子集的覆盖率均可一键查看。
结构覆盖、稳健性、值域和用户自定义目标——全部汇集在一份报告中,无需使用四种工具。
无法达到的目标会经证明为不可达,并标记为死代码——无需再徒劳追查。