关于自动化用例设计的思考!

news2024/12/22 19:28:36

为什么要设计用例?

作为质量保证(QA)人员,设计测试用例的重要性不亚于开发人员编写技术实现方案。如果实现方案设计不周,编码阶段将可能遇到许多问题;同理,如果我们未能设计测试用例,产品质量就难以得到充分保障。

对于不同的测试类型,我们在设计测试用例时候的侧重点和颗粒度有所不同。

设计测试用例的目的,个人观点认为主要有如下几点原因:

方便测试活动开展

我们心中一定需要有质量和效率的意识。我们工作的核心是以更高的效率保证交付产出物的质量,这也是是所有测试工作的最终目标。

在实际工作实践中,绝大多数的测试工作都是围绕测试用例展开的。例如测试用例评审、冒烟测试、提测检查、用例执行、缺陷提交、缺陷跟踪和修复验证,直到最终线上发布。每个阶段都有对应的测试用例、脑图、测试点或者checklist。

保证业务场景覆盖

软件测试工作的核心是通过设计各种场景并进行校验,以确保交付的软件符合预期设计结果。无论是采用功能测试中的等价类、边界值、正交、因果图等用例设计方法,还是自动化测试中的分层概念,都是为了通过特定的方法和手段尽可能地保障业务场景的覆盖率,避免因遗漏而导致问题逃逸到线上,从而影响最终交付产出物的质量。

我们的目标是通过精心设计的测试策略和全面的测试覆盖,确保软件功能的稳定性、一致性和可靠性。

质量管控和评估

随着团队对质量的重视,开始对需求质量、研发质量、发布质量等进行质量评估,通过一系列的手段和策略去提升各个方面的质量,达到最终交付质量。

测试用例是研发过程质量中的重要组成部分,可以说是研发过程中各项测试工作的核心。

我们习惯以多维度的视角,运用各种测试技术手段来检验软件是否满足预期,都是为了验证和确保交付质量。同时,我们也严格遵循流程规范和度量标准,以保证最终交付的产品达到标准。

例如我们想要度量研发提测质量,通过单元测试、代码扫描、冒烟测试的手段,制定对应的度量标准如单元测试覆盖率、冒烟用例通过率、提测退回率、代码质量分等。

这里面我们有些可能不是完整的用例,但是会是一些检查点、度量指标。

如何设计自动化测试用例?

自动化测试的分层模型,我们应该已经很熟悉了,按照分层测试理念,自动化测试的投入产出应该是一个金字塔模型。越是向下,投入/产出比就越高,但开展的难易程度/成本和技术要求就越高。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

Unit 自动化

单元测试(unit testing) 是指对软件中的最小可测试单元进行检查和验证。最初由开发人员完成,旨在确保其所负责的环节交付的产出物符合进入下一阶段的标准。

对于单元测试,我认为测试人员应该参与其中,共同协作进行测试和验证,以尽早发现问题。具体执行者主要是开发人员,但如果测试人员有能力、时间和精力,他们也可以参与其中的一部分。在设计单元测试用例和执行方面,可以考虑如下几点:

  • • 测试人员和开发人员分清楚职责和边界

  • • 测试人员和开发人员对于用例设计颗粒度达成共识,给出相关标准

  • • 划定业务范围、优先级、实施阶段和执行频率

  • • 测试人员和开发人员制定的度量标准需要达成共识,如覆盖率、通过率、阻碍bug数等

API 自动化

从测试分层金字塔模型来说,API自动化测试是性价比最高的一种测试手段。在设计用例时需要如下思考:

  • • 确定要开展API自动化测试的业务范围

  • • 针对业务范围内的接口进行优先级排序

  • • 优先保障正向业务场景覆盖,逆向场景后面再进行考虑

  • • 明确 API 接口相关基础信息,如接口参数、业务逻辑及数据落库等信息

  • • 优先保证单接口进行,再考虑对接口串联的场景化

UI 自动化

先说 UI 自动化用例设计之前,我们聊聊哪些项目、场景适合开展 Ui 自动化测试,我们需要考虑如下情况:

  • • 需求比较稳定,不会频繁变更 

  • • 比较频繁的回归验证和执行 

  • • UI界面稳定,变动少 

  • • 软件维护周期长,可持续性

  • • 项目进度时间比较充裕 

  • • 被测系统开发较为规范,可开展性高 

  • • 存在比较好的基础设施

UI层是直接面向用户的入口,我们的业务功能测试工作主要集中在这一层。在进行UI自动化时,应针对性评估和筛选适合的业务场景来设计用例。然而在实际工作实践中,很难完全满足上述条件。

一般来说只要满足下面几点,就可以开展UI自动化测试:

需求稳定,不会频繁变更

UI自动化测试面临的主要挑战是需求和UI的频繁变化。为适应新的改动,脚本需要不断修改和扩展,过多的修改可能导致投入产出比低,从而降低UI自动化测试的价值和意义。一种妥协的办法是选择相对稳定的模块和功能进行自动化测试,而对于变动较大或需求频繁变更的部分,则采用手动回归。

