当前位置:网站首页>软件测试<用例篇>
软件测试<用例篇>
2022-08-03 17:03:00 【Java小菜鸟~】
软件测试<用例篇>
一、基础知识
1. 软件测试的生命周期
首先需要明确一个概念:什么是软件测试?
软件测试:就是验证软件是否满足用户的需求;
需求:用户的期望与满足合同(文档,规则,标准)的规定所需要的条件和权限;
需求分为用户需求及软件需求;
软件测试的生命周期如下面流程图所示:
2. Bug 描述
为了清楚的描述一个Bug
,需要考虑以下:
- (1) 测试版本
- (2)测试环境:不同的测试环境下(包含不同浏览器、
APP
),结果可能会存在偏差 - (3)测试步骤:需要给出详细的测试步骤
- (4)实际结果
- (5)预期结果(需求期望的结果)
- (6)附件:错误截图
补充点:
Bug
的常见级别:
- 建议:一些提示信息,如文字重叠,界面排版等;
- 一般:系统可以稳定的运行,只是一些次要的功能没有实现;
- 严重:服务器可以使用,但是不稳定;
- 崩溃:系统不能运行,如出现黑屏、闪退、死机等;
3. 测试用例概念
测试用例
:软件测试人员向被测系统发起的一组集合,包括测试环境、测试数据、测试步骤以及预期结果;
4. 设计测试用例的意义
- 测试用例是测试执行的依据;
- 可以复用(回归测试、迭代);
- 衡量需求的覆盖率;
- 自动化测试的依据;
- 借鉴;
二、测试用例设计方法
1. 整体(基于需求)的测试用例设计
基于需求的测试用例,需要从两大方面入手:
(1)分析需求
首先需要验证需求的正确性及其合理性,无二义性,并且逻辑自洽;
(2)细化需求
然后从需求中提取出测试项,从每一个测试项中提出测试点,并根据测试点设计测试用例;
设计时从以下两个方面考虑:
(1)功能性需求:
(2)非功能性需求:
非功能性需求就是在功能性需求上进行一些限制来满足特定场景下的需求,让用户有更好的体验;
2. 具体的测试用例设计方法
(1)等价类 *
概念
:根据输入(特殊情况下考虑输出),把输入划分为若干个等价类,从每一个等价类中取一个或多个测试用例进行测试,如果该测试用例通过,就说这个测试用例代表的等价类测试通过;
等价类可以解决测试用例无法穷举的情况!
等价类分为:
(1)有效等价类:符合需求规格说明书的数据集合;
(2)无效等价类:不符合需求规格说明书的数据集合;
case
:网易邮箱注册功能测试用例设计
需求分析:
账号:6~18
位,以字母开头,可使用字母、数字、下划线
有效等价类:
6~18
位,以字母开头,纯字母;6~18
位,以字母开头,加数字;6~18
位,以字母开头,加下划线;6~18
位,以字母开头,加数字与下划线;
无效等价类:
- 小于
6
位,任意字符(字母、数字、下划线); - 大于
18
位,任意字符(字母、数字、下划线); 6~18
位,不以字母开头的字符串;6~18
位,以字母开头,包含特殊字符;
需要注意的是
:不管是有效等价类还是无效等价类均要进行测试 !
(2)边界值 *
概念
:对输入输出的边界针对性的进行测试用例的设计,该种方法称为边界值法;
case
:用户名:6~15
位,包含大小写字母
符合需求的边界值:
长度为:6,7,14,15
不符合需求的边界值:
长度为:5,16
(3)错误猜测法
概念
:测试人员根据自己的经验、知识、个人直觉来判断软件哪一块有问题,针对性的进行测试用例的设计;
依靠于主观性,适合作为补充性的测试用例
;
(4)场景法
概念
:将一个个孤立的功能串接起来形成一个场景,每一个功能不同的输入会触发不同的场景,根据这些触发的不同的场景设计测试用例;
要点:
(1)提取场景中涉及的功能点
(2)考虑每一个功能不同的输入
case
:ATM 机的取款流程
- ATM 机的取款流程及涉及的功能点:
每一个功能不同的输入:
(1)插卡包含的输入情况有:
(2)输入密码包含的输入情况有:
(3)输入取款金额并取款包含的输入情况有:
(4)退卡包含的输入情况有:
还需要考虑ATM机的异常情况:
测试用例:
(1)卡插反,提示无法识别,重新正确插入且每步骤操作正确,取款成功;
(2)卡消磁,失效,提示无效卡,无法取款;
(3) 卡锁定,提示账户被锁定,解锁后重新操作;
(4)卡冻结,提示,账户被冻结,请解冻后重新操作;
(5)密码输入正确,其他操作正常,取款成功;
(6)密码输入错误,提示请重新输入密码,正确后其他操作正常取款成功;
(7)密码输入为空,提示密码输入为空,请重新输入,输入正确后,取款成功;
(8)输入400取款金额,其他操作正常,取款成功;
(9)输入0元,提示请输入正确的取款金额,正确输入后,取款成功;
(10)取款金额大于卡余额,提示卡余额不足,请重新输入金额,输入正确后,取款成功;
等等
(5)因果图法
概念
:因果图是一种逻辑图,包含 恒等、与、或、非;使用场景
:
当输入有多个并且不同的输入组合对应着不同的输出,该种情况下可以使用因果图来进行测试用例的分析,根据分析结果设计测试用例;
因果图的几种关系:
恒等:输入为真,输出为真;
与:输入条件有多个,并且多个条件均是真,输出为真;
- 或:输入条件有多个,其中一个条件为真时,输出为真;
- 非:输入为真,输出为假;
采用因果图设计测试用例的步骤:- 分析所有的输入与输出;
- 找出输入输出之间的逻辑关系;
- 根据输入输出画因果图;
- 根据因果图画判定表;
- 根据判定表设计测试用例;
case
:双十一来临,假设订单已提交,并且购物金额大于 200 或者有红包,就有优惠,否则无优惠;请设计测试用例;
分析:采用因果图来进行设计,步骤如下:
(1)分析输入与输出:
输入:订单已提交,购物金额大于 200,有红包;
输出:有优惠,无优惠;
(2)找输入与输出之间的逻辑关系:
订单已提交,购物金额大于 200 元,有红包,有优惠;
订单已提交,订单金额大于 200 元,无红包,有优惠;
订单已提交,购物金额小于 200 元,有红包,有优惠;
订单已提交,订单金额小于200元,无红包,无优惠;
订单未提交,无优惠;
(3)根据输入输出画出因果图:
(4)根据因果图画出判定表:
(5)根据判定表设计测试用例:
(1)订单已提交,购物金额大于 200 元,有红包,有优惠;
(2)订单已提交,订单金额大于 200 元,无红包,有优惠;
(3)订单已提交,购物金额小于 200 元,有红包,有优惠;
(4)订单已提交,订单金额小于200元,无红包,无优惠;
(5)订单未提交,购物金额大于 200 元,有红包,无优惠;
(6)订单未提交,订单金额大于 200 元,无红包,无优惠;
(7)订单未提交,购物金额小于 200 元,有红包,无优惠;
(8)订单未提交,订单金额小于200元,无红包,无优惠;
(6)正交法
概念
:根据正交性,从大量的实验数据中,选取最优的数据组合的结果来衡量整个测试的结果;
一般不常用!
小结
用例设计方法 | |
---|---|
整体的 | 基于需求设计测试用例 |
具体的 | 等价类(常用 )、边界值(常用 )、场景法(常用 )、错误猜测法、因果图法、正交法 |
《写作不易,有帮助的,动动手指收藏哦!!!》
边栏推荐
- C专家编程 第3章 分析C语言的声明 3.8 理解所有分析过程的代码段
- 【LeetCode】899. 有序队列
- 【Metaverse系列一】元宇宙的奥秘
- 基于DMS的数仓智能运维服务,知多少?
- 【There is no tracking information for the current branch. Please specify which branch you want to 】
- uniapp 去掉默认导航栏
- 华为、联想、北汽等入选工信部“企业数字化转型和安全能力提升”首批实训基地
- TiKV & TiFlash 加速复杂业务查询丨TiFlash 应用实践
- C专家编程 第3章 分析C语言的声明 3.9 轻松一下---驱动物理实体的软件
- 双指针/滑动窗口问题
猜你喜欢
fastposter v2.9.0 程序员必备海报生成器
数据万象内容审核 — 共建安全互联网,专项开展“清朗”直播整治行动
Component communication - parent-child component communication
多表查询最值
#yyds干货盘点# 面试必刷TOP101:两个链表的第一个公共结点
J9货币论:数字经济为全球经济复苏注入力量
【数据库数据恢复】SqlServer数据库无法读取的数据恢复案例
CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统
双指针/滑动窗口问题
C专家编程 第3章 分析C语言的声明 3.7 typedef struct foo{... foo;}的含义
随机推荐
融云「音视频架构实践」技术专场【内含完整PPT】
C专家编程 第1章 C:穿越时空的迷雾 1.11 轻松一下---由编译器定义的Pragmas效果
C专家编程 第2章 这不是Bug,而是语言特性 2.2 多做之过
怎么在opengauss中进行测试自己添加的新函数的性能(循环n次的运行时间)?
新特性解读 | MySQL 8.0 在线调整 REDO
2022爱分析· 银行数字化厂商全景报告
Detailed explanation of setting HiSilicon MMZ memory and OS memory
论文解读(JKnet)《Representation Learning on Graphs with Jumping Knowledge Networks》
大佬们。使用flink-cdc-sqlserver 2.2.0 版本读取sqlserver2008R
yolov5s用自己的数据集进行训练模型
C专家编程 第3章 分析C语言的声明 3.5 typedef可以成为你的朋友
工程仪器设备在线监测管理系统常见问题和注意事项
使用.NET简单实现一个Redis的高性能克隆版(一)
uniapp 去掉默认导航栏
[Unity Getting Started Plan] Basic Concepts (7) - Input Manager & Input Class
11. Container With Most Water
九种方法!教你如何读取resources目录下的文件路径
阿里二面:没有 accept,能建立 TCP 连接吗?
LeetCode·1163.按字典序排在最后的子串·最小表示法
MobileVIT实战:使用MobileVIT实现图像分类