网站首页 > 资源文章 正文
1、衡量测试效果的基本指标:白盒覆盖
衡量测试效果的基本指标是白盒覆盖率,即统计测试对代码逻辑单位的覆盖状况。代码的逻辑单位主要有:语句(块),条件、判定、分支、路径。常用的白盒覆盖有六种:语句覆盖、条件覆盖、分支覆盖、判定条件覆盖、修正判定条件覆盖、和路径覆盖。每种覆盖都有它的局限性,因此,实践中要多种覆盖组合应用。
除MC/DC外,其他覆盖率的计算公式很简单:
覆盖率 = 已覆盖逻辑单位数 / 全部逻辑单位数 * 100%,如:
语句覆盖率 = 已覆盖语句块数 / 全部语句块数 * 100%;
C/DC = (已覆盖判定数 + 已覆盖条件数) / (全部判定书 + 全部条件数) * 100%,这里的判定数和条件数是指条件和判定计算结果,即判定值和条件值。
修正判定条件覆盖,即MC/DC是欧美航空标准。MC/DC主要用于检测判定内的条件之间的关系是否正确,对逻辑操作符&&和||是相当敏感的,但是并不检查从函数入口到出口的代码组合的覆盖,缺陷还是相当明显的。路径覆盖检查入口到出口的各种代码组合的覆盖,显然,MC/DC和路径覆盖的组合,才是最强的覆盖指标。
统计覆盖率的一般方法是插装,即在被测代码中插入监视代码,监视执行状况。监视代码必须不影响被监视代码本身的功能逻辑。
工具可以将覆盖状况清晰标示出来,语句覆盖、条件覆盖、MC/DC覆盖可以在代码中标示,分支覆盖和路径覆盖可以在代码的逻辑结构图中标示。如上图,红色背景的是未覆盖的语句。条件前面的T,表示条件的真值未覆盖。条件前面的F,表示条件的假值未覆盖。条件前面的M,表示MC/DC未覆盖,也就是说,这个条件没有独立影响判定结果。红色背景的是未覆盖的分支。未覆盖的路径用红色画出。
2、多角度保证测试效果
对于代码质量要求很高的项目来说,仅有白盒覆盖是远远不够的。白盒覆盖不能发现代码缺失,白盒覆盖基于现有代码,如果代码不存在,当然不能发现。为了检测代码缺失,需要人工对测试数据进行检查。白盒覆盖也不能发现用例未反映功能。如果设计用例时,测试员不了解代码的功能,通过阅读代码来设计用例,这叫跟着代码走,这样测试的话,再高的覆盖率也没有意义。这也从另一个角度说明了自动用例的局限性,完全由工具自动生成的用例,效果显然还比不上跟着代码走。
开发当中还有一个特点,也是我们要注意的,就是程序员和测试员都容易遗漏边界和非法输入。程序员未考虑某些输入,就会造成代码缺失,白盒覆盖不能发现,如果测试员也漏掉,这种错误就发现不了。不过幸运的是,边界和非法输入容易产生的是极端错误,如崩溃、超时,自动生成的边界测试用例正好可以捕捉这类错误。
通过前面的分析,我们可以知道应该从哪些角度保证测试效果。黑盒、白盒、自动应该相结合。
黑盒角度,应该将测试数据分类集中起来,这样便于人工检查。如上图,每个参数或者其他输入取了什么值,哪些组合已经覆盖,都会自动集中起来,这样人工检查就很方便了。
白盒方面,应该统计覆盖率,并且找出遗漏用例实现高覆盖。这在前文已经讲过了,这里不再重复。
自动化方面,由工具自动生成用例来捕捉边界和非法输入产生的极端错误。根据预设值自动生成用例是简单技术,预设值一般是可以修改的,如上图。不要指望主要依靠自动生成的用例来完成测试,自动用例的合理用途是作为人工用例的补充,检测极端错误。
- 上一篇: 4.软件工程基础知识【5颗星】
- 下一篇: MySQL:你知道什么是覆盖索引吗?
猜你喜欢
- 2025-01-03 道不尽的冬日毕棚沟,太“_____”啦!
- 2025-01-03 真诚,是最贵的人品
- 2025-01-03 赏美文丨听听那冷雨(节选) 作者:余光中 诵读:王卉
- 2025-01-03 最全软件测试笔试题,建议收藏
- 2025-01-03 2022晚风太惬意的朋友圈唯美句子
- 2025-01-03 软件生命周期管理-精华版
- 2025-01-03 每日一句,正能量的励志短句
- 2025-01-03 日积月累 ▏ 描写雪的好词好句好段集萃
- 2025-01-03 软件测试工程师的基础必备技能:功能测试解读
- 2025-01-03 成吉思汗最有英雄气概的名言,仅16个字,充满智慧,值得学习
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)