在看到软件测试工作的最新趋势后,这个问题多少源于沮丧:
在“职位描述”中,自动化技能被给予了最高优先级。所有访谈都将基于评估您的编码技能以及对Selenium,Appium和其他自动化工具的知识。但是一旦您被录用,鉴于敏捷团队发布的紧迫性,很多工作将涉及手动测试。自动化只是测试人员在很少的空闲时间中执行的工作。公司确实喜欢“自动化”一词,但通常对正确的策略知识不多,并且对它不切实际的期望,因此(从我的角度来看)它逐渐成为最不重要的事情。喜欢编码并且可以替代开发者资料的人。曾经有一段时间,大多数公司都雇用了专门的自动化开发人员,但是这种趋势已经停止,可能是由于投资回报率低或自动化策略失败。由于过去四年以来的蓬勃发展,许多专业人士进入了这个行业,但是现在,他们想要从事的工作或在招聘过程中被告知的工作种类非常有限。结果是测试人员被聘用,他们说他们的主要重点是使回归套件和其他重复性工作自动化,但是在几个月之内,他们将被要求大部分是手工的。现在,当然,手动测试是一项出色的工作,但是为什么对自动化测试仪的需求却突然急剧减少?
对于大多数公司而言,“自动化QA工程师/ SDET”配置文件的“职位描述”中理想的工作是大约80%的自动化,并根据需要执行一些手动任务,但实际情况完全相反。许多对自动化充满热情的自动化测试人员都对执行自己未被雇用的工作感到沮丧。纯(或80%)自动化工作快要死了吗?是什么原因?自动化测试仪的未来是什么?这种趋势是特定于公司的吗?

评论

将标题从通用的“正在消失的工作”更新为更可能使社区回答的更具体的内容,而不仅仅是投票和关闭。

@MichaelDurrant如果您有这种感觉,那么我对新标题完全满意。感谢您的更新。

我是该领域的新手,因此没有经历过您在说什么,但是我想知道您在哪个国家/地区?

@BelovedFool印度。

#1 楼

遵循怀疑论者SE准则,我希望像您这样的问题会附有消息来源,否则只是一些轶事而已。

要回答您的问题,我的经验和知识正好相反,越来越多的公司开始使用现代测试或某种形式的组合工程,这些测试和质量由整个团队拥有。 >
在这些团队中,测试人员充当专家的角色,例如通过启动自动化框架并教团队使用它们或指导其他人(即开发人员)如何设计和执行更好的手动测试,来帮助团队实现其目标。

如果说自动化工程师是永久性的进行手动测试的昂贵选择,但现实情况比任何理论都强大,有时公司会承受压力,使用手头的可用资源来解决眼前的问题使用资源的效率低下。

评论


我的经验与Shivam相当,在过去的10年中,有4个工作和100次面试,这正是我所经历的。我刚刚离开了一个雇用30个SDET作为“敏捷转型”一部分的地方。他们大多数最终成为手工测试人员。其中一半在2年内离开。

–迈克尔·杜兰特(Michael Durrant)
20年1月1日,16:24

有趣的是,你们俩都来自哪个国家?我曾为一些知名人士工作,看到了不同的趋势,也许这是幸存者的偏见?我们需要更多信息来发表坚定的意见

–Rsf
20年1月1日于16:51

什么是“现代测试”?链接转到带有“七个原则”列表的页面,每个原则都是无意义/含糊/多余的陈述。例如。 “我们的首要任务是改善业务。”最后一个:“我们在整个团队中扩展了测试能力和专业知识;了解这可以减少(或消除)对专业测试专家的需求。”听起来像是long语:“测试每个人的工作!我们现在不需要测试人员!”很快就会意识到没有人在进行测试,因为他们已经有其他工作要做...

–亚伦F
20 Jan 10 '20 at 11:49

@Rsf说某事是每个人的责任的问题是它成为没有人的责任-借口指着别人。这是Joel早在2000年发表著名文章的原因之一,也是为什么大多数公司现在都意识到让专门从事测试的人员是一个好主意的原因。我全力支持新的有趣的QA方法,但是我对Modern Testing的问题是,从您的链接中我不了解它的实际含义。

–亚伦F
20 Jan 10 '20 at 13:04

