自动执行以提高效率

已完成
将重复的手动任务替换为软件自动化,可以更快、更一致和更准确地完成任务,并降低风险。

工作负载的工作流中的流程可能需要团队成员执行平凡、重复且耗时的任务,而这些任务实际上并不需要人类的智慧即可完成。 根据任务的频率,你可能会在这些工作上花费大量时间,并会随着工作负载的增加投入更多时间。 此外,由于人工输入的原因,这些过程往往容易出错。

通过自动化,可以节省时间、精力和资金,并避免错误。

示例方案

Contoso University 开发了一个为 Contoso 的学生和教职员工提供在线教育服务的 Web 应用程序,目前正处于生产环境且由 Azure 托管。

技术解决方案是基于 Azure 应用服务、Azure SQL 数据库、Azure Active Directory、Azure 密钥保管库和 Azure DevOps 构建的。

自动执行流

根据适当级别的复杂性、工作量、频率、准确度、及时性和生命周期等条件评估所有工作流。 基于该评估自动执行工作流,并优先处理具有最高预期回报的工作流。 移除冗余工作流或增加价值来证明人力工作的合理性。

通过采用此方法,可以将团队能力重新投入到价值更高的工作中,并提高工作效率和一致性。

生成工作流清单可确保自动执行正确的任务。 移除冗余任务可降低复杂性和减少错误。

Contoso 的挑战

  • Contoso University 的团队正在寻找方法,以通过自动执行重复、耗时、容易出错或低价值的手动任务来改进操作过程。 这可以腾出团队的时间和资源,以将其用于更多的战略工作,提高服务的质量和可靠性,并可能降低成本。

应用方法和结果

  • 为了开始这项工作,团队盘点了可能自动执行的手动操作任务。 接下来,团队使用建议中建议的条件(如复杂性、工作量、频率、准确度、时间线和生命周期)分析了任务列表,以确定实现自动化的最佳候选项。 同时,团队还评估了获取自动化工具和自定义内部自动化两者中哪个选项长期效果更好。
  • 根据分析的结果,他们决定专注于自动执行与用户帐户管理相关的活动。 管理用户帐户(学生、教师和员工)是一项常见任务,包括在学生注册时创建新帐户、重置密码以及在个人离开大学时删除帐户。
  • 通过自动执行与用户帐户管理相关的许多任务,团队已经腾出了足够的时间来开始执行之前延迟的其他卓越运营改进工作。

自动化设计

设计工作负载组件以支持自动化功能。

避免出现系统设计中缺少自动化,促进重复任务的反模式、减缓增长,并开始积累技术债务的情况。

Contoso 的挑战

  • 该应用程序具有丰富的动态 UI,使用了许多交互式元素和动画。 自应用程序最初开发以来,开发团队从未使用过自动化 UI 测试工具,并且仅依赖于手动测试。
  • 最近,该团队一直在致力于自动执行 UI 测试,但面临着许多挑战。 一些 UI 页面过于动态且不可预知,而且无法一致地标识测试用例需要与之交互的一些字段。

应用方法和结果

  • 团队已决定改进其 UI 实现,以增强其可测试性和可访问性。 他们将通过在创建测试用例时修复页面来进行增量改进。
  • 在处理每个页面时,他们确保每个字段具有可供测试自动化工具使用的唯一标识符。 他们还遵循辅助功能准则和标准,例如使用语义 HTML、正确的标签和键盘导航。 这提高了 UI 的用户友好程度,并且更易于测试。
  • 随着自动化测试的完成,它们已合并到在日常生成期间运行的测试套件中,从而显著减少了在开发期间将新版本发布到生产、提高产品质量和节省成本所需的时间。

自动化应具有良好的架构

将所有自动化视为工作负载的关键依赖项。 适应工作负载的预期增长。 自动化工具是工作负载不可或缺的一部分,它应遵循五个架构良好的框架支柱。

设计自动化组件以抵御安全威胁等风险。 使用已应用的最佳做法,可以避免实现中出现混乱。

如果此依赖项保持正常和安全运行,则工作负载将在高级别保证下继续运行。

Contoso 的挑战

  • 工作负载具有专用于负载和性能测试的环境,其配置非常类似于生产环境。 为了更密切地模拟环境中类似生产的条件,在重置环境时,会将生产数据库的新副本(已匿名化和屏蔽所有用户的敏感数据)加载到测试环境中。
  • 数据库加载脚本由以前的开发人员编写,但并未很好地进行记录或遵循其他最佳做法。 脚本运行缓慢,并且不会无法正常处理错误或故障。
  • 最近,随着生产数据库的扩充,脚本运行时越来越长且频繁失败。 这些延迟和失败影响了团队执行测试运行的能力,并导致开发计划出现延迟。

应用方法和结果

  • 团队决定现在应当重新编写此工具,以便它与用于开发核心应用程序代码库的标准开发做法保持相同的水平。 团队将遵循行业公认的最佳做法,包括适当的安全性和充分的错误处理。
  • 性能得到了提高,功能也经过了重新设计,无论生产数据集的大小如何,都可以生成可预测的执行时间。
  • 通过像对待核心应用程序代码库一样严格对待自动化工作,并应用 WAF 原则和建议,团队针对可靠性、安全性、性能、成本和运营对其进行了优化。

知识检查

1.

在评估工作流和自动化潜力时,以下哪一项不是需要考虑的重要因素?

2.

Contoso 如何实现了 UI 测试自动化?

3.

应如何从整体工作负载的角度考虑自动化?