除了利奥·梅西(Leo Messi)的足球技术外,世界上没有什么是完美的。 是的,也许并非总是如此,但在大多数情况下,不可能创建理想的过程。 但是我不害怕谈论我在软件开发环境中实现完美测试自动化的愿景。 我的工作经验使我对这个问题充满信心。 所以我开始了!
为谁写这篇文章
在开始撰写本文之前,我认为本文的读者会对他们有所帮助和有趣。 这是我的目标受众:
- 经理/产品负责人:此类别在我的列表中排在第一位,目的只是为了通知经理和产品负责人有关要在其项目中引入测试自动化之前需要满足的前提条件。
- 自动化工程师:因为以正式和声明性的形式阅读有关自动化测试工程师所做工作的信息将很有帮助。
- 质量检查工程师:对于常规质量检查工程师而言,应该将测试自动化作为手动测试的延续。
- 仇恨者:无论我在本文中写什么,仇恨者都会讨厌=)
自动化测试在软件开发中的地位
如今的软件开发具有许多不同的形式。 如果它是一个大型公司的企业系统,它可能会很昂贵;如果它是一个初创公司或一个开源项目,它可能会很便宜甚至免费。 一个开发团队可以分布或位于一个办公室中。 可以使用不同的开发方法。 不管所有这些因素,软件开发主要是代码生产的过程,它解决了一些业务问题。
乍看之下很简单,只需生成代码即可获得相关软件。 但通常,该过程要复杂得多,因为它包含许多组件。 让我们列举其中一些:
- 内部沟通(开发人员之间)
- 外部沟通(与客户/项目经理/产品负责人)
- 部署过程
- 手动测试
- 自动化测试
- 错误修复
如您所见,开发过程是各种活动的组合。 当然,编写代码是过程的中心。 所有其他活动有助于使代码的产生更加有效和容易。 这是一个停止并说出有关测试的好地方。 测试对代码质量进行了首次独立评估。 我的意思是定期进行手动测试。 质量检查小组会执行某种类型的测试,并创建错误报告以作为已完成工作的反馈。 这是质量检查和开发团队互动的最简单方案。
随着测试数量的增加 ,对于QA团队来说,测试变得非常困难和烦人,需要测试的模块包括不重要的验证,或者需要非常频繁地执行 。 您可以向任何质量检查工程师提出问题,他最讨厌什么样的工作。 我敢肯定,答案将是: 一项工作每天都需要重复 。 这种情况是软件开发过程中必须固有测试自动化的原因。
自动化测试应该做什么?
测试自动化的首要目标是使质量保证工程师的生活更轻松。 所有其他目标都是第一个目标的衍生产品。 例如,回归测试套件的自动化保证了QA团队在手动执行过程中不会受到折磨。 但是,这种说法仅在质量检查领域是合理的。 现在,我将尽力说服您。
您认为质量管理工作对经理有多重要? 大概在95%的情况下,答案是否定的。 这是正常的,因为管理人员使用另一个抽象进行操作。 因此,对于管理人员和产品所有者来说,测试自动化的主要目标肯定是时间经济和高质量的验证。
对于开发人员,一切都变得更加简单。 他们知道自动测试有助于使代码保持稳定的工作状态。
因此,测试自动化必须为不同类别的项目成员执行不同的任务。
什么时候可以进行自动化测试?
我已经讨论了在项目中确实需要应用测试自动化的情况。 在本节中,我将详细研究所有这些情况。
第一种情况是关于日常工作的。 我知道许多情况下,质量保证工程师的工作从执行标准测试用例集开始。 每周5天。 你能想象得到吗? 我相信这是应该应用测试自动化的第一个“现实”案例。 因此,可以以更有效的方式花费QA工程师的空闲时间-编写新的测试用例,探索性测试以检测新的错误或早晨喝咖啡! 回归测试是自动化的良好选择。
第二种情况涉及大量测试。 有一次,我被分配到一个大型电子商务项目,在那里我们有2000多个测试用例。 我们的团队中有4名质量检查工程师。 完整的测试执行周期大约需要2周的时间。 花费额外的时间来验证已修复的错误。 绝对这些项目需要某种测试自动化。 它将引起对QA的关注,否则可能会在手动执行大量测试用例时丢失。
第三种情况是关于复杂的功能。 它可以是对某些较长的动作序列的某种计算,而这些动作需要做一些以获得特定的结果。 在我的实践中,我参与了一个带有交付服务模块的项目。 而且我必须验证交付价格是否取决于目的地,总金额,客户帐户和折扣率。 此类功能组合太多,无法进行手动测试,因此需要自动化。
当测试自动化没有意义时?
测试自动化不会治愈您的项目,而只是承担质量检查团队职责的一部分。
如果项目包含混乱的流程,请不要尝试增加自动化,因为这样只会带来额外的混乱。
如果没有手动测试用例,那么自动化的想法就很糟糕,因为每个自动化脚本都需要基于某种场景。 此外,您将无法通过手动模拟来映射自动化测试结果。 在这种情况下,手动和自动化测试的同步变得非常困难。
如果您没有测试数据,也没有用于自动化测试的单独测试环境,那么我敢肯定,对于95%的客户,您将比获利更多。
摘要
当满足所有预先要求时,测试自动化将成为强大的武器。 从某种意义上说,这是一门艺术。 因为测试框架通常是具有自己的业务逻辑的某种软件,旨在测试主应用程序。
翻译自: https://www.javacodegeeks.com/2014/05/insight-view-perfect-test-automation.html