浅谈测试用例设计 | 京东云技术团队

作者:京东物流 王莹莹

一、测试用例为什么存在

1.1 定义

测试用例(Test Case)是指对特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。测试用例内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档类的输出。简而言之,测试用例是为某个目标而设计的一组测试输入、执行条件以及预期结果,用于核实是否满足某个软件需求。

1.2 作用

①指导测试(开发)的执行

测试用例作为各个测试阶段工作基准指导测试人员按照按用例项目和测试步骤实施测试。另外,测试工作左移时,测试同学提前输出的测试用例也可以指导开发人员的开发工作。

②测试物料的准备

• 数据:按照测试用例配套准备一组或若干组测试所需的原始数据。

• 测试脚本:自动化测试脚本的设计依据。

③测试工作进度把控

•测试工作量评估

•提高测试工作组织效率

④测试结果的度量基准

测试完成后需要撰写测试报告,判断测试是否完成、衡量测试质量量化的结果更加准确、有效。例:测试覆盖率是多少、测试合格率是多少、重要测试合格率是多少,等等。

⑤分析缺陷

通过测试用例和缺陷数据库对比,分析缺陷原因与类型。

二、测试用例设计基本原则

①正确性:测试用例必须是正确的,需通过测试用例评审。

②代表性:测试用例不可能是“穷举”的,期望在有限的测试时间内进行有效的测试,用例必须具有代表性的。

③可判定性:用例的测试结果必须可量化,这样测试完成之后才能将测试结果与预期结果进行比较,判定是否存在BUG。

④可重现性:测试用例执行可复现性保证问题定位的准确性。

⑤可操作性:详细、准确和清晰的步骤是测试用例执行的必要条件,也是测试用例可重现的基础。

三、关于测试用例设计的三言两语

3.1 地基:常用测试用例设计方法(黑盒测试)

等价类划分与边界值分析

•等价类划分

将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。

•边界值分析

边界值分析法就是对输入或输出的边界值进行测试的一种方法,通常是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

场景法

场景法是通过场景描述用例执行的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。场景法适合测试业务流程清晰的系统或功能,从系统整个业务流程的全部角度对系统进行测试。

举例:京东商城购买商品,APP->选择商品->点击购买->确认购买信息->支付,这里的每个环节不同的结果结合起来都是一条不一样的用例。

错误推测法

错误猜测主要是一项依赖经验和直觉的非正规的工程方法,基本思想是列举程序可能出现的错误或者容易产生错误的测试点,然后根据测试点来编写测试用例。

举例:京东商城APP搜索输入框特殊字符的检查。

因果图与判定表

用图解的方法表示各种组合关系,写出判定表,从而设计相应的测试用例。类似于数学知识中的布尔逻辑运算,将各种输入条件的组合起来。每种组合条件就是“因”,它有一个输出的结果,这就是“果”。

举例:

正交实验法

正交试验设计是使用已经造好的正交表格进行数据分析,从中挑选出部分具有代表性的点进行试验,这些代表性的点具备了“均匀分散,整齐可比”的特点,是一种相对高效、快速的用例设计方法。

举例:

3.2 盖房子:实际工作中的测试用例设计

实际工作中,很多时候我们无法遵循理论上的测试用例设计方法那样,编写大而全的用例去执行所有大大小小需求的测试。更多情况下,用例设计时应该遵守精益测试策略,不能一味的追求测试覆盖率,有效的测试更有价值。利用测试四象限等信息指导的精益测试,追求以业务价值为目标,以尽量少的成本交付高质量的软件,做到有效覆盖,减少浪费。不管是手工测试还是自动化测试,都要先搞清楚业务价值和质量目标,测试用例设计和执行过程都需要做出相对应的考量(如测试用例的优先级)。

框架搭建

用例设计之前,我们应该熟悉需求的业务背景与技术架构,从而勾勒出测试用例整体框架。然后,使用【横向扩展】+【纵向分层】的组合模式下来针对每个需求完成用例拆解覆盖。

•横向业务扩展:指从业务角度平铺来看,总共有哪些业务场景,提供了哪些能力,即产品最上层的功能全景。

