代码的覆盖深度:从覆盖源程序语句的详尽程度分析,逻辑覆盖标准包括以下不同的覆盖标准:语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖和修正判定条件覆盖 。
·语句覆盖 为了暴露程序中的错误,程序中的每条语句至少应该执行一次 。因此语句覆盖(Statement Coverage)的含义是:选择足够多的测试数据,使被测程序中每条语句至少执行一次 。语句覆盖是很弱的逻辑覆盖 。
·判定覆盖 比语句覆盖稍强的覆盖标准是判定覆盖(Decision Coverage) 。判定覆盖的含义是:设计足够的测试用例,使得程序中的每个判定至少都获得一次“真值”或“假值”,或者说使得程序中的每一个取“真”分支和取“假”分支至少经历一次,因此判定覆盖又称为分支覆盖 。
·条件覆盖 在设计程序中,一个判定语句是由多个条件组合而成的复合判定 。为了更彻底地实现逻辑覆盖,可以采用条件覆盖(Condition Coverage)的标准 。条件覆盖的含义是:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次 。
·多条件覆盖 多条件覆盖也称条件组合覆盖,它的含义是:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次 。显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的 。
·修正条件判定覆盖 修正条件判定覆盖是由欧美的航空/航天制造厂商和使用单位联合制定的“航空运输和装备系统软件认证标准”,目前在国外的国防、航空航天领域应用广泛 。这个覆盖度量需要足够的测试用例来确定各个条件能够影响到包含的判定的结果 。它要求满足两个条件:首先,每一个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有可能的结果值要至少转换一次;其次,程序的判定被分解为通过逻辑操作符(and、or)连接的布尔条件,每个条件对于判定的结果值是独立的 。
不同的测试工具对于代码的覆盖能力也是不同的,通常能够支持修正条件判定覆盖的测试工具价格是极其昂贵的 。
嵌入式软件的测试:对于嵌入式软件的测试,我们还需要一方面进一步考虑测试工具对于嵌入式操作系统的支持能力,例如DOS、Vxworks、Neculeus、Linux和Windows CE等;另一方面还需要考虑测试工具对于硬件平台的支持能力 , 包括是否支持所有64/32/16位CPU 和 MCU,是否可以支持 PCI/VME/CPCI 总线 。
测试的可视化:白盒测试是工作量巨大并且枯燥的工作,可视化的设计对于测试来说是十分重要的 。在选购白盒测试工具时,应当考虑该款测试工具的可视化是否良好,例如:测试过程中是否可以显示覆盖率的函数分布图和上升趋势图,是否使用不同的颜色区分已执行和未执行的代码段显示分配内存情况实时图表等,这些对于测试效率和测试质量的提高是具有很大的作用的 。
白盒测试之基本路径测试法
白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异 。
其中运用最为广泛的是基本路径测试法 。
基本路径测试法是在程序控制流图的基础上 , 通过分析控制构造的环路复杂性,导出基本可执行路径集合 , 从而设计测试用例的方法 。
设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次 。
在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例 。包括以下4个步骤和一个工具方法:
推荐阅读
- 开发手机小程序要学什么,开发手机小程序要学什么软件
- html的让文本加粗标签是什么,html加粗文字
- flutter滚动固定顶部,flutter 固定定位
- thinkphp开发教程,thinkphp6开发
- 微信附近小程序怎么推广,微信附近小程序怎么开店
- 电脑显示不出磁盘怎么办,电脑显示不出磁盘怎么办呢
- php发送数据端口 php接口转发
- 路由器的网络型号怎么看,怎么看路由器的网络名称
- 鸭店经营游戏,鸭店故事