“它是什么”仍在讨论中(请从上面的链接中在松弛处检查#OneOfTheThree),您的说法是正确的,因为定义是蓬松的,但是想法是要有指导原则

–Rsf
20 Jan 10 '14 at 14:23

#2 楼

我观察到的是,很难聘请擅长于自动化以及自动化所需要的特定技能的优秀程序员。测试。所有其他类型的“其他人编写测试自动化程序”(正如我所说的那样)会导致很多沟通和目标问题。

尝试雇用优秀的技术QA人员的过程通常会有所进展像这样:

公司遇到质量问题\|/
他们需要自动化专家\|/
大多数申请人是手动测试员还是... \|/
大多数技术候选人宁愿做应用程序开发人员,也要给他们更多钱。
选择过程是由具有不同优先级的应用程序开发人员完成的。

上述过程意味着对自动化专家的技能常常了解甚少。例如,许多自动化编程访谈都涉及递归,性能,Big-O等主题,而不是诸如BDD,敏捷测试金字塔方法和Test Suite DSL之类的自动化实际所需的技能。 >许多刚进入该领域的面试官通常仍处于学术竞争和测验证明能力的模式。根据应用程序开发人员的说法,当质量检查合格申请人没有“很好地测试”时,结果通常是确定质量检查合格申请人没有编码所需的条件。我看到这个悲伤的故事对我与之密切合作的许多同伴播放了数十次。所以我也有经验可以借鉴。不只是我自己有限的经验-尽管我也有几十年的经验,并且在过去的20年中,我的许多同事也反复观察到这种模式。就像这样简单:


应用程序代码可提供当今的收入,并且最容易证明业务合理性
为应用程序开发人员支付更多费用会带来更好的结果


评论


老实说,在印度,雇用优秀的自动化测试人员并不难。问题在于需求而不是供应。我见过许多优秀的编码人员进入此个人资料,但对繁琐的手工工作不满意。简而言之,公司无法利用自动化技能或为其分配适当的预算。我想知道为什么会这样。

– Shivam Mishra
20年1月1日于17:42



100%的人同意一个单独的自动化团队会导致沟通问题,但是我通过让我的团队参与产品冲刺和DSM来解决了这一问题,以便我们得到更新。老实说,如果我们设定一个清晰的沟通流程,我认为这不是主要问题,但仅仅是放弃测试自动化工作的理由

– Shivam Mishra
20年1月1日于17:44

我在美国。质量检查通常被视为开发工作的垫脚石,而工资率则可以达到100%到200%。与自动(仅)编码相反,对于dev编码更高。这导致了等级制度,二等公民等。这也导致了最好的自动化工程师离开进行一般的开发工作=>开发池变得更有才华->自动化开发池变得没有才华(平均)。因此,关于能力的自我实现的预言(通常也是平均水平)。

–迈克尔·杜兰特(Michael Durrant)
20 Jan 1 '20 at 17:47



不同的公司有不同的文化。是的,开发人员的薪水更高且受到更多尊重(有时),但是这个层次结构问题主要在我们的头脑中。好的质量检查几乎总是受到尊重。很抱歉,如果您没有其他经验。但是问题仍然没有答案。低需求仍然是我不了解的事情。如果越来越多的职位提供高质量的工作,我想我们甚至可能开始看到越来越多的开发人员转向自动化的趋势,但是公司不希望雇用和维持自动化开发人员,这就是我看到的。

– Shivam Mishra
20年1月1日于17:54

在某些社会方面,美国可能很粗糙。自卑感当然是我们(和我)个人都在努力的事情。但是,多年来,我在公司,通过访谈和Qa工程师网络中看到了一个一致的模式,即“ qa伙计”不像应用程序工程师那样受人尊敬。每当发生时,这让我感到非常难过。招聘人员和业务人员经常碰到很多关于测试人员的神话,这也会发生很多。当我被某人称为“质量保证”人员/测试人员时,与我被称为自动化工程师时的经历截然不同。

–迈克尔·杜兰特(Michael Durrant)
20年1月1日,18:25



#3 楼

我可以举一个我们公司的例子,它几乎与您所描述的相同。让我简短地解释一下我们的工作方式。我们有两个部门,一个部门是IT部门-拥有测试人员(手动和自动测试人员),而我们的业务部门也拥有测试人员(更多的内部测​​试人员和手动测试人员)。我们的大多数工作都完成了两次,但是,当我们在生产环境上进行部署时,我们发现了很多错误。因此,我们还决定作为业务部门进行自动化测试。我们从Selenium和Appium开始,并且我们还鼓励雇用自动化测试人员(在这种情况下,我们聘请了顾问)。作业(意味着创建测试用例,记录错误,重现错误,无论这些错误是否是有效的错误,等等)。正如您已经说过的那样,他的个人资料是80%的手动和20%的自动化,而不是80%的自动化和20%的手动任务。

原因是什么?

1。新的Web应用程序每天都会更改定位器

好了,我们得到了测试新Web应用程序的任务。但是,此Web应用程序某种程度上是一个营销网页。定位器(xpaths,ccs-locators ...)几乎每天都在变化。因此,作为业务部门,我们更加专注于测试E2E应用程序。但这不是E2E应用程序。目前,创建自动测试用例已经没有意义,我们没有时间创建测试用例并每天进行更改。因此,我们进行了探索性测试。此外,我们必须评估测试自动化是否有意义。我们使用QaSymphony / Tricentis进行了探索性测试,并在测试时进行了测量,与自动化测试相比,探索性测试节省了更多时间。

2。无需测试自动化-开发人员完全可以做到这一点

不知何故,这对我们也是一场斗争。我们的产品负责人说开发团队已经完成了测试自动化,因此不需要测试自动化(!)。但是他不明白,开发人员无法替代测试人员(组织盲目性)。此外,开发仅测试了整个应用程序的一小部分,并进行了某种程度上的大部分单元测试。

3。预算问题

我们有很多人离开该项目或担任其他职务。预算也减少了。测试自动化要花钱,业务部门(起初)不愿意为测试自动化付钱,因为我们不得不说服产品负责人及其部门。但是也需要测试应用程序-但是从业务部门的角度来看,手动测试是足够的!

4。没有时间进行自动化测试-快速进行测试

这对我们来说也很重要!作为一个小型测试团队,我们只负责2-3个应用程序。但是管理层决定超过一些应用程序。而且,由于我们的小型测试团队,很难协调所有测试活动。因此,我们专注于相关的测试用例,并从手动测试开始,而不是建立测试自动化策略。最后,我们的测试自动化工程师正在执行80%的手动测试和仅20%的自动化测试(这只是为了准备测试环境并创建第一个测试用例)。管理层希望尽快看到结果!此外,我们必须专注于重新测试错误(由于我们是业务部门,因此我们必须以某种方式进行UAT并验证该错误已不再可用)。

5。防火墙和其他技术资料的问题

在我们公司中,我们也有严格的政策,不允许我们引入测试自动化和使用例如Selenium&Appium并将它们与真实设备连接。最初,我们要求顾问在其设备上创建并运行自动测试用例!这是一个解决方案,但这花了我们至少1-2个月的时间(订购iPhone等设备)。在开始时,这导致我们的测试人员感到沮丧,他们愿意引入新的东西。

这些(还有更多:-))是我们所教的课。但是最后,我们可以说以某种方式设法以50%到50%的基础引入测试自动化(50%的测试自动化和50%的手动测试)。

