关键词:等价类划分法      边界值分析法      因果图法      判定表驱动分析法      场景法

一、等价类划分法

(1)设计测试用例

在确立了等价类后(等价类中元素的处理方式不同时,需要进一步划分),可建立等价类表,列出所有划分出的等价类输入条件:有效等价类、无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例:

1)为每一个等价类设置一个唯一的编号;

2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;

3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。

等价类的设计法

(2)实例

某程序规定:"输入三个整数a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 … "。用等价类划分方法为该程序进行测试用例设计。

分析题目中给出和隐含的对输入条件的要求:  (成功完成业务流程,所涉及的所有要素)三个整数由于处理方式不同需继续划分:三个整数即三个非零正数。

(1)整数 (2)三个数 (3)非零数 (4)正数输出为三角形,由于处理方式不同需继续划分:一般三角形、等腰、等边。

(5)两边之和大于第三边 (6)等腰 (7)等边

如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一:

1)如果不满足条件(5),则程序输出为 " 非三角形 " 。

2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。

3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。

4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。  列出等价类表并编号

覆盖有效等价类的测试用例:

a      b      c                      覆盖等价类号码

3      4      5                  (1)--(7)

4      4      5                  (1)--(7),(8)

4      5      5                  (1)--(7),(9)

5      4      5                (1)--(7),(10)

4      4      4                (1)--(7),(11)

覆盖无效等价类的测试用例:

二、边界值划分法

(1)定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

边界值的设计法

(2)常见的边界值

(3)设计测试用例的原则

1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。 (例如,如果程序的规格说明中规定:"重量在10公斤至50公斤范围内的邮件,其邮费计算公式为……"。作为测试用例,我们应取10(有效等价类边界值)及50(有效等价类边界值),还应取10.01(有效等价类),49.99(有效等价类),9.99(无效等价类边界值)及50.01(无效等价类边界值)等。)

2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。 (比如,一个输入文件应包括1~255个记录,则测试用例可取1和255,还应取0及256等。)

3)将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。 (例如,某程序的规格说明要求计算出"每月保险金扣除额为0至1165.25元",其测试用例可取0.00及1165.24、还可取一0.01及1165.26等。 再如一程序属于情报检索系统,要求每次"最少显示1条、最多显示4条情报摘要",这时我们应考虑的测试用例包括1和4,还应包括0和5等。 )

4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。

5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。

6)分析规格说明,找出其它可能的边界条件。

案例:基于等价类/边界值划分

需求:

1.身高1.2m以下的儿童免票;

2.身高1.2 ~ 1.4 的儿童半票(含1.2m);

3.年龄在60 ~ 69岁之间的老人半票(含60岁);

4.年龄在70岁以上的老人免票(含70岁);

5.在校学生半票(不含在职学生,电大学生);

6.革命烈士家属,现役军人免票。

我们可以划分等价类为全票、半票和免票;

等价类/边界值

案例:日历等价类/边界值测试

出生年月日的等价类/边界值测试用例设计

三、因果图法

(1)方法简介:是一种利用图解法分析输入的各种组合情况。

(2)因果图中涉及的关系和约束符号

关系因----》果:恒等、非、与A、或V

因-》果

约束因---》因:异E(不能同时为1)、或I(不能同时为0)、唯一0(有且仅有一个为1)、要求R(a是1,b必须是1)

因--》因果---》果:强制M(若结果a为1,结果b强制为0)

(3)因果图法设计用例的步骤:

1)分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件),,并给每个原因和结果赋予一个标识符。

2)分析软件规格说明描述中的语义,找出原因与结果之间, 原因与原因之间对应的关系,根据这些关系,画出因果图。

3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件。

4)把因果图转换为判定表。

5)把判定表的每一列拿出来作为依据,设计测试用例。

(4)实例

有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。

1) 分析这一段说明,列出原因和结果

原因:

1.售货机有零钱找

2.投入1元硬币

3.投入5角硬币

4.押下橙汁按钮

5.押下啤酒按钮

结果:

21.售货机〖零钱找完〗灯亮

22.退还1元硬币

23.退还5角硬币

24.送出橙汁饮料

25.送出啤酒饮料

