测试用例的设计方法

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

一、软件测试的生命周期(软件测试的流程是什么?)

需求分析——测试计划——测试设计/开发——测试执行——测试评估
需求分析对需求进行合理化筛选,分析需求对需求明确细化
测试计划: 测试进行的人员、时间、测试范围、测试目的等具体进行计划
测试设计/开发: 根据需求提炼出的功能点开发测试用例
测试执行 执行测试用例 找BUG 回归测试
测试评估 评估本次测试的情况

二、如何描述一个BUG?

首先BUG就是和需求分析说明书中不匹配的功能,我们在实际测试中就需要将测出来的BUG记录在BUG管理工具(禅道,tapd,jira)里,以便开发人员查看,为了能让开发人员更能清楚的了解到BUG,我们就要规范书写BUG,包含以下内容等
(1)测试版本
(2)测试环境
(3)测试步骤
(4)实际结果
(5)预期结果(和需求一致)
(6)其他附件(错误截图,错误日志等)

BUG的级别:

一. 严重问题(Blocker)
定义: 不能完全满足系统要求,系统停止运行,系统的重要部件无法运行,系统崩溃或挂起等导致系统不能继续运行。修改优先级为最高,该级别问题需要立即修改。

系统崩溃
导致程序重启,死机或非法退出
死循环
数据丢失或异常
数据通讯错误。
硬件故障,系统悬挂

二. 高级问题(Critical)

定义: 严重地影响系统要求或基本功能的实现,且没有更正办法(重新安装或重新启动该软件不属于更正办法)。使系统不稳定、或破坏数据、或产生错误结果,或部分功能无法执行,而且是常规操作中经常发生或非常规操作中不可避免的主要问题,系统无法满足主要的业务要求,性能、功能或可用性严重降低。 修改优先级为高,该级别需要程序员尽快修改。

功能不符合用户需求
数据计算错误
业务流程错误
程序接口错误
因错误操作迫使程序中断;
系统可被执行,但操作功能无法执行(含指令);
功能项的某些项目(选项)使用无效(对系统非致命的);
功能实现不完整,如删除时没有考虑数据关联;
功能的实现不正确,如在系统实现的界面上,一些可接受输入的控件点击后无作用,对数据库的操作不能正确实现。

三. 中级问题(Major)

定义: 系统可以满足业务要求,系统性能或响应时间变慢、产生错误的中间结果但不影响最终结果等影响有限的问题。
修改优先级为中,该级别需要程序员修改。

数据长度不一致
内容或格式错误
响应时间较慢
功能性建议
提示信息不太准确
操作界面错误(包括数据窗口内列名定义、含义是否一致);
简单的输入限制未放在前台进行控制;
虽然正确性不受影响,但系统性能和响应时间受到影响;
不能定位焦点或定位有误,影响功能实现;
增删改功能,在本界面不能实现,但在另一界面可以补充实现。

四. 低级问题(Minor)

定义: 使操作者不方便或遇到麻烦,但它不影响执行工作功能或重要功能。界面拼写错误或用户使用不方便等小问题或需要完善的问题修改优先级为低,该级别需要程序员修改或不修改。

界面不规范;
辅助说明描述不清楚;
输入输出不规范;
长时间操作未给用户提示;
提示窗口文字未采用行业术语;
可输入区域和只读区域没有明显的区分标志;
必填项与非必填项应加以区别;
滚动条无效;
键盘支持不好,如在可输入多行的字段中,不支持回车换行;
界面不能及时刷新,影响功能实现。

三、测试用例的设计方法

首先从整体的角度设计分析测试用例(基于需求),验证需求的正确性和合理性,分析需求,细化需求,从需求中分解出测试项,根据测试项找出功能,进行测试用例的编写

3.1等价类

等价类就是把输入划分成若干个等价类,从每一个等价类中取出一个测试用例,如果这个测试用例能够通过,那么我们就说这个测试用例代表的等价类测试通过。

有效等价类: 对于程序规格说明来说,是合理的,有意义的输入数据构成的集合
无效等价类:对于程序规格说明来说,是不合理的,无意义的输入数据构成的集合
设计测试用例时,要同时考虑有效等价类和无效等价类

适用场景: 测试用例过多,无法一一进行测试,

3.2边界值法

针对输入输出的边界值进行测试的一种黑盒测试用例,通常情况下边界值法是对等价类方法的补充 ,

