通常大家发现软件缺陷时会对软件缺陷进行分类,可分类的方式只有一种,就是严重极别,难道没有其它的分法吗。比如我们碰到下面这种情况,测试人员发现有一种功能是必需加入进去的,这时他与程序员说,程序员说没有时间或是不必要,这时这种情况则会形成两者的扯皮,最终的结果也就不了了知了,这样会戳伤了测试人员的积极性,下次他们再也不会尽心的考虑产品的问题,只要可以运行就可以了。其实这种情况是可以解决的,下面我会提到一个新的软件缺陷分类概念,从而有效的解决这个问题。
在软件缺陷中不仅仅只是严重极别,更多的则是功能没有做到。说到这里也许大家都理解了,就是需求没有考虑到,可需求不会一次就很完美的,需要大家的共同努力,来不断的完善。那么怎样才能让测试人员提出的好的建议得到有效的执行?这就是我下面想说的。在软件缺陷中还有一种分法,跟据缺陷内容来分,主要分为需求Bug与程序Bug,对于这种分法的好处就是明确了Bug处理的责任人。对于程序Bug我们都知道是由相关开发人员进行处理。下面主要讨论一下需求Bug,需求Bug从名称上来就知道是要交由需求人员进行处理,可怎么处理,怎样在处理的过程中有效的让这些创意得到体现。现在我们都有Bug管理系统,这时我们的测试人员将需求Bug不是提交给程序员,而是提交给需求分析人员,由他们进行处理,不过这里我想强调的是对需求Bug的定位,如果这个Bug在软件需求说明书中明确提到了,这时就不可能定位它为需求Bug,它是必需让程序员实现的,称为软件功能缺陷,提交由程序员进行处理。但如果需求说明书没有明确提到的,我们则可以定位为需求Bug,处理的流程如图。
图1
这样处理有以下好处,首先需求Bug再不象以前,没有人进行确认,需求的处理人员本来就是需求人员,由他们确认与跟踪是最好不过的,因为他们对需求有绝对的权威。同时测试人员其实就是最早的用户,他们的需求就是用户的需求,这种方法加强了需求人员与测试人员的沟通,使需求得到有效的补充,从而让产品更加完善。还有测试人员从本质上来说与程序员还是对立的,这里如果为了这样一个不是软件本身问题的问题形成与开发人员的对立,则会出现赢得战役而丢失整个战争的情况,测试人员协调好与开发人员的关系,让他们更有效的对软件本身的缺陷形成有效的关注是最好的。还有最为关键的一点,测试人员的激情是最重要的,如果他们的想法没有得到体现,这时会渐渐的失去对测试的兴趣,从而软件的质量则会无法得到保证,通过这种方法可以让他们看到自己的建议可以通过对需求人员的反映得到实现,让他们时时觉得自己的想法是可以通过这种方法来有效的推行,这样工作的积极性才会有保障。
不过从实施的角度来说,还是有一定的困难的,首先要让大家改变以前那种凡是Bug就是由开发人员负责的观念,其次需求人员的工作量要加大,不过广泛的了解需求是他们的本份工作,想来不会很困难,还有必需要有有效的Bug管理工具,比如BugManage等等,不要出现那种对需求人员说了,可过两天就忘的情况出现,这时需求Bug的生命周期会出现跨越两个软件开发周期,因为有些需求会在下一版实现,这时测试人员需要延长对这些需求Bug的管理,不过我想这些需求是他们提出的,会有兴趣对这些Bug进行管理的。