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

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

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

 个人写测试用例

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

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

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年下半年国家正式实施《中华人民共和国数据安全法》,对数据的获取、传播和使用都有法律上要求。

 评审

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

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

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

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

在这里插入图片描述

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

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

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

相关文章

【pyqt5界面化工具开发-14】初始牛刀-登录工具

目录 0x00 前言: 一、准备好ui的加载 二、获取对应的触发事件 三、触发事件绑定 三、输入内容的调用 三、完善登录逻辑 0x00 前言: 在逻辑代码的处理添加数据包的请求,返回数据包的判断,就可以完整实现登录检测的一个界面化…

Android.mk开发模板

今天简单写了一个 Android.mk 的示例模板,供初学者参考。 本模板主要给大家示例 Android NDK 开发中的如下几个问题: 如何自动添加需要编译的源文件列表如何添加第三方静态库、动态库的依赖如何构造一个完整的NDK工程框架 假设我们的项目依赖 libmath.…

前后端分离不存在会话,sessionid不一致问题

目录 1.使用拦截器解决跨域的示例: 2.使用redis,不使用session 前后端不分离项目我们可以通过session存储数据,但是前后端分离时不存在会话,每次请求sessionid都会改变,当值我们储存的数据不能取出来。 1.使用拦截器…

stable diffusion实践操作-webUI教程-不是基础-是特例妙用

系列文章目录 stable diffusion实践操作 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、SD webUI是什么?二、详细教程1. 相关插件安装1.1. 提示词插件安装和使用1.2. upscale 放…

Rust 进阶学习

Rust 进阶学习 文章目录 Rust 进阶学习所有权作用域移动和克隆涉及函数的所有权机制涉及参数的所有权涉及返回值的所有权 引用和租借可变引用 枚举类枚举成员的属性枚举匹配 结构体结构体方法结构体关联函数 错误处理不可恢复错误可恢复错误 Rust代码组织管理Module默认的Modul…

JavaScript原型链污染

前言 在浏览某个论坛的时候,第一次看到了JavaScript原型链污染漏洞。当时非常的好奇,当时我一直以为js作为一种前端语言,就算存在漏洞也是针对前端,不会危害到后端,因此我以为这种漏洞危害应该不大。可当我看到他的漏…

简明易懂:Python中的分支与循环

文章目录 前言分支结构if 语句:单一条件判断else语句:提供备选方案elif 语句:多条件判断嵌套的分支结构:复杂条件逻辑 循环结构for循环:遍历序列range()函数与for循环while循环:条件重复循环控制&#xff1…

PAT编程基础笔记

写在前面&#xff1a; 这篇文章是我之前刷PAT(Basic Level)随手记下来的几个记忆点&#xff0c;希望对大家有所帮助。 1.字符串和数值类型之间的转换&#xff1a; 如果要将数值类型如int、double、long转换为字符串string&#xff0c;可以使用to_string()函数 #include<s…

GA遗传算法

储备知识 GA算法主要解决数学模型中最优化的搜索算法&#xff0c;是进化算法中的一种&#xff0c;基因算法借鉴了自然界基因的遗传的主要现象&#xff0c;分别为遗传&#xff0c;变异&#xff0c;自然选择&#xff0c;杂交等。 GA算法参数 GA算法的参数如下所示。 种群规模…

剑指 Offer 62. 圆圈中最后剩下的数字(简单)

题目&#xff1a; class Solution { public:int lastRemaining(int n, int m) {int pos 0;for(int i2;i<n;i){pos (posm)%i;}return pos;} };作者&#xff1a;想吃火锅的木易 链接&#xff1a;详细题解 来源&#xff1a;力扣&#xff08;LeetCode&#xff09;

基于python的改进高斯混合模型的图割算法研究设计与实现

摘要 信息技术永远是改变生活的第一种创新方式&#xff0c;各种行业的发展更是脱离不了科技化的支持。原本传统的行业正在被科技行业的切入悄悄的发生变化。就拿我们生活当中常见的事情举例而言&#xff0c;在外卖行业还没有发展的快速的时候&#xff0c;方便面等速食成了快速吃…

ssh常用操作

ssh常用操作 SSH是一种安全协议&#xff0c;ssh是该协议的客户端程序&#xff0c;openssh-server则是该协议的服务端程序 常用系统都自带了ssh客户端程序&#xff0c;服务端程序则可能要安装 密码远程登陆 前提&#xff1a;服务器安装了openssh-server&#xff0c;未安装时…

安装bpftrace和bcc的踩坑记录

最后在Ubuntu22.04使用Ubuntu提供的安装命令完成了安装。这里是记录尝试在Ubuntu18.04和Ubuntu22.04使用源码安装未果的过程。 文章目录 22版本安装bcc准备工具安装命令使用报错&#xff1a;iovisor封装的安装方式ubuntu的安装方式 For Bionic (18.04 LTS)官方提供的源码安装准…

Tutorial: Mathmatical Derivation of Backpropagation

目录 1. 概要 2. Gradient Descent 3. Chain rule 3.1 单变量基本链式法则 3.2 单变量全微分链式法则 3.3 小贴士&#xff1a;微分、导数、导函数是什么关系&#xff1f; 4. What and why backpropagation? 5. Backpropagation for a simple neural network 5.1 基于…

哪些存储设备的数据需要注意,防止误删除或者格式化丢失?

以下是一些存储设备的数据要注意&#xff0c;防止误删除或者格式化丢失&#xff1a; 1.硬盘&#xff1a;存储重要数据时要备份&#xff0c;避免硬盘故障、误格式化等情况导致数据丢失。 2.USB闪存驱动器&#xff1a;在拔出USB闪存驱动器前&#xff0c;应该先进行“安全删除”…

Jmeter(三十一):制造大批量的用户数据数据

需求&#xff1a;因测试需要&#xff0c;要造100w用户数据&#xff0c;通过用户名、手机号、密码可新增用户&#xff0c;其中用户名和电话号码要求100w用户不能重复 要点&#xff1a; 1、通过Bean shell Sampler实现用户名和手机号的足够随机。 符合我们常用规则的手机号&#…

element侧边栏子路由点击不高亮问题

最近自己封装侧边栏 又碰到了点击子路由不高亮的问题 <template><div class"aside"><el-scrollbar :vertical"true" class"scrollbar_left_nav"><el-menu :default-active"defaultActive" :collapse"$stor…

关于内网主备+https

先openssl证书 整体流程为&#xff1a; 1、页面访问为https&#xff0c;在电脑修改hosts文件&#xff0c;如域名为 babaozhou.com, 则配置为 ip1 babaozhou.com&#xff0c;ip2 babaozhou.com&#xff1b; 也就是说同域名关联两个ip&#xff0c;这样如果服务器1ping不通了则可…

CTFhub-文件上传-.htaccess

首先上传 .htaccess 的文件 .htaccess SetHandler application/x-httpd-php 这段内容的作用是使所有的文件都会被解析为php文件 然后上传1.jpg 的文件 内容为一句话木马 1.jpg <?php echo "PHP Loaded"; eval($_POST[a]); ?> 用蚁剑连接 http://ch…

遗传算法决策变量降维的matlab实现

1.案例背景 1.1遗传算法概述 遗传算法是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。它最初由美国Michigan大学的J. Holland教授提出,1967年, Holland 教授的学生 Bagley在其博士论文中首次提出了“遗传…