评论


这意味着您花费的50%的时间和精力是自动化的,还是将50%的书面测试用例自动化?

– Shivam Mishra
20年1月4日在7:21

我们花在自动化上的时间和精力的50%不能使50%的书面测试用例自动化。因为我们是业务部门,所以我们也进行探索性测试。我们会手动执行一些书面测试用例(因为在这种情况下无法实现自动化-我们正在用实际汽车测试Web应用程序+移动应用程序)

–丹尼尔·勃姆(Daniel Boehm)
20年1月4日,9:04



#4 楼

我只是在重新排列您的问题顺序,以便可以更清楚地回答:


这种趋势是特定于公司的吗?答案将比组织更特定于产品和测试级别。

让我们看看不同测试级别的自动化方法:

系统测试:

关键应用程序

考虑关键银行应用程序,网络设备,服务器技术等,在这种情况下,公司不会冒着将容易出现缺陷的产品投放市场的风险,希望以后可以修复任何生产错误。

在这种紧急情况下,公司会聘请领域专家对产品进行严格的深入手动测试。手动测试人员编写适当的手动测试用例,然后将其移至专门的自动化团队,以自动化整个工作流程。在这里,我们可以看到100%的手动团队和100%的自动化团队。

非关键应用程序:

在这种情况下,缺陷检测百分比将不被视为成为关键指标。在这里,测试人员只需要覆盖最重要的功能范围(如果我们将安全性视为另一个层次)。在这里,公司不需要专门的手动测试人员来执行严格的手动测试。他们需要更多的QE工程师,他们会识别手动方案并将其自动化,然后将其集成到CI / CD管道中。这种方法最初侧重于找到尽可能多的手动方案,然后在将来的sprint中将工作量更改为80%的自动化和20%的手动。 (这就是您在问题中所说的)

