软件测试:测试用例的设计

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

1. 测试用例的概念

软件测试人员向被测试系统提供的一组数据的集合,包括 测试环境、测试步骤、测试数据、预期结果

2. 为什么在测试前要设计测试用例

测试用例是执行测试的依据

在回归测试的时候可以进行复用

是自动化测试编写测试脚本的依据

衡量需求的覆盖率

后续的测试人员可以借鉴前人写的东西

3. 基于需求进行测试用例的设计

需求是测试人员进行测试的依据

测试人员首先要分析需求,验证需求的正确性、合理性,无二义性并且逻辑自洽

在需求正确的基础上细化需求,从需求提炼出一个个测试点,再根据测试点进行测试用例的设计

在分析需求提取测试点时,一般分为 功能性需求测试 和 非功能性需求测试

1)功能性需求测试

功能性需求测试分析通常包括以下几个方面:

验证各个界面的功能

用具体业务将功能串起来进行测试

功能之间交互性、一致性的测试

一个功能的多个不同输入的测试

功能的异常测试

功能涉及到的算法的测试

2)非功能性需求测试

在功能的基础上做一些限制,满足特定场景的需求,让用户有更好的体验

一般在 性能、安全性、可靠性、兼容性、可移植性(移植到不同的设备)、易用性 等

不同类型的软件对于非功能性需求要求是不一样的

客户端软件,word、ppt、音乐播放器等,此类软件对功能要求很简单,对性能、安全性要求比较低,软件的可移植性要求比较高

这类软件一般都是在个人客户端上运行的,一般都是一对一的运行,不存在多人使用同一个服务器,所以对安全性和性能要求比较低,但是这类软件要求在不同环境下的使用,所以对可移植性要求比较高

企业软件,一些仅供企业内部使用的软件,对功能有一定的要求,对安全性、性能要求比较低

这类软件一般都是企业内部在使用,使用人数不多,所以对安全性和性能要求比较低

商业软件,市面上的大型复杂网络应用,对功能、性能、安全性、可移植性、易用性要求都很高

4. 具体的测试用例设计方法

1)等价类

等价类法一般应用在有输入的场合内

根据需求将输入分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例通过,则认为所代表的等价类测试通过,这样可以很好的解决测试用例无法穷举的情况

等价类又分为 有效等价类 和 无效等价类

有效等价类: 符合需求说明书的数据,用来验证程序是否实现了需求说明书所规定的功能

无效等价类: 不符合需求说明书的数据

对于注册邮箱时的等价类:

规定: 6 ~ 18 个字符,可使用字母、数字、下划线,需要以字母开头

有效等价类:

6 ~ 18 个字符,以字母抬头,纯字母

6 ~ 18 个字符,以字母抬头,后面为数字

6 ~ 18 个字符,以字母抬头,后面为下划线

6 ~ 18 个字符,以字母抬头,后面有数字和下划线

无效等价类:

小于 6 个字符,以任意字符组成

大于 18 个字符,以任意字符组成

6 ~ 18 个字符,不以字母开头

6 ~ 18 个字符,以字母开头,包含任意字符

2)边界值

对输入输出的边界进行针对性测试用例的设计,叫做边界值法

边界值法一般与等价类法一起组合使用,边界值法是等价类法的重要补充

案例:

用户注册时规定用户名 6 ~ 18 位

边界值:5,6,7,17,18,19

针对以上几个点进行测试用例的设计

3)错误猜测法

测试人员根据自己的经验、只是、个人直觉判断软件哪一块有问题,再进行针对性测试用例的设计

这个方法适用于补充测试用例,或者进行探索性测试的情况

但也有一个很明显的缺点,过度依赖测试人员的个人能力和主观判断

4)场景法

把一个个孤立的功能穿起来形成一个场景,每一个功能的输入会触发流程走向不同的场景,根据不同功能的不同输入触发形成的不同场景进行测试用例的设计

要点: 提取出场景中设计的所有功能点,考虑每一个功能的不同输入

5)因果图法

因果图是一种可以直观地 表达程序输入输出之间相互关系 的逻辑图

使用场景: 适用于被测试程序 具有多种不同输入条件并且输出结果依赖于输入条件 的情况

因果图中的关系:

恒等: 输入为真,输出为真

与: 输入条件有多个,条件全为真,输出才为真

或: 输入条件有多个,其中一个为真,输出就为真

非: 输入为真(假),输出为假(真)

使用因果图设计测试用例的流程:

分析程序所有的输入和输出

找出输入和输出之间的逻辑关系

根据输入和输出的逻辑关系画出因果图

根据因果图画出判定表

根据判定表设计测试用例

案例: 618 抢购活动中,订单已提交并且购物金额大于 300 或者有红包,则说明有优惠,否则无优惠

分析输入输出

输入:订单已提交、购物金额大于 300、有红包

输出:有优惠、没有优惠

找出输入输出之间的逻辑关系

根据逻辑关系画出因果图

根据因果图画出判定表

  1. 根据判定表设计测试用例
    判定表中每一行都是一个测试用例

6)正交法

根据正交性,从大量的测试数据中,选择最优的数据组合,根据最优的数据组合的结果来衡量整个测试的输出结果

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

相关推荐
实名上网宋凯宣8 小时前
Django
后端·python·django
如若1239 小时前
【论文复现】CoFailMed:从零复现医学图像分割的共享失败审计,含完整代码流程与科研绘图
人工智能·python
砚底藏山河11 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
视觉小萌新11 小时前
AI Class 3 · Chapter 1:变量、字符串、list/dict、if/for(python学习-小白版-有经验可跳过)
python·学习·list
薛定谔的猫-菜鸟程序员11 小时前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
Ramble_Naylor13 小时前
Rust深度解读:Send 与 Sync 的本质与线程安全边界
python·算法·rust
Allen_LVyingbo14 小时前
NVIDIA CUDA Tile 在医疗计算中的算子形式化、算法重构与内核实现
大数据·python·算法·重构·知识图谱·健康医疗·数据库架构
云和数据.ChenGuang14 小时前
Python 闭包详解:从原理到实战
linux·开发语言·人工智能·python·kubernetes
我命由我1234515 小时前
Python 实用操作 - 文件操作(打开与关闭文件、读取文件、文件写入)
java·开发语言·前端·javascript·数据库·python·java-ee
青少儿编程课堂15 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:倍增法求最近公共祖先LCA解析
c++·python·算法·bfs·信息学竞赛