1 简介
1.1 代码覆盖率分析
这篇文章给出了一个完整的代码覆盖率分析方面的概念。
代码覆盖率分析是这样一个过程:
· 找出程序经过一系列测试而没有执行的部分代码
· 创建一个附加的测试用例来增加覆盖率
· 决定代码覆盖的定量度量。
代码覆盖率分析的一个有效方面是:
· 识别出没有增加覆盖率的无效的测试用例。
覆盖率分析需要被测试程序的源代码,并且经常需要用一个特殊的命令重新编译它。
这篇文章讨论你应当考虑你的测试计划中应该如何增加覆盖率分析的细节问题。覆盖率分析有一定的好处和弱点。你应该选择一个测量方法的范围。你应该建立一个覆盖率要达到的最小百分比,来决定你什么时候停止覆盖率分析。覆盖率分析只是许多测试技术的一种,你不能只是依靠它。
1.2 结构化测试和功能测试(Structural testing&Functional testing)
代码覆盖率分析是一种结构化测试技术 (AKA glass box testing and white box testing). 结构化测试是比较被测试程序的行为和源代码的外观目的。和功能测试相比 (AKA black-box testing), 功能测试是比较被测试程序的行为和确定的需求。结构化测试检查程序的工作,考虑结构中可能存在的逻辑缺陷。功能测试检查被测试程序的完成需求的能力,不考虑它是怎么工作的。
结构化测试也叫路径测试(path testing), 因为你选择测试用例来通过程序结构的路径。不要和路径覆盖率度量(path coverage)混淆,下面会介绍。
粗略的看,结构化测试似乎不安全,结构化测试不能发现需求疏忽的错误,但是,需求定义有时并不存在,而且并不完整。这个现象是实际存在的,当产品开发的时间线就要到的时候,当需求定义很少更新,产品自身代替了需求定义的作用的时候。
1.3 假定
一些基本原理的假定如下所列:
· Faults ―――和控制流相关的缺陷,你可以发现这些缺陷通过变更控制流[Beizer1990 p.60]。例如,一个程序写为"if (c)" 比"if (!c)"好 。
· 你可以寻找缺陷而不必知道这个缺陷可能引起的后果和所有测试的可靠性。
· 其它的假定包括可完成需求的定义、没有疏忽的缺陷和没有不可以达到的代码等。
posted on 2008-01-19 20:29
三原 阅读(660)
评论(0) 编辑 收藏 引用 所属分类:
软件测试