如何处理不稳定的自动化测试?

2024-01-09

在这里插入图片描述 2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)

图片

abluecolor

在解决这个问题之前,请停止编写更多测试,因为这将花费你较高的测试维护成本。你需要尽快行动起来对不稳定的原因进行深入研究,找到不稳定的根因,并且尝试在流程、环境和代码方面做一些优化工作解决它。

MasterKindew

如果你还没有在测试里增加测试日志记录,那么专门花时间补充日志会对你大有帮助,让框架抛出错误并明确测试的错误。

如果你的用例通过使用前端自动化框架开发,那么在发生故障时截图的内容将会很有帮助。

hitchdev

这是一个非常普遍的问题,也是一个很难解决的问题。

我的解决方案:

1 使测试完全闭环。测试是否有通过网络发起对外请求?如果有的话请使用模拟 API 代替。是否使用数据库?使用固定数据在本地设置数据库,并在每次测试后将其清除。

在实践中,我认为几乎没有人使端到端测试是密封的。这非常非常难。不过,这是一个值得实现的目标,原因不仅仅是脆弱。

2 删除测试中所有类似于sleep的内容并用显式等待代替。

3 识别代码中不稳定因素并修复或消除它们。

4 这个问题确实很棘手,因为你要么需要成为开发人员,要么需要开发人员的支持来解决这些问题。问题如下:

循环访问没有确定顺序的数据结构(如哈希图)。

SELECT 查询嵌套在代码中。

使用随机数(这可以通过修复测试运行中的种子或模拟 RNG 来解决)。

ToddBradley

我最近一份工作的公司有遇到这个问题。当我加入时,我们遇到了测试结果不稳定的大问题。工程主管总是指责测试同学,而质量主管则不太确定这个锅该不该背。所以我的工作就是把这一切问题都解决掉。这是一项巨大的工程,但最终我们发现该产品不稳定,而开发人员从未意识到这一点,整个过程蛮好玩的。

因此,这里的教训是,“不稳定的自动化测试环境”可能有很多原因:

测试用例设计不当

有缺陷的测试基础设施(服务器等)

被测系统不稳定,至少在测试环境中是如此

重试只是把问题掩盖起来,所以我的建议是避免重试,除非问题出在产品方面并且没有人愿意修复它(在这种情况下,你需要首先询问是否值得测试) 。

Rough-Supermarket-97

你可以使用一些统计模型来量化这一点,但从我的角度来看,依赖点与满足通过定义所需的测试步骤之间存在关系。

对于依赖于穿过多个接缝的每个测试步骤结果(将 API -> 队列 -> DB 视为 3 个独立的接缝),失败的可能性随着接缝的数量呈指数级增加,并乘以依赖于的步骤数那些接缝。您可以想象,这种可能性可能会变得相当高,尤其是当您根据 I/O 瓶颈和其他更多基于基础设施的故障点等因素考虑接缝发生一般故障的概率时。

那么如何稳定集成测试呢?其一,让它们尽可能小。这将是我考虑的第一阶段。

其次,问问自己,“我真的关心测试基础设施吗?或者我更关心应用程序如何响应其依赖项?” - 这个问题应该引导您确定模拟在哪里有用以及您可能仍然想在哪里使用该依赖项。

Yogurt8

测试环境总是不稳定的。

良好的日志记录对于任何自动化项目都至关重要。

Ikeeki

我认为不稳定的测试代码是写的质量差,如何处理质量不佳的代码?

你会发现有时这是一个不稳定的测试,但有时它是一个真正的应用程序错误。

我们越减少脆弱性,后者就越开始发生。

但 IMO 的关键是测试指标、测试仪表板以及解决任何未达到 90% 以上成功率的测试。

作为 SDET,我会第一个排查报错问题,但如果我能证明测试代码之外存在某些问题,那么我会找一个该领域测试专家一起解决这个问题。

有一次,我编写了一个Slack 机器人,当新测试不稳定或在所有分支上开始失败时,它会向我们发出警报,这个机器人对我们非常有用。

wegotallthetoys

显示每个测试执行步骤的测试报告。

我曾经处理过一组每天运行的 2000 个测试,每次运行可能会出现 60-70 个失败测试,我们的测试报告意味着可以在几个小时内review这些失败。

该套件测试报告包含:

每个执行动作的屏幕截图

利用查询来选择要使用的测试数据

输入任何操作的所有数据

fwk 抛出的任何异常

根据我在该测试集中的经验,失败的最常见原因是与测试数据相关,例如,测试正在尝试完成某数据的操作,而该某数据未处于当前操作能处理的状态。

