一 什么是测试用例

1.1 测试用例的定义

1.2 测试用例模板和包含的内容

1.3 设计测试用例的作用

简单的说,测试用例就是:

  • 设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的预期结果。
  • 如果程序在这种情况下不能正常运行,而且这种问题或重复发生,那就表示软件测试人员已经测出软件有缺陷,这时候就必须讲这个问题标示出来,并且通知软件开发人员。软件开发人员接获通知候,将这个问题修改完成于下一个测试版本内。
  • 软件测试工程师取得新的测试版本后,必须利用同一个用例来测试这个问题,确保该问题已经修改完成。

二 测试用例模板

测试用例编号 标识符(用例编号):一般编号规则:TestCase_项目名称_模块名称_功能名称_序号
测试标题 测试的目标:预期结果(测试点)
依赖用例 一般功能流程上,下游的功能测试依赖于上游的功能测试的用例。例如:增加了一个数据的测试用例,将会被删除该数据的测试用例依赖。
测试步骤 用最朴实的语言,写出来软件的操作步骤。要尽量详细。例如,在用户名文本框输入:XXX;在省份下拉列表选择:北京 城市下拉列表选择:北京
输入数据 单独整合测试数据。必须和测试步骤中的数据保持一致
预期结果 准确、对象的准确,内容的准确性。原则上每一个操作,都要有一个结果。在重要的步骤之后,设定预期结果。例如:页面跳转到XXX;程序弹出对话框,提示:用户名或密码错误,请重新输入!一般和测试目的密切相关。测试目的决定了测试步骤和预期结果。
测试结果 要求在测试执行完成后添加。没有执行保持为空。测试结果只有两个:通过/失败;pass/failed。和预期结果一致即为通过;不一致即为失败
测试人
备注

测试用例应该包含以下内容:

  • 标识符:由测试设计过程说明和测试程序说明引用的唯一标识符。
  • 测试项:描述被测试的详细特性、代码模块等,应该比测试设计说明中所列的特性更加具体。还要指出引用的产品说明书或者测试用例所依据的其他设计文档。
  • 输入说明:说明列举执行用例的所有输入内容或者条件
  • 输出说明:描述进行测试用例预期的结果。
  • 环境要求:是指执行测试用例必要的硬件、软件、测试工具、人员等。
  • 特殊要求:描述执行测试必须的特殊要求
  • 用例之间的依赖性:如果一个测试用例依赖于其他用力,或者受其他用例的影响,就应该在此注明。

三 用例设计和编写的作用

  • 有效性:测试用例使测试人员测试过程中的重要参考依据
  • 可复用性:良好的测试用例具有重复使用的功能,是的测试过程事半功倍,提高测试效率。
  • 易组织性:即使是小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数月甚至几年的测试过程中被创建和使用。
  • 可评估性:从测试的项目管理角度来说,测试用例的通过率是检验代码质量的保证。
  • 可管理性:测试用例也可以作为检验测试人员进度、工作量以及跟踪/管理测试人员的工作效率的标准。

四 黑盒测试用例设计方法

1. 黑盒测试用例设计方法概述

2. 等价类划分法

2.1 等价类划分法原理

  • 把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性的数据作为测试用例
  • 每一类中的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。
  • 反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。

2.2 等价类划分法设计步骤

2.2.1 确定等价类的原则

  • 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类

例如:一个文本框规定,输入字符个数为3~18位。

一个有效等价类:范围内个数

两个无效等价类:个数小于6;个数大于18

  • 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。

例如:请输入11位的手机号。

一个有效等价类:11位

一个无效等价类:不是11位

  • 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类

布尔量:表示“真”或者“假”

  • 在规定了输入数据的一组值(假定N个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类

例如:登录重要输入用户名和密码

  • 在规定了输入数据必须遵守的规则的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)

例如:用户名要求:6~18,由字母、数字、下划线组成;字母区分大小写;

  • 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

2.3 等价类划分法适用场景

针对:需要有大量数据测试输入,但是没法穷举测试的地方

  • 输入框
  • 下拉列表
  • 单选和复选框

典型代表:页面级的输入框类测试

3. 边界值分析法

  • 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
  • 如果输入条件规定了值的个数,则用最大个数、最小个数、比这个最小个数少1,比最大个数多1的数作为测试数据
  • 分析规格说明,找出其他可能得边界条件。
  • 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
  • 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。

