为什么开发与测试老掐架呢

让我们思考几个常见的问题:

软件测试的目的是什么?

开发人员能否构建出没有Bug的完美软件?

测人人员和开发人员是什么关系?

软件测试能否保证软件质量?

先闭目冥想五分钟吧,然后可以尝试着回答上面的问题。

计算机先驱 Maurice Wikes 回忆起 1949 年他在英国剑桥工作的情形,在拖着打孔纸带上楼给雏形计算机 EDASC 装载程序时,他看到了自己的未来:

我强烈的意识到,生命中剩下的好日子,都将耗费在给自己的程序找错误上头。

Maurice Wikes告诉我们,没有完美的软件。

我曾经写过一篇荐书文,推荐了温伯格技术思想三部曲中的《颠覆完美软件:软件测试必须知道的几件事》。在这本书里,温伯格也告诉我们,没有完美的软件。所有的开发和测试人员都应该读读那本书。

温伯格在《颠覆完美软件》中几乎讨论所有常见的与软件测试相关的概念、问题和指导思想,所以,在这篇文章里,我只能来吐槽啦,我将从以下几方面列一些常见的现象,希望能引起大家的思考。

测试和开发的关系

流程与标准

资源

态度

测试和开发的关系

测试和开发是对立的吗?

从处理Bug的角度看,似乎可以这么说。开发人员既生产代码,也生产Bug。因为开发人员不可避免地会生产Bug,所以测试人员必须存在,以便在软件交付之前尽可能多地检出Bug,保证交付给客户的软件质量更好一些。一个产Bug,一个挑Bug,看起来似乎是对立的。

在现实中,很多测试团队和开发团队也正是因为这一点而搞得关系不和,甚至真的对立起来。请回想一下你周围发生的与开发和测试相关的事儿,看看有没有遇到过下面的情景:

开发说,测试净找麻烦,客户跟本不可能像他们那样使用软件

测试说,问题总是会在看似极端的条件下产生,用户总是会不经意触碰到看似极端的不可能出现的条件

开发说,测试花在异常情况下的精力比测试主流程还多,不知道轻重缓急

测试说,开发从来不考虑测试的感受,连测都不测就扔给我们

开发说,我都测了,还要测试人员干什么

测试说,这么明显的问题你们都不测一下,把我们测试当垃圾桶啊

……

许许多多类似的问题,让开发和测试的关系从扑朔迷离、相爱相杀走向对立。我见过开发和测试搞冷战某人遇见某人侧脸而过,也见过测试经理和开发经理打架,还见过高层领导故意让测试团队和开发团队关系紧张以为这样可以提高测试效率也能给开发压力最终会产出更高质量的软件……

实际上,测试和开发拥有同一个目的:让软件更完美。测试和开发的关系,是一个问题的两面,应该是相辅相成和平共处的。测试不是为了挑刺儿,他提出的问题也不针对生产软件的开发人员,而仅仅是在努力想让开发人员的产出物看起来更好用。只要开发不将测试提Bug这个行为看成针对个人的行为,一切就有了美好的前提。

否定软件,并不是否定开发软件的人。这是开发和测试都需要明确的一个原则和前提。

还有的人认为开发和测试之关系类似皮与毛,皮之不存毛将焉附?所以有的开发也会因此而有优越感:没我们写软件,你们测试早下岗了!可是,开发不写软件,开发也下岗了耶!

感谢开发的不完美,让测试可以有事可做并练就慧眼。

感谢测试的认真细致和耐心体贴,让开发可以发现自己的不完美并有机会提升自己——那些说我软件不好的,都是为了我好。

资源

别动我们测试的服务器,你们自己搭一个!

我们没环境,不用你们的用谁的?

谁把我们的测试手机拿走了?你们申请一个嘛,老来占我们设备。

谁在用我们的账号?招呼都不打!我要用,赶紧退出来!

有时开发和测试之间也会有资源上的冲突,要有努力的有创造性的解决(我可以负责任地说,装黑苹果不是好办法),不要让大家伙的工作卡在环境上,这是管理者要解决的基本问题。我见过很多非常棒的一线经理,在现实制约下,主动把自己的手机、iPad都贡献出来当做测试设备。这也是解决资源问题的一种办法哦。