•纵向架构分层:是指从技术架构层面来分析,当前产品可以宏观上分为几层,以便于在用例验证是从不同层次上进行验证和用例覆盖。

举例:

添砖加瓦

测试框架搭建完成之后,就需要完善测试范围梳理,确认功能点的细节信息。例如,一般情况下需要进行回归测试、异常测试,再有可能需要进行并发测试、安全测试和性能测试等。从测试类型出发,结合常规用例设计方法进行用例设计与编写。

举例:

站在房子外面:像用户一样去测试

怎样像用户一样测试,能否做到还原真实用户的使用场景,还原用户在使用产品时的真实心理。说起来有点玄,但其实思路很简单。第一步想象自己就是用户,如果是我会有多少奇奇怪怪的操作或需求;第二步是弥补测试人员和用户之间的断层,用户和测试信息对齐,指导用户更好的使用软件,指导测试更有同理心。

小妙招

•用户画像:我们大概率能知道用户群体是谁,他的典型画像是什么样的,这也是我们进行换位思考的基础。

•不信任上下游:我们不能保证上下游给我的信息或者功能一定是完美的,结合自身系统定位和业务确认不同场景下我们应该做出什么样的反馈。

3.3 拓展:房子的维护,测试用例管理

测试用例是我们测试人员宝贵的财富,在测试工作中测试用例是其最为重要的基础。所以,一个良好的测试用例除了可以帮助测试人员阅读,理解,修改之外,也要方便我们去管理它,从而提高测试工作的质量和效率。不同的业务条线或者团队可以根据自己需要制定一些规则,让大家在进行测试用例设计遵守。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FreeRTOS系统学习第一步:新建 FreeRTOS 工程—软件仿真

创建一个FreeRTOS系统工程 1.新建工程文件夹2.Keil新建工程2.1 New Project2.2 Select Device For Target2.3 Manage Run-Time Environment 3. 在 KEIL 工程里面新建文件组3.1在 KEIL 工程里面添加文件 4. 编写 main 函数5. 调试配置5.1 设置软件仿真5.2 修改时钟大小在时钟相关…

基于python的socket网络通信【1】

一、Socket原理 学习了大佬的知识,简单记一些笔记 https://www.jianshu.com/p/066d99da7cbd http://c.biancheng.net/view/2351.html 1.1什么是Socket 在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种…

计算机网路常见面试题(上)

计算机网络基础 # 网络分层模型 # OSI 七层模型是什么?每一层的作用是什么? OSI 七层模型 是国际标准化组织提出一个网络分层模型,其大体结构以及每一层提供的功能如下图所示: 每一层都专注做一件事情,并且每一层都…

网络安全:namp扫描工具

-sP可以扫描一个网段ip以及状态和基本信息,10.1.1.2-3就是扫描2和3这两个ip的主机 -p可以扫描指定ip对应主机的端口号,可以是一个范围 nmap简单扫描:nmap 地址 检查地址是否在线以及open的端口号 在端口开放,不一定可以与对方正常…

Spring 依赖注入源码

文章目录 依赖注入原始依赖注入方式注解方式寻找注入点注入点进行注入 从BeanFactory中找注入对象总结 依赖注入 具体代码是在AbstractAutowireCapableBeanFactory类的populateBean()方法,此方法中主要做的事情如下: 实例化之后,调用Instan…

各大外卖平台占据共享经济市场主要份额,占比近50%

哈喽大家好,随着大量互联网用户和移动支付的普及、大量用户通过共享平台将闲置资源和服务与需求方进行匹配,实现了资源的高效利用和消费者福利的提升。在全球化驱动的新型消费需求以及政策支持下,共享经济正在向更加成熟和规范化的方向发展。…

瑞芯微RK3568智慧视频录像机NVR设备解决方案

NVR技术应用功能模式,较为灵活且能够在很大程度上满足当今视频监控系统功能需求。以NVR技术为核心的小型NVR方案,具有规模较小、操作灵活、使用方便、经济实用等优点,其前端主要配合高清视频摄像机支持8路720P的高清视频图像接入,…

