开发人员与软件测试

发表于:2011-7-20 10:23

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

 作者:注子    来源:51Testing软件测试网采编

  程序员和测试人员的心理差别

  程序员和测试人员的心理差别可以简单的归纳为以下几种:

  成功 / 不成功

  什么才是一次成功的测试,大多数的开发人员对自己的程序测试完没发现错误,就会说“这是一个成功的测试”,如果发现某些新的错误则称“这是不成功的测试”;而测试人员刚好相反,当然这也是因为双方的职责不同而引起的。

  维护 / 破坏,施虐

  开发人员对测试往往是一种维护性的测试,目标在于证明自己开发的程序没有错误,可能跟我们开发人员经常做建设性工作,更倾向创造事物,而不是将事物破坏有关;而测试人员在测试更多是一种破坏的过程,甚至是一种施虐,摆出一种把鸡蛋打碎搅黄来挑骨头的姿态。

  做了应该做的 / 做了不该做的

  开发人员在做测试更多倾向于对实现的功能进行检查,当测试证明了该完成的功能全部通过时就认为测试完毕了,但程序即使能够完成预定的功能,也可能隐藏了错误,如做了应该做的东西,同时也做了不应该做的东西。

  建立一种信心 / 必须做

  测试这个东西对于开发人员来说,更多的是建立一种信心的保证,例如我们尽可能多的单元测试,很多时候就是让我们确信程序的正确性,并让我们建立信心,而对于测试人员来说,测试是他们的职责所在,只有尽可能多的把系统挖出错误来才证明他们的存在价值。

  测试的态度

  测试是一项技术性的工作,但同时也涉及到了心里学的一些重要的因素。

  作为程序员的我们也经常会对我们的程序进行相关的测试,但你想想我们为什么要对我们的系统做测试,原因大概有以下的几种:

  1、测试就是为了证明我们的系统是不存在错误的;

  2、测试的目的是想证明系统能够正确完成预定的功能;

  3、测试是保证一个系统强壮性的信心过程;

  4、测试是上级规定要做的。

  站在测试人员的角度来看,除了最后一点,其他的都是本末倒置(难怪他们会抱怨我们做的测试很差)

  “测试就是为了证明我们的系统是不存在错误的”,试想一下,如果我们的目标是证明程序中不存在错误,那么我们的潜意识就会倾向于这个目标,我们会倾向选择可能较少导致出现程序失效的测试数据,如果我们的测试目标证明程序中存在错误,我们设计的测试数据就可能更多的发现问题.于前一种方法相比,后一种方法会更多地增加程序的价值.

  每当测试一个程序,都是想为程序增加多一些的价值,通过测试发现系统的更多错误来增加程序的可靠性质量,提高了程序的可靠性,是指出并最终修改程序的错误与“测试就是为了证明我们的系统是不存在错误的”比较,更适合的定义是:测试是为了发现错误而执行的过程。

  “测试的目的是想证明系统能够正确完成预定的功能”,这个定义又会带来另一个问题,程序即使能够完成预定的功能,也依然可能隐藏错误,也就是说,当程序没有实现预期的功能,错误时能够清晰显示出来,但程序做了不应该做的呢,这同样也是一个错误,如我们程序实现了一个除法计算器,即使我们通过各种数据正确的完成了计算任务,但在完成了不应执行的任务(除数为0),程序依然是错误的,如果我们将软件测试作为发现错误的过程,而不是只是证明“系统能够正确完成预定的功能”,我们发现这类的错误可能性会打很多,所以更好的定义是:测试就是建立程序即使能完成预定功能,也发现存在完成非预定功能。

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号