乐趣区

关于自动化测试:真人踩过的坑告诉你避免自动化测试新手常犯的10个错误

尽管从本人的谬误中学习也不错,但从他人的谬误中学习总是更好的。

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

一、必要时才自动化

新人小王接到为 Web 应用程序自动化测试脚本的工作时,既快乐又缓和,因为这是他进入团队的第一个工作。第一印象至关重要,他也心愿给团队留下完满的第一印象。小王被要求自动化 Web 应用程序其中的一个模块,但他想体现得更好、做更多的自动化,于是抉择了另外的模块。然而后果是他撞进了死胡同,没有实现。其实小王想做些新尝试并没有错,错在没有征询前辈就试图自动化该模块。事实证明,这个模块用不着自动化,因为集成的零碎可能会导致多重误报。

我在新的自动化测试人员身上看到过很屡次这种状况。毕竟,好奇心能够引领后退。当学习自动化测试时,会想尝试在每个我的项目中引入自动化,但这是不必要的。可能有足够的能力自动化某件事,但这件事是否足够可行?尽管家喻户晓自动化能够节省时间和精力,但答复以下问题十分重要:“为什么要将此我的项目自动化?”失去了确切求实的答案后,再为自动化开绿灯。

二、定义范畴

定义将要执行的测试的范畴是十分必要的。作为老手自动化测试人员时,总是试图测试所有的货色,并使每个测试都自动化。问题是只管能够胜利地自动化所有测试,但这既不实用也不可行。

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

其次,自动化所有的货色会减少测试自动化百分比,这会提供书面上很好的数据,让本人感觉实现了一项杰出的工作,然而实际上并非如此。

定义测试的范畴,只思考可能及时提供理论价值的自动化测试的可行代码,做出理智抉择。

三、精确抉择自动化测试工具

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

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

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

测试团队中有很多人,大家具备不同的技能。例如,有人可能善于业务测试,而其他人可能善于功能测试。然而,这不是不与他们探讨工作停顿的理由。协调是减速产品交付的要害。理解谁在做什么、应用什么工具、对测试自动化的编程语言是否称心。

这有助于帮忙排除自动化测试脚本的故障,万一事件不顺利,就会晓得该寻求谁的帮忙,理解团队也能够帮忙本人在须要的时候进行协调。正如在最初一点中所探讨的,一个我的项目可能须要不同的工具来实现组合的指标,能够让善于不同工具的测试人员施展本人的作用。

五、查看投资回报率

仅仅将测试人员的工资作为与整个测试过程相干的老本思考进去是一个十分老手级的谬误。显然,状况并非如此。

例如心愿对网站执行跨浏览器测试,测试人员的工资当然是老本的一部分。但如果团队不晓得这种类型的测试或与之相干的任何工具,那么还须要通过培训来晋升他们的技能,这会产生额定老本。此外,还须要有适合的自动化测试工具或者框架来执行自动化浏览器测试。当然,也能够思考开源框架。

这只是一个例子。同样,在对 Web 应用程序执行自动化测试的过程中,您还会遇到其余投资。然而,他们必定会呈现。因而,应认真思考测试老本,并牢记您将取得的这些投资回报。如果回报率较低,则须要更改策略并再次计算。但最终,您须要在整个测试过程中取得良好的投资回报率。

六、适度依赖无代码测试

尽管无代码自动化测试工具的学习曲线很短,很容易入门,但它们不会帮忙构建自动化测试人员配置文件所需的相干技能集。作为初学者,它们很好地帮忙老手起步,但随着本身技能的倒退,就会意识到它们并不像冀望的那样有用。如果决定用无代码自动化工具的智慧加入自动化测试人员的面试,或者始终独自用无代码自动化来自动化简单的 web 应用程序,那么将经验一段艰巨的时光。

可靠性是这类工具的另一个大问题。在一天完结的时候,须要理解代码,以便调试本人的自动化测试套件执行出错的中央。此外,如果面对一个简单的网站,那么就不会发现无代码自动化测试工具能够像你想的那样灵便。倡议不要回避代码,而是要熟练地学习它。最重要的是,这将是个人简历上的一大魅力。因而,作为自动化测试人员,请确保防止这种常见的谬误。

七、保护测试设计

测试设计是将个别测试指标转换为无形测试用例和条件的过程。作为开发人员,咱们偏向于认为既然测试须要编码,为什么开发人员不能实现这项工作?如果是这样的话,那么测试这个岗位也就不存在了。

作为初学者,不了解测试设计的重要性可能是作为自动化测试人员最大的谬误。任何时候测试任何货色都是荒诞的想法。为了无效地进行测试,测试人员须要设计测试,而后对其进行编码。设计测试有助于创立有意义的测试,并使整个测试过程十分高效。

八、关注代码重用性

测试用例对它所利用的代码并不是惟一的。在一个我的项目中,会呈现许多相似的组件,它们须要相似的测试设计和测试套件。比方,在应用 Selenium 进行跨浏览器测试时,咱们发现 Web 页面的四个元素都是输出字段,并且须要相似的测试用例。在这里,能够通过仅为第一个元素编写测试来复制粘贴代码。尽管这将给出预期的后果,但问题是未来开发人员可能会以某种形式更改元素。当初,要更改测试用例,就须要更改所编写的每个测试套件中的代码。所有的工夫都将节约在寻找和批改这些测试代码上。

为了防止这种状况,应该始终关注代码的可重用性。与其一次又一次地粘贴代码,不如用适当的参数结构一个函数,并在每个元素上调用该函数。这样,如果未来有任何更改,只须要批改函数,就能够开始了。

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

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

不要置信这种神话,因为作为一个自动化测试人员,这将是一个重大的谬误。作为自动化测试畛域的老手,对于将自动化引入到我的项目中都会很兴奋。但这会让人犯错误,认为自动化测试能够齐全取代手动测试过程。随着工夫的推移,咱们将晓得这是不可能的。百分之百用自动化测试取代手动测试是一个神话,它永远不可能实现。

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

十、遵循从头开始

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

作为自动化测试人员,最大的谬误之一是开始自动化时应用更大、更简单的模块。可能不足对每个用户交互中波及的入站和出站流程的意识;甚至可能不足解决辣手的测试用例的熟练程度;可能最终会节约大量的工夫,但却满载而归。所以从小处开始,从根底的办法中减少自动化测试的覆盖率。

第一次踏入自动化测试畛域,不免犯一些谬误,这些谬误会造成工夫、金钱、精力的节约。心愿这篇文章能对自动化测试新人有所帮忙,帮大家防止踩这些不必要的坑。

退出移动版