测试用例编写是软件测试的基本技能;也有很多人认为测试用例是软件测试的核心;软件测试中最重要的是设计和生成有效的测试用例;测试用例是测试工作的指导,是软件测试的必须遵守的准则。

在这里我们不讨论以上的各种观点,但是综上所述,大家可以看出,测试用例编写这项软技能非常重要且是测试人的必备技能,相信很多人没有质疑。

下面我们介绍下测试用例编写。

我们将用例编写分为黑盒用例编写和白盒用例编写两大类。

总体编写思路:

黑盒测试用例(优先)+ 白盒测试用例(补充)=完整测试用例

总体编写策略:

对于测试用例编写来说,常用的四种方法基本就够用了,等价类、边界值、正交实验法、错误推断法,辅以场景测试法、需求/设计转换法、探索式测试思想,可以应付绝大多数产品的测试。个别的产品还需要在某一点细化和扩充,需要就事论事。

使用各种编写方法的综合设计策略

1) 在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。

2) 必要时用等价类划分方法补充一些测试用例,尤其注意无效等价类情况。

3) 如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法(或判定表法、正交试验法)。

4) 用错误推测法再追加一些测试用例,主要是利用测试经验。

5) 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例;参照白盒用例编写。

6) 对程序的应用场景进行研究和思考,增加不同场景下的测试用例;用户场景测试必须重视,很大一部分程序错误就是因为测试场景与用户真实场景的差异性带来的。

7) 对业务和程序有更深的理解之后,可以充分发挥发散思维和探索式想法;大家不要误解探索式测试就是漫无目的的测试,其实探索式测试有非常详细的测试指导思路。

黑盒用例编写

常见的方法如下:

等价类

边界值

因果图

判定表驱动法

正交实验法

功能图法

场景实验法

错误推断法

需求转化

设计文档

探索式测试

1、黑盒 - 等价类

等价类:选取少数有代表性的数据,这一类数据等价于这一类的其它值;找出最小的子集,可以发现最多的错误;

两大特性:必须设计的用例;涵盖了大部分情况;

两类情况:有效等价类;无效等价类;

转化为测试用例:

1、按照输入条件、有效等价类、无效等价类建立等价类列表,列出所有的等价类;

2、为每一个等价类固定一个编号;

3、设计一个测试用例,使其覆盖一个或多个有效的等价类;

4、设计一个或更多的测试用例以覆盖剩余的有效等价类;

使用场景:输入条件(取值范围/值个数;必须值集合;布尔值;一组处理值;必须遵守的规则;再细分更小等价类;)

等价类举例:

以三角形测试为例:输入 3 个整数作为三角形的三个边,通过程序判定三角形的类型。

2、黑盒 - 边界值

边界值:所谓边界条件,是指输入和输出等价类中那些恰好处于边界、超过边界、或在边界以下的状态 ;

两个特征:选择一个或多个元素,以便等价类的每一个边界都经过了测试;与仅仅关注输入条件不同,还需要考虑结果空间(输出等价类)设计测试用例;

边界条件可能非常微妙,因此把他们确定下来煞费心思;

使用场景:输入 + 输出都需要考虑(值的范围;值个数;有序集合;内部数据结构;分析规格说明;)

边界值举例:

以三角形测试为例:输入 3 个整数作为三角形的三个边,1

3、黑盒 - 因果图

因果图:输入条件的组合进行分析。用一个系统的方法选择出高效的测试用例集;

分析思路:

1、分析规格说明描述,确定原因和结果,并赋予标识符;

2、分析规格说明语义,找出原因与原因之间,原因与结果之间关系,画出因果图;

3、有些原因与原因之间,原因与结果之间组合不会出现,用记号表明约束或限制条件;

4、因果图转换为判定表;

5、判定表的每一列作为依据,设计测试用例;

使用场景:必须考虑输入条件的各种组合(一种适合于描述多种条件的组合、相应产生多个动作的形式来进行设计);

4、黑盒 - 判定表

判定表:分析和表达多逻辑条件下执行不同操作的情况的工具 ;略过因果图的绘制,直接列出所有组合进行筛选;