2)画出因果图,如图所示。所有原因结点列在左边,所有结果结点列在右边。建立中间结点,表示处理的中间状态。中间结点:

11. 投入1元硬币且押下饮料按钮

12. 押下〖橙汁〗或〖啤酒〗的按钮

13. 应当找5角零钱并且售货机有零钱找

14. 钱已付清

3)转换成判定表:

4) 在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。第16列与第32列因什么动作也没做,也删去。最后可根据剩下的16列作为确定测试用例的依据。

四、判定表驱动分析法

(1)定义:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。建立判定表时,要分析规格说明,并识别系统的条件和动作。判定表包含了触发条件,还有各种输入条件‘真’或‘假’的组合以及各条件组合相应的输出动作。

(2)规则及规则合并举例

初始判定表

1)如下图左端,两规则动作项一样,条件项类似,在1、2条件项分别取Y、N时,无论条件3取何值,都执行同一操作。即要执行的动作与条件3无关。于是可合并。“-”表示与取值无关。

2)与上类似,下图中,无关条件项“-”可包含其他条件项取值,具有相同动作的规则可合并。

简化后

案例:用户登录系统

条件:

C1:正确的用户名。

C2:正确的密码。

C3:正确的验证码。

动作如下:

A1:用户名或密码错误。

A2:验证码错误。

A3:进入系统。

判定表设计如下;

调整前

调整后

假设用户名:Kenny,密码:khnygh,验证码:243546

登录系统测试用例

案例:飞机票定价系统

需求:

(1)乘客可以免费托运重量不超过30kg的行李。

(2)假如行李超过30kg,其收费标准为:

头等舱国内乘客:超重部分每千克收费4元。

其他国内乘客:超重部分每千克收费6元。

外国乘客:超重部分每千克比国内乘客多一倍。

残疾乘客:为正常价格的半价。

(3)行李重量超出部分,不满1千克的按照1千克计算。

分析如下:

C1:国内乘客。

C2:超重乘客。

C3:头等舱乘客。

C4:残疾乘客。

金额

A1:免费。

A2:2元。

A3:3元。

A4:4元。

A5:6元。

A6:8元。

A7:12元。

飞机票定价系统测试用例

五、场景法

实例

1)下图所示是ATM例子的流程示意图。

2)场景设计:(首先,确定核心业务功能点;其次,分解出该核心业务功能实现的基本流;最后,分别考虑分支能形成的场景。)

注:为方便起见,备选流3和6(场景3和7)内的循环以及循环组合未纳入上表。

3)用例设计

对于这7个场景中的每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。本示例中,对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。

4)数据设计

一旦确定了所有的测试用例,则应对这些用例进行复审和验证以确保其准确且适度,并取消多余或等效的测试用例。

测试用例一经认可,就可以确定实际数据值(在测试用例实施矩阵中)并且设定测试数据,如表3-10所示。

