开发和测试的囚徒困境

简介: 探讨开发与测试之间困境相关内容

引言

作为一名测试人员,每天工作中接触最多的除了产品就是开发,而如何与开发人员和平相处是每个测试都在讨论的终极话题。相信很多测试在面试时都被面试官问到:“你是如何和开发人员相(si)处(bi)的?和开发之间的关系是怎样的?遇到开发不认可的bug应该如何处理?”

一、测试与开发之间的困境

要说起测试人员和开发人员之间的博弈,有一个特别具有代表性的例子—囚徒困境。此故事讲的是,两个嫌疑犯作案后被警察抓住,分别关在不同房间里审讯。警察知道二人有罪,但是缺乏足够的证据。因此警察告诉二人:“如果两人都沉默,各判刑2年;如果两人都认罪,各判刑5年;如果出卖同伴,自己获得自由,对方判刑10年。”于是,每个囚徒都面临两种选择:认罪或沉默。从自身利益考虑,认罪比沉默的好。但就如下图所示,两个人互相出卖,他们的结果就是一起服刑5年。但如果两人从整体利益出发、为对方考虑下,两人都沉默各判刑2年,显然这个结果才是对大家最好的。

看完这个案例有没有觉得测试与开发之间的关系很像上图的囚徒困境呢?在整个项目中,开发和测试的关系其实不是对立的,测试和开发是一个团队,都朝着统一的目标:让软件更完美而努力。但在实际工作中,为什么开发和测试却搞的剑拔弩张、针锋相对呢?

二、困境的起源

总结了一下经常出现摩擦的场景:

  • 关于流程:提测单里不写测试范围或者寥寥几句跟没写一样!系统中提交的bug开发都不及时处理,也不看测试邮件!
  • 关于标准:为什么开发写完代码都不自测就扔给我们?测试提的bug不能复现、优先级还设置为major!
  • 关于资源:谁在测试环境调试?谁动了我们的测试数据?我们开发环境没数据,不用你们的用谁的?
  • 关于态度:测试什么都不懂....跟你说不清楚用户根本不可能这样用,你们整来整去净瞎耽误工夫你们安排计划时根本不考虑测试,三天,三天怎么可能测得完!

在这些情况下,即使测试是90后肤白貌美大长腿的小姐姐,开发是技术大牛、性情温和的小哥哥,也难免双方不争吵起来,以至于影响了项目进度和工作效率。

三、解决办法

那么如何打破开发与测试之间的囚徒困境、避免无谓的争吵呢,下面结合自身的工作经历给出几点建议:

  1. 与开发约定统一的项目流程及规范,比如目前工作中使用的奇效项目管理平台,就涵盖了需求单、提测单、bug管理、测试报告等功能,产品和开发同学均在此系统中创建需求、新建提测单,测试也在系统中录入bug、创建测试报告等,提高了工作效率、降低了沟通成本;另外,如果有紧急的问题待开发解决,可以迈开腿当面与开发沟通,开发认真写bug的时候有可能不会查看邮件;
  2. 关于自测问题,不仅与开发自身代码质量的要求有关、也跟团队的管理制度有关。首先leader应该明确规定开发自测后才可提测,若测试因自测不通过打回可以有相应的处理措施;其次,开发自测至少应该保证主流程、前后端交互、接口均正常,这样也减少了提测打回、影响排期的事情发生。
  3. 测试在报告问题时要尽量描述清楚,操作步骤、测试数据、问题出现的关键点都详细记录下来,帮助开发尽快解决问题;对于不容易复现的问题,可以保留现场让开发过来现场分析,这样既可以让开发根据目前情况查原因、也可以避免今后不复现时开发抵赖不承认此问题; 另外开发和测试对于bug严重级别产生争议时,可以与产品参与讨论,是否是用户很在意的点,如果是,就可以让开发解决啦。
  4. 关于资源问题,开发和测试难免有资源的冲突,但是让工作卡在环境上,是最影响项目进度的事情。开发在使用测试环境配置和数据时,征询测试人员的许可,哪些可用、哪些不可用,避免影响测试;另外,也可以在技术上解,比如使用docker让开发测试环境一致又互不影响,也不会有“这段代码在我机器上没问题”情况;
  5. 关于态度,测试和开发同在一个项目中,都有着共同明确的目标,这个目标是大家的。多站在对方的角度考虑问题,开发不应该在技术优势上藐视测试,测试不能因开发态度反而对开发有意见,这样只会嫌远丛生,影响大局。端正态度对事不对人,积极沟通解决问题,让项目顺利上线。

四、写在最后