分析思路:判定表通常有四个部分组成:条件桩、动作桩、条件项、动作项;

判定表的建立步骤:(根据软件规格说明)

确定规则个数;列出所有条件桩和动作桩;填入条件项;填入动作项,得到初始判定表;简化合并相似规则;

使用场景:控制类和游戏。优点是能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,也可避免遗漏。缺点是不能表达重复执行的动作,例如循环结构。

5、黑盒 - 正交试验法

正交实验法:利用因果图来设计测试用例时, 输入原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到;往往因果关系非常庞大,以至于测试用例数目巨大,为了有效地、合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。

分析思路:

1、提取功能说明,构造因子 -- 状态表 ;

2、加权筛选,生成因素分析表 ;

3、利用正交表构造测试数据集 ;

使用场景:必须考虑输入条件的各种组合(从大量的数据中挑取适量、有代表性的点,合理有效的测试);

6、黑盒 - 场景实验法

场景实验法:软件几乎都是由事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果形成事件流;生动的描绘出事件触发时的情景,有利于设计用例,同时测试用例也更容易的得到理解和执行。

分析思路:

每条路径都反映了基本流和备选流;基本流是最简单的路径;备选流自基本流开始,会有特定条件下加入并执行,可能有多种情况;

使用场景(0 代表基本流):0;0+1;0+1+2;0+3;0+3+1;0+3+1+2;0+4;0+3+4;…

7、错误推断法

错误推断法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法;更多的与用户的使用习惯及测试程序中的常见问题为主。

分析思路:

列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据这些情况选择测试用例;

注意积累与分享;

使用场景:任何测试、任何情景下都会用到的方法。

有常用的测试用例集,可以参照。

举例:数字输入验证,分别输入数字 (正数、负数、零值、单精度、双精度)、字符串、空白值、空值、临界数值;不合法的输入,系统给出必要的判断提示信息;

8、黑盒 - 需求转换法

需求转换法:根据需求,执行需求分析,并编写测试用例。

分析思路:

将需求转换为思维导图;

仔细推敲每一个字的含义;

与用户的使用场景和目的结合;

严格设计每一个用例;

可以建立一种模型,进行需求转换;

使用场景:任何测试、任何情景下都会用到的方法。

注意:需求的变更带来的影响;需求理解偏差带来的影响;需求含糊不清带来的影响等;

9、黑盒 - 设计文档

设计文档:参照设计文档,可以理解软件系统内部设计流程及处理机制,对比写好的测试用例,可以在对应功能及模块处新增;

分析思路:

仔细阅读设计文档;

与相关人员沟通实现机制;

结合测试用例编写方法,对比之前写好的用例;

使用场景:任何测试、任何情景下都会用到的方法。

注意:设计文档的编写正确性;设计文档的理解偏差;

10、黑盒 - 探索式测试法

探索式测试法:无限创意的测试点,永无止境的探索测试;我们要在测试的最前沿发挥洞察力、技术及应变措施,找出产品的缺陷;

分析思路:

局部探索式测试;全局探索式测试;混合探索式测试;

使用场景:任何测试、任何情景下都会用到的方法。像漫游一样,自由地寻找软件中的缺陷,软件测试的未来必然有探索式测试。

