测试应该如何处理跟开发之间的“敏感”关系?

简介: 测试从业者,打交道最多的就是开发,而测试和开发之间的关系在行业内被称为‘天敌’。最近部门内有些产品线成员和开发同事在协作之间也是双方抱怨不断,为此形成此文,算是给大家一些思路参考。 **作为测试工程师,你知道要怎么更好地来处理跟开发之间的关系么?其实对于存在这种所谓的‘敌对’关系,并不难理解。

测试从业者,打交道最多的就是开发,而测试和开发之间的关系在行业内被称为‘天敌’。最近部门内有些产品线成员和开发同事在协作之间也是双方抱怨不断,为此形成此文,算是给大家一些思路参考。

作为测试工程师,你知道要怎么更好地来处理跟开发之间的关系么?
其实对于存在这种所谓的‘敌对’关系,并不难理解。

从整个产品研发的角度看,开发是产品的制造者,产品就相当于他的‘孩子’,而测试的工作是去找这个“孩子”身上的毛病。相信,没有一个人喜欢别人对自己的孩子各种挑错。
因此,开发和测试的这种“敌对”属性是在所难免。而在日常的工作中,相信大家经常能看到如下的一些对话。

几个测试人员下班走在路上,抱怨数落白天开发的种种“罪状”:

  • 每次提bug,开发都让会让清数据、清缓存、重启机器,三两下把bug整不见了,等到bug复现不出来,就说看吧,不能复现,不修复了!或者就说自己本地是好的,质疑测试的版本不对,再不然就说用户不会这么操作,不用修复,反正就是想方设法不想修这个bug!
  • bug一开始明明能稳定复现,但开发一直放在那里不管,等过了一段时间后,环境被破坏了,测试版本升级了,又让测试来复现这个bug,浪费时间重新搭环境不说,bug还经常不能复现了,然后又说不能复现所以bug就不修复了。
  • bug修改完,啥说明交待都没有,不说清楚根本原因和影响模块,我们怎么做回归测试啊!

除了测试对开发的行为有抱怨,同样的,开发对测试的抱怨也不少,相信大家经常会听到一些开发对测试的槽点:

  • 测试整天搞一堆流程和文档,要开发提供这个,提供那个,开发写代码都没时间,还哪有那么多时间整这玩意啊!
  • 靠,查半天,又是一个无效的bug,测试到底有没有搞清楚需求?
  • 不懂代码。。。

上面列举的槽点其实说的还较为保守,不管是测试对开发,还是开发对测试的槽点太多了,有的太过于血腥,就不一一列举了,欢迎读者留言补充。
看着这些相信作为研发技术人员(不论是开发或是测试)的你肯定不陌生。毕竟立场不一样,职责不一样,出现这样的分歧和矛盾也无可厚非。

但是,如果每天工作在这样的工作氛围里,不止影响我们每天的心情,而且肯定也会影响我们的工作效率。
那,到底可以做些什么来改善这种敌对关系?或者说可以从哪些方面来融洽开发和测试之间的工作氛围,以下概括为四个方面

image

1. 提高自身核心业务能力

首先一点,还是得从自身做好做起,测试工程师应该要提高自己的核心业务能力,让开发挑不出来毛病,从而对你产生信任甚至叹服。

关于这一点举一个曾经工作的案例(身边的同事)。
当时是一个刚毕业不久的小姑娘,加入公司不久,做事特别仔细谨慎,提bug也会经过再三确认才会提单。
当时公司的开发老大是个特别强势的人,声音大、气势强,一说话能把人吓懵的那种。

事情的起因,是因为小姑娘提了一个bug,在她的环境下面再三确认过,是个能够稳定复现的严重bug,所以标记为了严重级别,并且指派给开发。
对应模块的开发人员大致定位了一下,没有复现出来就反馈给了他的老大。然后这个开发老大,就气势汹汹的过来测试办公区,趾高气昂地跟我(当时我作为测试负责人)说: “你们这边的测试怎么提bug的,是不是bug自己有没有搞明白啊?现在开发的环境里就是OK的,肯定是你们的测试环境的问题或者操作方法的问题!下次搞清楚再提bug,不要浪费开发的时间...”
这些话说的一点都不客气,矛头全指向测试这边,不留任何余地。(当然作为当时测试负责人的我,先不管事情谁对谁错,先得维护测试这边不被欺负,我也回怼过去。。。)

