五、懂得处理和开发人员之间的人际关系
开发和测试存在目的是什么?开发是为了实现客户的需求,测试是为了保证软件的质量。两者应该是合作共赢的关系,不是零和博弈,不是此消彼长,不是你胜我败。开发和测试之间是既对立又统一的。是矛和盾的共同体。
软件开发人员比较清楚软件的架构,可以事先判断出bug容易出现的地方,对出现的问题会很快定位;而测试人员作为软件的使用者,可以很快地反馈出自己对于软件使用的感受,让开发人员了解测试,帮助开发人员更清楚用户的要求,对软件如何被使用有了深刻的认识。好的测试人员,应该更多和开发人员交朋友,和他们一起努力,把工作做得更好。

不过需要注意的是,软件测试工程师主要是提出错误报告,但不能主动提出改进软件过程的具体改进措施,更不要直接干涉程序员的工作方式,以免出力不讨好,影响今后的愉快合作。记住,软件过程改进的方法是软件质量控制部门的事情,这是他们的本职工作。
六、软件测试应该避免由设计软件的程序员来担当
开发和测试生来就是不同的活动:开发是创造或者建立一个模块或者整个系统;而测试的目的是证明一个模块或者系统工作不正常。这两个活动之间有着本质的矛盾,如果一个人同时扮演建设者和破坏者,是不太可能把两个截然对立的角色扮演好的。
首先,当一个程序员在完成了设计,要一夜之间要他突然改变观点,设法对自己的程序持否定的态度,那是非常困难的。
其次,程序中可能包含由于程序员对问题的叙述或说明的误解而产生的错误。如果是这种情况,当程序员测试自己的程序时,往往还会带着同样的误解致使问题难以发现。基于以上心理因素,应该限制开发者参与到测试中去。
新梦想总结:软件测试是一项技术性的工作,也涉及到一些人类心理学,测试有时候不仅仅只是测试。测试是一项极富创造性、极具智力挑战性的工作,默默循规蹈矩未必能让自己发挥出最大的价值。 测试的最终目的是为了用户,多站在用户的角度灵活测试,得出有效结果并加以改进完善产品,才是一个合格专业的测试人员。