【转】软件测试的目的——防范项目风险

2011-07-19  付民 

软件测试的目的到底是什么一直是困扰开发人员和测试人员的一个问题:

  项目管理人员希望测试能够保证软件项目的成功;

  开发人员希望测试可以让他们理直气壮的说,他们的软件是没有问题的,从而证明他们的工作成果;

  软件测试经典理论说,测试无法证明软件是没有问题,而只能证明软件是有错误的;

  软件测试的经典理论又说好的测试用例是能发现那些问题的测试用例。

  于是问题产生了,测试到底是做什么的?

  其实这个问题并不难解决,只要你从一个更高的角度去看待这个问题。

  项目管理中有一个很重要的领域就是风险管理,而测试是防范和解决技术风险一个重要手段。

  这样可以很好解决测试在软件开发中的地位和作用问题。

  首先来说风险(技术风险)。软件是一个科技含量比较高的行业,由于新技术比较多,所以技术风险自然会比较大,如何防范这些风险带来的危害是我们要格外注意的一个问题:

  风险的危害 =  风险发生的概率 *  风险造成的危害。

  作为测试工作就是通过降低风险发生的概率和以及风险造成的危害来保证项目的顺利实施的。

  先说降低风险发生的概率,在功能测试中就是测试的覆盖率,尽量提高测试强度在尽可能多的覆盖所有的功能点,比如冒烟测试、合法数据测试、非法数据的测试,就是逐步增强测试强度,来发现问题。

  再说降低风险造成的危害,从纯技术角度来说,软件测试发现的问题,其危害程度是不一样的,比如死机问题,应该是最严重的问题了,其次是功能无法实现,发现这些问题的价值往往是很大的。这些问题往往会产生严重的问题,如果及时发现这些问题,可以让开发人员及时进行修改,防止系统的这些问题给项目的开发带来严重的问题。

  在这里要说几个个人的一些体会。

  1、测试人员不能通过测试工作给项目带来直接的好处,说简单一点就是测试不能测试出来好的产品,但通过对测试中发现问题的修改可以让产品的质量上一个高台阶。

  2、测试人员不能要能善于发现问题,更要善于和开发人员交流,让他们认识到发现的问题,并对这些问题进行修改,从而通过开发人员实现自己的价值。

  3、测试人员需要通过自己测试技术的提高,采用更科学的测试方法,和工具,增强测试强度,告诉项目经理,我们的产品经过测试,发生问题的概率比原来降低了好几个数量级,发生问题概率降低了,从另外一个方面讲就是产品的可靠性增强了,这正式上级领导奖励测试部门的目的。

  4、什么样的测试用例是好好测试用例,如果是发现从未发现过的测试用例才是好的测试用例,那么在回归测试的,如果所有测试用例都通过了,这些测试用例都是坏的测试用例吗?这显然说不过去,在我看来,评判一个测试用例好坏应该有两个标准,一个是是否发现问题的概率比较高的测试用例才是好的测试用例,另外一个便于开发人员确定问题的测试用例才是好的测试用例,这里说的比较复杂,举几个例子吧。

  如果说发现了未发现的bug的测试是好的测试,这个东西如何实施就无法确定,没有测试谁知道哪个哪个测试用例可能发现问题,所以测试人员根本无法实施测试工作的改进,但如果说发现问题可能性比较大的,就比较好实施了,比如划分等价类,边界值等方法都是经过长期总结出来的发现问题可能性比较大的方法。

  另外,测试的目的,是修改问题,在软件开发过程中,如果要修改问题,首先要定位,其次判断问题发生的条件,如果你的测试用例(一般来说是几个或者几十个),可以让开发人员发现问题发生的规律,那么他们可以方便的发现问题发生的规律,对开发人的定位工作会起到很大的帮助做用,这样的测试用例对提高产品质量的作用是很大的的。

414°/4137 人阅读/1 条评论 发表评论

小窝  2011-07-27

已同步至官方微博


登录 后发表评论