Brankksss

我认为你可以使测试尽可能更加密封。模拟一些依赖项,在 Docker 容器上设置 SUT,并仅对“不稳定”环境进行测试。我不知道你的测试环境是如何构建的,我猜测你的依赖项每次都不会更新版本,所以这就是我对你的情况的看法。

看了上述的回答,大家也许有体感了。针对不稳定的测试处理方法,可以归结为以下几种:

用例开发角度:适当记录用例执行日志;用例编写自闭换,多使用Mock。

识别并消除测试中不稳定因素,例如sleep。

建议消除重试机制。

增加测试不稳定告警机器人。

今天为什么分享这个问题,主要是团队也面临相似的问题。

我们团队自动化用例数量将近有1w,因此排查不稳定测试用例耗费的大量人力。团队处理这个问题也专门作为一个专项来处理。下面我分享一下我们团队处理不稳定测试的经验。

处理这个难题的第一个问题就是 如何定义不稳定测试?

我相信针对这个问题,每个团队会基于自己的实际情况可能会有不同的定义。我们团队的自动化用例 每天会运行12次。我们定义的不稳定的测试是每天运行成功率为0的用例,即0成功率用例。

OK,问题已经定义,那么如何处理不稳定测试?

我们的处理方式分三步:

搜集问题用例,分析报错原因,对问题进行归类。

针对已知问题进行优先修复。

增加 0成功率机器人,用例每日告警。

针对前两步我这里分享一下解决方法。

我们的不稳定用例主要有以下几类:

用例不闭环,调下游的服务不稳定导致用例频繁失败。

用例有查询DB的模块,因为经常出现慢查询的情况。

测试环境服务器不稳定,这里表现为与线上环境相比,配置不一致甚至缺失。

这里的配置有DB的表结构、参数中心等

那么对应的解决方法:

对依赖下游的服务进行mock。

慢查询SQL进行优化,实现基于索引查询数据。如果无法实现基于索引查询,就对查询DB的SQL增大timeout。

解决不稳定用例是一个持久仗。 问题的关键在于 如何做到用例的保鲜?

目前我们用例保鲜的方法就是 通过增加0成功率机器人,每日更新0通过率用例,频繁处理不稳定用例。当然这个方案仍不是治本的最终策略,但是在一定程度上能解决了回归耗时较长的问题。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时, 请及时加入群: 786229024 ,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】

在这里插入图片描述

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 在这里插入图片描述
在这里插入图片描述 在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理不稳定的自动化测试? 的相关文章

