- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 1
白盒测试方法
语句覆盖
语句覆盖就是设计若干个测试用例, 运行所测程序,使得每一可执行语句至少执行一次. 对上面例子, 正好所有的可执行语句都在路径L1上, 所以选择路径L1来设计测试用例,就可覆盖所有的可执行语句.
测试用例的设计格式如下:
[输入(A,B,X), 预期的输出(A,B,X)]
可设计出满足语句覆盖的测试用例是:
[(2,0,4), (2,0,3)], 覆盖ace [L1]
从每个执行语句都得到执行这一点来看, 语句覆盖的方法似乎能够比较全面地经验每个可执行语句. 但实际上并非如此.
不足:假如该程序段中的两个逻辑运算有问题, 例如, 第一个判断中的逻辑运算符∧错写成了∨, 或者第二个判断中的逻辑运算符∨错写成了∧, 利用上面的测试用例, 仍然可覆盖所有4个可执行语句. 这说明虽然做到了语句覆盖测试, 但可能发现不了判断中逻辑运算中出现的错误.
语句覆盖是最弱的逻辑覆盖准则.
判定覆盖
判定覆盖就是设计若干个测试用例, 运行所测程序, 使得程序中每个判断的取TURE分支和取FALSE分支至少经历一次. 判断覆盖又称分支覆盖.
根据定义,可分别选择路径L1 和L2 或路径L3和L4设计测试用例.
如果选择路径L1 和L2, 可得到满足要求的测试用例:
[(2,0,4), (2,0,3)], 覆盖ace[L1]
[(1,1,1), (1,1,1)], 覆盖abd[L2]
如果选择路径L3和L4, 可设计另一组测试用例:
[(2,1,1), (2,1,2)], 覆盖abe[L3]
[(3,0,3), (3,1,1)], 覆盖acd[L4]
可看出,测试用例的选择不唯一.
不足: 假如第二个判断中的条件x1被错写成了x1, 利用上面两组测试用例, 仍能得到同样的结果. 这表明, 只是判断覆盖, 还不能保证一定能查出在判断的条件中存在的错误.
条件覆盖
条件覆盖就是设计若干个测试用例, 运行所测程序, 使得程序中每个判断的每个条件的可能取值至少执行一次. 因此首先要对所有的条件加以标记:
对第一个判断: 条件 A1 取TURE 时为 T1, 取FALSE时为 F1
条件 B=0 取TURE 时为 T2, 取FALSE时为 F2
对第二个判断: 条件 A=2 取TURE 时为 T3, 取FALSE时为 F3
条件 x1 取TURE 时为 T4, 取FALSE时为 F4
根据这8个条件取值, 可分别设计如下两组测试用例:
表1(第一组):
测试用例
通过路径
条件取值
覆盖分支
[(1,0,3), (1,0,4)]
abe(L3)
F1,T2,F3,T4
b,e
[(2,1,1), (2,1,2)]
abe(L3)
T1,F2,T3,F4
b,e
表2(第二组)
测试用例
通过路径
条件取值
覆盖分支
[(2,0,4), (2,0,3)]
ace (L1)
T1,T2,T3,T4
c,e
[(1,0,1),(1,0,1)]
abd(L2)
F1,T2,F3,F4
b,d
[(2,1,1),(2,1,2)]
abe(L3)
T1,F2,T3,F4
b,e
从表1和2可看出, 两组测试用例都满足了条件覆盖, 即覆盖了所有的条件取值.
不足: 第一组测试用例不满足判定(分支)覆盖要求.
判定-条件覆盖
判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行一次. 也就是说要求各个判断的所有可能的条件取值组合至少执行一次.
根据判定-条件覆盖的定义, 只需设计下面两个测试用例便可覆盖例子的8个条件取值以及4个判断分支.
测试用例
通过路径
条件取值
覆盖分支
[(2,0,4), (2,0,3)]
ace(L1)
T1,T2,T3,T4
c,e
[(2,1,1), (2,1,2)]
abd(L2)
F1,F2,F3,F4
b,d
不足: 表面来看, 判断-条件覆盖测试了所有条件的取值, 但实际上并非如此, 而是某些条件掩盖了另一些条件(由于多重条件判定). 例如, 对条件表达式(A1) AND (B=0) 来说, 若(A1)的测试结果为FALSE 时, 可以立即确定表达式的结果为FALSE, 这时往往就不再测试(B=0)的取值了, 因此, 条件(B=0)就没有被检查. 同样, 对条件表达式(A=2) OR (x1)来说, 若(A=2)的测试结果为TURE时, 就立即确定表达式的结果为TURE, 这时, 条件(x1)就没有被检查.
因此, 采用判定-条件覆盖测试, 逻辑表达式中的错误不一定能够查得出来.
条件组合覆盖
条件组合覆盖就是实际足够得测试用例, 运行所测程序, 使得每个判断得所有可能得条件取值组合至少执行一次.
您可能关注的文档
- 用友CRM在汽车贸易行业的应用.ppt
- 用友ERP U9-应付汇兑损益结转流程.doc
- 用友ERP-U8软件操作--总账系统期末处理.doc
- 用友ERP财务供应链一体化培训.ppt
- 用友ERP财务管理系统实验教程(用友ERP U8 V101版) 教学课件 王新玲、李孔月、康丽 第8章 应付款管理.ppt
- 用友ERP财务管理系统实验教程(用友ERP-U8 V101版) 王新玲、李孔月、康丽 第3章 总账管理新.ppt
- 用友ERP项目实施评审流程.doc
- 用友ERP需求调研-化工行业ERP调研提纲.doc
- 用友NC固定资产产品培训.ppt
- 用友PDM Professional 60用户手册(CAPP).doc
文档评论(0)