软件测试用例关键要素,软件测试用例的设计相关推荐

  1. 测试用例八大要素以及设计方法

    测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案.方法.技术和策略.其内容包括测试目标.测试环境.输入数据.测试步骤.预期结果.测试脚本等,最终形成文档.简单地认 ...

  2. 软件测试方法中的黑盒测试用例设计方法有哪些?

    ​​​​​​软件测试方法大的方向就是黑盒测试方法和白盒测试方法. 所谓黑盒测试方法,就是只关心功能,不关心代码实现细节. 所谓白盒测试方法,是关心代码的具体实现,尽可能地覆盖代码. 第三方软件测试-软 ...

  3. 测试老司机浅谈软件敏捷测试是否写测试用例?

    件敏捷测试是否写测试用例 敏捷测试是否写测试用例?答案多种化如果是你,你会选用写还是不用写呢? 软件测试时代风起云涌,问题虽小,意义却大,让大家一起学习一起探讨! 经过大家的水深火热的探讨答案出来了, ...

  4. 软件测试用例项目写作,通用测试用例写作方法

    测试用例工作过程 软件测试用例设计和软件测试用例写作 软件测试用例设计:从设计层面考虑(功能性.可用性.安全性等方面): 软件测试用例写作:指的是软件测试用例的写作规范(格式.标识的命名规范等) 软件 ...

  5. 学UI设计,用对这5款设计软件是关键

    大学四年里因为兴趣,在网上浏览了不少大牛的设计作品和经验分享,开始接触设计行业,掌握了一些设计软件,从而转行进入UI设计行业.今天就根据我的自学经验,和大家一起分享下适合新手尝试的设计软件吧! Pix ...

  6. 树状选择框测试用例_分类树测试用例设计工具:CTE XL

    1.1工具安装 CTE XL是一款免费的分类树测试用例设计工具,安装过程很简单,下载好安装程序后,运行安装程序:如图 点击下一步: 点击下一步: 是否创建桌面按钮: 安装: 安装完成后,需要注册才能获 ...

  7. 软件测试方法——黑盒测试九大用例设计方法

    笔者:风起怨江南 出处:https://blog.csdn.net/JackMengJin 笔者原创,文章转载需注明,如果喜欢请点赞+关注,感谢支持! 导读:面试和工作必备的九大黑盒软件测试方法. 目 ...

  8. 【软件测试】测试用例八要素

    测试用例八要素(根据禅道) 1.测试用例编号 编号是由字母和数字组合而成的,用例的编号应该具有唯一性,易识别性,有且于其和测试结果.错误报告等其他文档的链接.这样看到编号就可以知道是做的什么测试,测试 ...

  9. 软件测试(用例Ⅰ)· 测试用例的基本概念 · 万能公式 · 设计测试用例的方法(等价类、边界值、判定表法、正交法、场景设计法、错误猜测法)

    一.测试用例 基本要素 好处 设计方法 - 万能公式 二.设计测试用例的方法 等价类 边界值 判定表法 正交法 场景设计法 错误猜测法 一.测试用例 基本要素 测试用例(Test Case)是为了实施 ...

  10. 蓝牙耳机测试用例_移动端测试用例设计总结,这些你得懂!

    一.前言 作为移动互联网产品最后一公里的守护者,我们必须要清楚的知道自己该做什么.怎么做.但从版本迭代速度.需求量级.测试人员不断变动等方面综合来看,我们很多人都没有做好充分的准备.测试方法落后.测试 ...

最新文章

  1. 一个简单的缓冲区溢出的思考
  2. 网络抓包工具wireshark and tcpdump 及其实现基于的libpcap
  3. php7 redis长连接,php使用redis长连接有哪些步骤
  4. MULE ESB简介
  5. 将图片序列化和反序列化
  6. workaround for error message Table maintenance not allowed for table XXX
  7. 力扣算法001_两数之和
  8. gprs连接中断记录_请收好!脉搏波血压计连接天天血压APP使用指南
  9. Asp.net页面之间传递参数的几种方法
  10. 微信小程序之下拉刷新,上拉更多列表实现
  11. spacy model
  12. TensorFlow2.0:tensorboard使用
  13. python 动态链接库_Python调用dll动态链接库(下)
  14. java加按钮_用java写一个简单的学生信息管理系统
  15. linux卸载文件挂载,磁盘文件挂载与卸载
  16. 【转载】使用Winrar对压缩文件进行加密,并且给定解压密码
  17. 旋转合并照片墙-特效照片墙
  18. 透明网桥(计算机网络)
  19. COSCon'20 Apache Roadshow- China 精彩收官!|城市回顾篇
  20. java实现蒲福风级_蒲福风力级的意思_蒲福风力级是什么意思_蒲福风力级的近义词_反义词_读音-沪江在线词典...

热门文章

  1. 放两个关于角色与权限的文章供自己参考
  2. java集合复习笔记-java集合继承关系图
  3. android 预优化oat_Android内存优化大盘点
  4. python treeview显示多列_Python tkinter treeview列大小
  5. 地图下载区 哪家好用
  6. 地图标识符号大全_资源小结:中国分省地图大全(10.23版)
  7. mysql酒店客房管理系统的设计_酒店客房信息管理系统的设计实现(MySQL)
  8. OTT系统和IPTV方案哪个更适合用于搭建局域网视频点播直播
  9. dedecms安装kindeditor编辑器
  10. 基于Python的情感分析案例——知网情感词典