真人踩过的坑,告诉你避免自动化测试入门常犯的10个错误

news2024/11/20 3:33:32

虽然从自己的错误中学习也不错,但从别人的错误中学习总是更好的。

作为一个自动化测试人员,分享常见的容易犯的10个错误,可以从中吸取教训,引以为鉴。

一、必要时才自动化

新人小王接到为Web应用程序自动化测试脚本的任务时,既高兴又紧张,因为这是他进入团队的第一个任务。第一印象至关重要,他也希望给团队留下完美的第一印象。小王被要求自动化Web应用程序其中的一个模块,但他想表现得更好、做更多的自动化,于是选择了另外的模块。然而结果是他撞进了死胡同,没有完成。其实小王想做些新尝试并没有错,错在没有咨询前辈就试图自动化该模块。事实证明,这个模块用不着自动化,因为集成的系统可能会导致多重误报。

我在新的自动化测试人员身上看到过很多次这种情况。毕竟,好奇心可以引领前进。当学习自动化测试时,会想尝试在每个项目中引入自动化,但这是不必要的。可能有足够的能力自动化某件事,但这件事是否足够可行?虽然众所周知自动化可以节省时间和精力,但回答以下问题非常重要:“为什么要将此项目自动化?”得到了确切务实的答案后,再为自动化开绿灯。

二、定义范围

定义将要执行的测试的范围是非常必要的。作为新手自动化测试人员时,总是试图测试所有的东西,并使每个测试都自动化。问题是尽管可以成功地自动化所有测试,但这既不实用也不可行。

首先,代码中有很多部分并不需要频繁的测试,但可能需要占用大量时间为其开发框架或脚本。比如当测试一个网站时,自动化网站的每个元素并在其上运行脚本是没有用的,这不值得花时间和精力。

其次,自动化所有的东西会增加测试自动化百分比,这会提供书面上很好的数据,让自己觉得完成了一项出色的工作,然而实际上并非如此。
 

定义测试的范围,只考虑能够及时提供实际价值的自动化测试的可行代码,做出明智选择。

三、准确选择自动化测试工具

自动化测试人员最常见的另一个错误是没有选择正确的自动化测试工具。一个项目包含许多专注于不同测试目标的组件。这些目标应分为不同的工具,以帮助更有效地实现这一目标。

例如,如果想测试一个网站的API,最好使用Postman;但如果你想确保Web应用程序在不同浏览器间的完美呈现,那么在线Selenium Grid将是自动化跨浏览器测试的最佳选择。

四、与其他测试人员良好协调

测试团队中有很多人,大家具备不同的技能。例如,有人可能擅长业务测试,而其他人可能擅长功能测试。然而,这不是不与他们讨论任务进展的理由。协调是加速产品交付的关键。了解谁在做什么、使用什么工具、对测试自动化的编程语言是否满意。

这有助于帮助排除自动化测试脚本的故障,万一事情不顺利,就会知道该寻求谁的帮助,了解团队也可以帮助自己在需要的时候进行协调。正如在最后一点中所讨论的,一个项目可能需要不同的工具来实现组合的目标,可以让擅长不同工具的测试人员发挥自己的作用。

五、检查投资回报率

仅仅将测试人员的工资作为与整个测试过程相关的成本考虑进去是一个非常新手级的错误。显然,情况并非如此。

例如希望对网站执行跨浏览器测试,测试人员的工资当然是成本的一部分。但如果团队不知道这种类型的测试或与之相关的任何工具,那么还需要通过培训来提升他们的技能,这会产生额外成本。此外,还需要有合适的自动化测试工具或者框架来执行自动化浏览器测试。当然,也可以考虑开源框架。

这只是一个例子。同样,在对Web应用程序执行自动化测试的过程中,您还会遇到其他投资。但是,他们肯定会出现。因此,应仔细考虑测试成本,并牢记您将获得的这些投资回报。如果回报率较低,则需要更改策略并再次计算。但最终,您需要在整个测试过程中获得良好的投资回报率。