API测试:

在这里,我们甚至可以自动化关键应用程序。如果有适当的API文档,您甚至可以在产品开发之前就开始编写自动化的API测试用例(测试驱动的测试)。可以使用虚拟JSON响应编写自动化脚本。通过这种方法,我们拥有100%的自动化测试团队和0名手动测试人员。


原因是什么?提到的原因是投资回报率降低,公司成本增加。想象一下,您有一个专门的SDET,它对手动测试一无所知,因此在开始自动化之前,他们必须依靠手动团队的手动测试用例。同样,一旦产品变得稳定,手动团队将没有很多工作要做,并且对组织来说将变得多余。这就是为什么一些公司将手动测试外包的原因,因为他们认为手动测试可以给测试团队提供更多的独立性,并提供更高的缺陷保留率。

在这种情况下,公司雇用具有手动和自动化技能的候选人来进行测试手动仍然使产品变得成熟,然后并行自动化可以自动化的产品


纯粹的(或80%)自动化工作正在死亡吗?如前所述,自动化百分比取决于产品。每个质量保证人员都应该自豪地说“自动化脚本仅与手动测试用例一样好”。因此,如果您雇用测试自动化的开发人员,那么他所涵盖的场景将远远少于经验丰富的质量检查人员。

公司不在乎您是手动还是通过自动化(待评估)。因此,不要等到有人告诉您自动化某些东西,而只是将其自动化并作为PoC进行演示,那么它肯定会并入组织中。成为一个自我入门者,不要等待指示。


自动化测试仪的未来是什么?


自动化测试人员的需求比以往任何时候都要多,您找不到不需要自动化技能的工作。但是请记住,任何有逻辑的人都可以学习自动化,但是手动测试是不是每个人都可以掌握的才能。您应该非常热衷于打破东西,发现漏洞,戴白帽子之类的东西。关于CI / CD

评论


我想公司应该对他们期望的工作类型更加透明。我仍然很沮丧,在狩猎中我能够在自动化和手动之间找到良好的平衡:)

– Shivam Mishra
20年1月1日18:00

我也不鼓励人们在没有测试热情的情况下转向自动化测试。

– PDHide
20年1月1日在18:01

没错,在大多数情况下,公司不会透露所需的手动和自动化工作。这是一个残酷的现实,但是您可以做的是询问有关该产品的更多信息,使用该产品的用户数量,并尝试分析该产品的关键程度以及那里有多少专用的手动测试仪。并始终牢记,如果您只为Scrum团队进行一次质量检查,那么您将永远不会有100%的自动化任务。始终为60:40(有时小于40%的标称值)

– PDHide
20年1月1日,18:03



对于某些目的(速度,可重复性,流水线能力,CI / CD等),自动化脚本比手动测试要好得多。自动化脚本比手动测试要差得多-出于某些目的,例如可用性,易读性,可见性,对比,意想不到的含义和共同点等。

–迈克尔·杜兰特(Michael Durrant)
20年1月1日在18:31

+1代表:“自动化脚本仅与手动测试用例一样好”。要实现自动化,您需要手动执行几次。

–Peter M.-代表莫妮卡(Monica)
20年1月2日,17:13

#5 楼

我可以想到几个问题:


