开发人员自己做测试会遇到哪些问题?
极客时间编辑部
讲述:丁婵大小:2.56M时长:05:36
现在很多互联网巨头公司都在逐渐推行“没有专职测试,测试工作由开发人员完成”的全新模式,原本专职的业务功能测试团队的规模逐渐缩小,有些甚至已经完全没有了,而原本的测试开发团队逐渐在向工程效能(Engineering Productivity)团队转型。这些互联网巨头之所以能够很好地落地这种全新的模式,是因为他们都较好地解决了这个模式的两大难题:
开发人员如何能够胜任测试
工程效能团队如何赋能开发人员,帮助开发人员高效地完成高质量测试
极客时间《软件测试 52 讲》专栏作者茹炳晟就两个问题分析了开发人员做测试的相关问题。首先来看开发人员自己做测试会遇到哪些问题。
1. 人性角度引发的问题
从人性的角度来看,开发人员通常是属于“创造性思维”,对于自己开发的代码,怎么看都觉得实现很棒;而测试人员则属于“破坏性思维”,测试人员的职责就是要尽可能多的找到潜在的缺陷。而且专职的测试人员通常已经在以往的测试实践中积累了大量典型容易出错的模式,所以测试人员比起开发人员,往往更能客观且全面地做好充分测试。
2. 思维惯性的问题
从技术层面来看,由开发人员自己测试,会存在严重的“思维惯性”,通常开发人员在设计和开发过程中没有考虑到的分支和处理逻辑,在自己做测试的时候同样不会考虑到。
3. 被测试环境和测试执行环境的复杂性问题
有专职测试的时候,测试工作是专职测试人员完成的,专职测试人员通常会负责搭建被测试环境以及管理测试执行环境。被测试环境好理解,就是 System Under Test(SUT)。而测试执行环境是指用于执行测试用例的机器,但是对于大型互联网企业,测试执行环境远远要比你想象的更复杂。
没有了专职的测试人员,就需要开发人员自己去管理、维护和搭建这些测试基础架构,这样做其实是得不偿失的。工作量本身并没有减少,只是换了一批人来做同样的事情,而且开发的精力往往更应该花在构建新的业务功能上,而不是用在维护测试基础设施。
4. 测试数据准备的问题
测试数据准备是测试过程中必不可少的关键步骤,有专职测试的时候,是由测试人员来准备测试数据的。一方面测试人员往往比开发人员在全局层面上更了解被测系统,所以对于测试数据的设计与生成也会更高效,另一方面测试人员在以往的测试过程中已经积累了很多测试数据生成的方法和小工具。
现在这些都需要开发人员自己来完成了,无疑进一步加大了开发人员的工作量,而且开发人员往往对跨模块,跨系统的测试数据准备缺乏系统性的理解,往往为了生成一条非自己业务领域的数据而花费大量的学习成本。
5. 测试执行与 CI/CD 集成问题
对于不同的业务开发团队,各个阶段采用的自动化测试框架可能都不同,有专职测试的时候,各种不同的测试框架与 CI/CD 的集成,都是由各个业务团队的测试人员和 CI/CD 的人员一起完成的。
现在没有了专职测试,这部分工作就需要开发人员自己和 CI/CD 人员一起完成,这就要求开发人员不仅需要非常熟悉自动化测试框架的细节,还必须了解 CI/CD 的流水线设计以及脚本设计,然后再将需要支持的自动化测试框架的运行命令行和需要暴露的参数写进 CI/CD 的脚本。这些工作在很大程度上分散了开发的精力,对于提高开发自身效率是非常不利的。
6. 失败测试用例归属问题
有专职测试的时候,开发人员往往只关注自己修改部分相关的测试用例,模块或者服务的全回归测试中如果有失败的测试用例,通常是由测试人员跟进去分析具体原因,并协调解决然后才能发布上线。但是现在开发人员负责所有测试,他就必须关注全局的测试。甚至必须挨个去分析失败的测试用例,然后自己去找到对应的人去协调解决,这显然是非常不合理和不敏捷的做法。
归根结底,这些问题的本质都会直接影响开发人员本质工作的进度和效率,那么应该如何解决或者在一定程度上缓解这些问题呢?这就是接下来要讨论的问题,工程效能团队如何赋能开发人员,帮助开发人员高效地完成高质量的测试?受限于篇幅,这部分内容将在下一篇文章中继续探讨,欢迎持续关注。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论