六、过度依赖无代码测试

虽然无代码自动化测试工具的学习曲线很短,很容易入门,但它们不会帮助构建自动化测试人员配置文件所需的相关技能集。作为初学者,它们很好地帮助新手起步,但随着自身技能的发展,就会意识到它们并不像期望的那样有用。如果决定用无代码自动化工具的智慧参加自动化测试人员的面试,或者一直单独用无代码自动化来自动化复杂的web应用程序,那么将经历一段艰难的时光。
 

可靠性是这类工具的另一个大问题。在一天结束的时候,需要了解代码,以便调试自己的自动化测试套件执行出错的地方。此外,如果面对一个复杂的网站,那么就不会发现无代码自动化测试工具可以像你想的那样灵活。建议不要逃避代码,而是要熟练地学习它。最重要的是,这将是个人简历上的一大魅力。因此,作为自动化测试人员,请确保避免这种常见的错误。

七、维护测试设计

测试设计是将一般测试目标转换为有形测试用例和条件的过程。作为开发人员,我们倾向于认为既然测试需要编码,为什么开发人员不能完成这项工作?如果是这样的话,那么测试这个岗位也就不存在了。

作为初学者,不理解测试设计的重要性可能是作为自动化测试人员最大的错误。任何时候测试任何东西都是荒谬的想法。为了有效地进行测试,测试人员需要设计测试,然后对其进行编码。设计测试有助于创建有意义的测试,并使整个测试过程非常高效。

八、关注代码重用性

测试用例对它所应用的代码并不是唯一的。在一个项目中,会出现许多类似的组件,它们需要类似的测试设计和测试套件。比如,在使用Selenium进行跨浏览器测试时,我们发现Web页面的四个元素都是输入字段,并且需要类似的测试用例。在这里,可以通过仅为第一个元素编写测试来复制粘贴代码。虽然这将给出预期的结果,但问题是将来开发人员可能会以某种方式更改元素。现在,要更改测试用例,就需要更改所编写的每个测试套件中的代码。所有的时间都将浪费在寻找和修改这些测试代码上。

为了避免这种情况,应该始终关注代码的可重用性。与其一次又一次地粘贴代码,不如用适当的参数构造一个函数,并在每个元素上调用该函数。这样,如果将来有任何更改,只需要修改函数,就可以开始了。

九、100%自动化是一个神话

跟计算机领域经典的“人月神话”一样,这里的“神话”同样指不可能达到的天方夜谭。

不要相信这种神话,因为作为一个自动化测试人员,这将是一个严重的错误。作为自动化测试领域的新手,对于将自动化引入到项目中都会很兴奋。但这会让人犯错误,认为自动化测试可以完全取代手动测试过程。随着时间的推移,我们将知道这是不可能的。百分之百用自动化测试取代手动测试是一个神话,它永远不可能实现。

作为这方面的初学者,不要试图实现这样的目标。又回到第一条,只有在必要时才进行自动化,并且只对那些需要自动化的项目进行自动化。

十、遵循从头开始

在测试时,会遇到不同类型的问题。需要设定目标并对这些问题进行分类。一种基础方法是用较小的模块而不是大模块开始自动化测试。

作为自动化测试人员,最大的错误之一是开始自动化时使用更大、更复杂的模块。可能缺乏对每个用户交互中涉及的入站和出站流程的认识;甚至可能缺乏处理棘手的测试用例的熟练程度;可能最终会浪费大量的时间,但却一无所获。所以从小处开始,从基础的方法中增加自动化测试的覆盖率。

第一次踏入自动化测试领域,难免犯一些错误,这些错误会造成时间、金钱、精力的浪费。希望这篇文章能对自动化测试新人有所帮助,帮大家避免踩这些不必要的坑。

如果这篇文章对你有帮助,请给小编点个赞!👍这样我才有动力继续更新下去!

今天的小知识学会了么

欢迎在留言区跟我们互动噢~

觉得有所帮助的话点个赞呗