3.1 边界范围节点

  • 选取正好等于,刚好大于、刚好小于边界的值作为测试数据
  1. 上点:边界上的点(正好等于)
  2. 离点:距离上点最近的点(刚好大于、刚好小于)
  3. 内点:范围内的点(区间范围内的数据)

3.2 案例一:

需求;通过边界值法验证QQ号码的合法性

要求:6~10位自然数

3.3 使用场景

  • 场景词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
  • 典型代表:有边界范围的输入框类测试

3.4 总结

边界值可以覆盖等价类的长度,但是无法覆盖类型,所以设计用例时,必须两者结合。

五、测试步骤

等价类划分法用来筛选数据,而测试步骤的设计方法主要有因果图法、

5.1 因果图法

  • 因果图法是一种适合于描述对于多种输入条件组合的测试方法
  • 根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法
  • 它适用于检查程序输入条件涉及的各种组合情况。

第一步:根据功能说明书中规定的原因和结果之间的关系画出因果图。

原因和结果的关系:

  • 恒等:原因A成立,结果B一定成立
  • 非:原因A成立时,结果B一定不成立
  • 或:原因A、B、C三者只要有一个成立,结果D就一定成立
  • 与:原因A、B、C斗殴成立时,结果D才会出现。

第二步:根据功能说明在因果图中加上约束条件

  • 其中互斥、包含、唯一、要求时对原因的约束,屏蔽是对结果的约束。他们的含义如下
  • 互斥:表示不同时为真,即a,b,c中至多有一个为真。
  • 包含:表示至少有一个为真,即a,b,c不能同时为假
  • 唯一:表示a,b,c中有且仅有一个为真
  • 要求:表示若a为真,则b必须为真。即不可能a为真且b为假
  • 屏蔽:表示若a为真,则b必须为假

六、因果图法实例

  • 阅读和分析功能说明书,识别出"原因"和"结果",并加以编号
  • 案例:有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,他的软件规格说明如下。
  1. 若投入5角钱的硬币,按下"橙汁"或"啤酒"的按钮,则相应的饮料就送出来。
  2. 若投入1元的硬币,同样也是按"橙汁"或者"啤酒"的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。

6.2 根据需求说明书找出原因-结果关系

原因 结果
投5角 橙汁
投1元 啤酒
选橙汁 找零5角
选啤酒

6.3 根据原因-结果关系画出因果图

因果图使用中的局限性:当原因和结果很多的时候,它们之间的关系连线就会很多,导致因果图的可读性变差。因此局部的小功能(原因和结果不是很多的时候)分析。

6.4 列出所有的原因和结果的列表,设计初步的测试用例步骤

case1 case2 case3 case4 case5 case6
投币 投5角 1 1 1
投一元 1 1
按钮 选橙汁 1 1
选啤酒 1 1
结果 出橙汁 1 1
出啤酒 1 1 1
找零 1 1

Case5,Case6这是一种bug,不能做测试设计。因果图的优势在于能够发现设计中存在的不足。

经过分析发现:

1)只选择银联,没有投币的时候,软件没有任何结果

2)只投币,没有选择饮料的时候,软件也没有任何的结果。

3)我们不能吧软件的缺陷设计成测试用例。

6.5 设计用例

测试用例编号 测试项 依赖用例 测试步骤 输入数据 预期结果 实际结果 测试人 备注

