0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 软件开发

自动化失败的另一主要原因是什么?如何解决?

发表时间:2023-09-06 15:01:17

文章来源:炫佑科技

浏览次数:158

菏泽炫佑科技

自动化失败的另一主要原因是什么?如何解决?

自动化失败的另一个主要原因是开发团队(以及更大的组织)缺乏时间来创建可用、稳定和有效的自动化解决方案。 虽然自动化需要时间和精力,这已不是什么秘密,但当时间至关重要时,自动化仍然是首先要做的事情之一。

这适用于项目内,但也适用于在敏捷环境中工作的团队。 尽管自动化是许多软件开发团队*想要的事情,但当末日临近时,交付功能几乎总是优先于自动化。

值得注意的是,我认为这不一定是一件坏事。 毕竟,*终发布的产品是用户可以使用的功能,而不是确保功能正常工作的自动化测试用例。 但从长远来看,团队把发布产品功能放在首位,而一次次迭代发布日期,让他们异常忙碌和精彩。

他们似乎忘记了,采用敏捷工作方式的目的是小增量地发布用户可用的功能,并得到用户的即时反馈,而不是仅仅追求速度,匆忙发布功能。

没有足够的时间来创建可靠的自动化解决方案也可能会产生不必要的副作用:如果您没有给予自动化应有的优先级(并且可能不是*高优先级),您的团队成员将不太可能有足够的时间来成为熟练的自动化工程师。

我将自动化视为一门手艺,就像任何其他手艺一样,它需要不断学习和磨练你的手艺。

让自动化成为敏捷开发过程的一部分

现在我们已经介绍了自动化失败的两个主要原因,我想提出一个分发指南来帮助您避免这些陷阱并成功地实现自动化作为软件开发活动的一部分。

这不是权威指南,并非所有步骤都适用于您的情况,但遵循以下步骤可能会帮助您在敏捷自动化工作中取得成功。

1.设定合理的期望

正如我之前所说,任何自动化的成功都始于合理的期望。 我发现提出问题并就问题达成共识是设定合理期望的好方法。 我们首先为什么要自动化? 为什么我们认为需要自动化测试?

在我看来,这个问题有很好的答案:“因为我们希望能够首先获得开发人员的反馈”,而“因为我们不想手动测试”是不合理期望来源的一个典型例子。

2. 将自动化测试视为软件开发

确保所有相关方认识到引入自动化测试与在当前项目中引入另一个软件开发项目基本相同。

将自动化测试作为一个项目实施需要考虑该项目的计划及其技术实施(您应该为其分配资源并留出时间用于开发和维护自动化等),同上(您编写代码,因此使确保它是良好的开发模式和实践,并尊重自动化测试是一种需要特定技能的工艺)。

3. 为自动化分配专用资源

为了在敏捷软件开发工作中成功实现自动化测试,您需要确保所有负责创建和维护自动化的人员都拥有正确的技能和足够的时间来执行此操作。

当前项目的自动化测试人员数量取决于多种因素,包括测试人员自身的技术能力、需要什么类型的自动化测试以及被测试应用程序的复杂性和风险。 如果您的团队目前没有雇用足够的人员来满足您的自动化需求,或者团队成员缺乏必要的经验,那么临时外部专家也是一个值得考虑的选择。

4. 选择起点

从哪里开始实施自动化测试似乎是一个非常困难的问题,就像任何重大项目一样,很难做出决定。 对此,我有两个建议:

您可以从一些简单且易于实现的功能开始,或者专注于当前应用程序中的一些高风险项目和主要缺陷(这有助于尽快向利益相关者展示自动化测试的附加价值。

尽量避免使用端到端自动化测试,例如使用. 虽然当您想要编写自动化回归测试时,这似乎是一个简单的选择自动化软件开发,但这种类型的测试*难编写,执行*慢,并且*有可能失败,可能是由于被测应用程序的接口更改也可能导致可能是由于部署过程中的同步,或者环境因素(例如测试数据)。 相反,应该关注是否可以创建可靠的单元测试。

5. 实现您所定义的“完成”自动化

当您在敏捷环境中工作时,将自动化测试的功能指定为您所说的“完成”的一部分是有意义的。 尽管如此,如果可能的话,请避免这两个陷阱:

包括诸如“所有测试都应该自动化”或“我们应该自动化我们交付的每个项目”之类的陈述有时没有意义,但可能很麻烦自动化失败的另一主要原因是什么?如何解决?,甚至完全不可能。

换句话说,有效的定义类似于:“更新现有的自动化脚本以适应当前功能的更改”,或“如果开发团队认为有必要,则创建其他自动化测试用例”。

基于百分比 - “100% 代码覆盖率”是一个空洞的短语,没有说明测试的质量和相关性。 同样,“80% 的测试是自动化的”也是没有意义的。 首先,这是基于通过自动化测试执行的一对一转换,这已一次又一次被证明是无效的。

但更重要的是,你首先如何定义 80%? 所有测试都能执行 80% 的自动化测试吗? 我想你能明白我的意思。

6.学习和调整

这不应该让您感到惊讶:自动化测试是一种软件开发活动,当您以敏捷的方式工作时,必须应用快速反馈、快速评估和学习。

自动化的实施并非一蹴而就。 就像你正在测试的应用程序一样,花时间进行实验,尽早快速评估,从错误中吸取教训,并坚持行之有效的方法。随着时间的推移和积累,自动化方法与你的软件开发工作密切相关。

请注意,情况各不相同,对一个组织有效的方法可能不适用于另一个组织。 话虽如此,我确实相信上述内容将对大多数正在努力进行有效测试的团队有所帮助。 因此,自动化被视为改进敏捷测试工作的一种手段。

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多