分享到社交媒体:

本文首发于「BY林子」,转载请参考版权声明


随着软件开发变得越来越快,越来越复杂,传统的开发方法已经无法满足当前的需求。在过去,软件开发人员和测试人员通常是两个不同的团队,他们之间的沟通和协作非常困难。为了解决这些问题,开发和测试融合已经成为了软件开发的新趋势,越来越多的企业开始实施开发和测试的融合。

然而,现实情况下,开发和测试融合却并不理想,大家对此也是存在疑问:开发和测试融合,到底该怎么做?本文就跟大家一起探讨开发和测试融合相关的问题。

01 为什么要实现开发和测试融合?

1.1 新形势下质量文化的要求

开发和测试融合是跟新形势下的质量文化、软件测试的价值观密不可分的,主要体现在以下几个方面:

敏捷测试宣言

1. 全程的测试介入

全生命周期各个环节的测试介入,并不是测试的独立工作,离不开跟各个角色的协作。

2. 团队为质量负责

传统的测试和开发物理上隔离、时间上分裂,不利于实现团队整体为质量负责,只有两个角色打破隔阂,融合到一起,才有成功的可能。

3. 持续精准的自动化测试

自动化测试不是把手工测试用代码实现那么简单,而是需要有相应的策略,需要考虑业务风险和技术风险,从而少不了开发和测试的协作,两者互为助力,让自动化测试更有效,发挥真正的价值。

4. 质量内建

确保做正确的事情,并且正确地做事情,就要求对需求理解准确,并且持续的收集反馈,对每一个环节进行纠偏,以尽早发现问题,做到缺陷预防。在每一个PDCA环中都离不开测试、开发、甚至业务和运维的共同参与。

1.2 融合带来的价值

开发和测试融合所带来的价值,可以总结为这几个方面:

1. 更紧密的协作

开发和测试人员可以更紧密地协作,更好地理解对方的工作和需求,并更好地解决问题。

2. 更高的质量、更低的成本

通过及早发现和纠正缺陷,可以提高软件质量,减少测试和修复缺陷的时间和成本。

3. 更短的开发周期

通过同时进行开发和测试,可以加快开发速度,缩短发布周期。

4. 更少的风险

通过提前发现和修复缺陷,不仅可以减少修复缺陷所需的时间和成本,还可以降低软件开发的风险。

02 开发和测试融合有哪些具体的实现形式?

我认为开发和测试的融合可以从形式和实质两个方面来考虑。

2.1 形式上融合

从形式上看,开发和测试的融合可以理解为将开发和测试两个部门的人员和工作流程进行整合,以便更好地协同工作和提高生产效率。这可能包括使用共同的工具和技术、共享知识和经验等。

形式上融合也就是可见的一些融合方式,通常有:

1. 组织架构的调整

打破开发和测试之间的部门墙,重新调整组织架构,将开发和测试融合为一个部门或者一个团队。

2. 全流程的协作

测试全流程参与,在各个阶段更多地跟开发进行协作,让测试活动贯穿于整个软件开发生命周期,比如:一起参与需求分析和技术讨论、结对编写自动化测试、还有Kickoff和Desk check等等。

2.2 实质上融合

形式上实现融合很关键,是融合的第一步。但是光有形式上的融合,貌合神离,缺少实质上的融合是没有多大意义的。

从实质上看,开发和测试的融合是一种思维方式和文化变革,它要求开发人员和测试人员在整个软件开发生命周期中始终保持紧密联系和协作。这种融合可以帮助团队更好地理解彼此的角色和职责,增加软件质量和稳定性,并提高团队的工作效率和灵活性。

2.3 开发与测试融合的实践

基于形式上和实质上的融合方式,我之前分享的团队质量保障赋能的相关实践和《构建测试的体系化思维(进阶篇)》中提到的质量内建典型实践,都是符合开发和测试融合的实践。

03 开发和测试融合有哪些问题和挑战?

开发和测试融合要实现真正实质上的融合不是一蹴而就的事情,尤其基于传统开发和测试分离的状态要实现融合更是难上加难。开发和测试在融合过程中可能会存在以下摩擦:

  • 估算没有考虑测试时间,开发人员对进度不着急,最后导致压缩的是测试的时间。
  • 开发人员和测试人员对于bug的严重性和优先级的认识不一致,可能开发没有及时修复高优先级的bug,导致给最终用户带来不好的影响。
  • 开发人员可能会不够关注代码的质量,而测试人员则会强调测试的覆盖率和代码质量。这可能会导致开发人员反感测试人员对他们的代码提出的质量问题。
  • 开发人员可能更关注快速发布新功能,而测试人员则会更关注是否有足够全面的测试。
  • 开发和测试掌握着不同的领域知识,可能会使用不同的术语和工具,从而导致沟通上的困难。

开发和测试之间的摩擦,究其原因,主要有:

  • 开发人员对测试人员的工作认识不够
  • 开发人员对质量认识和重视不够
  • 测试人员对技术、开发人员的工作不了解
  • 开发人员和测试人员的目标不一致,甚至可能存在利益冲突

04 实现开发和测试融合需要注意什么?

为了尽量减少开发和测试之间的摩擦,达成实质上的真正融合,需要做到以下几方面:

1. 统一的质量目标

开发和测试共享统一的质量目标,并且确保团队每个成员都能明确和支持该质量目标,为同样的目标而努力。

2. 团队共识的质量文化

开发和测试对质量文化达成共识,改变对质量的认知。开发要重视质量,尊重测试人员的工作,同样,测试要理解开发人员的工作,赋能开发团队,倡导团队一起拥护共同的质量文化。

3. 充分的沟通和信息共享

大家都是团队的一员,不应过分关注角色的不同,开发和测试之间需要有充分的沟通和高效的协作,对任何变更和质量状态信息都需要在团队内共享和可视化,让团队每个成员都能知晓。

4. 明确责任

在开发和测试融合中,开发人员和测试人员都需要承担一定的责任。因此,需要明确每个人的职责和任务,以确保所有工作都得到适当的处理。


推荐阅读:

敏捷测试宣言与原则
敏捷测试的核心
敏捷团队的质量保障赋能
构建测试的体系化思维(进阶篇)
测试部门的职责定位
敏捷测试的指导性原则
说好的团队为质量负责呢?
团队对质量负责,”我“可以不负责?


本文首发于「BY林子」,转载请参考版权声明

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注