如何高效地设计测试用例并评审

news2025/2/28 10:40:02

编写出好的测试用例是每一个测试工程师的职责,但在实际工作中大家写的测试用例往往需要不断地修改才能使用,这不仅浪费了时间,还容易让测试工程师产生自我否定的情绪,甚至在团队中产生各种矛盾。

那如何高效地设计测试用例呢?团队内部又该如何处理测试用例的编写呢?下面就个人和团队的做法给出建议,希望能够帮助到大家。

2023完整版软件测试入门实战教程,从基础到项目实战学完即可入职。挑战年薪40+!_哔哩哔哩_bilibili2023完整版软件测试入门实战教程,从基础到项目实战学完即可入职。挑战年薪40+!共计97条视频,包括:1、软件测试学习路线图、2、软件如何实现月薪过万、3、码尚教育VIP开班典礼等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV14G411s7yZ/?spm_id_from=333.337.search-card.all.click

 个人写测试用例

个人在写测试用例时,设计方法用了很多,执行步骤也写了不少,但实施测试时却发现所写的步骤很大程度上无法衔接,需要进行修改才能执行下去,这种情况基本都是对软件界面操作了解不够而引发的,而软件界面操作是有规律可循的。

以下面较常见的界面来讲解测试用例的设计思路和具体做法。

1.1 界面功能分析

  • 首先,图中红色加粗的信息项是必填项,在界面设计时往往都放在前面。非必填项则放在必填项的后面

  • 软件并不会在输入某个数据时立即校验该数据的合法性和正确性,而是在点击“保存”按钮,提交数据时进行数据校验

  • 数据项校验顺序:从左至右、从上至下。非必填项若无数据则不校验

  • 校验提示原则1:根据校验顺序逐项校验,遇到错误立即弹框提示,终止校验过程,数据提交失败

  • 校验提示原则2:首先检验整体数据的完整性,然后注意检验合法有效。即先检验所有必填项都有没有数据,然后才检验数据对不对!

1.2 信息提示规则说明

当发现一个问题时,就已经无法完成任务,后面的数据项是否还有问题已不重要了。软件无法控制用户的操作行为,不会一次性提示出所有的数据项错误,因为用户如果没改完、没改好、不小心把对的数据改错了等等行为,都会导致这种一次性的提示没有意义。最关键的是这些信息显示在提示框中,用户点击“确定”按钮后就消失了,他能完全记住吗?

1.3 测试数据设计

对每一项数据均采用多个技术设计出若干个非法无效数据和有效数据,所有必填项的有效数据拼成一组组的完整数据,数据组的个数按最多的有效数据项来算,有效数据个数不足的数据项可将已有的有效数据进行复制,补齐个数的不足。

1.4 测试用例设计大体步骤

1) 所有必填、非必填均为空,然后点击【保存】,系统提示:【姓名】不能为空

2) 给【姓名】填入一个非法数据后点击【保存】,系统提示:【年龄】不能为空

3) 给【年龄】填入一个非法数据后点击【保存】,系统提示:【性别】不能为空

4) 给【性别】填入一个非法数据后点击【保存】,系统提示:【学历】不能为空

5) 给【学历】填入一个非法数据后点击【保存】,系统提示:【身高】不能为空

6) 给【身高】填入一个非法数据后点击【保存】,系统提示:【体重】不能为空

7) 给【体重】填入一个非法数据后点击【保存】,系统提示:【姓名】数据错误。注意:至此所有必填项的必填性已测完

8) 依次给【姓名】填入其它非法数据后点击【保存】,系统提示:【姓名】数据错误。注意:填一个非法就点击【保存】

9) 给【姓名】填入一个合法数据后点击【保存】,系统提示:【年龄】数据错误。注意:此时对【姓名】的所有非法已测完,并测试了一个合法

10) 循环第8和第9步,对其余必填项都做相同的操作,先填当前数据项的所有非法,最后,跟一个合法。至此,所有必填项的非法数据均测完,而合法数据测试了一组

11) 将必填项的剩余未测的多组数据,按组填入,然后点击【保存】,完成剩下的必填项测试。至此对必填项的合法与非法测试已完成

12) 非必填项单独测试,可将前面必填项的合法数据拿出一组来配合

 团队写测试用例

团队工作最大的问题就是每个人的测试数据都是按自己的思路和要求来设计的,当大家的测试用例放在一起时,无法构成一套,不能完整的对系统进行测试,改动量很大。尤其对查询、统计、报表类功能影响巨大,几乎不能测试!