软件测试理论-测试用例和设计方法相关推荐

  1. 【软件测试】 测试用例的设计方法大全

    1.测试用例的八要素 用例编号:用于标识当前的用例,具有唯一性和易识别性 测试项目:对当前测试用例的子项有进一步说明的作用 测试标题:简单说明测试的目的,便于他人理解 重要级别:一般分为高.中.低三个 ...

  2. 软件测试(4) 测试用例和设计方法

    文章目录 1 测试用例 1.1 测试用例的定义 1.2 用例设计和编写的作用 2 测试用例编写注意事项 3 黑盒测试用例设计方法 3.1 测试数据选择 等价类划分法 边界值分析法 实战案例 3.2 测 ...

  3. 【软件测试】测试用例的设计方法

    文章目录 1. 测试用例的概念 2. 设计测试用例的好处 3. 基于需求设计测试用例 3.1 功能性需求 3.2 非功能性需求 4. 设计测试用例的具体方法 4.1 等价类 4.2 边界值 4.3 错 ...

  4. 软件测试学习笔记:测试用例的设计方法(全)

    测试用例的设计方法(全) 等价类划分方法: 一.方法简介 1.定义 2.划分等价类: (1)有效等价类 (2)无效等价类 3.划分等价类的标准: 4.划分等价类的方法 5.设计测试用例 二.实战演习 ...

  5. 学习软件测试(三)测试用例、测试用例的设计方法(等价类划分法、边界值分析法、判定表法、因果图法、正交排列法、场景法、错误推测法)

    目录 测试用例 测试用例八大要素 测试用例的设计方法 等价类划分法 等价类操作步骤 边界值分析法 边界范围 边界值法的操作步骤 案例1 案例2 判定表法 为什么使用判定表法 判定表法的四个组成部分 判 ...

  6. (转)测试用例的设计方法(全)之三 判定表、正交实验

    测试用例的设计方法(全)之三 (5)判定表驱动分析方法 一.    方法简介 1.定义:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具. 2.判定表的优点 能够将复杂的问题按照各种可能的情况全 ...

  7. 测试用例的设计方法(全)

                                                 测试用例的设计方法(全) 等价类划分方法: 一.方法简介 1.定义   是把所有可能的输入数据,即程序的输入域 ...

  8. 测试用例的设计方法及案例

    测试用例的设计方法 一.软件测试的生命周期(软件测试的流程是什么?) 二.如何描述一个BUG? 三.测试用例的设计方法 3.1等价类 3.2边界值法 3.3因果图法 3.4场景设计法 3.5正交排列法 ...

  9. (转)测试用例的设计方法(全)之二 错误推断、因果图

    测试用例的设计方法(全)之二 (3)错误推测方法 一.    方法简介 1.         定义:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法. 2.      ...

  10. 3.4 黑盒测试用例的设计方法 之 等价类划分与边界值分析

    3.4 黑盒测试用例的设计方法 具体的黑盒测试用例设计方法包括等价类划分法.边界值分析法.场景法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法等. 这些方法是比较实用的,但采用什么方法 ...

最新文章

  1. Eclipse 导入 Tomcat 源码
  2. Android UI(继承控件)--PopupWindow设置动画
  3. MyBatis动态SQL底层原理分析
  4. linux 多域名绑定
  5. access没有使用 对象的必要权限_厨房有没有必要安燃气报警器 使用燃气要注意哪些安全性措施...
  6. 初识Visual Studio 2010(四)—— 创建ASP.NET网站
  7. super()的作用
  8. matlab 6.5 vc6,MATLAB6.5 与 VC6.0混合编程中的 VC6.0的设置
  9. NC5.X系列单点登录
  10. 向对话框传递数据DialogBoxParam;获取对话框返回的数据DialogBox;EndDialog;强制转换;
  11. ncl 添加点shp文件_NCL绘制中国地图
  12. 哈希碰撞,改变世界的原力
  13. 杭州最新公交线路一览(41-50)
  14. Spring项目中自定义注解的使用
  15. 前端开发中常用的几种设计模式
  16. Flutter 中 GestureDetector 的使用误区
  17. 苹果x与苹果xs的区别_苹果Xs相比苹果X,两者谁更值得入手?用户:苹果X宝刀未老!...
  18. Hadoop生态圈(十六)- HDFS Snapshot快照详解
  19. IT培训机构如何选择?选择IT培训机构3大误区
  20. e级超级计算机济南,国之重器!神威E级原型机8月将在国家超级计算济南中心落地...

热门文章

  1. OpenCV源码解析之动态内存管理CvMemStorage与CvSeq
  2. Qt 定制字体选择 QFontComBobox
  3. DPDK-VPP 学习笔记-02
  4. Windows/Linux/Solaris 软中断处理机制
  5. ThrealLocal原理讲解
  6. LLDP发现相邻设备失败分析
  7. c++ 多字节 转换为 unicode
  8. java构建编译区别_构建与编译(Java)
  9. Tensorflow车牌识别完整项目(含完整源代码及训练集)
  10. Go专栏“改善Go语言编程质量的50个有效实践”上线了