第03章、白盒测试技术-逻辑覆盖测试(理论课).ppt

第03章、白盒测试技术-逻辑覆盖测试(理论课).ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第03章、白盒测试技术-逻辑覆盖测试(理论课)

/ 白盒测试 第三章、白盒测试技术-逻辑覆盖测试 上一章内容回顾 白盒测试技术 白盒测试的作用 白盒与黑盒测试的比较 白盒测试的策略 提高代码质量 软件质量度量 编码规范和代码检查单 代码度量元 辅助代码分析工具 本章学习目标 逻辑覆盖 语句覆盖 判定(分支)覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 路径覆盖 循环语句覆盖 内容进度 逻辑覆盖 语句覆盖 判定(分支)覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 循环语句覆盖 简单循环 嵌套循环 串接循环 白盒测试的三种覆盖标准 逻辑覆盖 基本路径覆盖 循环覆盖 逻辑覆盖测试 针对程序的内部逻辑结构设计测试用例 通过运行测试用例达到逻辑覆盖目的 要求测试人员对程序的逻辑结构非常清楚 是最传统最经典的白盒测试技术 例子代码 先看下面代码: 辅助方法-流程图 语句覆盖概念 语句覆盖-设计用例 分支(判定)覆盖概念 分支(判定)覆盖-设计用例 条件覆盖概念 条件覆盖-设计用例 条件覆盖-设计用例 测试用例(1) 测试用例(2) 分支-条件测试概念 设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的真假分支至少执行一次,即要求各个判断的所有可能的条件取值组合至少执行一次。 分支-条件测试-设计用例 根据定义只需设计以下两个测试用例便可以覆盖8个条件值以及4个判断分支。 分析 例如对于条件表达式(x3)(z10)来说,必须两个条件都满足才能确定表达式为真。如果(x3)为假则一般的编译器不在判断是否z10了。 对于第二个表达式(x= =4)||(y5)来说,若x==4测试结果为真,就认为表达式的结果为真,这时不再检查(y5)条件了。 条件组合覆盖概念 设计足够的测试用例,运行被测试对象,使得每一个判断的所有可能的条件取值组合至少执行一次。 标记 流程图 设计测试用例 路径测试 路径测试就是设计足够多的测试用例,覆盖被测试对象中的所有可能路径。 测试用例 测试充分性 内容进度 逻辑覆盖 语句覆盖 判定(分支)覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 循环覆盖 简单循环 嵌套循环 串接循环 循环测试-简单循环 简单循环: 简单循环举例 举例: ...... for(s=0;si;s++) fwrite(prof[s],sizeof(struct ENGINEER),1,fp); ...... 循环测试-嵌套循环 嵌套循环: 嵌套循环举例 for(i=0; inum; i++) { while(j0) { j--; } } 循环测试 串接循环: 循环测试 不规则循环: 本章内容总结 逻辑覆盖测试 语句覆盖 判定覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 路径覆盖 循环覆盖 从最内层循环开始,将其它循环设置为最小值; 对最内层循环使用简单循环,而使外层循环的叠代参数(即循环计数)最小,并为范围外或排除的值增加其它测试; 由内向外构造下一个循环的测试,但其它的外层循环为最小值,并使其它的嵌套循环为“典型”值; 继续直到测试所有的循环。 如果串接循环的循环都彼此独立,可是使用嵌套的策略测试。 如果第一个循环是第二个循环的初始值,则这两个循环并不是独立的,则推荐使用的嵌套循环的方法进行测试。 不能测试,尽量重新设计成结构化的程序结构后再进行测试。 该测试用例虽然覆盖了可执行语句,但并不能检查判断逻辑是否有问题,例如在第一个判断中把错误的写成了||,则上面的测试用例仍可以覆盖所有的执行语句。可以说语句覆盖率是最弱的逻辑覆盖准则。 虽然说语句覆盖是最弱的逻辑覆盖准则,但是在测试中往往要求语句覆盖率很高,一般要求90%以上。 对于程序中不能执行的语句要进行说明。 对例子中的所有条件取值加以标记。例如: 对于第一个判断: 条件x3 取真值为T1,取假值为-T1 条件z10 取真值为T2,取假值为-T2 对于第二个判断: 条件x=4 取真值为T3,取假值为-T3 条件y5 取真值为T4,取假值为-T4 很容易在前面做语句覆盖的测试用例基础添加测试用例达到判定覆盖。 对于上面的程序,如果设计两个测试用例则可以满足判定覆盖的要求。 两个测试用例虽然能够满足条件覆盖的要求,但是也不能对判断条件进行检查,例如把第二个条件y5错误的写成y5,、上面的测试用例同样满足了分支覆盖。 上面的测试用例不但覆盖了所有分支的真假两个分支,而且覆盖了判断中的所有条件的可能值。 设计了上面的测试用例,则虽然满足了条件覆盖,但只覆盖了第一个条件的取假分支和第二个条件的取真分支,不满足分支覆盖的要求。 通过分析,可以看出采用分支条件覆盖,逻辑表达式中的错误不一定能够查出来了。 这些在学习C语言的课程中都讲解过。 条

文档评论(0)

laolingdao1a + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档