比较频繁的回归验证和执行

测试数据、测试用例、自动化脚本的复用高,只有高频的执行才能体现出价值所在。

软件维护周期长,可持续性

UI自动化测试需要稳定的需求、精心设计的自动化框架以及花费时间进行脚本开发和调试,这实际上是一个软件开发过程。如果项目周期较短且没有足够的时间去支持这一过程,那么自动化测试可能就不再必要。

被测系统UI设计较为规范,可开展性高

主要基于以下几点进行考虑:

  • • 系统UI的差异,不同的系统UI可能会影响自动化测试的效果和效率

  • • 测试工具的适应性,选择的工具是否能适应项目的需求和环境

  • • 测试人员的能力,他们是否能够快速掌握并应用相关的知识和技术。

设计用例需要注意什么?

我们始终需要遵循小步快跑、逐渐迭代的思维原则,先跑起来,进行验证再说。

由易到难,从简单到复杂

不同类型的自动化测试用例设计和实施,都是覆盖范围越大/粒度越小,投入成本越大, ROI递减的过程。

在如今的环境中,大部分企业都强调研发效益的提升和快速迭代的重要性。此时,我们不能再沉溺于“慢工出细活”的传统理念,反而应着眼于如何在更短的时间内,以更低的投入实现核心场景的全面覆盖,以达到快速验证的目标。我们要理智地看待覆盖率、案例数量等度量指标,不应过分追求这些表面的数字,而应关注其背后的真实价值和意义。

我们千万不要面向质量度量和KPI搞自动化测试,这样容易因小失大

可监控、可确认、可评估

在设计自动化测试用例时还应注意这些:

  • • 可监控:用例执行需要很方便的查看执行过程场景,非常清晰的展示相关数据及变化;

  • • 可确认:自动化用例必须要有断言,执行完成需要达到我们的目标

  • • 可评估:自动化执行的结果要可评估,例如通过率为 100%,代表当前功能没有问题

END今天的分享就到此结束了~!点赞关注不迷路! 

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

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

相关文章

在thinkphp5.1 自定义验证规则 获取get 传递的值的时候 传递了 值 能够获取到 验证出错

