当前位置:网站首页>如何做好测试用例设计
如何做好测试用例设计
2022-07-26 17:36:00 【wangmcn】
如何做好测试用例设计
目录
1、测试用例设计
1.1、确定测试范围
1.2、用例设计原则
1.3、用例设计维度
2、测试用例编写
2.1、测试用例编写前提
2.2、用例标题
2.3、用例级别分布
2.4、预置条件
2.5、操作步骤
2.6、预期结果
3、测试用例评审
3.1、评审前
3.2、评审中
3.3、评审后
1、测试用例设计
1.1、确定测试范围
1、必须有完整的需求文档
2、需求已经组织评审和澄清
3、必须有完整的功能列表
1.2、用例设计原则
1、遵循“边界值”全覆盖原则
2、遵循”等价类划分场景“全覆盖原则
3、遵循”测试用例路径唯一“原则
当出现多个路径时,需要新建用例去覆盖。一条用例仅覆盖一个测试点。降低漏测风险。
4、遵循“单条用例覆盖最小化”原则
假如要测试一个功能 A,它有三个子功能点 A1,A2 和 A3,下面两种方法来设计测试用例:
方法1:用一个测试用例覆盖三个子功能 - TestA1A2A3
方法2:用三个单独的用例分别来覆盖三个子功能 - TestA1,TestA2,TestA3
方法2则遵循了“单条用例覆盖最小化”原则,好处,当用例执行失败时,降低复现/定位复杂度
5、遵循“测试用例与测试用例之间最低耦合度”原则
(1)严谨使用上一条测试用例的结果,做为下一条测试用例的输入。
(2)每一条测试用例,应该都是完整独立的。
这样做的好处便于测试用例拉取、复用、可维护、减少后续投入成本。
1.3、用例设计维度
1、功能
(1)正向(正常)场景
(2)逆向(异常)场景
2、非功能
(1)性能
性能测试,首先需要有具体的、明确的性能指标需求。
性能关注指标:CPU、Memory、IO、网络传输速率等。
a.单品(模块)性能,比如SDK、算法、单独性能要求
b.整体性能,系统集成后的性能要求
c.网络传输性能
(2)可靠(稳定)性
a.时间维度
b.负载稳定性
(3)健壮性
a.看门狗
b.异常掉电
c.反复重启
(4)易用性
a.安装易用性
b.运维易用性
c.功能操作易用性
(5)客户体验
比如视频播放效果、操作是否顺手、开机时间等等。
(6)安全性
a.数据存储安全
b.网络传输安全
2、测试用例编写
2.1、测试用例编写前提
1、测试范围已经确定
2、测试点已经梳理完成
3、用例转换路径:业务需求-功能需求-测试需求-测试点-测试用例
2.2、用例标题
概述测试用例的主要内容,明确用例测试意图
1、语言简洁,阐明本条用例是干什么
2、一句完整的话
3、遵循“条件/动作"规则
2.3、用例级别分布
1、Lve 1:基本(~10%)
系统基本功能用例,可用于版本提交时的冒烟测试,可作为版本是否转测试通过和业务验收的依据。
划分依据:该用例执行的失败会导致多处重要功能无法运行的。
例如:开关机、升级等。
2、Lve 2:重要(~20%)
系统中的重要功能用例。
划分依据:主要包括一些功能交互相关、各种应用场景、客户使用频率较高的正常功能测试用例。
例如:设备上报、录像回放效果、预览等功能。
3、Lve 3:一般(~60%)
系统的一般功能。
划分依据:一般功能用例,包括异常路径的测试用例;使用频率低于2级用例。
例如:表单输入边界值、特殊字符的校验等。
4、Lve 4:生僻(~10%)
该级别用例一般比较少。主要是一些使用频率非常少的功能等。如果用例执行不通过,不会对系统和业务造成太大的伤害的测试用例。
划分依据:该用例对应较生僻的预置条件和数据设置。
例如:日志记录错误等。
2.4、预置条件
1、执行测试用例关键必备条件
2、让用例的执行者更加明确系统当前状态
3、预置条件不能阻塞测试用例的执行
2.5、操作步骤
1、需要明确“测试关键输入”数据
2、操作路径唯一,不唯一则多条用例覆盖(降低耦合)
3、以“面向过程”的形式编写
(1)过程描述准确、无歧义。
(2)上下文必须衔接一致。
好处:降低执行成本、降低后续维护成本
2.6、预期结果
1、每一步操作都有对应的预期结果
2、预期结果一定是客观的、可判定的
(1)即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。
(2)期望结果禁止使用正确,正常,错误之类的含糊主观的字眼。
3、预期结果一定是符合需求的
4、预期结果一定是确定的
即对同样的测试用例,系统的执行结果应当是相同的、确定的。
3、测试用例评审
3.1、评审前
1、让评审对象提前熟悉测试用例
2、反串讲需求
3、阐明最终测试范围
3.2、评审中
1、测试
(1)测试用例讲解。
(2)再一次对需求做深入理解。
2、开发
(1)站在开发编码角度,检查测试用例是否有遗漏。
(2)站在代码实现的角度,提供模块内部关联逻辑建议。
3、产品经理
(1)检查测试用例场景是否符合业务需求。
(2)站在客户角度给测试用例提供建议。
3.3、评审后
1、发送和归档评审纪要
2、根据评审建议更新测试用例
边栏推荐
- Oracle第一天(开发常用的知识点再回顾整理下)
- Some tips for printing logs
- LeetCode_134_加油站
- mpc5744p的pit报错, RTOS无法启动, 时钟源问题
- Hello World
- Leetcode 50 day question brushing plan (day 1 - add two numbers 11.00-12.30)
- Linked list - reverse linked list
- PS_ 1_ Know the main interface_ New document (resolution)_ Open save (sequence animation)
- LeetCode 0137. 只出现一次的数字 II
- [kitex source code interpretation] service discovery
猜你喜欢

你适合做自动化 测试吗?

链表-反转链表

BulletGraph(子弹图、项目符号图)

线性回归——以一道等差数列的题为例
![[kitex source code interpretation] service discovery](/img/70/c74ede02b794e586d629876d2b2376.png)
[kitex source code interpretation] service discovery

分布式链路追踪Jaeger在Golang中的使用

8.1 Diffie Hellman key exchange

The third day of SSM practice_ Paging assistant_ Security framework

SSM practice day 5

Sign up now | cloud native technology exchange meetup Guangzhou station has been opened, and I will meet you on August 6!
随机推荐
【翻译】为什么你需要一个API网关来管理对你的API的访问?
分布式链路追踪Jaeger在Golang中的使用
效率提升98%!高海拔光伏电站运维巡检背后的AI利器
SQL判断某列中是否包含中文字符、英文字符、纯数字,数据截取
Meta Cambria手柄曝光,主动追踪+多触觉回馈方案
Baidu PaddlePaddle easydl x wesken: see how to install the "eye of AI" in bearing quality inspection
8.1 Diffie Hellman key exchange
Kindergarten system based on SSM
网上炒股,选择在哪里开户比较安全呢?
[a little knowledge] thread pool
推荐效果不如意,不如试试飞桨图学习
PyQt5快速开发与实战 3.5 菜单栏与工具栏
Vector CANoe Menu Plugin拓展入门
It is said that the salary of Alibaba P7 is really fragrant
Are you suitable for automated testing?
网易游戏研发工程师实习生(客户端方向)一面
J9 number theory: how to avoid the trap of stepping on thunder?
链表-合并两个排序的列表
ICML 2022 (Part 4) | | graph hierarchical alignment graph kernel to realize graph matching
《圆圈正义》的信念