流程与标准

你身边的人员会这么抱怨吗:

开发根本不看我们的测试用例,评审邮件从来就不回复

我们一报Bug,开发就说用户根本不可能这么用,还说不知道我们怎么会这么测

送测单里根本不写测试范围或者寥寥几句跟没写一样

开发调整设计从来也不告诉我们

为什么产品经理和UI只和开发讨论需求变更?

为什么发布计划里不给测试预留测试时间?

为什么开发写完代码测都不测就扔给我们?

为什么客户那里发现了问题老问是谁测的、为什么没测出来?

测试老是一声不吭就把Bug优先级设置为Major

测试总是把大量时间花在用户根本不可能用到的功能上

测试分不清哪些什么是重点,你给他说他还老是一堆道理这了那了

测试提的Bug,现象描述也不准确,重现步骤也没有,有的根本就知道是不是误操作

测试老来打断我,一会儿叫一下一会儿叫一下,根本没办法专注开发

jira上的Bug重复率太高,一个问题提N遍,难道就不能合并一下?

测试发现Bug,一声招呼都不打就直接告诉老板了,搞得我很被动

测试就是专门挑刺儿的,有劲不往正地儿使,你倒是测测用户常用的功能啊

那么简单的Bug都能流出到用户那里,真不知道测试怎么测的

开发老嫌测试报告数据不漂亮,逼着我们调整

Ok,如果你身边的开发和测试从来没有过类似的问题,那很好,恭喜你,看来你们的团队人nice协作也很顺畅,棒棒哒。

假如你身边充斥着这样嘈杂的抱怨,那说明什么呢?开发、测试、发布这一套流程有问题?还是团队缺乏明确的指向来引导大家向积极、有效的行为靠近?

流程和标准总是有待解释的,再好的规则,歪嘴和尚也能把它念斜……

我们随便挑一个问题吧:为什么开发写完代码测都不测就扔给我们?这个问题普遍存在,它反映出的是程序员和测试人员的工作边界难以界定的矛盾。

程序员会说,我都测一遍,还要你们测试做什么?

测试会说,你测都不测,冒烟都过不了,有没有责任心?

程序员说,要我写测试用例,搭各种环境,遍历各种正常、异常逻辑,我还有没有时间写代码了?

测试会说,我们测试是垃圾桶吗,什么烂玩意儿都直接扔给我们,我们的时间就那么不值钱?

开发会说,测试本来就是干这个的,你不测谁测?

……

像这样的问题,能制定一个标准,说明什么样的逻辑开发要自测覆盖什么样的逻辑可以交给测试来测?能画一条三八线吗?

不能。所以,这个时候,靠谱的一线管理者就显得很重要。如何创造性的发现适合团队的方法来让大家顺畅地协同工作,比标准、制度更重要,这往往依赖于技术管理者的能力和团队成员的意识。没有普适的方法,只有适合这个组织的、此时此地的策略,加油吧,在战斗中摸索出最适合当下的道路。

那什么是靠谱的一线管理者呢?

温伯格《成为技术领导者》一书中对领导职责的定义如下:

领导的职责就是创造这样一个环境,每个人都能在其中发挥出更多的能力。

如果一个技术领导带领的团队,大部分人都能专心做与其能力适配的事情而不用整天泡在与本节前面所列类似的问题里,那他基本上就算是比较靠谱了。

至于像给测试预留多长的测试周期、调整设计要不要通知测试、需求调整要不要测试参与等问题,合理的流程和标准可以起到很大的辅助作用,技术领导者只要依据合理的制度,引导大家有效参与,就可以化解。

态度

场景一:

测试MM对阿猿说发现了一个Bug。

阿猿矢口否认:不可能,绝对不可能!

MM:真的有Bug,你过来看一下!

阿猿:我都不用看,在我这儿好好儿的。

MM:你来看一下嘛……

阿猿:看什么看,肯定你环境问题,动什么东西了吗?重启了吗?
场景二:

测试MM想在jira上提个Bug,先在QQ上对阿猿说:有个Bug,你过来看下?

