软件测试(测试用例)

方法

等价类划分

1、基本思路

把程序的输入域划分成若干部分,从每个部分中选取少数代表作为测试用例

有效等价类

有意义的数据,

无效等价类

不仅满足程序输入要求或者无效的输入数据

2、原则

规定了输入域的范围或者个数,可以确定一个有效等价类和两个无效等价类


规定输入值的集合,不是一个范围,可以确定一个有效等价类和一个无效等价类

规定输入数据的一组值,并且程序对每一个输入的值分别进行处理,则确定一个有效等价类,在选择一个无效

3、基本步骤

第一步:划分等价类,列出等价类表

第二步:列出输入条件可能组合输入的情况

第三步:选取合适数据,编写测试用例

4、案例
(一)输入用户名密码以及确定密码

编写测试用例

(二)输入3边长度判断三角形类型

分析程序规格,列出等价类

编写测试用例

5、小结

等价类中的一个测试数据能捕获一个缺陷,那么该等价类中的其他测试数据也能捕获该缺陷

如果等价类中的一个测试数据不能捕获缺陷,那么选择该等价类中的其他测试数据也不能捕获缺陷

只要有数据输入的地方,就可以采用等价类划分法,它可以从很多的数据中选取少数代表性数据进行测试以减少测试人员的工作量。

判定表法

1、基本思路

是一种表格状图形工具,处理判断条件较多,条件互相组合、有多种决策方案的情况

2、判定表法组成部分
  • 条件桩:问题的所有条件

  • 动作桩:问题的所有输出

  • 条件项:针对条件桩具体取值

  • 动作项:条件项各种取值情况下的输出结果

  • 规则数:条件项可能取值个数^条件数

3.步骤
  • 列出所有条件桩和动作桩

  • 确定规则数:条件取值个数^条件数

  • 输入条件项

  • 填入动作项。得到初始判定表

  • 简化判定表

4、案例
(一)判断三角形

输入三个整数a、b、c,分别作为三角形的三条边

判断三条边是否构成三角形

如果构成三角形,判断三角形类型,等边三角形,等腰三角形,一般三角形

确定条件桩

C1:a,b,c构成三角形? a<b+c  b<a+c  c<a+b
C2:a=b?
C3:a=c?
C4:b=c?

确定动作桩

A1:非三角形
A2:不等边三角形
A3:等腰三角形
A4:等边三角形
A5:不可能

分析

条件桩条件项
c1 :abc构成三角形?1:满足两边之和大于第三边
0:不满足
c2 :a = b?1: a = b
0: a != b
c3 :a = c?1: a = c
0: a != c
c4 : b = c?1: b = c
0: b != c
动作桩动作项
A1:非三角形1:不是三角形
A2:不等边三角形1:是一般三角形
A3:等腰三角形1:是等腰三角形
A4:等边三角形1:是等边三角形
A5:不可能1:条件组合不可能出现
2^4(条件项可能取值个数^条件数)

初始判定表

12345678910111213141516
条件桩
c1 :abc构成三角形?0000000011111111
c2 :a = b?0000111100001111
c3 :a = c?0011001100110011
c4 : b = c?0101010101010101
动作桩
A1:非三角形11111111
A2:不等边三角形1
A3:等腰三角形111
A4:等边三角形1
A5:不可能111

简化判定表

123456
条件桩
c1 :abc构成三角形?011111
c2 :a = b?100011
c3 :a = c?100101
c4 : b = c?101001
动作桩
A1:非三角形1
A2:不等边三角形1
A3:等腰三角形111
A4:等边三角形1

测试用例表

编号abc预期结果
1412非三角形
2345普通三角形
3344等腰三角形
4535等腰三角形
5223等腰三角形
6111等边三角形

因果法

1、因果图定义

因------输入条件

果------输出结果

2、适用场景

描述多种条件组合

产生多个动作

3、基本符号

恒等:若原因出现,则结果出现。若原因不出现,则结果也不出现

