软件测试的方法

从哲学观点看,分析问题和解决问题的方法有两种:白盒方法和黑盒方法。
所谓白盒方法就是能够看清楚事物的内部,即了解事物的内部结构和运行机制,通过剖析事物的内部结构和运行机制,来处理和解决问题。如果我们没有办法或不去了解事物的内部结构和运行机制,而把整个事物看成一个整体——黑盒子,通过分析事物的输入、输出以及周边条件来分析和处理问题,这种方法就是黑盒方法。

白盒测试

语句覆盖

语句覆盖方法的基本思想是设计若干测试用例,运行被测程序,是程序中的每个可执行语句至少被执行一次。

判定覆盖

判定覆盖法的基本思想是设计若干用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。一个判定往往代表着程序的一个分支,所以判定覆盖也被称为分支覆盖。

条件覆盖

条件覆盖的基本思想是设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。

判定-条件覆盖

判定-条件覆盖实际上是将前两种方法结合起来的一种设计方法,它是判定和条件覆盖设计方法的交集,即设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次。

条件组合覆盖

条件组合覆盖的基本思想是设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。它与条件覆盖的差别是它不是简单地要求每个条件都出现“真”与“假”两种结果,而是要求让这些结果的所有可能组合都至少出现一次。

路径覆盖

路径覆盖就是设计所有的测试用例,来覆盖程序中的所有可能的执行路径。

  • 事实上,采用其中任何一种方法都不能完全覆盖所有的测试用例,因此,在实际的测试用例设计过程中,可以根据需要和不同的测试用例设计特征,将不同的设计方法组合起来,交叉使用,以达到最高的覆盖率。

基本路径测试法

基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证被测试程序的每个可执行语句至少被执行一次。

基本步骤

(1)程序的流程控制图
(2)计算程序环路复杂度
(3)确定基本路径
(4)准备测试用例,确保基本路径组中的每一条路径被执行一次
(5)利用图形矩阵可以自动实现一个基本路径集

黑盒测试

等价类划分法

等价类划分法基于对输人或输出情况的评估,然后划分成两个或更多子集来进行测试的一种方法,即它将所有可能的输人数据(有效的或无效的)划分成若
千个等价类,从每个等价类中选择一定的代表值进行测试。等价类是指某个输入域的一个特定的子集合,在该子集合中各个输入数据对于揭露程序中的错误都是等效的。

有效等价类和无效等价类

● 有效等价类是指输入完全满足程序输入的规格说明、有意义的输入数据所构成的集合,利用有效等价类可以检验程序是否满足规格说明所规定的功能和性能。
● 无效等价类和有效等价类相反,即不满足程序输入要求或者无效的输入数据构成的集合。使用无效等价类,可以测试程序/系统的容错性一对异常输入情况的处理。

边界值分析法

边界值分析法就是在某个输人输出变量范围的边界上,验证系统功能是否正常运行的测试方法。
(1)如果输人条件规定了值的范围,则取刚刚达到这个范围的边界值;
(2)如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1个、比最小个数少1个的数等作为测试数据。
(3)根据规格说明的每一个输出条件,分别使用以上两个规则。
(4)如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试数据。

判定表方法

● 条件桩:列出问题的所有条件;
● 动作桩:列出可能针对问题所采取的操作;
● 条件项:针对所列条件的具体赋值,即每个条件可以取真值和假值。
● 动作项:列出在条件项(各种取值)组合情况下应该采取的动作。
● 规则:任何一个条件组合的特定取值及其相应要执行的操作。在判定表中贯穿条件项和动作项的一列就是一条规则。

步骤

判定表制定一般经过下面4个步骤:
(1)列出所有的条件桩和动作桩;
(2)填入条件项;
(3)填入动作项,制定初始判定表;
(4)简化、合并相似规则或者相同动作。

因果图法

因果图法(Cause-effectDiagram)借助图形,着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”。

生成测试用例步骤


(1)分析软件规格说明书中的输入输出条件并分析出等价类,将每个输入输出赋予一个标识符;分析规格说明中的语义,通过这些语义来找出相对应的输入与输入之间,输入与输出之间的关系。
(2)将对应的输入输出之间,输入与输出之间的关系关联起来,并将其中不可能的组合情况标注成约束或者限制条件,形成因果图。
(3)由因果图转化成判定表。
(4)将判定表的每一列拿出来作为依据,设计测试用例。

正交试验法

  1. 确定影响功能的因子与状态
  2. 选择一个合适的正交表
  3. 利用正交表构造测试数据集

功能图法

功能图法就是使用功能图形式化地表示程序的功能说明,并机械地生成功能图的测试用例。功能图模型由状态迁移图和逻辑功能模型组成。其中:
● 状态迁移图用于表示输入数据序列以及相应的输出数据,由输入和当前的状态决定输出数据和后续状态;
● 逻辑功能模型用于表示状态输入条件和输出条件之间的对应关系。逻辑功能模型只适合于描述静态说明,输出数据仅仅由输入数据决定。

错误推测法

有经验的测试人员往往可以根据自己的工作经验和直觉推测出程序可能存在的错误,从而有针对性地进行测试,这就是错误推测法(errorguessmethod),或叫探索性测试方法(exploratory test)。 错误推测法是测试者根据经验、知识和直觉来发现软件错误,来推测程序中可能存在的各种错误,从而有针对性地进行测试。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值