但整个事情,小姑娘却没有去争吵,没有去理论,而是在她自己的环境下再次成功的把这个问题复现出来,然后再去找到开发,帮助他搭建同样的环境,告知稳定的复现步骤,将bug在他的环境下复现,并且协助开发把问题定位出来,只需要他们修改对应的代码就可以了。
从这次事情之后,整个开发团队对小姑娘的态度明显改善了,不仅不再趾高气昂的指点和质疑她的工作,而且在要修改bug的状态(非修复状态)的时候也会先跟她确认,得到准许之后才做相应状态的修改。
因此后面她的工作开展顺利了很多。
所以,要避免落人口舌,请先做好自己。测试做好自己的首要前提,就是必须要提高自己的业务能力:
◆ 一方面,要充分的熟悉被测产品,理解产品的逻辑和实现,在这个基础上,不仅能提高你的测试技能和工作效率,而且在被开发质疑的时候,也能有扎实的产品业务知识做后盾。
◆ 另一方面,要规范自己的工作的输出。例如保证各种测试文档(测试计划,测试用例和测试报告等)的质量,可以经得起开发、产品等各部门的审核。
比如保证输出的bug质量,编写bug的描述和步骤清晰,bug的严重级别定位准确,以及定位日志和现场截图齐全,不给开发留下挑刺的余地。
只有先提高了自己的工作质量,才可以用同等的标准去要求开发,才能在守住测试的立场的同时,也赢得对方的尊重。

image

2. 提高自身技术能力

其次,测试人员需要提高自己的技术能力,包括测试的技能,以及测试相关的技术能力和知识领域

再给大家分享一个真实的故事,我原来有一个同事,也是做测试的,因为主要是做黑盒测试,起初她并不懂代码。
在项目工作过程中,她遇到一个极不愿意配合的开发,每次想更加深入地熟悉产品的功能实现和业务逻辑的时候,咨询开发,他都很不配合。
两个人争吵过,也互怼过,甚至双方领导调解过,但是都不见情形的改善。
没有办法,为了保证自己的测试任务能够按时按量的完成,她只能逼着自己去阅读产品的源代码。
虽然一开始都看不懂,但是她还是坚持,一边找资料,一遍咨询别人,最后终于把这个产品相关模块的代码都熟悉了。
在随后的测试过程中,遇到bug,她已经可以自己准确的定位出来是那一块代码的缺陷。
此后,再也没有听过她跟那个开发争吵了,因为她自己已经成为了那个最熟悉产品的人,不管从功能实现,还是代码逻辑,她都了然于心。(甚至有时开发都会来咨询她)
所以,测试工程师需要适当的有针对性的提高自己的技术能力,技术在手,无求于人。
那可以从哪些方面来提高:
◆ 第一,是测试的技能、测试流程以及各种测试方法的掌握,这些是测试工作的基础,所以这个是必须要掌握的。
◆ 第二,能熟悉至少一门语言,不管是Java,Python还是Go,掌握其中1-2个就可以。有了语言基础,测试可以更加深刻的理解产品的实现,也能够更加清楚的知道bug经常会出现的模块,能够对产品进行更加充分的测试。
◆ 第三,至少要掌握一种数据库的使用,测试人员离不开数据库的管理和操作,自己掌握了这方面的技能,就再也不用依赖开发,减少自己的被动性。
◆ 第四,熟悉系统的相关操作,如安装,配置,管理,对于Linux系统需要熟悉常用的操作命令,能在Linux下能安装和配置软件等。
总之,提高了自己各方面的技术能力,才能够在工作中充分发挥自己的主观能动性,不过分依赖开发,才能提高自己在开发心目中的专业性,赢得双方平等的待遇。

3. 提高情商、沟通能力

再者,测试工程师也要提高自己的情商,增强自己的沟通能力,懂得站在开发的角度思考问题,学会去尊重开发人员
作为测试人员,我们除了坚持自己测试的角度和立场之外,也要有同理心,学会站在开发的角度去看问题。
实际上很多冲突都是源于大家对需求理解不一样造成的,所以当测试和开发对一个bug持有不同观点的时候,不要率先很强硬的否定他,尝试解释为什么他理解的需求有不足之处。
找到一些可以站得住脚的论点,从用户角度出发,从安全性考虑,或者从易用性和友好性来看,说服开发接受测试的观点,而不是强加自己的观点给他们。
另外,平时工作之余大家可以多沟通,有机会就组织一些开发和测试双方参与的团建活动让大家彼此都熟悉一些,这样子很多时候面对熟悉的人,在反对对方的观点的时候会更加容易考虑一下对方的感受,只要气氛不对立,很多事情就可以商量了。
这些沟通技巧都是一个人情商的体现,这也是为什么很多公司招聘的时候都要求测试人员善于沟通和表达,高情商的表达和沟通方法,可以让我们的工作氛围少一些凌厉,多一些柔和。

