随着用户对软件质量的要求不断提高,公司的测试人员数量不断增加,但到目前为止公司还无法做到为每一个项目都配备专职的测试人员。那么,没有配备专职测试人员的项目组是不是无法提高软件质量呢?答案显然是否定的,理由如下:

  一、产品质量是生产出来的,不是检验出来的

  质量管理大师戴明曾经说过“产品质量是生产出来的,不是检验出来的”。检验只能发现产品中存在的问题,不能消除问题,这对于我们的软件生产同样适用。

  我们知道,软件的生产包括需求、设计和编码这三个环节,如果项目组能够想方设法来提高这三个环节的质量,那么终生成出来的软件有了基本的质量保障。

  在需求环节,建议项目组充分使用同行评审(具体做法见公司的同行评审规程)方法,确保我们编写的需求规格说明书是完整的、清晰的、无二义性的、可验证的和前后一致的。事实上,项目组做到这一点其实并不容易,因为多数项目组都有交付期限的压力,特别是很多项目组的负责人和开发人员没有写文档的习惯。出来混早晚要还的,项目组在需求阶段节省的时间和成本在后面阶段是要加倍(而且往往是数十倍)偿还的,所以实际能够按时完成的软件项目是少之又少。

  在设计环节,还是建议项目组充分使用同行评审方法。需要补充的是,项目组在设计开始之前需要制定基本的界面规范,以免做到出来的软件界面风格迥异,完全不像一个产品。此外,建议项目组一定要进行容错性设计和易用性设计,因为用户一般不会向我们提出这些方面的要求,而实际上又是有这些隐含的要求的。

  在编码环节,再次建议项目组充分使用同行评审方法。需要补充的是,项目组在开始编码之前要制定基本的编码规范,并给组员进行这方面的培训,确保组员编写的代码清晰易懂,能够方便地进行同行评审。当然,如果项目组能够弄到一份同类项目的常见编码问题清单给大家学习更好了。

  二、项目组虽然没有专职测试人员,但可以有测试人员角色

  当项目组没有专职测试人员时,肯定不是意味着该项目组的软件产品不用被测试,而是意味着测试人员的角色要由项目组的现有成员来承担。那么,项目组的现有成员如何承担好测试人员的角色?

  首先,建议项目经理找一个的测试工程师给大家进行一些测试技巧的快速培训。如果实在找不合适的到测试工程师给项目组进行培训,那也可以去公司协同办公平台上去下载《通用测试点.XLS》,然后组织项目组员花个半天到的时间集中学习一下,也能起到一些效果。一般而言,测试的进入门槛比较低一些,项目组成员即便不经过测试培训也可以做一些测试,发现一些显见的缺陷。但这样显然是不够的,项目组要追求更高的软件质量,必须要求项目组成员在承担测试工作时要有点儿测试人员的样子,能够掌握测试工作的一些基本技巧,了解测试的逆向思维方法。

  其次,建议项目经理在安排测试工作时要注意错开安排,既组员A测试组员B的程序,组员B测试组员A的程序。道理很简单,人很容易发现别人的缺点,而很难发现自己的缺点。

  再次,建议项目组一定要使用缺陷管理工具来管理缺陷,哪怕是再简单的工具都比没有要很多。使用缺陷管理工具的大好处是方便跟踪,项目组成员只要录入了缺陷,不用担心缺陷被弄丢了。

  后,建议项目组要真正舍得在测试上面进行投入,认认真真把测试工作完成。如果项目组自己不舍得测试的话,缺陷肯定不会自己跳出来,那意味着我们把埋藏了数以百计甚至数以千计地雷的软件产品直接交付给了客户,当然造成的后果也肯定是不言自明的。