测试人员的脑子里到底在想什么?

发表于:2011-12-01 11:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:arron310    来源:51Testing软件测试博客

分享:

  目前开发人员对测试人员的工作有一些不太理解:用户不可能进行的操作,测试人员非要进行操作,甚至找出一些开发人员都没有想到的操作;有时还设计一些用户没有的流程进行测试;还有时提出一些用户没有提出的要求,比如非要增加一个列表排序功能;测试组的数据库服务器本身就是一台PC机,配置不高,运行复杂程序比较慢,非要提出来要求修改。等等、等等。在开发任务不太忙的时候还能忍受,如果开发任务很紧的时候就容易发生摩擦了。

  测试人员到底是怎么想的?怎么有时总是往牛角尖里钻呢?怎么总是让人搞不懂?后续章节里就简单的说说“测试人员的脑袋里到底在想什么呢?”

  测试人员测试考虑问题基本有几个方面:

“测试人员的脑子里到底在想什么呢?”(一)

  在一个项目中,测试人员与开发人员的良好合作往往起到事倍功半的作用。纵观一个成熟的项目,测试与开发都是紧密合作、相得益彰的。在软件行业说明举例中大家都习惯于用微软IBM、HP等国际大企业来说明,也确实如此,这些大公司都是一些好的借鉴。好像有这么一个规律:凡是做的好的项目,测试与开发的合作也都是比较好的。而在国内一些企业里,由于软件工程发展相对晚一些,这方面的经验比较少,好多项目中测试人员和开发人员经常会发生一些摩擦、甚至冲突,一些有经验的管理人员、开发人员和测试人员还比较好一些,而经验较少的人员表现比较突出,如果再加上一些管理方面不够到位的话这种冲突就比较严重了,有的项目测试人员和开发人员甚至到了互相不能容忍的地步。这不是夸大其辞,确认经历过这样的公司和这样的人,往往是经验越丰富的人员对测试与开发的作用越理解的比较透彻。

  追其原因,主要是因为测试和开发的工作内容虽然相同,但考虑问题的角度却各异。这样有时候站在这个角度看到的问题与另一个角度看到的问题是不相同的。有时这种不相同就会导致争议发生。如果双方都能够站在对方的角度考虑一下就会明白对方为什么要提出这样的问题。但是站在对方的角度来考虑不是说说就能明白的,有时非得亲身体验一回不可,否则还是有一些不理解。更何况对方是怎么想的、原则是什么都不一定能够说的很清楚。

  往往会听到这样的评价:测试人员不知道怎么想的,总是做一些用户不可能进行的操作;我真服了测试人员,不是好好的测试功能,不知道都在想些什么,非要搞一大堆没用的数据录入;我看测试人员故意找茬,本来好好的功能非要钻牛角尖,找出几个没用的BUG来表现自己的水平。等等。

  后续章节就测试人员考虑问题的思想因素做一说明,试图起到抛砖引玉的作用,供开发人员和测试人员来参考。文章中的描述或用词不妥之处也希望大家指出来我尽快更正,提前道谢了!

“测试人员的脑子里到底在想什么呢?”(二)

  系统是否做了该做的事情?还有就是系统是否做了不该做的事情?

  今天,在用户现场的测试人员打电话回来:“我们的系统出现了一个大的问题:通过前台界面修改一条记录没有成功,系统也很正确的进行了提示,可是后台系统却把修改信息发了出去,其他厂家开发的系统接收到消息后同时进行了响应的修改,并且把修改成功的信息发送回来了,可是我们的系统却没有成功修改,导致业务不能正常进行,这样的系统根本就不能放行。”

  这个案例就是一个很好的说明。测试人员在测试的时候首先会考虑系统是否实现了预期的功能-前台界面修改记录不成功进行提醒,但同时还要考虑系统是否做了不该做的事情,在这个案例中就是既然没有修改成功,那就不应该发送消息给其他系统要求修改相关信息。

  这种问题多发生在功能之间的接口或者是多个人开发的系统中。例如在航天史上有名的案例:美国发射火星探测器,整个研发过程都比较严密,但是最终登录失败了。问题的原因就在于系统出现了问题:火星着陆与着陆后出现不衔接。着陆后系统运行应该在着陆的数据基础上运行,而项目研发的时候着陆后的系统运行实在数据清空的基础上运行,根本就没有考虑到实际情况。

  这种情况开发人员与测试人员容易发生争议的地方是:开发人员认为我做的系统或功能没有问题,我已经测试通过。有的还会说当初没有告诉我要这样做,或者是别人没有在我的基础上考虑,或者别人没有给我传送我需要的数据。这时如果项目组织不够好的话测试人员往往要协调多名开发人员或开发团队来解决问题,有如果不乐观的话会吃力不讨好,无人理睬。

“测试人员的脑子里到底在想什么呢?”(三)

  不仅要进行合法性的测试,同时还要考虑非法的是否可以进行。

  测试人员认为合法输入或流程等一定能够正常进行,同时非法的输入或者流程不能够进行,系统应该有所判断并有相关信息提示。为什么要有提示?不一定所有使用系统的人都知道哪些是非法的。

  举个很简单的例子:数据录入的时候,如果没有进行非法检查,一些非法字符进入系统很可能会给以后造成很大的数据错误,比如一些保留字、特殊字符等等。例如在一个文本框中输入一个单引号(‘)成功的话,在数据库中有时执行一条SQL语句的时候会把单引号做为SQL命令而导致SQL脚本执行不成功或者录入错误数据。试想如果在远程紧急救护系统中把紧急抢救时间1分钟错误成10分钟后果会是什么?如果关键时刻系统出现崩溃会是什么后果?那就不是BUG了,是杀人!

  这种情况开发人员往往会说:测试的都是些什么呀?不痛不痒。能不能发现一些重要的、深层的BUG呀?岂不是这个不中要的BUG如果把数据放行进入数据库,后面就会出现重要的、深层的BUG了。有时对这些BUG不置可否。

