软件测试原理与方法参考目录
- 引论
- 软件测试的基本概念
- 软件测试方法
引论
软件测试的基本概念
软件测试方法
这一部分是“术”的重点,要深切彻底地掌握住软件测试的“道”,然后再对“术”加以灵活应用。
解释:通过对不同数据的输入,检查其输出的数据以判断测试是否通过的方法,都归为基于输入域的方法。
但是现实是实在有太多种可能的输入了,根本不可能穷举完,这时候我们就需要派代表了。
代表怎么划分呢我们的平时的的班级代表、年级代表、学校代表就懂了,不同需求下,划分方式是不同的。
这也就是我们说的等价类划分——“用一组有限的数据去代表近似无限的数据”
分为:有效等价类和无效等价类
等价类划分一般经过两个过程:
(1)分类
(2)抽象,即在各子类种抽象出相同特性并用实例来表征这个特性。
优点:以少盖多,减少重复
缺点:缺乏特殊用例的考虑,同时需要深入的系统知识才能选择有效数据。
例题:
保险公司人寿保险保费计算程序的等价类测试
某保险公司人寿保险的保费计算方式为:
保费 = 投保额 × 保险费率
其中,保险费率根据年龄、性别、婚姻状况和抚养人数的不同而有所不同,体现在不同年龄、性别、婚姻状况和抚养人数,点数设定不同。10点以上保险费率为0.6%,10点及10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定的,具体规则如下所示:
根据等价类,假设投保额为1万元,保险公司人寿保险保费计算程序的等价类测试用例如下
举例:
这个名字让我想到了一句话”百因必有果…”咳咳,所以看到这儿了,觉得还挺有用的朋友,不要吝啬你的赞哦~
因果图法是借助图形,着重分析输入条件的各种组合,每种组合是”因”,其对应的输出就是”果”.
因果图生成测试用例的方法步骤:
Step1. 分析输入输出条件找到其中的关系,并得出等价类
Step2. 将对应的输入输出关联起来,将不可能情况标注成约束或限制条件,画出因果图
Step3. 由因果图转成判定表
Step4. 由判定表设计测试用例具体例子可以看我的另一篇测试博文.
Pair-wise方法和正交试验法相对来说用得没那么多,以后有空了再补上.
进入我们的基于逻辑覆盖的方法!!! 表扬一下自己, 居然不知不觉学到这儿来了.
好,我们继续!
进行单元测试时,会针对程序进行测试,常常会设定目标比如代码行的覆盖率要超过80%. 如何进行覆盖呢也是有方法的,往下看.
设T1=A>3,T2=B>3;为该判定节点的两个子条件。
(一)判定覆盖:
所谓的判定覆盖就是让判定的真分支和假分支各执行一次,只要列出的子条件能够满足真假分支各一次就可以了:
例如: A=4,B=3(T1=True,T2=False)走了真分支,A=3,B=3(T1=False,T2=False)走了假分支。
当然,能走真假分支都走的条件组合还有很多种,这里随便选一种就可以了。
(二)判定条件覆盖(条件覆盖):
所谓判定条件覆盖就是给出的条件组合里面每个子条件的真、假都出现过,也就是T1(True,False),T2(True,False)都出现过。现在如果我们拿过问题(一)的条件组合,那么得到的就是:
发现T1(True,False)都有了,T2(__,False)只有False,没有出现True,所以随便补充一个T2=True的条件组合就可以了:
A=3,B=4(T1=False,T2=True)
这样就满足判定条件覆盖了,当然,如果不在问题(一)的基础上扩展的话,可以用判定条件覆盖的最暴力的方式给出答案:
这样就满足了判定条件覆盖。
(三)条件组合覆盖:
所谓的条件组合覆盖,就是一个判定的所有子条件的组合情况都出现一次。一般使用列表法,把子条件的所有组合情况都列出来,然后填表:
基本路径覆盖是设计测试用例,使得程序中所有可能的独立路径被覆盖. 区别一下基本路径覆盖和语句覆盖, 语句覆盖是只管执行语句有没有被覆盖而不关心选择的是哪条路径的.
截至这,我们关注的都是对控制流的测试,因此再补充一个:数据流测试.
两种主要形式的数据流测试方法:
(1)定义/使用测试
(2)程序片测试定义使用测试的一些基本概念
定义节点;
使用节点(分为谓词使用和计算使用);
定义使用路径(定义节点到使用节点之间的路径);
定义清除路径(定义使用路径上没有对变量进行多次定义的路径)不是定义清楚的路径就是数据流上容易出错的地方.
基于缺陷模型和模型的测试以后有空再补充.
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!