非:若原因出现,则结果不出现。若原因不出现,则结果也出现

或:有多个原因,若几个原因中有一个出现,则结果出现。若几个原因中都不出现,则结果不出现

与:有多个原因,若几个原因中都出现,则结果才出现。若其中一个原因中不出现,则结果不出现

4、约束条件

原因

互斥 E: a、b、c 只能有一个成立,但是可以都不成立

包含 I: a、b、c 中至少有一个成立

唯一 O: a、b、c 有且仅有一个成立

要求 R:如果 a 成立,则要求 b 也必须成立,其他不约束

结果

屏蔽 M:如果 a 成立,则要求 b 不成立,其他不约束

互斥与唯一 区别

互斥:可以都不成立

唯一:有且仅有一个成立

5、基本步骤
  • 找出所有输入条件(因)

  • 找出所有的输出条件(果)

  • 明确所有输入条件之间的制约以及组合关系

  • 明确所有输出条件之间的制约以及组合关系

  • 找出什么样的输入条件组合会产生那种输出结果

  • 把因果图转换为判定表

  • 为判定表的每一列表示的情况设计测试用例

6、案例
(一)交通一卡通自动充值软件系统


需求解释

系统只接受 50 或 100 元纸币,一次只能使用一张纸币,一次充值金额只能为 50 或 100 元。

在投币后面选择 50 的按钮,代表投入 50 元纸币, 按 100 元按钮,代表投入 100 元纸币。

若按 50 元按钮,并选择充值 50 元,完成充值,提示充值成功。

若按 50 元按钮,并选择充值 100 元,提示输入金额不足,退回 50 元。

若按 100 元按钮,并选择充值 50 元,完成充值,提示充值成功,退回 50 元。

若按 100 元按钮,并选择充值 100 元,完成充值,提示充值成功。

若按投币后在规定时间内不选择充值按钮,提示错误,退回纸币。

若选择充值按钮后不按投币按钮,提示错误

输入

1、选择投币 50 元

2、选择投币 100 元

3、选择充值 50 元

4、选择充值 100 元

结果

a.完成充值

b.提示充值成功

c.退回纸币

d.充值错误

输入关系

输出结果关系

输入和输出关系

转化测试用例

用例编号测试点测试步骤预期结果
1投50元充50元1、点击投币50元按钮 2、点击充值50元按钮充值成功并退卡,提示充值成功
2投50元充100元1、点击投币50元按钮 2、点击充值100元按钮提示输入金额不足,并退回50元
3投100元充50元1、点击投币100元按钮 2、点击充值50元按钮完成充值成功并退卡,提示充值成功,找零50元
4投100元充100元1、点击投币100元按钮 2、点击充值100元按钮充值成功并退卡,提示充值成功
5投50元不充值1、点击投币50元按钮 2、不点充值按钮提示错误,找零50元
6投100元不充值1、点击投币100元按钮 2、不点充值按钮提示错误,找零100元
7不投币点击充值50元1、不点投币按钮 2、点击充值50元按钮提示错误
8不投币点击充值100元1、不点投币按钮 2、点击充值100元按钮提示错误

正交法

1、正交实验法介绍

正交表表现形式如下

行数(Runs):代表测试用例的个数

因素数(Factor):在一项试验中,被考察的变量就被称为因素

水平数(Levels):因素的值

2、基本步骤
  • 确定有哪些因素?

  • 确定每个因素有几个水平?

  • 选择合适的正交表。

  • 把变量的值映射到表中。

  • 加上认为可疑且没有在表中出现的组合。

3、案例
(一)字符属性设置程序

字体:仿宋、楷体、华文彩云

字符样式:粗体、斜体、下划线

字体颜色:红色、黑色、绿色

字号:20号、30号、40号

步骤1

确定因素(字体、字体样式、颜色、字号) 因素=4

步骤2

确定水平(每个因素有3个水平) 水平=3

步骤3

选择合适的正交表

步骤4