“测试人员的脑子里到底在想什么呢?”(四)

  健壮性、稳定性

  这是测试人员和开发人员最容易产生争议的问题。测试人员总是从各个角度进行测试,尤其是各个非法操作角度进行测试,测试人员想:不能因为用户的误操作导致系统出错或者崩溃,所以尽量考虑各种非常情况,有的情况开发人员都觉得有点变态了。下面是测试人员和开发人员的一段对话,从中可以看出一些不同点:

  开发人员:“用户输入数据时怎么可能按住键盘不放呢?你这样按着不放能不出错吗?”

  测试人员:“用户是不会故意按着键盘不放的,但是有可能不小心会用手或者书之类的东西压着键盘,如果发生这样的事情,我们的系统总不能崩溃吧?怎么着也应该给个提示或者警告一下。”

  有时候用户是会发生错误的,人吗,误操作总是难免的,如果有了误操作系统就出一点小错,用户还能忍受,如果出打错或者崩溃,用户估计会有意见了。测试人员正式从这个方面进行考虑的。

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • TuHareB
    2011-12-30 18:33:29

    +1,说出我们测试人员的心声了。

  • sweety1
    2011-12-25 16:53:47

    很好的学习资料

  • moshi63
    2011-12-25 13:23:31

    我觉得应该是成本的问题。如果不计成本,弄自己的东西时,每个人都有完美的倾向,大家都都喜欢把自己的东西弄完美的(如果不喜欢这行工作的人除外)。可在工作时,为什么有时候开发觉得不合理呢,比如合法性的问题,其实应该他心里也觉得不太好,但是要考虑到成本且改动还有比较大的风险(主要是自己个人的绩效和工作量的),所以就他们就抱定了不改的心理,先把暂时的工作搞过了,以后以后再说吧,一般算绩效更多的算当前版本的。

  • scofield_liu
    2011-12-23 12:56:45

    多多沟通
    说话干净利索  一针见血  指出问题所在
    当然这更需要一个经验丰富的管理者从中协调  一定要对问题先进行科学的分析 评估 再做决定

  • fetchonnight
    2011-12-23 11:23:21

    很真实

  • wujiangwei
    2011-12-22 17:06:23

    支持,我们开发跟着开发差不多了

  • NNCD
    2011-12-21 15:01:46

    问题就是问题,无大小。自己用别的软件时有点小问题就不爽的很,总不希望自己的软件被被人骂吧。

  • panwenzhi
    2011-12-16 13:23:09

    还是开发和测试,相互谅解的好

  • shiruili215
    2011-12-15 14:18:37

    矛盾是因为什么而产生的呢?本人认为至少有以下三个原因:
    1、开发人员的测试意识不足,一旦有这样的开发人员,要注意了,写出来的代码应当深入测试
    2、项目组缺乏决策者,项目组织本身质量控制不给力
    3、测试人员经验不足,个人魅力不够,沟通能力有待改进
    如果再有,就是公司没有对应的规范流程给予大家指导,没有任何的机制去控制此类问题的发生;管理混乱,组织结构存在问题,开发模式限制了这些问题的解决。

  • baby101029
    2011-12-14 21:14:37

    是的  所有问题我都尽早的列出来提出来 自己保存一份文档给开发一份  他如果一直负责这块我会一直监督他直到改好 如果他没有时间我会让他回复一个时间我也好有所交代,到了要上线等紧急时刻我就发给老大们并声明和开发间的沟通和结果....

  • zhangjinyan
    2011-12-13 13:45:11

    这个问题每个公司都发生过,对于测试来说,只要把bug发现了,且提交给相应的开发,在发布前三天将未修改的bug告知下所有的项目组人员且发邮件。并让项目经理跟需求方一起开个会讨论下,如果他们同意带着bug上线就ok,不同意就必须改,很简单的流程,没有必要闹得那么僵

  • stester1
    2011-12-12 15:42:43

    很好

  • 小肥肥不肥
    2011-12-08 17:18:18

    很多时候,开发人员都认为我们测试人员是随便乱按,认为我们是没有技术性的活,说实话,我觉得黑盒测试就真的是把自己当成用户在用这个机器,测着测着多的时候,就会发现你做的就是那些正常的步骤。

  • lily13579
    2011-12-08 17:12:32

    恩,我们公司的开发的就是那样的,经常说要去找些重要的bug,其他的不要管。

  • qg26176570
    2011-12-02 16:37:10

    解决办法在哪里?项目经理部就是做决策的,软件可以留有bug,但是不能没有决策;如果到系统上线了,居然没有一个人员理解,至少是记录了全部需求,开发过程只是碰运气罢了。

  • sky.world
    2011-12-01 23:38:15

    受用了,刚进入这个行业,学习

  • qq675508756
    2011-12-01 16:26:55

    不错

  • 458052353
    2011-12-01 13:40:16

    很好,很强大!确实在项目急的时,总有开发不理解测试,大家都各司其职,想把产品做到更好,有时候少浮躁下其实两者关系也不会闹僵!开发和测试都是产品的保障

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号