测试自动化最佳实践【译】
尽管不能否认手动测试的价值,自动化测试的需求却在不断增长。自动化测试可以为公司和团队带来许多好处:时间效率高、覆盖面广。
如何最好地制定自动化测试策略呢?
在本文中,我将展示测试自动化策略的所有7个阶段中的一些最佳实践,希望这些对你能有所帮助。
建立测试自动化计划
每个成功的项目都始于一个强有力的战略。自动测试也不例外。为了拥有强大的测试自动化策略,请将测试策略和测试团队保持在一定范围内,并进行比较对比分析。在这里,团队应该在评估可用资源和潜在风险的同时定义自动化和测试优先级的范围。评估之后,团队可以制定各个阶段的行动路线和具有特定时间范围的行动方案。
小贴士:
- 尽早计划测试自动化。自动化测试需要获取硬件和软件方面的资源,由于需要资源分配,这可能会成为瓶颈。因此,建议事先进行计划,避免使成本和计划超支所带来的额外困难。
- 并非所有测试用例都可以自动化。具有自动化测试结果的测试案例应该具有清晰的通过/失败结果,耗时的测试,高风险的失败或稳定的功能。推荐的自动化测试是单元测试,API测试,回归测试,数据驱动测试和跨浏览器测试。
- 相反,应该手动完成的测试用例是UX测试,探索性测试,可访问性测试,反自动化功能或健壮性的功能测试,因为它们的成本很高,而且错误结果的几率最高。
选择测试自动化方法
选择合适的自动化方法是构建健壮且可维护的自动化测试用例的基础。在这里,团队可以选择多种自动化框架:模块化的,线性的,库体系结构,数据驱动和混合的框架。由于它要求与软件开发相同的一致性,因此测试自动化的推出是一个定义明确的过程也至关重要。
小贴士:
- 对项目执行风险分析。推荐的参数包括对潜在风险,可影响性,可能性,缓解和相关成本的描述。
- 合适的人。让关键利益相关者加入进来,这将使与应用程序的业务需求保持联系。此外,考虑在内部还是将质量检查团队外包之间的选择。
- 与开发一起复查测试工件。随着业务优先级随着时间的推移而变化,测试人员应确保测试计划与设计的功能保持一致。此外,测试计划应当被文字记录下来,而且要随着计划的开展及时调整。
确定测试工具
由于测试用例是自动化的,因此很容易理解为什么测试自动化依赖自动化工具。由于市场上有数百种工具,因此测试团队现在有很多选择。在这里,团队应该制定一个自动化工具策略,并提出有关可用资源和需求的广泛问题。其中关键的一点:该工具应该解决当前的问题,而不是试图适应该工具。
小贴士:
- 不要急于使用业界最佳的自动化测试工具。相反,请查看需要配置的测试自动化框架,然后选择一些具有应用程序关键功能的软件。
- 如果团队拥有足够专业知识,则在进行Web测试和Appium for Mobile测试时,请坚持使用Selenium。它的功能非常强大,将提供强大的能力,并且可以适应大多数常用语言、平台和操作系统。请注意,自动化测试人员必须具有编程专业知识,而且需要做很多解决问题的工作。
- 利用免费的咨询和试用版本。除了诸如Selenium或Appium之类的开源工具外,大多数商业自动化测试工具还向其销售工程师提供免费咨询,以通过技术和商业信息为工具研究过程提供支持。为了使具有各种测试专业知识的测试团队顺利过渡,强烈建议使用免费的无代码工具,例如
Katalon Studio
。它为测试人员提供了极大的便利:健壮的自动化测试工具,非常适合短期项目中的测试团队。Katalon Studio
是市场上优秀的自动化测试工具,它使测试人员可以快速而可靠地生成测试,而无需考虑他们的编程技能。它支持各种类型的测试和环境,并具有丰富的无代码功能,
配置自动化环境
此阶段是自动化策略中的重要组成部分,因为这是测试的计划开始生效的地方。在此步骤中,需要检查测试环境并获取自动化测试所需的自动化工具。尽管自动化测试开化结果还为时尚早,但是稳定的测试环境对于成功实现测试自动化至关重要且不可或缺的。
小贴士:
- 为确保一致性,开发和测试环境应与阶段环境相同,而阶段环境应与生产环境相同。
- 将数据视为测试用例的一部分,例如对数据进行排序,是否应屏蔽数据,测试后数据改动影响等等。
- 在编写测试用例之前,请定义一组最佳实践,以确保它们能够抵御自动化的系统更改带来的变化。
设计测试自动化
一旦有了策略,工具和环境,就可以编写测试脚本了。此测试版本应与软件开发同步进行,以与应用程序变更尽量保持同步。在设计测试用例时,请遵循正确的测试模块顺序,并涵盖正向流程和负向流程。
小贴士:
- 如果可能的话,采用行为驱动开发。通过使用用户故事编写测试需求和脚本,该框架有效地将测试人员编写用例和用户操作保持一致。
- 数据驱动测试的可重用性。通过使用数据驱动的方法,只需更改存储在外部文件中的数据即可生成测试用例。
- 在将任何测试添加到回归分析之前,请确保多次运行并验证它以确保特定测试的质量。
执行测试自动化
所有的准备工作都将换发荣光。由于此步骤是自动化的,因此只需要担心剩下的就是执行环境和稳定性。还可以遵循一些管道来提高发布速度的同时保持质量,例如DevOps
,CI/CD
。需要注意的是:某些测试环境需要预先设置,软件测试中的虚拟化是此类需求的最佳解决方案。
小贴士:
- 并行化不需要相互依赖的自动测试用例,以节省时间。例如,付款页面的测试用例结果不应等待或取决于登录用例。
- 使用管道调度工具并行执行测试用例。例如Selenium并行测试基础、Selenium并行测试最佳实践中的内容,利用云环境执行测试而无需事先设置,因此测试人员可以在保持高质量的同时优化测试周期。
- 在稳定的服务器和网络连接下对应用程序进行测试。避免意外的故障和浪费时间的因素。
结果分析和可重用性
最后,在此步骤中,应该制定计划以分析失败的测试用例,并采取后续措施来修复检测到的问题。通知测试人员和修复错误所需的时间通常比预期的长。因此定义良好的过程和规范将使团队在优化应用程序时避免许多冲突和资源浪费。
小贴士:
- 识别缓慢,失败的测试。在测试用例运行中添加计时器,以选择连续失败或花费时间的测试。这种做法可帮助测试工程师确定瓶颈并重新配置这些测试的活动,从而最大程度地提高测试效率。
- 将测试结果与以前版本中经过验证的报告和文档进行比较,以扩大覆盖范围。
- 结合工具或第三方智能测试报告功能,以提供高级测试报告和更好的测试维护。
结论
每个应用各不相同,每一个团队的测试需求也千变万化,没有两个团队完全相同。无论已经决定迁移到自动化测试还是正在考虑,都必须了解进行过渡的最佳实践以及最适合团队的测试计划。