把变量映射到表中

列号1234
试验号
1仿宋粗体红色20号
2仿宋斜体黑色30号
3仿宋下划线绿色40号
4楷体粗体黑色40号
5楷体斜体绿色20号
6楷体下划线红色30号
7华文彩云粗体绿色30号
8华文彩云斜体红色40号
9华文彩云下划线黑色20号

(二)【系统管理】→【岗位管理】页面中的搜索组合条件

搜素模块截图

步骤1

确定因素(岗位编码、岗位名称、岗位状态) 因素=3

步骤2

确定水平(每个因素最大有3个水平) 水平=3

步骤3

选择合适的正交表(正交表无合适的,取大不取小)

步骤4

把变量映射到表中

公式:L9(3的4次方)

因素岗位编码岗位名称岗位状态
1所有
2不填不填正常
3不填停用
4停用
5不填不填所有
6不填正常
7正常
8不填不填停用
9不填不填所有

场景法

1、概念

场景法模拟用户操作软件时的场景

基本流:按照正确的业务流程来实现一条操作路径

备选流:导致程序出现错误的操作流程

2、基本步骤

场景法的典型应用偏重于大的业务流程

目的是用业务流把各个孤立的功能点串起来

避免陷入功能细节忽视业务流程要点的错误倾向

3、案例
3.1 图书管理系统

下图给出了某公共图书管理系统的用例图和用例规约表

用例规约编号UC001
用例规约名称注册用户
参与者借阅卡办理人员
用例规约说明用例起始于卡办理人员接受读者的办卡请求
前置条件卡办理人员经过身份验证
后置条件保存读者信息,并分发一张对应的借阅卡

第一步分析基本流和各项备选流

参与者动作系统动作
1.卡办理人员在注册界面中录入读者的登记信息2.系统对录入信息进行有效性检验
3.系统验证读者注册证件号具有唯一性
4.卡办理人员录入借阅卡卡号,并收取押金,确认信息提交5.系统验证卡号的有效性
6.系统向读者信息表中增加一条读者信息,并将借阅卡卡号与读者进行对应后显示成功界面
7.卡办理人员将借阅卡和押金收据交于读者

2.系统检查录入信息存在问题,则提示用户相应信息,系统返回到注册界面

3.系统发现读者有效证件号已经存在于已注册的读者信息中,则提示用户“该证件号已经被注册”,系统返回原有注册界面。

4.卡办理人员取消办卡过程,则系统提示用户是否确实要取消操作

  • 如果卡办理人员确认“取消”操作,则系统返回到初始注册界面

  • 如果卡办理人员取消“取消”操作,则系统保持原有注册界面

5.系统发现卡号无效,提示重新输入。

根据以上分析,确定基本流和备选流,如下表所示

基本流录入信息有效性检查、证件号的唯一性检查、卡号的有效性检查、生成借阅关系
备选流 1录入信息存在问题
备选流 2证件号已注册
备选流 3取消办卡操作
备选流 4卡号无效

生成注册用户的场景,如下表所示

场景描述基本流备选流
场景 1:成功注册基本流
场景 2:信息存在问题基本流备选流 1
场景 3:证件号已注册基本流备选流 2
场景 4:取消办卡操作基本流备选流 3
场景 5:卡号无效基本流备选流 4

矩阵

3.2 登录系统界面

以登录系统界面为例,业务流程如图

流程图

分析题目,列出基本流和备选流

登录系统的场景

登录系统的用例矩阵

边界值

1、概述

测试用例来自于等价类的边界,是等价类划分法的补充。

根据边界值划分法,等价类分析法中的测试数据不是选取等价类中的典型值或任意值,而是应当选取正好等于刚刚大于刚刚小于边界的值作为测试数据。

  • 对于 int 类型的整数而言,-2 的 15 次方 和 2 的 15 次方 -1 是它的边界,也就是 -32768 和 32767 是边界;

  • 对于屏幕的光标焦点来说,屏幕上光标的最左上、最右下的位置是它的边界;

  • 对于报表来说,报表的第一行和最后一行是它的边界;

  • 对于数组来说,数组元素的第一个和最后一个是它的边界;

  • 对于循环条件来说,循环的第 0 次、第 1 次和倒数第 2 次以及最后一次是它的边界。