随机推荐

  • java版商城之一件代发设置 Spring Cloud+SpringBoot+mybatis+uniapp b2b2c o2o 多商家入驻商城免 费 搭 建 直播带货商城

    在数字化时代 电商行业正经历着前所未有的变革 鸿鹄云商的saas云平台以其独特的架构和先进的理念 为电商行业带来了全新的商业模式和营销策略 该平台涉及多个平台端 包括平台管理 商家端 买家平台 微服务平台等 涵盖了pc端 手机端 h5 公众
  • 从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

    前言 先来自我介绍 老家农村 家里好不容易把我送到大城市读书 大学非985 211 但在我们老家 能出一个本科大学生也是非常不容易的 因为农村信息的相对闭塞 我对大学专业一无所知 加上分数并非前茅 最后被调剂一个我并不喜欢的专业 这里就不透
  • 所有行业的最终归宿-知识付费saas租户平台 打造知识付费平台

    随着科技的不断进步和全球化的加速发展 我们生活在一个信息爆炸的时代 各行各业都在努力适应这一变化 寻找新的商业模式和增长机会 在这个过程中 一个趋势逐渐凸显出来 那就是知识付费 可以说 知识付费正在成为所有行业的最终归宿 明理信息科技知识服
  • HarmonyOS鸿蒙开发指南:容器组建 form开发指导

    目录 创建Form组件 实现表单缩放 设置Form样式 添加响应事件 场景示例 创建Form组件 在pages index目录下的hml文件中创建一个Form组件 div class container div
  • HarmonyOS鸿蒙开发指南:容器组建 stepper开发指导

    目录 创建Stepper组件 设置index属性 设置样式 添加事件 场景示例 创建Stepper组件 在pages index目录下的hml文件中创建一个Stepper组件 div class container div
  • Java 学习路线 2024 最新版!

    又对上次分享的 Java 学习路线进行了简单修改完善 并增加了免登录下载和黑夜模式 这里重发一下 花了一个月零碎的时间 我根据当下 Java 后端求职和招聘的最新要求 对之前写的 Java 后端学习路线进行了全面的优化和改进 添加图片注释
  • 【银行测试】金融项目-APP测试要点详细汇总(详全)

    目录 导读 前言 一 Python编程入门到精通 二 接口自动化项目实战 三 Web自动化项目实战 四 App自动化项目实战 五 一线大厂简历 六 测试开发DevOps体系
  • python画彩虹和小熊

    前言 今天 我们来画两个简单的图形 一 彩虹 彩虹 又称天弓 客家话 天虹 绛等 简称为 虹 是气象中的一种光学现象 当太阳光照射到半空中的水滴时 光线被折射及反射 在天空上形成拱形的七彩光谱 雨后常见 形状弯曲 通常为半圆状 色彩艳丽 东
  • react-native打包发布

    1 在命令行中使用以下命令生成签名密钥 keytool genkeypair v keystore my release key keystore alias my key alias keyalg RSA keysize 2048 val
  • HarmonyOS鸿蒙开发指南:容器组建 list开发指导

    创建List组件 在pages index目录下的hml文件中创建一个List组件 div class container div
  • 进程间通信

    进程间通信 进程间通信介绍 进程间通信目的 数据传输 一个进程需要将它的数据发送给另一个进程 资源共享 多个进程之间共享同样的资源 通知事件 一个进程需要向另一个或一组进程发送消息 通知它 它们 发生了某种事件 如进程终止 时要通知父进程
  • 搜索二叉树(BSTree)

    一 搜索二叉树的概念 二叉搜索树又称为做二叉排序树 二叉查找树 其要么是一棵空树 要么是一个满足以下性质的二叉树 若它的左子树不空 则左子树上所有结点的关键字均小于根结点关键字 若它的右子树不空 则右子树上所有结点的关键字均大于根结点关键字
  • 9个最受欢迎的开源自动化测试框架盘点

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 自动化测试框架可以帮助测试人员评估多个Web和移动应用程序的功能 安全性 可用性和可访问性 尽管团队可以自己构建复杂的自动化测试框架 但是当他们可以使用
  • 深入了解鸿鹄电子招投标系统:Java版企业电子招标采购系统的核心功能

    随着市场竞争的加剧和企业规模的扩大 招采管理逐渐成为企业核心竞争力的重要组成部分 为了提高招采工作的效率和质量 我们提出了一种基于电子化平台的解决方案 该方案旨在通过电子化招投标 使得招标采购的质量更高 速度更快 同时节约招标成本 提升企业
  • 游戏被攻击了要怎么办

    有客户反馈刚上线新款游戏 没两天就被攻击了 导致用户无法登录 来咨询到我们这边能不能帮他解决 今天就来分享下 怎么预防游戏攻击和已经被攻击的游戏服务器该怎么处理 服务器不管是个人还是企业 被攻击的都有 在所难免 特别是新上线时候要承受住外来
  • 985毕业,我依然过不好这一生?(大厂java开发2年被裁)

    前言 看到标题 可能很多读者朋友恐怕又要骂我了 985这个特殊的字眼也确实异常晃眼 实际上现在985 211也越来越多 它能代表你能够进入到更高的平台 拿到 高级工厂 的入场券 但并不意味着你会成为赢家 或者说也不代表着你会站在金字塔的顶端
  • 前端如何处理大量数据。

    理论就是分割后台数据 然后通过定时器将数据加载到虚拟dom上 加载完成后渲染一部分 在项目中经常会碰到大量数据需要在前端页面渲染 很多时候会使用分页的功能 但是数据量过大的时候比如10万条这种的 一直滑动列表后面会出现卡顿 滑不动的现象 这
  • HarmonyOS鸿蒙开发指南:容器组建 dialog开发指导

    目录 创建Dialog组件 设置弹窗响应 场景示例 创建Dialog组件 在pages index目录下的hml文件中创建一个Dialog组件 并添加Button组件来触发Dialog Dialog组件仅支持width height mar
  • 工作五年,一年内我靠这系列java面试宝典从13K到大厂30K

    我认为对于面试以及进阶最佳的学习方法莫过于 刷题 博客 书籍 总结 前三者我将淋漓尽致地挥毫于这篇文章中 至于总结要靠个人 实际上越到后面你越会发现面试并不难 其次就是在刷题的过程中有没有去思考 刷题只是次之 这又是一个层次了 这里暂时不提
  • 如何处理不稳定的自动化测试?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 abluecolor 在解决这个问题之前 请停止编写更多测试 因为这将花费你较高的测试维护成本 你需要尽快行动起来对不稳定的原因进行深入研究 找到不稳定