【软件测试】如何学好软件测试-第三章软件测试方法篇

软件测试方法

基于直觉和经验方法

针对易用性测试

  • Ad-hoc测试方法,开放测试

  • ALAC:基于用户使用产品的经验知识进行系统测试

  • 错误推测法:测试者根据自己的工作经验、专业知识和直觉来推测出软件中可能存在的各种错误,从而对被测软件采用针对性的测试

基于输入域方法

等价类划分法

  • 将所有可能的输入数据划分成有限的或无效的若干个等价类,然后从每个等价类中选出一个输入数据作为代表形成测试用例

  • 输入规定了取值返回或定值

  • 规定了有效输入集合

  • 输入是布尔值

  • 允许输入n组数据值,并且程序要对每组输入值分别处理的情况下,可将范围内的值域确定n个有效类,和一个范围外的无效等价类

  • 业务规定了输入遵守规矩的情况下,确定一个有效等价类【符合规矩】和若干无效【从不同角度违反规矩】

有效等价类:输入8位数字

无效等价类:输入小于八位数字、输入大于八位数字、输入小数、输入字母、输入非数字符号【?】

边界值分析法

  • 如果输入数据规定了值的范围,则可选取刚达到这个范围的边界值,以及刚刚超越这个范围边界的值作为测试输入数据

99 101 19999 20001 都行

  • 特殊边界值测试

    • 在输入界面内,可以采用默认值、空值、空格、无效数据、垃圾数据等输入数据作为边界测试软件是否存在缺陷

项目名称:空值、全为空格、51个字符、49个字符、垃圾数据

同上

基于组合及其优化方法

等价类划分和边界值分析只适用单个因素输入

判定表

  • 设计步骤

    • 列出所有的条件桩和动作桩

    • 填入条件项

    • 填入动作项,设计初始判定表

    • 简化、合并相似规则

因果图法

  • 问题探讨:

    • 有一个自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还5角硬币。请设计其因果图和判定表,并给出相应的测试用例。

成对组合测试方法

实际软件项目中,每个输入变量有多个值

  • 成对组合测试方法基本思想每两个输入变量所有取值组合形成不同的测试用例

  • 完整:3x3x3x3 = 81

  • 成对

下面通过一个例子来理解测试过程:

假设有一个包含10个元素的列表框,可以接受1到100个字符的文本框,单选按钮,复选框和确定按钮。

输入值在下面给出,可以由给定函数的字段接受。

  1. 复选框 - 已选中或未选中

  2. 列表框 - 0,1,2,3,4,5,6,7,8,9,

  3. 单选按钮 - 开或关

  4. 文本框 - 1到100之间的字母数。

  5. 确定按钮 - 不接受任何值,仅重定向到下一页。

计算所有可能的组合:

Check Box = 2     
List Box = 10     
Radio Button = 2     
Text Box = 100     
Total number of test cases = 2*10*2*100                      = 4000

测试用例总数(包括负测试用例)为4000。

测试4000个测试用例,是一个非常漫长而耗时的过程。因此,测试团队的任务是减少测试用例的数量,为此,测试团队认为列表框的值是第一个值为0,另一个值可以是任何数字, 现在十个值转换为2个值。

复选框和单选按钮的值不能减少,因为每个值只有2个值的组合。最后,文本框的值分为三个输入类别:有效整数,无效整数和alpha特殊字符。

现在,我们只有24个测试用例,包括负面测试用例。

2*2*2*3 = 24

现在,任务是为所有对技术组合,每列应具有相同数量的值,并且总值应等于24。

要使用文本框列,将最常见的输入放在第一个有效整数的位置,在第二个位置放置第二个最常见的输入是无效的整数,并在最后一个位置放置最不常见的输入是一个alpha特殊字符。

然后开始填充表格,第一列是一个包含三个值的文本框,下一列是一个包含2个值的列表框,第三列是一个包含2个值的复选框,最后一个列是一个单选按钮有2个值。

文本框列表框复选框单选按钮
有效整数0选中ON
有效整数其它未选中OFF
无效整数0选中ON
无效整数其它未选中OFF
AlphaSpecialCharacter0选中ON
AlphaSpecialCharacter其它未选中OFF

在表中,可以看到传统的软件方法产生的是24个测试用例,而不是4000个案例,而成对测试方法仅在6对测试用例中。

示例来自w3c

正交实验法

正交试验设计一般包括以下几步:

①确定研究因素和指标水平;②制作成正交试验表格;③实施试验;④试验结果分析

用一个例子来说明,某网站推出了不同规格的电脑,想了解哪种方案销售量最好。

在不使用正交表的情况下进行测试,尝试所有可能的方案总共3×3×3=27种。

①确定因素和水平

因素是指作为研究对象的参数或指标。水平是一个因素的可取值的。例如,性别有两个取值,即男性和女性,因此有两个水平。

从上面的表格中可知,本次试验共确定3个因素分别是尺寸、颜色、价格。各因素确定如下,水平数均为3 :

②制作成正交试验表格

注:此处来自网络,3因子且水平数均为3应该计算得到行数为=3*2 + 1=7。但规定使用的模型只有L934 所以需要添加一列,此处并未给出,可见下处的问题探讨。

如何填写用例?

观察得到:第一列按比例依次填写,后面的列保证每个取值在一个水平数的范围内个数相同即可

  • 考虑因子和水平数

    • 因子:3,员工号、姓名、邮件地址

    • 水平数:均为2,填值和空值

    • -> L423

编号因子1因子2因子3
1011
2000
3111
4100

测试用例表