阿猿:忙着呢,焦头烂额的。

MM:一分钟都用不了,你来看下吧。

阿猿:思路一打断就不好恢复了,等会儿!

MM:你不看我提到jira上了啊。

阿猿:随便,你不就是爱提Bug嘛。
场景三:

测试MM呼叫阿猿:阿猿阿猿,程序又崩溃了,快来看看!

阿猿慢腾腾地起身过来,鼠标点几下:看不出来什么问题,你怎么操作的?

MM:这样点一下,那样,这样,……回车……。

阿猿:重现不了啊,你想办法重现,重现了再叫我,我忙着呢。

MM:……
我曾经画过一张暴漫,以“她发现了一个Bug”为题发布在微信订阅号“程序视界”里,再现类似的场景,感兴趣的可以在订阅号内回复10019查看(点击订阅号底部的帮助菜单里的“所有文章”子菜单也能找到)。

开发和测试的日常工作中,上面的情景不断上演,这其中有一部分原因来自态度。我们有时还能听到类似下面的话:

你Bug里的现象描述根本没用

你根本就没理解这个逻辑,给你说不清楚

测试什么都不懂……

你听我的,我让你怎么测你就怎么测

你这种测法儿,再好的软件都经不起你折腾

用户根本不可能这样用,你们整来整去净瞎耽误工夫

一轮都没测完,你们就给老板说可以按期交付没问题?

你们安排计划时根本不考虑测试,三天,三天怎么可能测得完!

……

有时,有一些开发人员会用技术优势藐视测试,认为测试工作技术含量低,内心认为测试是附属没地位,说话就不太客气……测试会感觉到,反过来也会对开发有意见……就这么,从相敬如宾开始走向嫌怨丛生……

有个朋友的QQ签名档是:没有自我,只有大道。我琢磨,放在软件项目里,也挺适用的。

其实,开发和测试拥有共同的目的:生产高质量软件。具体说,每一个产品、项目、版本都有明确的目标,这些目标是属于开发和测试的,是大家的。我们把共同的目标牢记在心,摆在首位,我们还要想着别人所做的一切,都是针对软件本身,都是在为目标而努力,这样就心平气和多了,就容易从当下的泥沼中超脱出来,求同存异共同前进。

