一、软件测试中术语
1.动态测试(dynamic testing):通过运行软件的组件或 系统来测试软件
例如:一辆汽车发动并行使测试
2.静态测试(static testing):对组件的规格说明书进行 评审,对静态代码进行走查
例如:一辆汽车为发动未行驶,查看外观、颜色、组成部分
3.正式评审(formal review):对评审过程及需求文档的 一种特定评审,比如:用例评审
a、组内评审(项目组中的成员:产品,开发,测试)
b、交叉评审(测试同事成员:测试a、测试b,测试c)
4、评审员(reviewer):参与评审的人
5、度量:测量所使用的方法或标准 (准入,准出)
6.记录员:记录评审会议上的会议纪要
7.技术评审(Technical Review):同行间对技术进行的评审,目的是技术实现达成共识
8.走查(Walkthrough):由文档作者逐步陈述文档内容,以收集信 息并对内容达成一致
9.复杂性(complexity):系统或组件的设计或内部结构比较复杂, 导致难以理解,维护或验证的程度
10.圈复杂度(Cycloramic complexity):程序中独立路径的数量。可 以衡量一个组件模块的判定结构的复杂程度。
例如:软件复杂程度
11.控制流(Control Flow):执行组件或系统的一系列顺序的路径
12.数据流(Data Flow):表示数据对象的顺利或状态发生变化的过程
例如:状态变法:待支付》已支付,代发货》已发货,代签收
13.控制流图
控制流图(CFG,Controlflowgraph)也叫控制流程图,是一个过程或程序的抽象表现。
14.圈复杂度
程序中独立路径的数量,可以衡量 一个组件模块的判定结构的复杂程 度。
三种计算方式:
a.圈复杂=区域数
b.圈复杂度=边数-节点数+2
c.圈复杂度=判定节点+1
案例:
if (x>100&&y>500) then
score=score+1
else if (x>=1000||z>5000)then
score=score+2
讲解:
a.圈复杂=区域数
v=3 (两块区域+1块外面区域)
b.圈复杂度=边数-节点数+2
v=7-6+2=3
c.圈复杂度=判定节点+1
v=2+1=3
案例:
a.圈复杂=区域数
b.圈复杂度=边数-节点数+2
c.圈复杂度=判定节点+1
比较:
if (x>100&&y>500) then
score=score+1
else if (x>=1000||z>5000) then
score=score+2
else
score=score+3
end if
用例设计方法之等价类
一、黑盒设计测试用例方法
1、等价类,边界值,判定表,因果图,正交表,场景 法,状态迁移法
2、错误推测法,异常分析法,随机测试
二、白盒测试设计用例方法
1、语句覆盖
2、判断覆盖
3、条件覆盖
4、判断条件覆盖
5、路径覆盖(独立路径覆盖,z路径)
=========================================
等价类:
定义:指某个输入域的集合,在集合中各个输 入的条件都是等效的。
有效等价类:对程序规格说明有意义的、合理 的输入数据
案例:
手机号:(1)11位 (2)纯数字
有效用例:15949613302
无效等价类:对程序规格说明无意义的、不合 理的输入数据
案例:
手机号:(1)11位 (2)纯数字
无效用例1:12位 159496133022 比手机位数多1
无效用例2:10位 15949613302 比手机位数少1
无效用例3:纯数字 1594961330A 非纯数字
等价类设计用例覆盖的原则:
(1)每个用例尽可能多的覆盖多个有效的等价类
(2)每个用例只能覆盖一个无效等价类
案例:
案例-练习:
现有一个档案管理系统,容许用户通过输入年月对档案文件进行 检索,系统对查询条件年月的输入限定为1990年1月~2049年12月,并规定:日期由6位数字字符组成,前4位表示年,后2位表示月
等价类划分的设计用例思路:
- 找输入条件
- 为每个输入条件找有效、无效等价类
- 为每个等价类编号
- 用最少的用例覆盖最多的有效等价类
- 每一个无效等价类都是一个用例
- 并非所有有效等价类都有无效
- 等价类的覆盖可以重复覆盖
常见的能够划分等价类的地方:
- 数值范围
- 重复次数
- 字符串长度
- 字符串组中字符的个数
- 文件命名
- 文件大小
- 屏幕的颜色种类
- 超时时间
等价类的优缺点
优点:是考虑了单个输入域的各类情况, 避免了盲目或随机选取输入数据的不完整 性和覆盖的不稳定性。
缺点:方法虽然简单易用,但是没有对组 合情况进行充分的考虑。需要结合其他测 试用例设
计的方法进行补充。比如边界值
练习1:
条件:
条件1(大于等于5位)
条件2(小于等于13位)
条件3(纯数字)
有效:812462278 满足1,2,3
无效1:1234 小于5位
无效2:12345678901234 大于13位
无效3:1234s56
无效4:aaaaaaa
无效5:!@@####
无效6: 空或null
练习2:
银行卡: 16位 ----18位 纯数字或字母组合
点评:
(1)
练习3:微信红包红包金额:
条件
条件1:金额0.01-200
条件2:纯数字
条件3:小数位数保留两位
有效等价类:
1、20.22 1,2,3
无效等价类:
1、0.00 小于最小金额
2、200.01 大于最大金额
3、12.1a 非纯数字
4、12.001 保留三位小数
边界值
一、边界点定义:
(1)边界上的点
(2)离点:离上点最近的点(即上点左右两边最邻近的点)
(3)内点:在域范围内的点:
案例1:5-13位
闭区间
上点:5,13
离点:4,14
内点:8(6,7,8,9,10,11,12)
测试: 5(最小值),13(最大值),4(小于最小值),14(大于最大值),8中间值
开区间:
上点:5,13
离点:6,12
内点:8
测试:5(最小值),13(最大值) ,6(最小值大1),12(最大值小1),8(中间值)
练习1:根据实际场景
11位手机号
测试:
11位 (手机固定位数)
12位:12----五无上限 (固定位数大1)
10位: 1-10位(固定位数小1)
0位:为空
练习2:单人红包金额0.01-200元
测试:0.01(最小值) ,200(最大值),0.00(小于最小值),200.01(大于最大值),1(中间值0.02-199.99)
(4)
边界条件分析:
- 输入条件明确了一个值的取值范围,或规定了值的个数
- 输入条件明确了一个有序集合
(5)
边界值分析原则 - 如果输入(输出)条件规定了取值范围,则应该 以该范围的边界内及边界附近的值作为测试用例
- 如果输入(输出)条件规定了值的个数,则用最 大个数,最小个数,比最小个数少一,比大个 数多一的数作为测试数据
- 如果程序规格说明中提到的输入或输出是一个有 序集合,应该注意选取有序集合的第一个和最后 一个元素作为测试数据
案例:
atm 输入框金额100-5000
测试:上点 100 5000
内点:101-4999
离点:99, 5001
备注:边界值是发现bug能力最强的一种测试方法
判定表
1、判定表定义:分析和表达多逻辑条件下的执行不同操作的情况
2、作用:对组合情况设计用例
利用判定表将复杂的问题按照各种可能的 情况全部列举出来,能针对不同逻辑条件 的组合值,
分别执行不同的操作。
3、组成部分:
1)条件桩(condition stub):列出问题的 所有条件(通常条件次序无关紧要)。
2)条件项(condition entry):列出针对 它条件的取值(所有情况下的真假值)
3)动作桩(action stub):列出问题规定 可采取的动作(顺序无约束)。
4)动作项(action entry):列出条件各种情况的应采取的 动作
案例1:
对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”。
理解:1、 功率大于50马力的机器 和维修记录不全(优先)
2、已运行10年以上的机器(优先)
备注:条件3个 2的3次方=8次, 8次可以覆盖所有的组合情况
a.初始化判定表
b.简化后的判定表