如果测试自动化工程师与软件工程师之间的距离太远,那么测试自动化就会失败。集成和部署。这意味着几乎所有软件更改都需要进行测试更改,以便在更改影响到API,服务体系结构或其他因素时进行测试。
在理想情况下,很少有东西需要进行两次测试。因此,测试自动化工程师需要知道软件工程师在单元测试和集成测试中所涵盖的内容,并且仅使其余部分自动化。为什么不将所有人都标记为“软件工程师”,并使测试自动化成为开发团队的任务?如果这样做的话,那些各种各样的程序员可能会很想将测试负载推给手动测试人员并代之以功能。
测试自动化需要良好的要求。
我经常看到要求(两者都在敏捷和瀑布式项目)对结果的描述不够好,无法编写自动化测试。取而代之的是您拥有软件和要求,并说“软件看上去与要求一致”。每当软件满足需求时,都必须以不同的方式调整测试自动化。
对于某些项目,如果要求足够好而无需参考软件编写测试,那就很好了。但是,这种文化变革必须在数月或数年后才能开始,测试自动化工程师才能开始工作。


#6 楼

您所看到的实际上是一种不常见的模式,不仅限于软件测试。

许多公司宣传他们想要的工作,而不是实际要做的工作。我敢肯定,在那里的经理们的脑海中,大多数测试都是自动化的,并且有少数情况需要手动测试。他们可能理解也可能不理解这是他们的愿景,但还不是现实。

这发生在很多工作中。有工作的想法,有实际的东西。它不一定表示恶意。通常是以下两种情况的结合:a)管理团队和b)一厢情愿。特别是如果公司正在从人工测试过渡到自动化,经理通常会认为他们走的路比实际情况要长。您应该是介绍或完成自动化的人,而细节在涉及的五个公司部门中都丢失了。尤其是在大型公司中,有很多人会混入职位描述,这很容易实现。

最好的方法是在面试中提出清晰的问题。例如,目前哪个测试部分是完全自动化的,以及他们打算在明年内将其推广到哪个测试部分。这两个数字将使您很好地了解与您交谈的人员了解实际过程的程度以及他们在实现更多自动化方面的积极程度。 (如果有人说“ 100%”,您就知道他们在欺负您)

评论


您能描述一下这不仅限于软件测试吗?是的,实际工作有所变化,但是手动和自动化是完全不同的两件事,因此切换起来不那么容易。

– Shivam Mishra
20年1月9日,16:30

@ShivamMishra无数的例子。 “希望:优秀的专业团队的领导者”实际:需要将具有不同经验水平的新鲜团队组成一个团队。或“希望:销售专业人员接管XY区域”实际:在XY上建立我们的销售的人。等等。

–汤姆
20年1月17日在13:05

#7 楼

我认为这是因为自动化仍相对较新,而且是一个流行词。

大多数组织都喜欢它的声音,它可以保证“立即回报”。

但是因为它太新了,所以他们只是不知道设置并正确执行它需要什么,也没有用于它的任何基础结构。因此,经过一番挣扎之后,请立即回到手动测试中。

评论