最后是小编自己整理的一些学习资料、测试工具、课件、笔记相关资料点击下方小卡片

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

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

相关文章

python服务调用-基于http的通信写协议(flask)-linux

服务器要部署一套算法, 我们的部署在该服务器上的数据平台需要调用 该算法进行一些操作, 要点主要两方面: 1.客户端发请求(同时传数据给服务). 2. 服务端的算法响应给请求,处理结束后,返回数据给客户端.这里一般第一次使用http协议的时候有点懵,其实是非常简单,我这里给了一个…

基于HTML+CSS+JavaScript “小味鲜“餐厅网页设计

基于HTMLCSSJavaScript "小味鲜"餐厅网页设计 每博一文案 师父说“生活中的负能大多来于圈子里的抱怨“,有时候,你不想做别人情绪的垃圾桶。 却不得不接受他们的吐槽,你嫌弃身边人无休止的抱怨,但又不知不觉被他们影响 …

12.感知机以及多层感知机(MLP),激活函数

x和w都是向量&#xff0c;b是标量&#xff0c;感知机的输出是&#xff1a;w和x做内积之后偏移b&#xff0c;最后加上一个函数&#xff08;这个函数很多种选择&#xff09;。 1. 训练感知机 如果当前是第i个样本&#xff0c;yi是真实标签值&#xff0c;<w,xi>b得到的是预测…

浅浅的分析Spring底层事务原理

Spring事务底层原理一、EnableTransactionManagement工作原理二、Spring事务基本执行原理三、Spring事务的过程四、Spring事务传播机制五、Spring事务传播机制分类&#xff08;1&#xff09;案例分析、情况1&#xff08;2&#xff09;案例分析、情况2&#xff08;3&#xff09;…

【正点原子FPGA连载】第三十二章OV5640摄像头RGB-LCD显示实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第三十二章OV564…

深度学习——批量归一化(笔记)

主流的卷积网络基本都设计批量归一化这个层 1.为什么要批量归一化&#xff1f; ①网络层很深&#xff0c;数据在底层&#xff0c;损失函数在最顶层。反向传播后&#xff0c;顶层的梯度大&#xff0c;所以顶层训练的较快。数据在底层&#xff0c;底层的梯度小&#xff0c;底层训…

【开源项目】震惊JDBC查询比MyBatis查询慢

震惊JDBC查询比MyBatis查询快&#xff1f; 文章编写起始原因&#xff0c;在编写项目的时候碰到一个深坑&#xff0c;JDBC获取5000条数据&#xff0c;居然耗时261s&#xff0c;MyBatis同样的操作&#xff0c;耗时12s左右&#xff0c;震惊。看到这里下巴都快掉下来了。不是网上都…

Pyqt5 Key value动态创建 QTreeWidget

在自己的应用上&#xff0c;需要根据读取的 值来创建 目录与子页&#xff0c;并打开对应的界面 实现思路 1、定义数组 存放 &#xff5b;&#xff08;Key value index &#xff09;.....&#xff08;Key_n value_n index_n &#xff09;&#xff5d; 2、获取相关数据&#x…

【Java开发】 Spring 09 :Spring Data REST 实现并访问简单的超媒体服务

Spring Data REST 是提供一个灵活和可配置的机制来编写可以通过HTTP公开的简单服务&#xff0c;简单来说&#xff0c;而且可以省去大部分controller和services的逻辑&#xff0c;因为Spring Data REST 已经为你都做好了&#xff0c;目前支持JPA、MongoDB、Neo4j、Solr、Cassand…

Ribbon负载均衡

Ribbon负载均衡 Ribbon是微服务架构中&#xff0c;可以作为负载均衡的技术实现&#xff0c;如下图所示 Ribbon负载均衡 1、消费者发起请求2、被负载均衡拦截器拦截3、将请求信息交给RibbonLoadBanlancerClient4、获取url的服务id5、DynamicServerListLoadBalancer拿到id去eur…

java基础巩固-宇宙第一AiYWM:为了维持生计,架构知识+分布式微服务+高并发高可用高性能知识序幕就此拉开(二:网关balabala)~整起