2、应用场景

输入(输出)条件规定了取值范围或值的个数;

程序规格说明书中提到的输入或输出是一个有序的集合;

可以通过分析找出程序的边界。

3、上点、离点、内点的确定

上点:边界上的点,区间的终点值。

离点:离上点最近的点称为离点。开区间的离点,就是开区间中 上点 内侧紧邻的点。闭区间的离点,就是闭区间中 上点 外侧紧邻的点。

内点:上点之间(域范围内)的任意一点。

闭区间(边间两个值包括在内如,[a,b] )

开区间(边界的两个值不包括在内,如(a,b))

半开半闭区间(闭区间一边的值包括在内,开区间一边的值不包括在内,如(a,b])

4、步骤

第 1 步:根据等价类划分有效及无效等价类,确定上点、离点及内点,每个点统一编号。

第 2 步:设计一个新的测试用例,使其尽可能覆盖所有尚未覆盖的有效等价类,直到所有有效等价类完全覆盖。

第 3 步:设计一个新的测试用例,使其仅覆盖一个无效等价类,直到所有无效等价类完全覆盖。

5、案例

如有一个用户名输入框,取值范围是:用户名在 6-18 位之间。那么:

上点:区间的端点值,6、18

内点:边界上有效范围内的任意一点,10

离点:离上点最近的点,根据上述情况也分为3种,如下:

大纲法

1、基本内容

大纲法是一个迭代过程

大纲是一种组织思维的工具,它汇集了需求文档的核心内容,大纲的每项都可以根据测试人员的喜好以逻辑形式分组。

通常我们会将需求转换为大纲树的形式,如下图所示:

就是通过列大纲的方式,检测未被覆盖的功能点,从而发现系统的缺陷。

错误推断法

1、基本内容

错误推测法是经验丰富的测试人员喜欢使用的一种测试用例设计方法。

错误推测法就是基于经验直觉推测程序中所有可能存在的各种错误,有针对性地设计测试用例的方法。也就是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据这些情况选择测试用例。

  • 31
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件测试用例是软件测试中的重要组成部分,用于验证软件系统是否满足预期的功能和性能要求。一个完整的测试用例应包含以下要素: 1. 测试目标:明确测试的目标和目的,例如验证某个特定功能是否正常工作,或者检查系统的性能是否符合要求。 2. 输入数据:确定测试用例所需的输入数据,包括正常情况下的输入和边界情况下的输入。输入数据应能够覆盖系统的各种情况和可能出现的错误。 3. 预期输出:定义测试用例的预期输出结果,即在给定输入数据下,系统应该产生的正确输出。这可以是具体的数值、状态或者错误信息。 4. 执行步骤:描述测试用例的执行步骤,包括准备测试环境、输入数据、执行操作和验证结果等。步骤应该清晰明确,以确保测试的可重复性。 5. 预期结果:根据预期输出,定义测试用例的预期结果。这是一个判断标准,用于判断系统在执行测试用例后是否符合预期。 6. 实际结果:在执行测试用例后,记录实际的输出结果。这是一个与预期结果进行对比的依据,用于判断系统是否通过了测试。 7. 测试环境:指定测试用例所需的测试环境,包括硬件、操作系统、数据库等。测试环境应与实际生产环境尽可能接近,以确保测试的准确性。 8. 前置条件:定义测试用例执行前需要满足的条件,例如特定的数据状态、系统配置等。这些条件应该在执行测试用例前进行准备。 9. 后置条件:定义测试用例执行后的状态,例如数据库中的数据是否被修改、系统是否回到初始状态等。这些条件应该在执行测试用例后进行验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值