13-NumPy

文章目录 一.基础1.Ndarray对象2.数据类型 二.数组1.数组属性(1)arange(2)shape(3)ndim(4)itemsize 2.创建数组(1)empty(2)zero&#…

Chat GPT在全球变暖中的潜在应用

01 摘要 气候变化是一个全球性的重大挑战,需要整合包括大气科学、海洋学和生态学在内的许多不同科学领域。解决这一问题的复杂性和规模需要利用先进的工具和技术来理解、建模和预测未来的气候状况。人工智能和自然语言处理技术,如Chat GPT,…

Maven 依赖下载失败解决方案——配置国内源 + 具体解决办法

目录 前言 一、配置 Maven 国内源 二、重新下载jar包 三、其他问题 前言 最近发现 spring-boot 框架更新到 2.7.11 了,由于以前一直使用的是 2.7.9 ,所以一直出现依赖下载失败的问题,实际上这是由于 IDEA 会先加载之前下载好的依赖&#xf…

Linux操作系统命令大全

Linux是一种操作系统 Operating System 简称 OS ,是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁。 操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置…

业内常用即时传输网盘

工具名称 业内常用即时传输网盘 功能简介 无需登录,短时间内有效,多用于传输小型敏感文件 外部链接 请见文内 内部网盘链接 在线站点,无网盘链接 使用说明 许多安全行内人士在团队内互传敏感文件时,为实现上传和下载文件…

现场工程师救火-UEFI(BIOS)节能设置导致金牌服务器只跑出龟速

近期协助出现场,解决了一个非常典型的UEFI 启动参数配置不当导致的服务器降效案例。错误的节能参数配置,导致价值几十万的服务器变成龟速服务器,并造成严重的生产事故。 1. 现象 朋友公司近期准备升级2010年就部署的服务器组,新…

《斯坦福数据挖掘教程·第三版》读书笔记(英文版) Chapter 2 MapReduce and the New Software Stack

来源:《斯坦福数据挖掘教程第三版》对应的公开英文书和PPT Chapter 2 MapReduce and the New Software Stack Computing cluster means large collections of commodity hardware, including conventional processors (“compute nodes”) connected by Ethernet …

centos8 mysql 主从复制

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放,树高千尺,落叶归根人生不易,人间真情 目录 Linux centos8

使用D435i深度相机运行ORB-SLAM3

下载安装链接 下载ORB-SLAM3地址: git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git eigen3多版本安装:https://blog.csdn.net/weixin_41756645/article/details/129570141 ORB-SLAM2中eigen3版本为:3.2.10版本 ORB-SLAM3中eigen3版…

【分布式】一致性哈希和哈希槽

当我们拥有了多台存储服务器之后,现在有多个key,希望可以将这些个key均匀的缓存到这些服务器上,可以使用哪些方案呢? 1. 普通哈希取模法 1.1 直接哈希取模 这是一种最容易想到的方法,使用取模算法hash(k…

AI绘图实战(七):室内设计线稿渲染、景观设计手绘稿改动、建筑照片转线稿|Stable Diffusion成为设计师生产力工具

S:AI能取代设计师么? I :至少在设计行业,目前AI扮演的主要角色还是超级工具,要顶替?除非甲方对设计效果无所畏惧~~ 预先学习: 安装及其问题解决参考:《Windows安装Stable Diffusion …

javaScript:cropperjs是一款非常强大却又简单的图片裁剪工具

cropperjs是一款非常强大却又简单的图片裁剪工具,它可以进行非常灵活的配置,支持手机端使用,支持包括IE9以上的现代浏览器。(关键是使用方法简单,几行代码就可以搞定) 官方github文档:GitHub -…

流程图拖拽视觉编程-流程编辑器

目录 一、简介 二、流程编辑器-视图实现 三、参考资料 一、简介 前期文章: 流程图拖拽视觉编程--概述_Jason~shen的博客-CSDN博客 本期内容: 本期将介绍流程编辑器模块的实现方法,效果图如下所示。该模块基于QT Graphics/View实现&…