软件测试黑盒用例文档,看完这篇黑盒测试用例编写教程,我豁然开朗相关推荐

  1. java与python难度对比_Python和Java的区别,看完这篇文章你就清楚啦

    众所周知,在数不清的编程语言中Java自诞生之日起长盛不衰,可谓是神话般的存在.随着人工智能时代的到来,Python迅速席卷全球,作为当下最热门的编程语言,因其简单实用且应用场景广泛备受青睐. 一个是 ...

  2. 学习Nginx,看完这篇超详细的文章就够了

    目录 本文简介 一.Nginx的基本概念 1.1.Nginx是什么? 1.2.Nginx能帮助我们做些什么? 1.3.Nginx的特性 二.Nginx的安装 2.1.环境介绍 2.2.安装Nginx ...

  3. PDF图片怎么提取?看完这篇你就会了

    我们经常都会以PDF的形式进行各种文档文件的保存,因为它便于我们在不同的设备上查阅以及打印.有时候我们会需要将PDF的图片进行提取,这时候各位小伙伴都会怎么操作呢?是一张张图片进行复制吗?如果图片多的 ...

  4. 互联网黑话最全收录|还在说大白话?看完这篇包你成为职场“社牛”

    文章目录 互联网黑话是怎么产生的? 互联网黑话是好是坏? 互联网黑话入门级教学指南 写在最后 刚刚加入字节时,比起高强度.快节奏的工作,最先迎面而来的不适应居然是--沟通障碍! "你说这话的 ...

  5. Dart语言基础,看完这篇文章就够了(二)

    文章内容是我在学习Flutter过程中对知识点的梳理和总结.如有不对的地方,欢迎指出. 本文承接Dart语言基础,看完这篇文章就够了(一),进一步了解Dart语法知识. 文章目录 1 流程控制语句 2 ...

  6. 怎么合并多个PDF文件?看完这篇你就会了

    我们在学习工作中,会接触到大量的PDF文件.当这些PDF文件多起来后,我们很难在这其中找到自己想要的文件.其实我们可以使用软件,将内容有关联的PDF文件合并到一起,这样子就可以减少PDF文件的数量.那 ...

  7. 程序员要怎么高效学习Java,大学生or小白的你看完这篇的你离BAT又近了一大步

    这篇文章大体上会从以下几个部分展开: 认清自己. 学习目的. 时间管理. 学习方法. 学习的步骤. 获取知识的途径 影响学习的几个因素 自己的心态. 外物的影响. 其他想说的 大学生的学习 一些感悟 ...

  8. 如何免费将pdf转word?看完这篇你就会了

    pdf是我们学习工作中,经常会接触到的一种文件格式.通常我们都会以这种pdf格式来传输文件,因为它可以确保在不同的设备上打开以及不会出现文件内容格式错乱的情况.可是当我们需要对它的内容进行修改时,就有 ...

  9. 看完这篇文章学会epub批量转txt

    epub是什么?可能很多没接触过的小伙伴不知道这是什么东西,但是对于那些喜欢看电子小说的朋友来说那可能就不陌生了. epub是一种电子出版文件,它的阅读效果非常好,但是因为这种格式在电脑上不是很通用, ...

最新文章

  1. Spoooooky CSS 选择器
  2. 在活动目录中,转移和占用操作主机角色(占用)
  3. 连发10篇SCI!徐州二本学霸全奖直博香港城大引热议
  4. Linux常用的基本命令02
  5. FPGA之道(21)HDL语言的选择
  6. windows下安装ubuntu 12.04---利用ubuntu的iso包中的wubi.exe工具安装
  7. MyBatis 源码分析-技术分享
  8. 深度学习(25)随机梯度下降三: 激活函数的梯度
  9. owin 怎么部署在云中_使用Boxfuse轻松在云中运行Spring Boot应用程序
  10. 云服务器与传统服务器的优劣对比_为什么选择海外云服务器和香港云服务器
  11. 【Java与智能设备】 CH05_2 Intent启动内置程序
  12. 【JavaScript学习笔记】计算机编程基础
  13. 逻辑漏洞(基本概念、爆破)
  14. SOCKS5协议的原理和应用
  15. 2021最新的NVIDIA显卡排行榜前十
  16. python开三次方_用python计算三次方根
  17. 2.5css ps切图、
  18. 微信企业号手机端清理缓存
  19. vmware虚拟机安装win7_VMware虚拟机安装教程打造一机多系统(干货收藏)
  20. JavaScript 面向对象(二)——案列篇

热门文章

  1. linux中直接修改jar包内配置文件
  2. 基于html+css3酷炫动态罗盘时钟特效
  3. HTML中input标签和button标签区别
  4. 怎样把几个pdf合并成一个?几个pdf文件怎么合并为一个?
  5. 内网DDOS***一例
  6. hadoop可能会遇到的问题
  7. QQ好友分组添加好友(UITableView实现)
  8. NRF52832学习笔记(38)——修改发射功率
  9. CSS设置字体——异体和粗细
  10. cocos 角度转弧度 转角度 转向量 函数