在平时测试中得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。边界值分析法的测试数据必须在等价类的边界值附近选取;边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

例如 我们需要购买3000元以下的耳机 通过等价类和边界值法就可以得出:
有效等价类:小于3000元
无效等价类 :大于3000元
边界值 就是 2999元 3000元 3001元

3.3因果图法

当输入很多,并且不同的输入组合对应着不同的输出,这种场景就利用因果图法来分析不同输入组合和输出之间的对应关系

因果图就是逻辑图 ,其中包含 与 或 非 恒等

因果图法设计步骤:
1.分析出所有输入和输出之间的关系
2.找出输入和输出的关系
3.画因果图
4.根据因果图画判定表
5.把判定表转换成测试用例
一定要要将所有结果写出来,

3.4场景设计法

现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流,该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,使测试用例更容易理解和执行

这里我们举个详细的例子来介绍场景设计法:
ATM机上取款 : 插卡——输入密码——选择取款业务(输入钱数)——取款 主要功能,核心流程
(1)插卡 :卡插反了,差错卡了,卡正确但是消磁了,卡冻结了,里面有上一个人的卡插不进去 —— 插入正确的卡
(2)输入密码: 密码位数不够,密码输入错误,密码输入错误达到上限, —— 密码输入正确
(3)选择取款业务(输入钱数): 选错业务 , 输入钱数大于卡内余额,输入钱数大于ATM机内余额,累计取款额数达到今日上限,超过每次取款上限,超过每天取款次数限制——正确钱数
(4)取款: ATM吐出来少钱,多钱, ATM吐出钱有破损 ,ATM是否吐钞,超过超时没有取出来
ATM 机 的断网 断电等异常
插卡插反了,但是第二次插正确了,仍然可以正常取钱
卡注销/冻结 无法正常取钱,会给用户提醒,“卡已注销”
密码第一次输入错误,但是第二次输入正确也能进行取钱操作
密码输入三次错误,账户被冻结 无法取钱,
即我们利用场景法设计测试用例时,先把主要的功能,核心流程列出,之后再进行细化来根据场景描述测试用例。

3.5正交排列法

正交排列法引入就是解决因果图法测试用例太多的问题。正交试验设计是研究多因素多水平的一种设计方法,它是根据正交性,由实验因素的全部水平组合中挑选出部分有代表性的点进行实验,通过对这部分实验结果的分析了解全面试验的情况,找出最优的水平组合,正交试验设计是一种基于正交表的,高效率,快速,经济的试验
根据正交性选出最优的水平组合进行试验,用实验的结果来分析这个测试用例的结果

正交排列法的目的就是为了减少用例的数量,用尽量少的用例,覆盖输入的两两组合

因素数:变量的个数
水平数: 变量取值的最大个数
正交表的构成:
行((水平数-1)*(因素数+1))和列(因素数)
正交表的性质:
1.每一列不同数据出现次数一样多
2.任意两列各数据组合出现的次数一样多

正交表设计测试用例的步骤:
1.找出所有的输入变量个数(确定因素数)
2.确定变量的取值,(确定水平数)
3.确定正交表的行和列
4.根据正交表的性质来填写正交表
5.把正交表的每一行对应写成一个测试用例
6…补充你认为重要的但是却没有出现再正交表中的测试用例

根据一个简单例子来熟悉
例子:用户注册邮箱时(用户名,邮箱,密码,确认密码,验证码)
1.变量数 5 用户名,邮箱,密码,确认密码,验证码
2. 水平数 2 输入 和不输入
3. 确定正交表的行和列 即正交表的列为5,行数为 6

4.根据正交表的性质来填写正交表

5.把正交表的每一行写成对应的测试用例:
(第一行)姓名输入,邮箱不输入,密码输入,确认密码输入,验证码不输入;
(第二行)姓名输入,邮箱输入,密码不输入,确认密码不输入,验证码输入;
(第三行)姓名不输入,邮箱输入,密码输入,确认密码输入,验证码不输入;
(第四行)姓名不输入,邮箱不输入,密码不输入,确认密码输入,验证码输入;
(第五行)姓名输入,邮箱不输入,密码输入,确认密码不输入,验证码输入;
(第六行)姓名不输入,邮箱输入,密码不输入,确认密码不输入,验证码不输入;

