对现代软件开发来说,传统的测试方法效率较为低下,有限的测试覆盖范围、有限的测试时间和较多的成本等都会影响软件的实际上线时间。如今,产品短迭代、遵循devops和敏捷的方法论,必须快速、频繁地交付,以满足不断变化的用户需求。
传统测试方法存在哪些问题?
在早期使用瀑布模型开发软件时,测试是在所有开发活动完成后进行的。然而,后续尽管出现了敏捷、DevOps、Scrum和看板模型,测试仍然是在开发后的工作。传统的测试方法是在项目结束时进行测试,这就很难跟上如今软件开发的节奏。
当产品简单且需求精确时,这种测试方法是可行的。但在当今的混合环境中,每个产品或应用程序都必须考虑跨设备、操作系统等兼容性问题。因此,传统测试方法就存在很多问题。例如:
- 孤岛式的开发和测试工作会导致一些质量和性能问题;
- 在开发生命周期的后期进行测试成本高昂,因为错误更难以纠正;
- 任何代码更改都是在测试后才实施,降低了整体产品交付速度;
- 产品需求需要在测试过程开始时传达,任何修改都变得极其难以测试和实施;
- 由于测试是分阶段进行的,因此很少或根本没有机会使测试成为一个连续的过程。
测试左移应运而生
传统的测试方法是在项目结束时进行测试,这很难跟上如今软件开发的节奏。为了更好评估软件的性能,在整个软件开发周期具有整体可见性,这时候,我们就需要引入测试左移的方案。
测试左移,顾名思义,就是把测试的时间向软件生命周期前段移动。从本质上讲,它为测试带来了独特的思维方式,允许在开发生命周期的早期测试代码。
测试左移将促进开发和测试团队之间更好的协作并改进产品设计;在开发的同时进行测试,以快速且经济高效地识别和解决缺陷;轻松、无缝地引入新功能和更改,并缩短上市时间;通过在短而快速的迭代中推动创新,快速行动并建立信誉;通过从开发过程一开始就执行测试来提高测试覆盖率;通过及时修复错误来更好地利用时间和资源。
如何进行传统测试向测试左移的过渡
从传统测试过渡到测试左移需要记住以下几个技巧和相关实践。
了解不同的测试左移类型
测试左移不仅仅是在开发的早期阶段进行测试。为了确保成功,了解不同类型的测试左移非常重要。例如:
- 传统的测试左移将测试的重点放在更接近开发的地方;
- 增量测试左移逐步将测试活动转移到软件开发生命周期的早期阶段,并以团队感到舒适的速度进行;
- 敏捷测试左移将测试活动集成到软件开发过程中或使用测试驱动的开发方法;
- 基于模型的测试左移使用各种模型来模拟产品的工作原理并在实际开发开始之前检测缺陷。
让合适的利益相关者参与需求规划
成功过渡到测试左移还需要正确利益相关者的指导和监督。在初始阶段聘请合适的人员可以使测试左移过程更加清晰。它还可以帮助制定测试基线,并投入必要的人员和资源来制定和完善测试路线图。
让端到端测试成为可能
端到端测试是快速过渡到测试左移并实现有效代码审查的好方法。为了避免测试不稳定,请确保首先纠正早期测试中发现的缺陷。通过采用并行测试来建立更快反馈的文化。此外,请确保在每次代码提交后运行单元测试。
将基于风险的分析融入其中
将基于风险的分析结合起来是评估被测软件固有风险的好方法。风险的数量或程度取决于几个因素,例如软件复杂性、业务的重要性、使用频率、可能存在缺陷的领域等。
测试左移也需要自动化
测试左移不会直接成功,他也会失败。测试左移需要足够的测试,因为需要早期频繁测试;如果完全依赖手工测试,过渡到测试左移也会很困难,特别是当产品很复杂并进行多次迭代时。
针对上述问题,自动化测试将有助于改善和加速测试结果,自动化测试将允许团队尽早且频繁的进行测试,专注于战略上更重要的领域,并且有助于建立持续的正反馈,使开发人员鞥够在编码时就考虑到测试的可行性。