编号员工号姓名邮箱
1填写填写
2
3填写填写填写
4填写

  • 水平数和因子的选择

    • 因子:3,A、B、C

    • 水平数:A = [80,85,90]、B = [90,120,150]、C = [5,6,7],水平数均为3

    • ->L934 需要添加一列

编号因子1因子2因子34
1111
2122便
3133
4213
5232
6221
7332
8323
9311

得到测试用例

作业分析

一:邮箱等价类划分

有效等价类如下:

(1) 邮箱输入字符串格式***@uestc.edu.cn* * *@UESTC.EDU.CN( * 为字母或数字)

无效等价类如下:

(2) *中带有非字母或数字的其他字符

(3) 邮箱输入字符串中缺少'@'字符

(4) 邮箱输入字符串中有2个及以上'@'

(5) 邮箱输入字符串@后不是标准的域名

测试用例

测试用例编号测试用例覆盖等价类
1example@uestc.edu.cn(1)
2#example@uestc.edu.cn(2)
3exampleuestc.edu.cn(3)
4example@@uestc.edu.cn(4)
5example@domain.com(5)

二:使用边界值方法和等价类划分对三角形问题设计 。

1) 判断一般三角形的有效等价类是什么?无效等价类是什么?

2) 判断等腰三角形的有效等价类是什么?无效等价类是什么?

3) 判断等边三角形的有效等价类是什么?无效等价类是什么?

三角形判断条件

  • 边长均大于0

  • 构成一般三角形的条件:任意两边之和大于第三条边

  • 构成等腰三角形的条件:任意两边相等

  • 构成等边三角形的条件:三条边都相等

(1) 判断一般三角形的有效等价类与边界值规则设计

((a>0)∩(b>0)∩(c>0)) ∩ (((a+b) > c) ∪ ((a + c ) > b) ∪ ((b + c ) > a ))

判断一般三角形的无效等价类与边界值规则设计

1) ((a>0)∩(b>0)∩(c>0))∩(((a+b)<=c)∪((a+c)<=b)∪((b+c)<=a))

2)(a<=0 ∪ b<=0 ∪ c<=0)

(2) 判断等腰三角形的有效等价类与边界值规则设计

((a>0)∩(b>0)∩(c>0)) ∩ (((a+b) > c) ∪ ((a + c ) > b) ∪ ((b + c ) > a ))∩((a=b) ∪ (b=c) ∪ (c = a))

判断等腰三角形的无效等价类与边界值规则设计

1) (a != b ∩ b != c ∩ c != a)

2) (a <= 0 ∪ b <= 0 ∪ c <= 0)

(2) 判断等边三角形的有效等价类与边界值规则设计

((a>0)∩(b>0)∩(c>0)) ∩ (((a+b) > c) ∪ ((a + c ) > b) ∪ ((b + c ) > a ))∩((a=b=c)

判断等边三角形的无效等价类与边界值规则设计

1) (a != b != c)

2) (a <= 0 ∪ b <= 0 ∪ c <= 0)

测试用例编号测试用例输入(a,b,c)预期结果
1(5,6,8)一般三角形
2(5,6,5)等腰三角形
3(5,5,5)等边三角形
4(5,0,5)非三角形
5(2,2,5)非三角形

三:

函数输入变量Y,M,D,均为正整数

满足条件

  1. 1900 <= Y <= 2100

  2. 1 <= M <= 12

  3. 1 <= D <= 31

  4. 有闰年平年之分

输入参数有效等价类无效等价类
Y1900<=Y<=2100 Y1闰年 Y2平年<1900、>2100、非正整数、其他符号
M1<=M<=12 M1{1,3,5,7,8,10} M2{4,6,9,11} M3{2} M4{12}<1 >12 非正整数 其他符号
D1<=D<=31 D1{1,27} D2{28} D3{29} D4{30} D5{31}<1 >31 D6 其他正整数 其他符号

基于逻辑覆盖方法

  • 逻辑覆盖是一种以程序内部逻辑结构为基础的白盒测试方法,具体分为语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、基本路径覆盖

语句覆盖方法

  • 基本思想:设计若干测试用例,使得被测程序的每个可执行语句至少执行一次。

  • 能解决的问题:发现程序中一些永远不能被执行的语句缺陷,但不能发现程序中的语句逻辑错误。

判定覆盖方法

  • 试图覆盖程序中所有路径的测试方法称为路径覆盖。路径测试的最简单形式就是判定覆盖测试

  • 基本思想:使得程序中的每个判定语句的取真和取假分支至少执行一次,也称为分支覆盖测试

条件覆盖方法

  • 基本思想:使得每个判断中的每个条件的可能取值至少满足一次

  • 条件即判断中的每个不可分割的不等式表达式

  • 满足条件覆盖不一定满足判定覆盖

判定-条件覆盖

  • 找出符合判定和条件覆盖的用例交集

    • 即满足对每个条件的取值,通过组合也满足对每个判断的取值

条件组合覆盖

  • 基本思想:设计足够多的测试用例,使得判断中每个条件的所有取值情况至少出现一次,并且每个判断本身的判定结果也至少出现一次。

  • 即先根据判断中的条件,对条件的不同取值进行组合,然后再将不同判断中的条件一一组合,称为测试用例的覆盖条件

基本路径覆盖

  • 基本思想:覆盖所有可能的分支路径

基本路径覆盖测试用例设计步骤: ①依据代码绘制流程图 ②确定流程图的环路复杂度 ③确定各个独立路径的基本集合 ④设计测试用例覆盖每条基本路径

  • 计算环路复杂度:判断节点数目+1,V(G)确定了程序独立路径

基于缺陷模式的测试

基于模型的测试

课堂练习

  1. C

  2. D

  3. C

  1. D

  2. B

  3. B

  4. C

  1. D

  2. C

  3. D

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值