自动化如何新? :((((已有6年多的历史了。为什么公司仍然无法掌握这个概念:((

– Shivam Mishra
20 Jan 4 '20在7:14



我可以看到,在某些国家和/或公司中,测试自动化仍然是一个新主意。但是,这只是我的个人经验,基于在其中一家公司工作并阅读数十份工作机会而定。其他地方的情况可能有所不同,因此某些人可能不同意这个答案。

–pavelsaman
20年1月4日,9:35

@ShivamMishra花花公子公司花光了几年的时间来更新操作系统和邮件客户端...

–弗雷德·兰德尔(fred randall)
20年1月4日在20:44

#8 楼

我认为大多数公司在测试自动化实践方面都是较晚采用者。他们知道他们需要测试自动化才能变得更加敏捷,但是他们缺乏胆量来停止当前的开发工作三个月并扭转局面。产品至少具有2-3年的代码库。小型产品往往从小规模开始,并且测试,手工部署都很容易。

这就是问题所在,团队从做事手册开始。现在三年后,很难摆脱这些手动习惯,使其自动化成本很高。员工没有动力去挑战管理,接受他们的中间统治或认为这是工作安全。这就是为什么大多数公司都拥有纯传统产品的原因(例如,没有测试自动化的代码)。阅读如何使用旧代码有效地工作。

他们仍然试图为未来而雇用,但被困在过去。不只是谈话,还包括代码,测试,流程。要求在团队中工作一天。验证他们练习XP以及诸如持续交付之类的事情。大多数软件人都可以选择在哪里工作,因为需求量大于可以工作的人数。

评论


我完全同意。通过尽早采用更多的自动化测试来向左移动需要大量的努力。多年来已经成功交付了产品的公司,其现有流程中充满了手动测试和UI重型自动化测试,他们发现他们的流程效率低下,迫切需要进行改造,但他们并没有意识到更改的难度。观看此视频,了解Visual Studio Team Services在转换其质量检查过程中发布的信息:docs.microsoft.com/zh-cn/azure/devops/learn/devops-at-microsoft/…

–deasa
20年1月7日在18:58

您曾经在一家潜在的新公司工作过一天吗?似乎很有趣,我想下次尝试,但是我的假设是许多公司都反对这种想法(“哦,我们这里有专门知识”等)。当然,为什么不尝试呢,但是由于我离寻找新工作很远,所以我只是在这里问。

–pavelsaman
20 Jan 17 '20 at 18:09

@puzzle个人还没有,但是我曾经有一个想要加入我们团队的人问它,我们做到了。我还在Sipgate.de进行了巡回演出,他们总是有1-2天的求职者,因为他们一天中的大部分时间都在配对(包括人力资源和会计),所以他们希望确保新员工喜欢这种工作方式。不必花一整天,但一定要看一下代码和工作流系统,除非您希望从头开始构建项目;-)

– Niels van Reijmersdal
20-1-17在20:27



#9 楼

我认为您基本上回答了您自己的问题。


但是一旦被录用,鉴于敏捷团队中发布版本的紧迫性,很多工作将涉及手动测试。 br />

很多人都有很高的抱负,但是时间和资源会限制诸如自动测试之类的延迟奖励工作。组织内部的人员可能对它的价值有不同的看法。无法立即交付的东西可能很难被企业主超越。

#10 楼

我曾经在波兰测试论坛上调查过25位测试人员,为什么很难找到测试自动化专家。其中之一表示,这是因为公司在工作机会上作弊:


许多寻找测试人员的公司声称他们需要有人来自动化或能够学习自动化,然后事实证明仅涉及手动测试,而自动化只是PR,可以说服候选人接受合同。当您签订合同时,几乎没有人辞职。


也许这是一个恶性循环。公司认为,如果涉及自动化,工程师会对测试职位感兴趣。因此,他们相应地描述了工作职位。工程师意识到这种误导性描述,因此只有经验不足的工程师才可以申请。

#11 楼

对我来说,他们想确保质量检查人员具有某种编码思想。由于任何人都可以通过学习系统(例如系统)来成为手工质量检查人员,因此端对端的工作流程就可以了。但是手动测试人员的主要问题是,他们不了解qa,dev和prod中的代码。因此,他们将其视为错误的所有内容,可能不是代码尚未推送到质量检查的错误。

因此,许多开发人员都希望QA对编码不了解,以便他们能正确理解。这就是为什么尽管他们不需要自动化或没有时间进行自动化,但他们仍在寻找自动化质量保证的原因。我只将自动化用于回归测试,以节省手动测试的时间,而将手动测试用于打开或查找错误。

评论


这不能回答问题。而且,这令人困惑。当您使用术语“手动质量检查”时,您是指黑盒测试人员吗?如果是这样,为什么他们需要学习代码?即使不是&引用“可能不是bug,代码尚未推送到质量检查”,那么为什么还要将其分配给测试?如果已分配,它应该已经可用并且可以正常工作。您是否对Stack Exchange,Facebook或任何其他应用程序的代码库有任何了解?我觉得不是。仍然,如果要求您进行测试,我相信您将能够进行测试。了解软件的用途和功能与学习代码不同

–IAmMilinPatel
20年1月4日,下午3:17

@ user42890如果需要编码知识,则可以提出与此相关的问题,并且要清楚,您的工作资料大部分将需要手动测试。他们不会这样做,他们会向您询问自动化问题,将自动化测试描述为该角色的主要部分,但会要求您手动测试所有内容,而没有为自动化分配适当的时间和预算。它完全不诚实。

– Shivam Mishra
20年1月4日在7:13