4. 建立完善的管理流程

最后,在公司层面,还需要有一个完善的管理流程,通过流程控制来规范开发和测试部门的工作,同样可以很大程度上减少冲突的发生。
质量保证从来都不仅仅是测试人员的职责,而是需要整个团队齐心协力。
建立完善的流程,能够帮忙提高产品的质量。从测试的角度,又有哪些流程和规范可以值得参考的呢?

  1. 规范开发的提测报告,写明修复方法和bug的根本原因,帮助测试进行bug验证和回归测试;
  2. 规范开发处理的bug的过程,比如关闭bug之前必须要发邮件或IM通知跟测试确认,避免bug没有经过确认被擅自关闭而引发矛盾和冲突;
  3. 规范项目代码审核以及最后阶段的代码封禁,提高代码的质量以及降低发布最后阶段出现严重回归问题的几率。

各种流程的推行,虽然看起来很繁琐,但是严格执行起来,确实能够解决很多实质性的问题,帮助缓解很多开发和测试之间的尖锐冲突。
总而言之,虽然开发和测试之间存在着天然的‘敌对’关系,但是作为测试人员要树立好自己的定位,清楚的知道无论开发和测试,最终目的都是使项目高质量、高时效地完成。

并且只有开发和测试并力合作才能完成好一个项目。所以无论开发还是测试,大家都离不开彼此,测试工程师不是给开发工作挑刺找茬。更不是开发人员的附属品,需要在提高自己的同时,理性地处理和看待和开发的关系,共同营造一个良好愉快的工作氛围。

原文发表于作者公众号:【测试开发技术】,欢迎关注,第一时间获取测试技术干货。

目录
相关文章
|
2月前
|
测试技术
测试提交的bug开发不认可怎么办?
测试提交的bug开发不认可怎么办?
|
3月前
|
测试技术 开发者
开发认为过度测试了该怎么办?
开发认为过度测试了该怎么办?
开发认为过度测试了该怎么办?
|
3月前
|
监控 安全 测试技术
从开发到测试再到发布,全方位解析项目上线的完美路程!
从开发到测试再到发布,全方位解析项目上线的完美路程!
121 0
|
4月前
|
移动开发 前端开发 JavaScript
VSCode设置类似Webstorm那样可以用本地局域网IP地址访问自己开发的测试项目,vs code 前端如何以服务器模式打开?
VSCode设置类似Webstorm那样可以用本地局域网IP地址访问自己开发的测试项目,vs code 前端如何以服务器模式打开?
VSCode设置类似Webstorm那样可以用本地局域网IP地址访问自己开发的测试项目,vs code 前端如何以服务器模式打开?
|
4月前
|
测试技术 Docker 容器
使用Docker构建多环境应用:开发、测试、生产环境
Docker已经成为了现代应用程序开发和部署的核心工具之一。通过使用Docker,开发团队可以轻松地在不同的环境中构建、测试和部署应用程序,从而提高开发速度和应用程序的可移植性。本文将介绍如何使用Docker构建多环境应用,包括开发、测试和生产环境,并提供丰富的示例代码,以帮助大家轻松应对不同环境的挑战。
|
2月前
|
Java 测试技术 C#
什么样的自动化测试开发是合格的?
什么样的自动化测试开发是合格的?
|
2月前
|
测试技术
需求不明确的情况下,测试该如何处理?
需求不明确的情况下,测试该如何处理?
|
3月前
|
自然语言处理 测试技术
测试驱动开发(TDD)与行为驱动开发(BDD)的比较与选择
在软件开发中,测试驱动开发(TDD)与行为驱动开发(BDD)是两种常见的开发方法。虽然它们都强调测试在开发过程中的重要性,但是两者之间存在一些差异。本文将对TDD和BDD进行比较,分析它们各自的优点和缺点,以及在实际开发中如何选择最适合的方法。
|
3月前
|
测试技术 网络安全 Windows
本地开发和测试环境为什么一定建议用127.0.0.1或者localhost
在本地开发和测试时建议使用127.0.0.1或localhost,因为它们能确保与本地Web服务器直接、快速且安全地通信,不受网络防火墙限制,便于在无外部网络依赖的情况下进行调试和测试。
30 0
|
4月前
|
Java 应用服务中间件 Spring
WebService - CXF开发Server和Client(main方法测试)
WebService - CXF开发Server和Client(main方法测试)
40 0