image.png

    • 我们现在生活在一个市场快速波动的时代,需要软件跟上社交媒体、云计算、大数据技术和移动计算的颠覆性趋势。在这种环境中,传统的测试方法(侧重于过程、方法、专门的测试技能和严格的基础设施)正在迅速成为过去。采用敏捷的组织和团队现在已经将他们的焦点转移到早期和定期地向客户交付有价值的工具和实践,这些工具和实践结合了速度和灵活性。因此,我们看到整个行业的最佳实践正在被改写,现状正在受到挑战,人们正在利用新的方式交付价值。
    • 其中一种激进的思想是左移测试。在传统项目中,端到端和集成测试主要由提供GUI输入的测试场景组成。如图左侧的锥形冰淇淋所示。很少关注单元测试,因为大部分测试工作都被推迟到项目的后期。考虑一个缺陷的例子,它起源于设计阶段,但直到编码结束或测试周期的中间阶段才被检测和处理。相反,在左移测试中,这是DevOps的一种实践,它更强调持续的单元测试。

    这里是一个在左移测试中发生的事情的简要概要:

    • 更多的重点是单元测试和组件测试。单元测试现在占用了70%的工作,而传统方法中只占用了5%。
    • 注意,由于单元测试用例覆盖范围很广,更高级别的测试可以更轻,因为不同的场景已经在基本级别上覆盖了。如果一个集成测试用例失败了,可能是因为漏掉了一个单元测试用例。因此,要解决失败的情况,必须修复代码,并且需要添加一个或多个单元测试用例。
    • 测试活动与开发活动并行进行。那些无所事事并等待开发人员部署代码的测试人员,在项目的前期更投入。
    • 焦点从检测缺陷转变为防止缺陷。
    • 与开发人员和测试团队一起工作,计划,优先级,评估和执行,实现了更多的想法的融合。左移测试概念被我们稍后讨论的测试自动化和测试驱动开发(TDD)的其他概念有效地扩展了。
    • 测试人员和开发人员一起创建测试自动化框架。

    左移测试正变得越来越流行,不仅在敏捷团队中,软件行业的其他成员也在追赶它。让我们看看左移测试的一些好处:

    • 开发人员倾向于根据客户的期望,更快地获得代码的周期性反馈。这反过来降低了变更的风险和成本,因为缺陷可以更早地识别出来,并且可以防止它们传播到以后的迭代中。
    • 随着产品发布日期的临近,预计集成缺陷会减少。随着风险的减少,代码在生产中的稳定性也得到了提高。由于可以在整个产品生命周期中使用它,因此好处会不断增加。
    • 开发团队和测试团队之间的竖井被打破。角色不再是专门化的,而是跨职能的。开发人员需要编写
    • 迭代期间的Junit测试用例,测试人员需要编写测试脚本和代码,技术业务分析人员可以参与业务或验收测试。
    • 测试活动不再是向生产交付完成代码的瓶颈。测试团队也不会在不适当的压力下,在截止日期临近时随意地完成测试。由于产品处于测试监督下的时间较长,产品的整体质量预计会更好。
    • 更好地持续利用测试环境。
    • 就像持续构建和集成一样,左移测试可以促进持续交付,并帮助敏捷团队扩展。
    • 开放、透明、信任和团队凝聚力的建立。事实上,如果开发人员与测试人员携手合作,团队进行测试活动的总可用能力也会得到增强。