上集&#xff0c;在架构知识分布式微服务高并发高可用高性能知识序幕就此拉开&#xff08;一&#xff1a;总览篇&#xff09;中&#xff0c;说到了 当用户请求过来时&#xff0c;这个请求或者说URL先到服务调用端【咱们之前的项目中的Controller其实就算是一个服务调用方&#…

VMware ESXi 8.0 SLIC Unlocker 集成网卡驱动和 NVMe 驱动 (集成驱动版)

发布 ESXi 8.0 集成驱动版&#xff0c;在个人电脑上运行企业级工作负载 请访问原文链接&#xff1a;VMware ESXi 8.0 SLIC & Unlocker 集成网卡驱动和 NVMe 驱动 (集成驱动版)&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysi…

【Pytorch】第 3 章 :进行数值估计的蒙特卡洛方法

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

Java ssh框架 mysql实现的进销存管理系统源码+运行教程+文档

今天给大家演示一下一款由sshmysql实现的进销存管理系统&#xff0c;其中struts版本是struts2&#xff0c;这个系统的功能非常完善&#xff0c;简直可以说是牛逼&#xff0c;到了可以用于企业直接商用的地步&#xff0c;此外该项目还带有完整的论文&#xff0c;是Java学习者及广…

Spark 初识

文章目录Spark 初识Spark是什么Apache Spark演变为什么使用Spark全快Spark组件Spark CoreSpark SQLSpark StreamingSpark MLlibSpark GraphXSparkRpySparkspark 在数仓的应用总结Spark 初识 从今天开始我们进入数据仓库的查询引擎篇了&#xff0c;前面我们已经写了大量的文章介…

三分钟了解LAP编程框架

针对Java开发者的灵魂拷问&#xff1a; 1、梳理的流程&#xff0c;关键逻辑是否有遗漏&#xff0c;理解一致吗&#xff1f; 2、设计时&#xff0c;如何更方便的与产品沟通&#xff1f;原有的设计是否有不合理的&#xff1f;绘制的流程图大家都能理解吗&#xff1f; 3、测试时&a…

316页11万字AI赋能智慧水利大数据信息化平台建设和运营解决方案

第一章 系统综述 1.1 项目背景 1.2 系统概述 1.3 需求分析 1.3.1 中心管控需求 1.3.2 前端监测需求 1.4 建设目标 1.5 设计原则 1.6 设计依据 第二章 系统总体设计 2.1 总体设计思路 2.2 架构设计 2.2.1 逻辑架构 2.2.2 系统架构 2.3 关键技术应用 2.4 系统特色…

代码随想录刷题|LeetCode 647. 回文子串 516.最长回文子序列

647. 回文子串 题目链接&#xff1a;https://leetcode.cn/problems/palindromic-substrings/ 思路 动态规划思路 1、确定dp数组 布尔类型的dp[i][j]&#xff1a;表示区间范围[i,j] &#xff08;注意是左闭右闭&#xff09;的子串是否是回文子串&#xff0c;如果是dp[i][j]为tr…

【真的?】用 ChatGPT 写一篇 Python 翻译库博客,可以打 9 分

今天来个大的实践项目&#xff0c;用 ChatGPT 写一篇博客&#xff0c;冲击一下热榜&#xff01; 从零开始玩 ChatGPT⛳️ ChatGPT 亮点⛳️ 账号篇⛳️ 第一次使用⛳️ 用 Python 实现一个英汉互译的小程序⛳️ googletrans 库核心用法⛳️ 再补充一些知识点⛳️ googletrans 和…

功率放大电路和电压放大电路的区别是什么意思

功率放大电路和电压放大电路都属于模拟电路&#xff0c;是工程师日常经常用到的比较常见的模拟电路&#xff0c;很多小白工程师对于功率放大电路和电压放大电路的区别都很好奇&#xff0c;下面就来看看区别有哪些。 图&#xff1a;功率放大电路与电压放大电路对比 1、功能和基本…