6.可以补充重要的测试用例
全部输入和全部不输入
(第一行)姓名输入,邮箱不输入,密码输入,确认密码输入,验证码不输入;
(第二行)姓名输入,邮箱输入,密码不输入,确认密码不输入,验证码输入;
(第三行)姓名不输入,邮箱输入,密码输入,确认密码输入,验证码不输入;
(第四行)姓名不输入,邮箱不输入,密码不输入,确认密码输入,验证码输入;
(第五行)姓名输入,邮箱不输入,密码输入,确认密码不输入,验证码输入;
(第六行)姓名不输入,邮箱输入,密码不输入,确认密码不输入,验证码不输入;
(第七行)姓名输入,邮箱输入,密码输入,确认密码输入,验证码输入;
(第八行)姓名不输入,邮箱不输入,密码不输入,确认密码不输入,验证码不输入;

更复杂的情况下,可以查询(正交表查询)来设计更复杂的正交表

3.6错误猜测法

根据测试人员的知识、经验和直觉,判断软件哪一部分有问题,专门针对性的设计测试用例

适合作为一种补充设计测试用例的方法

测试用例的设计方法及案例相关推荐

  1. 2021最详细的测试用例的设计方法及案例——骚操作

    测试用例的设计方法 一.概念 1.什么是测试用例? 在测试过程中很重要的一类文档,它是测试工作的核心.是一组在测试时输入输出的标准.是软件需求的具体对照. 2.测试用例的作用: 检验软件是否满足客户需 ...

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

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

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

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

  4. 测试篇(三):测试用例的万能公式、对水杯和登录页面设计测试用例、测试用例的设计方法

    目录 一.测试用例的万能公式 二.对登录页面设计测试用例 三.测试用例的设计方法 3.1 基于需求的设计方法 3.2 等价类 3.3 边界值 3.4 判定表 3.5 正交排列 3.6 场景设计法 3. ...

  5. 测试用例及其设计方法

    测试用例 测试用例的定义※ 设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的预期结果. 测试用例的模板包括和包含的内容 测试用例模版: 标识符:由测试设计过程说明和测试程序说明 ...

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

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

  7. 测试用例的设计方法_因果图

    测试用例的设计方法_因果图 因果图 因果图:简化了的逻辑图,能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系. 因果图法是借助图形来设计测试用例的一种系统方法,特别适用于被测试程序具有 ...

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

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

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

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

最新文章

  1. 【开发环境】Ubuntu 中使用 VSCode 开发 C/C++ ③ ( 创建工程目录 | 添加 C++ 源代码 | 代码自动提示 )
  2. Algorithm:C++语言实现之链表相关算法(链表相加、链表的部分翻转、链表划分、链表去重、重复元素全部删除)
  3. opencv与opengl混用实现三维点云图像
  4. Git 在推送(Push)信息的时候提示git did not exit cleanly (exit code 1)的解决办法
  5. 单片机拼字程序怎么做_小程序商城怎么做?做一个小程序需要多少钱
  6. 【重难点】【RabbitMQ 02】如何避免消息重复投递和消息重复消费、如何防止消息丢失、如何保证消息的顺序性、如何保证消息队列的可用性
  7. java.lang.SecurityException: Prohibited package name: java.xxx.xxxx
  8. C++ 引用计数技术简介(1)
  9. BZOJ1026[SCOI2009]windy数
  10. 847方波放大电路_身为工程师需要了解的模拟积分器电路!
  11. 阵列信号处理——求根MUSIC算法(Root MUSIC)
  12. Java 封装、继承、多态的理解
  13. angular 子父页面传值以及调用方法
  14. android各版本市场占有率报告,百度报告:Android市场份额大增
  15. 印度程序员和中国程序员的区别
  16. 故事是如何改变人生的
  17. Flow 是一个静态类型检测工具
  18. [转...转] 国内软件破解下载网站列表!
  19. gets()函数的缺陷,引入fgets()函数
  20. 【你又有一个好消息】荣获2022年国民技术MCURT-Thread设计大赛获奖榜单头名

热门文章

  1. 10个超赞的HTML5框架加快Web开发
  2. vue内使用 cytoscape(数据可视化)
  3. Office 如何添加Adobe Acrobat虚拟PDF打印机
  4. 微信运动刷步教程 QQ健康刷步数(一)之安卓版本 - 乐运动
  5. 【最优化】最优化的相关条件
  6. linux php配置
  7. python 答题卡识别_opencv+python机读卡识别(最终版)
  8. 成为一个有目标的学习者
  9. PIL gif 图片加文字 python
  10. GaussDB(DWS)介绍