控制器: public function teamDetail(){if(request()->isGet()){$team_id $this->request->get(team_id, );$this->validate->scene(teamDetail)->check($team_id);if ($this->validate->getError()) {return resultArray(lang(strval($this->vali…

基于ssm金旗帜文化培训学校网站的设计与开发论文

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对培训学校展示信息管理混乱,出错率高,信息安全…

SpringBoot Starter机制(自定义Start案例,实际开发场景中的短信模拟,AOP实现日志打印)

前言: 在我们上一篇博客中,实现Freemarke的增删改查,今天分享的是关于SpringBoot Starter机制-- 1.SpringBoot Starter 1.1.什么是SpringBoot Starter SpringBoot中的starter是一种非常重要的机制(自动化配置),能够抛弃以前繁杂…

Spring MVC开发流程

1.Spring MVC环境基本配置 Maven工程依赖spring-webmvc <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.9.RELEASE</version> </dependency>web.xml配置Dispatche…

ubuntu安装详细步骤

一&#xff0c;先下载vmware 1&#xff0c;第一步打开上面链接 下载网址 : https://www.vmware.com/products/workstation-pro/wo rkstation-pro-evaluation.html 许可证 JU090-6039P-08409-8J0QH-2YR7F ZF3R0-FHED2-M80TY-8QYGC-NPKYF FC7D0-D1YDL-M8DXZ-CYPZE-P2AY6 ZC3T…

【数据结构第 6 章 ④】- 用 C 语言实现图的深度优先搜索遍历和广度优先搜索遍历

目录 一、深度优先搜索 1.1 - 深度优先搜索遍历的过程 1.2 - 深度优先搜索遍历的算法实现 二、广度优先搜索 2.1 - 广度优先搜索遍历的过程 2.2 - 广度优先搜索遍历的算法实现 和树的遍历类似&#xff0c;图的遍历也是从图中某一顶点出发&#xff0c;按照某种方法对图中所…

6.23删除二叉搜索树中的节点(LC450-M)

算法&#xff1a; 一共有五种可能的情况&#xff1a; 第一种情况&#xff1a;没找到删除的节点&#xff0c;遍历到空节点直接返回了找到删除的节点 第二种情况&#xff1a;左右孩子都为空&#xff08;叶子节点&#xff09;&#xff0c;直接删除节点&#xff0c; 返回NULL为根…

鸿蒙4.0开发 - DevEco Studio如何使用Previewer窗口预览器报错

DevEco Studio预览器概况在HarmonyOS应用开发过程中&#xff0c;通过使用预览器&#xff0c;可以查看应用的UI效果&#xff0c;方便开发者实时查看应用的运行效果&#xff0c;随时调整代码。 1.正常启动 打开预览器的位置在DevEco Studio编辑界面的右上角部分&#xff0c;竖排…

基于VGG-16+Android+Python的智能车辆驾驶行为分析—深度学习算法应用(含全部工程源码)+数据集+模型(三)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建3. 模型训练及保存1&#xff09;模型训练2&#xff09;模型保存 4. 模型生成1&#xff09;模型导入及调用2&#xff09;相关代码&#xff08;1&#xff09;布局文件&#xff08;2&#xff…

独立站低成本流量:优化用户体验,实现精准营销

在当今的数字化时代&#xff0c;获取流量是每个网站成功的关键。然而&#xff0c;随着竞争的加剧&#xff0c;流量获取的成本也在逐渐上升。对于许多独立站来说&#xff0c;如何低成本的获取流量变得越来越具有挑战性。本文Nox聚星将和大家探讨独立站如何通过网站优化和精准营销…

云演CTF Blog

1、啥也搞不了&#xff0c;扫目录。出来个console 2、有显示锁掉了 3、抓包&#xff0c;改返回包 改成true&#xff0c;放包 不好意思&#xff0c;不会了&#xff0c;哈哈哈哈哈哈哈哈哈 你会的话&#xff0c;请告诉我&#xff0c;大佬

软实力篇---第四篇

系列文章目录 文章目录 系列文章目录前言一、你对我们公司有什么想问的吗?二、很多人都倒在自我介绍上三、如何与 HR 交谈,如何谈薪水前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就…

docker consul容器的自动发现与注册

一、微服务&#xff08;容器&#xff09;的注册与发现——微服务架构中极其重要的组件 1、定义&#xff1a;是一种分布式管理系统以及定位服务的方法。传统架构中&#xff0c;应用程序之间直连到已知的服务&#xff0c;设备提供的网络&#xff08;IP地址&#xff09;&#xff…

揭开机器学习转换器架构的神秘面纱

自2017年推出以来&#xff0c;转换器&#xff08;Transformers&#xff09;已成为机器学习领域的一支突出力量&#xff0c;彻底改变了专业翻译和自动完成服务的能力。 最近&#xff0c;随着OpenAI公司的ChatGPT和Meta公司的LLama等大型语言模型的出现&#xff0c;转换器的受欢…

保障线程安全性:构建可靠的多线程应用

目录 引言 为什么线程安全性如此重要&#xff1f; 1. 竞态条件&#xff08;Race Conditions&#xff09; 2. 死锁&#xff08;Deadlocks&#xff09; 3. 数据竞争&#xff08;Data Races&#xff09; 4. 内存可见性&#xff08;Memory Visibility&#xff09; 面临的挑战…

【网络安全技术】电子邮件安全PGP,SMIME

一、PGP&#xff08;Pretty Good Privacy&#xff09; PGP是一种邮件加密手段&#xff0c;他在发邮件一方加密&#xff0c;然后发给发送方邮件服务器&#xff0c;发送方邮件服务器再发送给接收方邮件服务器&#xff0c;然后接收方再从接收方邮件服务器pop出来&#xff0c;这整…

Axure动态面板的应用与ERP系统登录界面、主页左侧菜单栏、公告栏的绘制

目录 一、动态面板 1.1 简介 1.2 使用动态面板的原因 二、动态面板之轮播图实现案例 2.1 完成步骤 2.2 最终效果 三、动态面版之多方式登录案例 四、动态面板之后台主界面左侧菜单栏 五、ERP登录界面 六、ERP主界面菜单栏 七、ERP公告栏 八、登录页面跳转公告栏 一…

OpenAI开源超级对齐方法:用GPT-2,监督、微调GPT-4

12月15日&#xff0c;OpenAI在官网公布了最新研究论文和开源项目——如何用小模型监督大模型&#xff0c;实现更好的新型对齐方法。 目前&#xff0c;大模型的主流对齐方法是RLHF&#xff08;人类反馈强化学习&#xff09;。但随着大模型朝着多模态、AGI发展&#xff0c;神经元…

【专栏目录】

摘要 本专栏是讲解如何改进RT-DETR的专栏。改进方法采用了最新的论文提到的方法。改进的方法包括&#xff1a;增加注意力机制、更换卷积、更换block、更换backbone、更换head、更换优化器等&#xff1b;每篇文章提供了一种到N种改进方法。 评测用的数据集是我自己标注的数据集…

【设计模式--行为型--中介者模式】

设计模式--行为型--中介者模式 中介者模式定义结构案例实现优缺点使用场景 中介者模式 定义 又叫调停模式&#xff0c;定义一个中介角色来封装一系列对象之间的交互&#xff0c;使原有对象之间的耦合松散&#xff0c;且可以独立的改变它们之间的交互。 结构 抽象中介者角色…