使自动化成为敏捷开发过程的坏事,你知道吗?
发表时间:2023-10-19 13:02:20
文章来源:炫佑科技
浏览次数:139
菏泽炫佑科技
使自动化成为敏捷开发过程的坏事,你知道吗?
这适用于项目内,但也适用于在敏捷环境中工作的团队。 尽管自动化是许多软件开发团队*想要的事情,但当末日临近时,交付功能几乎总是优先于自动化。
值得注意的是,我认为这不一定是一件坏事。 毕竟,*终发布的产品是用户可以使用的功能,而不是确保功能正常工作的自动化测试用例。 但从长远来看,团队把发布产品的功能放在首位,并一次又一次地迭代发布日期,这让他们异常忙碌和勤奋。 他们似乎忘记了,采用敏捷工作方式的目的是小增量地发布用户可用的功能,并得到用户的即时反馈,而不是仅仅追求速度,匆忙发布功能。
没有足够的时间来创建可靠的自动化解决方案也可能会产生不必要的副作用:如果您没有给予自动化应有的优先级(并且可能不是*高优先级),您的团队成员将不太可能有足够的时间来成为熟练的自动化工程师。 我将自动化视为一门手艺,就像任何其他手艺一样,它需要不断学习和磨练你的手艺。
让自动化成为敏捷开发过程的一部分
现在我们已经讨论了自动化失败的两个主要原因。 我想提出一个分发指南来帮助您避免这些陷阱并成功实现自动化作为软件开发活动的一部分。 这不是权威指南,并非所有步骤都适用于您的情况。 但遵循以下步骤可能会帮助您在敏捷自动化工作中取得成功。
1.设定合理的期望
正如我之前所说,任何自动化的成功都始于合理的期望。 我发现提出问题并就问题达成共识是设定合理期望的好方法。 我们首先为什么要实现自动化? 为什么我们认为需要自动化测试?
在我看来,这个问题有很好的答案:“因为我们希望能够尽快得到开发人员的反馈”,而“因为我们不想手动测试”是不合理期望来源的一个典型例子。
2.将自动化测试视为软件开发
确保所有相关方认识到引入自动化测试与在当前项目中引入另一个软件开发项目基本相同。
将自动化测试作为一个项目实施需要考虑项目计划及其技术实施(您应该为其分配资源并留出时间用于开发和维护自动化等),同上(您编写代码,因此,请确保它是良好的开发模式和实践,并尊重自动化测试是一门需要特定技能的工艺)。
3. 为自动化分配专用资源
为了在敏捷软件开发工作中成功实施自动化测试,您需要确保所有负责创建和维护自动化的人员都拥有正确的技能和足够的时间来执行此操作。
当前项目上部署的自动化测试人员的数量取决于多种因素,包括测试人员自身的技术能力、需要什么类型的自动化测试以及被测试应用程序的复杂性和风险。 如果您的团队目前没有雇用足够的人员来满足您的自动化需求,或者您的团队缺乏必要的经验,那么临时外部专家也是值得考虑的选择。
4. 选择起点
从哪里开始实施自动化测试似乎是一个非常困难的问题,就像任何重大项目一样,很难做出决定。 对此我有两个建议:
5. 实现您所定义的“完成”自动化
当您在敏捷环境中工作时,将自动化测试的功能指定为您所说的“完成”的一部分是有意义的。 尽管如此,如果可能的话,请避免这两个陷阱:
包括诸如“所有测试都应该自动化”或“我们应该自动化我们交付的每个项目”之类的陈述有时没有意义使自动化成为敏捷开发过程的坏事,你知道吗?,很麻烦,甚至不可能实现。 换句话说,有效的定义是:“更新现有的自动化脚本以响应当前功能的更改”,或“根据开发团队认为必要的情况创建其他自动化测试用例”。 基于百分比——“100% 代码覆盖率”是一句空话。 这句话完全没有说明测试的质量和相关性。 同样,“80% 的测试是自动化的”也是没有意义的。 首先自动化软件开发,这是基于通过自动化测试执行的一对一转换,这已一次又一次被证明是无效的。 但更重要的是,你首先如何定义 80%? 所有测试都能执行 80% 的自动化测试吗? 我想你能明白我的意思。
6.学习和调整
这对您来说应该不足为奇:自动化测试是一项软件开发活动,当您以敏捷方式工作时应用快速反馈、快速评估和学习时,自动化测试是必需的。
实施自动化并非一朝一夕之事。 就像您正在测试的应用程序一样,花时间进行实验,尽早并尽快进行评估,从错误中吸取教训,并坚持行之有效的方法。随着时间的推移和积累,自动化方法与您的软件开发工作密切相关。
请注意,情况各不相同,对一个组织有效的方法可能不适用于另一个组织。 话虽如此,我确实相信上述内容将对大多数正在努力进行有效测试的团队有所帮助。 因此,自动化被视为改进敏捷测试工作的一种手段。
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等