总之,在工作中不是仅仅把自己工作做好就结束了,大家是同一个团队的为了同样的目标努力。打破囚徒之境,“没有自我,只有大道”的原则在项目工作中同样适用,携手前进吧!

相关文章
|
9月前
|
数据采集 算法 测试技术
【硬件测试】基于FPGA的1024QAM基带通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的1024QAM基带通信系统的硬件测试版本,包含testbench、高斯信道模块和误码率统计模块。系统新增ila在线数据采集和vio在线SNR设置模块,支持不同SNR条件下的性能测试。1024QAM调制将10比特映射到复平面上的1024个星座点之一,实现高效数据传输。硬件测试结果表明,在SNR=32dB和40dB时,系统表现出良好的性能。Verilog核心程序展示了各模块的连接与功能实现。
261 7
|
3月前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
135 0
|
8月前
|
机器学习/深度学习 人工智能 并行计算
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
AI部署架构:A100、H100、A800、H800、H20的差异以及如何选型?开发、测试、生产环境如何进行AI大模型部署架构?
|
6月前
|
传感器 人工智能 JavaScript
鸿蒙开发:DevEcoTesting中的稳定性测试
DevEcoTesting主要的目的也是用于软件的测试,可以让开发者无需复杂的配置,即可一键执行测试任务,同时提供了测试报告和分析,无论是对于开发者还是测试同学来说,都是一个非常方便的工具。
257 3
鸿蒙开发:DevEcoTesting中的稳定性测试
|
5月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
5月前
|
运维 jenkins 测试技术
"还在苦等开发部署环境?3步教你用Jenkins拿回测试主动权"
测试工程师最头疼的问题是什么?依赖开发部署环境! 开发延期→测试时间被压缩→紧急上线后BUG频出→测试背锅。传统流程中,测试被动等待部署,效率低下。而Jenkins自动化部署让测试人员自主搭建环境,实现: ✅ 随时触发测试,不再苦等开发 ✅ 部署效率提升10倍,抢回测试时间 ✅ 改善团队协作,减少互相甩锅 学习Jenkins部署能力,成为高效测试工程师,告别被动等待!
|
9月前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的4ASK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的4ASK调制解调系统的硬件测试版本,该系统包括testbench、高斯信道模块和误码率统计模块,并新增了ILA在线数据采集和VIO在线SNR设置功能。通过VIO设置不同SNR(如15dB和25dB),实现了对系统性能的实时监测与调整。4ASK是一种通过改变载波幅度表示数据的数字调制方式,适用于多种通信场景。FPGA平台的高效性和灵活性使其成为构建高性能通信系统的理想选择。
244 17
|
9月前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的4FSK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文基于之前的文章《基于FPGA的4FSK调制解调系统》,增加了ILA在线数据采集模块和VIO在线SNR设置模块,实现了硬件测试版本。通过VIO设置不同SNR(如10dB和20dB),并展示了ILA采集的数据结果。四频移键控(4FSK)是一种数字调制方法,利用四个不同频率传输二进制数据,具有较高的频带利用率和抗干扰性能。输入的二进制数据分为两组,每组两个比特,对应四个频率f1、f2、f3、f4,分别代表二进制组合00、01、10、11。调制过程中选择相应频率输出,并进行幅度调制以增强抗干扰能力。接收端通过带通滤波器提取信号并还原为原始二进制数据。
256 7
|
9月前
|
数据采集 算法 数据处理
【硬件测试】基于FPGA的256QAM基带通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的256QAM基带通信系统的硬件测试版本,包含testbench、高斯信道模块和误码率统计模块。系统新增ila在线数据采集和vio在线SNR设置模块,支持不同信噪比(如30dB和40dB)的仿真测试,并提供配套操作视频。256QAM调制方案每个符号携带8比特信息,通过复数值星座图映射实现高效传输。Verilog代码展示了核心模块设计,包括SNR设置、数据处理和ILA测试分析,确保系统在实际硬件环境中的稳定性和性能。
246 2
|
10月前
|
数据采集 算法 数据安全/隐私保护
【硬件测试】基于FPGA的64QAM基带通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的64QAM基带通信系统的硬件测试版本,包含testbench、高斯信道模块和误码率统计模块。系统新增ila在线数据采集模块和vio在线SNR设置模块,支持不同SNR条件下的仿真与测试。通过设置SNR为25dB和30dB进行测试,验证了系统的可行性和性能。此外,本文详细阐述了64QAM调制解调的工作原理,包括信号生成、调制、解调及误码率测试等环节,并提供了Verilog核心程序代码。
225 0