团队编写测试用例的原则是:

  • 功能滞后的用例,编写时需向前置功能的用例提出数据要求

  • 前置功能的用例在满足自己测试的需求基础上要考虑后续测试的数据要求,最好能融合(留下的就是满足后续功能要求的数据)

例如:

张三写【材料入库】,增删改功能执行后保留在系统中有两条数据。

李四写后续的【材料出库】,则首先利用张三保留在系统中有两条数据,若数据不够,李四要对张三提出添加数据的具体要求来满足自己的测试工作。

依此类推,则整个团队的测试用例就能写成一套,这样的测试用例可用性非常高,执行时基本不过脑子,只看预期结果。

建议一开始就召开专门的测试用例设计会议来沟通测试数据的问题

笔者做测试经理时就是这样做的,测试工程师刚开始的时候很抵触,觉得这样做很麻烦且进度慢,但当进入测试执行阶段,他们都很开心,因为测试用例执行的很流畅,也没有以往的那些改用例的活了。

 高效

就是做一件事当几件事来用。具体说就是一个测试数据可以测多个方面,这就是高效!

而测试的高效就是测试数据的高效,那么怎么做呢?

3.1 关于非法数据

非法的数据要测,且要用心设计,但无法进入系统中

3.2 关于合法数据

从功能角度说,测试用例有合法与非法之分,一般合法数据的设计只要合法就行,但往往不满足业务,此时要为业务测试重新设计数据,费时费力。需要合并合法数据与业务数据,提高用例的效率,即高效!

合并时,使用业务数据来替代合法数据。对测试工程师而言,很可能不懂业务,没关系用户懂,并且用户手头就有很多的业务数据,可以找用户获取这些业务数据。

要注意用户业务数据的保密!21年下半年国家正式实施《中华人民共和国数据安全法》,对数据的获取、传播和使用都有法律上要求。

 评审

有很多关于评审的做法,我这里不再累述,当前面的几点都做到了、做好了,其实评审时要评什么,怎么评,也就呼之欲出了。

个体用例的设计是否合理,与软件的操作是否相符,这是一个重点。

整体用例的前后数据是否呼应,是否能构成一套,这是另一个重点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/426639.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一日一题:第十一题---模拟堆(很认真!)

​作者:小妮无语 专栏:一日一题 🚶‍♀️✌️道阻且长,不要放弃✌️🏃‍♀️ 哭了,一定要记录,为了,写这篇文章千辛万苦 堆笔记 题目描述: 维护一个集合,初始…

javaagent 使用注意

前言 最近做项目,需要实现一个agent,实现运行过程替换字节码,当笔者实现这些功能时发现还是很多注意事项的。而且字节码的替换过程如果类的属性与方法升级了,那么加载就会报错。这种做法的好处是代码无侵入,缺点也很明…

离散化的应用

前言:我们了解离散化的都知道,离散化的本质就是将几个差距很大的数映射成相差较小的数据,同时又保证了数据间的相对大小关系不会发生改变,离散化还是有些争议较大的问题的,比如去重问题等,下面我们就来深入…

从抓包的角度分析connect()函数的连接过程

这篇文章主要是从tcp连接建立的角度来分析客户端程序如何利用connect函数和服务端程序建立tcp连接的,了解connect函数在建立连接的过程中底层协议栈做了哪些事情。 tcp三次握手 在正式介绍connect函数时,我们先来看一下tcp三次握手的过程,下…

用孕妇的思维和孕妇对话——《用孩子的思维和孩子对话》

看惯了某鱼上经典的卖货话术,“不懂事怀孕了,遂出”。没想到我居然也快要当爸爸了。这几个月准爸爸的生活让我切身的体会到了孕妇的不容易以及陪伴孕妇的辛苦。本文不打算歌颂母亲或者替准爸爸们倒苦水,单纯总结思考一下孕期夫妻如何沟通。加…

360度全景拍摄,探索全景世界带你飞跃视野新高度

引言: 随着科技的不断发展和进步,数字媒体技术也得到了长足的发展和应用。其中,全景拍摄作为数字媒体领域的一项创新技术,能够为人们提供更加直观、真实和生动的视觉体验,广泛应用于旅游、房地产、商业推广和教育培训…

【牛客网】树根与星际密码

目录 一、编程题 1.树根 2.星际密码 二、选择题 一、编程题 1.树根 链接:数根__牛客网 (nowcoder.com) 数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根;如果结果是两位数或者包括更多位的数…

【瑞吉外卖】001 -- 项目介绍与环境搭建

本文章为对 黑马程序员Java项目实战《瑞吉外卖》的学习记录 项目效果展示: 目录 一、软件开发整体介绍 1、软件开发流程 2、角色分工 3、软件环境 二、瑞吉外卖项目介绍 1、项目介绍 2、产品原型展示 3、技术选型 4、功能架构 5、角色 三、开发环境搭建 1、数据库环…

