让我们思考几个常见的问题:
1.软件测试的工作职责和目的是什么?
2.测试人员和开发人员是一种什么样的合作协同关系?
3.软件测试能否保证软件上线后的质量?
从处理Bug的角度看,程序员既生产代码,也生产Bug。因为开发人员不可避免地会生产Bug,所以测试人员必须存在,以便在软件交付之前尽可能多地检出Bug,保证交付给客户的软件质量更好一些。一个产Bug,一个挑Bug,看起来似乎是对立的。
实际上,软件测试和软件开发拥有同一个目的:让软件更完美。测试和开发的关系,是一个问题的两面,应该是相辅相成和平共处的。测试不是为了挑刺儿,他提出的问题也不针对生产软件的开发人员,而仅仅是在努力想让开发人员的产出物看起来更好用。只要开发不将测试提Bug这个行为看成针对个人的行为,一切就有了美好的前提。做到真正的对事不对人,并且程序员正确的认识到bug的不可避免性,以及bug的及时处理性,就能更好的的完成共同的目的。
否定软件,并不是否定开发软件的人。这是开发和测试都需要明确的一个原则和前提。
随便挑一个问题吧:为什么开发写完代码测都不测就扔给我们?这个问题普遍存在,它反映出的是程序员和测试人员的工作边界难以界定的矛盾。
程序员会说,我都测一遍,还要你们测试做什么?
测试会说,你测都不测,冒烟都过不了,有没有责任心?
程序员说,要我写测试用例,搭各种环境,遍历各种正常、异常逻辑,我还有没有时间写代码了?
测试会说,我们测试是垃圾桶吗,什么烂玩意儿都直接扔给我们,我们的时间就那么不值钱?
开发会说,测试本来就是干这个的,你不测谁测?
像这样的问题,能制定一个标准,说明什么样的逻辑开发要自测覆盖什么样的逻辑可以交给测试来测?能画一条三八线吗?
答案是不能的。所以,这个时候,程序员自身首要要做到对自己的代码负责,而不是一味的负责产出代码,在产出代码的同时也要尽可能的减少bug,软件测试的存在就是更加系统的检验一遍软件整体功能及稳定性。
有时,有一些开发人员会用技术优势藐视测试,认为测试工作技术含量低,内心认为测试是附属没地位,说话就不太客气……测试会感觉到,反过来也会对开发有意见……就这么,从相敬如宾合作共赢开始走向嫌怨丛生,不利于整个团队合作的同时,也导致了整个项目的拖拉不能如期完成各个阶段的目标。所谓的技术也并不见得说只有会编程,会写代码,那么就算做技术了,同样的软件测试也有自己的系统科学性,也是一种技术。在软件测试与程序员之间都应本着软件的质量为最终目的的,这样才是合作的基础与软件质量的保证。
每一款产品、项目、版本都有明确的目标,这些目标是属于开发和测试的,是整个团队的最终目标。而团队中无论是程序员还是测试人员,都应讲整体的目标摆在首位,我们还要想着别人所做的一切,都是针对软件本身,都是在为目标而努力,这样就心平气和多了,就容易从当下的泥沼中超脱出来,求同存异共同前进。