iTesting软件测试知识分享

白盒测试用例设计

白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。

这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。

常用的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。

白盒测试的测试方法有:

代码检查法
静态结构分析法
静态质量度量法
逻辑覆盖法
用例详解请长按下图二维码,在弹出菜单中选择“识别图中二维码” 阅读全文。

基本路径测试法
用例详解请长按下图二维码,在弹出菜单中选择“识别图中二维码” 阅读全文。

域测试
域测试是一种基于程序结构的测试方法,基于对程序输入空间(域)的分析,选择测试点进行测试。域测试主要测试如下错误:
1)域错误:程序的控制流存在错误,对于某一特定的输入可能执行的是一条错误路径,这种错误称为路径错误,也叫做域错误。
2)计算型错误:对于特定输入执行的路径正确,但赋值语句的错误导致输出结果错误,称为计算型错误。
3)丢失路径错误:由于程序中的某处少了一个判定谓词而引起的丢失路径错误。

域测试的缺点是:
1)为进行域测试对程序提出的限制过多.
2)当程序中存在很多路径时,所需的测试点很多.

符号测试
符号测试的基本思想是允许程序的输入不仅仅是具体的数值数据,而且包括符号值,符号值可以是基本的符号变量值,也可以是符号变量值的表达式。符号测试的优点如下:
1)符号测试执行的是代数运算,可以作为普通测试的扩充。
2)符号测试可以看做是程序测试和程序验证的一种折中办法。
3)符号测试程序中仅有有限的几条执行路径。
符号测试的缺点是:
1)分支问题不能控制。
2)二义性问题不能控制。
3)大程序问题不能控制。

Z路径覆盖
Z路径覆盖是路径覆盖的一个变体,路径覆盖是白盒测试最为典型的问题,着眼于路径分析的测试可称为路径测试。
完成路径测试的理想情况是做到路径覆盖,对于比较简单的小程序实现路径覆盖是可能做到的,但是如果程序中出现多个判断和多个循环,可能的路径数目将会急剧增长,达到天文数字,以至实现路径覆盖不可能做到。

为了解决这一问题,我们必须舍掉一些次要因素,对循环机制进行简化,从而极大地减少路径的数量,使得覆盖这些有限的路径成为可能。我们称简化循环意义下的路径覆盖为Z路径覆盖。

这里所说的对循环化简是指,限制循环的次数。无论循环的形式和实际执行循环体的次数多少,我们只考虑循环一次和零次两种情况。也即只考虑执行时进入循环体一次和跳过循环体这两种情况。

对于程序中的所有路径可以用路径树来表示。当得到某一程序的路径树后,从其根结点开始,一次遍历,再回到根结点时,把所经历的叶结点名排列起来,就得到一个路径。如果我们设法遍历了所有的叶结点,那就得到了所有的路径。

当得到所有的路径后,生成每个路径的测试用例,就可以做到Z路径覆盖测试。

程序变异。
程序变异方法与前面提到的结构测试和功能测试都不一样,它是一种错误驱动测试。
错误驱动测试方法,是指该方法是针对某类特定程序错误的。
错误驱动测试主要有两种,即程序强变异和程序弱变异。

白盒测试综合策略:
(1)在测试中,首先尽量使用测试工作进行静态结构分析
(2)采用先静态后动态的组合方式,先进行静态结构分析,代码检查和静态质量度量,然后现进行覆盖测试
(3)利用静态结构分析的结果,通过代码检查和动态测试的方法对结果进一步确认,使测试工作更为有效
(4)覆盖率测试是白盒测试的重点,使用基本路径测试达到语句覆盖标准;对于重点模块,应使用多种覆盖标准衡量代码的覆盖率
(5)不同测试阶段,侧重点不同
单元测试:以代码检查、逻辑覆盖
集成测试:增加静态结构分析、静态质量度量
系统测试:根据黑盒测试结果,采用白盒测试.

🐶 您的支持将鼓励我继续创作 🐶
-------------评论, 吐槽, 学习交流,请关注微信公众号 iTesting-------------
请关注微信公众号 iTesting wechat
扫码关注,跟作者互动