我希望将来成为测试自动化工程师。与我有关的事情是:
我一直认为测试自动化正在使用记录回放来测试不同的应用程序。但是,当我查看职位时,几乎所有职位都需要编程技能。为什么会这样?
一个职位示例(很多相同的很多人中的一个)。

测试自动化工程师:
负责编写自动化测试套件。
使用C#和Selenium Webdriver(不是Selenium IDE)/ Sikuli进行测试自动化/ Sikuli
使用C#和NUnit,xUnit等之一进行服务层测试。熟悉Moq优先。
后端SOAP使用SOAP UI的XML
请注意:QA自动化工程师将编写C#代码(不记录和回放自动化)。

这对我来说很可怕。我是一位手动测试人员,希望成为一名自动化工程师。有提示吗?

#1 楼

记录测试通常导致难以维护的测试,因此大多数有经验的测试人员都喜欢手动编码自动测试,而不是记录。

自动测试通常会多次覆盖同一区域,以设置数据或进行导航。当应用程序的中心部分发生更改时,这可能导致多个测试失败,所有这些测试都需要重新记录或手动更改。大型应用程序可能具有成千上万的自动化测试用例。因此,重要的是测试工具/框架应​​支持步骤的可重用性,任何重复的步骤都应集中化。由于此步骤的重复使用和步骤的可重复性,框架通常会围绕一种或多种编程语言引入API。

由于大多数记录工具,记录测试可以为设置新功能的测试节省大量时间。能够将测试导出为代码。记录的工具将为您找到大多数控制选择器(对象的唯一标识)。之后,您可以删除重复项并清理测试,以使其变得更易于维护。

另一个大的优点是,开发人员可以经常从其IDE运行和更新测试,更改功能时可以运行测试验证它们在不需要测试工具或测试仪的情况下没有破坏任何东西或更改测试中的标识符。

那为什么需要测试仪呢?对于如何测试以及如何测试,他们对世界有不同的看法。主要是您需要它们来确保正确的东西得到测试。另外,我认为他们不太喜欢捷径,并且喜欢测试,将开发人员和测试人员组成一个团队为所有新功能创建测试覆盖面是梦想成真。

答案与之相关关于这个问题,您为什么需要测试工作的开发技能:有人可以一劳永逸地为我清除这些职位吗?

评论


谢谢,很好的回答。您使用哪种编程语言,以及使用哪种开源工具?具有Java编程和页面对象模式的Selenium是一项很好的技能吗?

–微笑
15年3月3日在18:01

根据工作和工具,我使用了多种语言:Java,C#,Python,Ruby和JavaScript。使用Selenium堆栈对于拥有基本的Web开发技能也很重要,请参阅codecademy.com/tracks/web上的网络课程。学习任何编程语言对于初学者来说都足够了,大多数语言在概念上非常相似,只是语法上却没有。除非您想从头开始设置端到端的测试框架,包括连续交付系统,否则基本原理就足够了。

– Niels van Reijmersdal
2015年3月3日18:10



您使用过Java的什么工具?您使用了什么工具使用C#?等等。我非常渴望从像您这样的测试领域的专业人士那里获得信息。感谢您的时间。我一定会去codeacademy学习。

–微笑
15年3月3日在18:34

我目前正在一个项目中,该项目使用带有C#和VB.net的MS Coded UI测试桌面应用程序,以前我已经将Java用于Cucumber和Selenium的Web应用程序。我使用FunkLoad对API进行负载测试的Python。对于未来的Web开发,我敢打赌JavaScript,请看看结合了Selenium和JS的webdriver.io。大多数前端都是用JS编写的,并且随着Node.JS的兴起,后端也逐渐成为JS。像Trello这样的现代Web应用程序都是100%JS:blog.fogcreek.com/the-trello-tech-stack我希望他们的测试也可以在JS中进行:)

– Niels van Reijmersdal
15年3月3日在18:56

是的,我在需要时写一些小的“工具”。这些是执行重复任务的Shell脚本,用于持续集成服务器的构建工具以及一个完整的程序,可以简化我的时间跟踪,具体取决于我是否将其编写为TDD的复杂性和工具寿命。作为一名优秀的测试人员,我想了解开发人员,因此有时我想开发相对简单的东西。

– Niels van Reijmersdal
2015年3月4日14:57



#2 楼

测试自动化是一个极其广泛的主题。这不仅意味着要使用特定工具进行回归测试或负载测试,尽管这通常是雇主想要的(很容易识别)。创建特定的编程解决方案来帮助您进行测试的能力非常有价值。

多年来,自动化工具供应商一直试图通过降低这些工具的准入门槛来扩大市场(创造更多销售)。他们做到这一点的方法之一就是通过记录和回放功能。

Bret Pettichord(他是《软件测试中的经验教训》的合著者)在他的主题演讲中提供了关于记录和回放的迷人背景。视频。他谈到Selenium小组是如何创建IDE的,因为他们知道它是一个糟糕的产品而希望受到欢迎。无论如何,绝对值得一看。

这个问题与我回答的另一个问题非常相似:https://sqa.stackexchange.com/a/12322/1455。成为一名熟练而有效的技术调查员

评论


谢谢,很好的回答。您使用哪种编程语言,以及使用哪种开源工具?具有Java编程和页面对象模式的Selenium是一项很好的技能吗?

–微笑
15年3月3日在18:01

我将Ruby与Selenium一起使用。有很多免费的学习Ruby的资源,例如:learncodethehardway.org/ruby、CodeCademy等。还可以查看Selenium Bootcamp:saucelabs.com/resources/selenium-bootcamp/chapter-1-get-started

–克里斯·肯斯特(Chris Kenst)
15年3月3日在18:03

非常感谢克里斯。您如何看待Selenium中作为Ruby开发人员的未来,您是否喜欢自己的工作?

–微笑
15年3月3日在18:08

#3 楼

记录回放非常有限-例如,如果您记录了今天的日期,明天将如何运行测试?

好的测试可以检测到不同的情况并做出相应的反应-这远远超出了记录回放的范围。因此,好的测试就是程序。

给您的提示:许多手动测试人员似乎会感到不可避免的变化,以增加对自动测试的使用(不能替代手动测试)。每周我们至少有3个此类问题,请检查以前的答案。

评论


这不是有关测试自动化替代手动测试的主题。

–微笑
2015年3月3日17:22



#4 楼

所有供应商的测试自动化工具都具有记录和回放组件。

与测试自动化相比,这些组件可能更多地用于市场营销手动测试仪的自动化工具。

测试人员开始致力于测试自动化,他首先研究可以使他尽快有效的快捷方式。

,记录和播放模块提供了快捷方式的错觉。

随着测试人员记录了一些脚本并使用了一段时间,他将意识到记录和播放的局限性和无效性。

我最近与一位同事就这个话题进行了交谈。

在此链接上查看详细信息:
http://test-able.blogspot.com/2015/08/from-record-playback-to-automation-code.html