matlab升余弦滤波器comm.RaisedCosineTransmitFilter用法

RaisedCosineTransmitFilter是一个MATLAB通信工具箱中的函数,用于上采样和滤波输入信号。它可以使用正常的升余弦FIR滤波器或平方根升余弦FIR滤波器。通过使用升余弦FIR插值信号来应用脉冲整形滤波器。系统对通过使用升余弦有限脉冲响应(FIR)滤波器对输入信号进行插…

基于libevent实现调度器

一、调度器 1、调度器要解决的问题 1)事件保序 2)实现异步接口 2、调度器实现原理 调度器主要由下面的几个部件构成,如下: 2.1、Job 功能:保存回调及自定义参数 2.2、JobDescriptor 功能:1)创建…

从编译角度看c和c++混合编译

往期地址: 操作系统系列一 —— 操作系统概述操作系统系列二 —— 进程操作系统系列三 —— 编译与链接关系操作系统系列四 —— 栈与函数调用关系操作系统系列五——目标文件详解操作系统系列六 —— 详细解释【静态链接】 本期主题: c和c混合编译 C和…

【蓝桥杯】计算指定日期为当年第几天

文章目录前言题目分析算法难度实战1、创建算法2、创建测试用例3、测试结果总结前言 蓝桥杯全国软件和信息技术专业人才大赛由工业和信息化部人才交流中心主办,每年参赛人数超过30000人。蓝桥杯大赛作为国内领先的全国性 IT 学习赛事,持续有力支撑综合测评、奖学金评…

Web前端开发:HTML、CSS

一. 前端开发介绍 在介绍Web网站工作流程的时候提到,前端开发,主要的职责就是将数据以好看的样式呈现出来,说白了,就是开发网页程序,如下图所示:1. 网页有哪些部分组成 ? 文字、图片、音频、视频、超链接…

车企跨界背后,智能手机进入新增长时代

2022年中国智能手机销量首次跌破了3亿部大关,创下了十年来的最低水平。与此同时,以新能源车和XR为代表的新形态终端日渐成为新宠。在行业内外部多重因素影响之下,“唱衰”智能手机的声音也在甚嚣尘上,甚至有不少人认为智能机已进入…

笔记本电脑开不了机?3种解决方法

案例:笔记本电脑开不了机怎么办? 【我的笔记本电脑一直用得好好的,今天突然开不了机,尝试按了开机键很多次也没有解决。有人遇到过同样的问题吗?有没有解决的方法!】 在日常生活中,我们经常会…

Vulnhub靶场DC1-2练习

目录0x00 准备0x01 信息收集0x02 漏洞利用与攻击0x03 思路总结0x00 准备 下载连接:https://download.vulnhub.com/dc/DC-2.zip 介绍:Just like with DC-1, there are five flags including the final flag.Please note that you will need to set the …

看完这篇文章你就彻底懂啦{保姆级讲解}-----(I.MX6U驱动LED灯《使用汇编语言编写》) 2023.4.17

目录前言STM32 知识回顾完整汇编代码最终编译验证结束语前言 首先我们在开发stm32的时候驱动LED灯会有两种方式,分别是寄存器和库函数版本。因为在实际的开发过程中,我们更愿意更习惯用库函数版本来驱动各种外设,但是对于底层的寄存器调用和…

Linux宝塔安装msyql服务,默认密码,允许远程登录问题解决

一、首先我在宝塔安装mysql服务是5.7 1.1MySQL数据库5.6之前(不包括)默认密码为空,用户不用输入密码,直接回车登陆 mysql -uroot -p password:(空) 1.2.MySQL数据库5.6之后(包括)默认密码是MySQL数据库随机…

Mybatis手动配置ORM,不用自动ORM等操作

一、解决mapper.xml存放在resources以外路径中的读取问题 在pom.xml文件最后追加< build >标签&#xff0c;以便可以将xml文件复制到classes中&#xff0c;并在程序运行时正确读取。 <build><!-- 如果不添加此节点src/main/java目录下的所有配置文件都会被漏掉…

【Android Audio】TimeCheck机制

TimeCheck机制&#xff08;Android R/S&#xff09; TimeCheck.cpp TimeCheck.h frameworks/av/media/utils/TimeCheck.cpp TimeCheck守护线程的作用&#xff1a; 当audioserver中IAudioFlinger&#xff0c;IAudioPolicyService&#xff0c;IEffect中的每一个binder函数调用时…