持续测试的障碍(二):如何克服执行测试不稳定,且运行时间太长
持续测试是一个过程,使团队能够在软件开发中建立质量,并加速交付高质量的客户体验。通过持续测试,团队使用自动化测试获得关于代码健康的即时反馈。
持续测试使企业能够评估商业风险。最近的行业调查显示,用于跟踪项目进展和成功的首要指标:
- 高测试覆盖率
- 增加缺陷修复
- 减少了生产中的缺陷
- 在开发过程中建立质量
如何实现速度和质量的结合?答案是:持续测试。但它确实有其挑战。本文就说说第一个挑战或者说障碍——执行测试不稳定,不可靠且运行时间太长。
障碍二:执行测试不稳定,不可靠且运行时间太长
可以理解的是,软件组织希望自动化测试是有效的,并且不妨碍开发进度。然而,随着测试套件的增长,维护和执行的问题也随之而来。测试,像代码一样,会受到变化的影响。在一个冲刺阶段增加的新功能会对用户界面或应用程序的工作流程产生重大影响。这些变化会破坏现有的测试,使其不稳定。尽快解决这些问题是很重要的。
当测试失败时,你需要了解失败的背景。不是每个测试失败都是一样的。有些用例比其他用例更重要,或者,也许有些测试本质上是不稳定的。缺乏的是对测试失败或测试不稳定对应用程序的业务专家的影响的理解。调查这些持续的测试失败成为整个测试自动化战略的一个分心。业务需求和测试之间的相关性对于确保自动化的价值得以实现至关重要。
另一个障碍是测试套件的实际执行时间。随着测试组合的增加,执行时间也超过了合理的等待反馈的时间。对变化的快速反馈对于成功的CI/CD管道是至关重要的,所以需要测试效率和重点。
如何消除障碍,以人工智能为动力的测试执行
测试执行障碍的解决方案是用AI进行更智能的测试。这意味着利用测试自动化人工智能,使测试对变化更有弹性,并只针对关键测试的执行。
用Selenium和Selenic进行智能UI测试。利用人工智能,Parasoft Selenic在检测到UI变化时自我修复测试。这些都是自动使用的,但建议被发送给开发人员以帮助修复测试。这些修复可以自动应用到Selenium测试中,消除手动调试和代码更改。
根据受影响的需求来计划工作项目的测试。为了确定测试活动的优先次序,需要从测试到业务需求的关联性。追踪用户故事和需求,为价值流的质量提供实时可见性。用户故事和需求应该被优先审查。Parasoft SOAtest中的可追溯性功能被用来计划执行测试,以验证正在打印的项目。然而,由于不清楚最近的变化是如何影响代码的,所以还需要更多。
使用测试影响分析,只验证有变化的内容。为了充分优化测试执行,有必要了解每个测试所涵盖的代码,然后确定已经改变的代码。Parasoft工具通过测试结果和分析的中央存储库提供这种能力。测试影响分析允许测试人员只关注验证变化的测试。