====================================分割线================================
文章转载自 开源中国社区[http://www.oschina.net]

时间: 2024-09-20 16:06:22

为什么开发与测试老掐架呢的相关文章

乐视夏普掐架的背后隐情

20天的时间,乐视和夏普的蜜月期就结束了.5月27日夏普(中国)公司通过其官方网站发布了一份声明.该声明称,乐视网于5月7日在其超级电视产品发布会上及相关新闻发布稿中,称"乐视TV由超级组合(乐视+富士康+夏普+高通)打造"似在表明乐视网与本公司联合开发超级电视,但其实夏普(中国)与乐视网就超级电视产品不存在任何商业合作或联系,其并没有与乐视网合作开发超级电视产品.夏普的一份声明狠狠地甩了乐视一巴掌.其后,乐视网副总裁兼董秘张特28日上午就在私人微博上对夏普(中国)公司的声明激烈回应,

QQ音乐与网易云音乐开始掐架,核心是版权

当新兴的力量开始出现的时候,传统的"法老"们总是会想尽一切办法将这股新生的力量处死,在新旧事物出现交替的时候,博弈总是那么明显. 日前,QQ音乐率先针对网易云音乐的侵权进行起诉,法院判定后者涉及到的623首网络音乐内容属侵权行为,且勒令其删除相关内容.不久之后,网易云音乐迅速还以颜色,起诉QQ音乐侵权其192首网络音乐内容,法院迅速判定QQ音乐的侵权行为,并要求其删除相关内容. QQ音乐与网易云音乐的第一场架开始打起来了,而其中的核心则是"版权".实际上QQ音乐今年

网络私服掐架引发多省断网回放

网络私服"掐架"引发多省断网 很多 网友对近两个月前一次网络大面积瘫痪事情记忆犹新:5月19日21:50开始,江苏.安徽.广西.海南.甘肃.浙江六省(区)用户访问网站速度变慢或干脆断网.截至20日凌晨1时20分,受影响地区的互联网服务才基本恢复正常. 7月6日,这起受到全国普遍关注的"5·19"网络瘫痪案,其4名犯罪嫌疑人被常州市天宁区检察院以涉嫌破坏计算机信息系统罪批准逮捕. 昨天,办案的检察官在接受快报记者采访时道出这起案件缘起:"5·19"

刘强东奶茶妹妹绯闻马云躺枪 两家公关微博上掐架

看到内部警告邮件后并没当回事,结果几个小时后果然有人在新浪微博狂推!-京东掌门人刘强东都是人才!--给大家跪了--合上电脑,戴上耳机,过自己的生活,为自己的生活添上美丽的风景才是有意义.-"奶茶妹妹"章泽天3月10日晚上,网上突然传出京东掌门人刘强东与网络红人"奶茶妹妹"章泽天热恋的消息,名为"金融八卦女"的 网友爆料称两人在一起了.随后,更有媒体从知情人和财经圈资深人士处了解到不少"猛料".不过,该消息在网络引发热烈讨论后,

电商大战光棍节狂欢与痛楚:平台掐架商家为难

距离2012年光棍节(11月11日,又称双十一)年终大促,还有两天. 越演越烈的电商价格战,让这个本该专属阿里的"天猫节",成了众电商的火拼日.京东.易购.易迅等等都纷纷厉兵秣马,准备痛杀一场,没有人会放过这个提升流量和销售额的良机. 10月9日下午,阿芙精油创始人孟醒(人称雕爷)发的一条微博在网上引起轩然大波. 孟醒的微博上称,京东商城锁死后台,硬逼着商家恶劣促销,并声明:"阿芙品牌从京东撤店.从现在开始,京东商城所售阿芙产品和阿芙品牌毫无关联.阿芙品牌不对非授权渠道'京东

电商大战光棍节狂欢与痛楚:平台掐架 商家为难

距离2012年光棍节(11月11日,又称双十一)年终大促,还有两天. 越演越烈的电商价格战,让这个本该专属阿里的"天猫节",成了众电商的火拼日.京东.易购.易迅等等都纷纷厉兵秣马,准备痛杀一场,没有人会放过这个提升流量和销售额的良机. 10月9日下午,阿芙精油创始人孟醒(人称雕爷)发的一条微博在网上引起轩然大波. 孟醒的微博上称,京东商城锁死后台,硬逼着商家恶劣促销,并声明:"阿芙品牌从京东撤店.从现在开始,京东商城所售阿芙产品和阿芙品牌毫无关联.阿芙品牌不对非授权渠道&qu

答读者问(7):有关实习、毕业论文及软件开发和测试的关系等问题

        最近收到一位研究生朋友的邮件,让我想到自己研究生毕业之前,也曾有过很多的疑惑,希望得到过来人的解答.互联网不仅是我们最好的老师,同时也是最好的桥梁.我们都要感谢并善于利用它.         闲话不说,言归正传.邮件原文如下:         周前辈,您好         我是XXX研究生,我叫XXX.专业是信息与通信工程.现在研二,过了暑假马上就研三了.我在CSDN上无意间看到您的一些文章,写的很好,感触很多.所以就一直在关注您!        下面我简单说下我的情况,我本科和

web接口开发与测试

最近一直在学习和整理web开发与接口测试的相关资料.接口测试本身毫无任何难度,甚至有很多工具和类库来帮助我们进行接口测试.大多测试人员很难深入了解web接口测试的原因是对web开发不太了解,当你越了解开发就会越看得清接口是什么.当然,web开发是比较麻烦,我们很难一下子掌握.   注:不过本文并不是一个零基础的文章,需要你对 Django web开发,requests接口库,unittest单元测试框架,三者有一定的了解.   Django快速开发之投票系统 之前分享过一篇Django开发投票系

cpu-linux下MCP2515驱动开发及测试

问题描述 linux下MCP2515驱动开发及测试 CPU采用ATMEL的9g25,通过MCP2515扩展CAN总线,linux下MCP2515驱动加载成功,采用Socketcan测试,发不了数据也读不了数据.请高手指教!!