软件开发世界里有这样一个长期存在的问题是:测试人员和开发人员的比例多少才合理?Scrum开发列表中最近有一个帖子,询问敏捷对这个比例有什么影响。对第一个问题,答案应该“视情况而定”。对第二个问题,Elisabeth Hendrickson认为,敏捷团队能够用更少的测试人员,但是做更多的测试。
测试人员和开发人员的比例多少才合理?
许多年来,人们对研究测试人员和开发人员的“合理”比例充满了兴趣。《微软秘笈》书中指出,微软员工中测试人员和开发人员的比例是1比1。根据在某会议上非正式的调查,Randall Rice发现通常的比例是1个测试人员对3个开发人员。而Cem Kaner和Elisabeth Hendrickson发表的一篇论文认为,这样的比例毫无意义。不同的项目里这些角色被赋予的职责和任务相差甚远。举例来说,自动构建负责人应该算作开发人员还是测试人员?
除了计算问题,小组还发现,项目环境的差别使得不同项目的比较更缺乏意义。这些因素包括:
- 项目要求的可靠性
- 必须测试的可配置的范围
- 软件的易测试程度
- 工具的可用性
- 测试人员和开发人员的经验
- 必须坚持的质量标准
在这篇文章It Depends: Deciding on the Correct Ratio of Developers to Testers中,Johanna Rothman得到了类似的结论。Randall Rice在他的这篇文章The Elusive Tester to Developer Ratio中,对这个令人疑惑的比例给出了一些工业上使用的值:
需要清楚地认识到,我并不是完全怀疑在计划中使用这个比例,如果这个比例是你们自己的比例,并且基于你们的经验、技术和组织结构的话就没问题。但是如果一个组织把别人的比例拿来,不考虑到技术、流程成熟度、熟练程度的差别,直接用于自己的项目,那我就认为是一个风险。
敏捷对测试人员和开发人员的比例有什么影响呢?
在一个近期的网上直播中,Elisabeth Hendrickson和Lisa Crispin都 把敏捷环境描述成“测试的涅槃”。Elisabeth回忆了她在传统环境中的工作情况,开发小组给QA小组的软件经常是送到时就不能用(D.O.A.), 不能安装,或者刚启动就崩溃了。而她在敏捷团队中工作时从未发生过这样的事儿。在敏捷团队里,测试人员能够创造更大的价值,他们做探索性测试、创建测试自 动化、与产品负责人紧密合作完善需求和验收条件。
Elisabeth曾见过这样的敏捷团队,运行效率很高,但测试人员对开发人员的 比例很低。这并不是说测试不重要。根据她的经验,敏捷团队需要的测试技能至少要和传统团队一样多。区别在于这些技能、以及保证质量的责任,并不仅仅取决于 称之为测试人员的少数人。整个敏捷团队都在努力提高产品的质量,与之形成对比的是,传统团队只依赖QA小组来给产品测试质量。
你的团队是怎样处理测试的职责的呢?欢迎留言分享你的经验啊。
作者:Chris Sims (张晓庆译)