本帖最后由 mandy.wang 于 2014-2-22 15:05 编辑
目前测试部门在各个公司的组织结构中所处的位置可能各不相同,但大致可能存在如下四种组织结构:
1)测试部门独立,与开发部门平行;
2)测试部门独立,但从属于开发部门;
3)虚拟的测试部门,测试人员以组为单位被安排到各个开发团队;
4)没有专门的测试部门,每个开发团队会有若干人在系统集成阶段转换成测试角色。
第一种,从软件过程管理上看,应该是最理想的,测试部门与开发部门平行,因此在项目中的地位就是平起平坐,从组织上避免了测试在项目中受制于开发团队的风险,保证了测试过程和测试结果的客观性和有效性,能够最大限度的根据软件质量规范对产品进行测试。但这种组织结构相当于把测试和开发分成两个泾渭分明的活动,并没有过多的考虑两种活动之间的互为补益,在这种组织结构下,也很可能演变成测试和开发之间的对立,或者增加测试和开发之间的沟通成本。
后面三种,都是比较让测试人员比较郁闷的,在项目中会处处受制于开发团队,其实测试人员融入到开发团队也是有好的方面的,比如沟通会比较方便,任务响应也会比较及时,缺憾就是由于开发和测试人员沟通很容易,因此原有的一些软件过程规范就开始变得不被重视,比如说当设计变更后,开发人员可能就不会再去更新设计文档,而是口头通知测试人员了,这样的话,一是没有留下设计变更的相关文档,在后续的开发中无据可依,二是“空口无凭,立字为据”,产品一旦出现问题,到底是谁的责任就说不清了;而且,在没有一个过程规范的背景下去开发,产品质量肯定是无从保证的。另外测试的结果有可能不会被项目组所重视,需要频繁的进行协调,才能及时处理缺陷。因此从软件的质量控制上考虑,测试部门还是独立比较好。但测试部门独立有优点同样也会带来一些问题,优点有:
● 可以使测试人员对软件测试和软件中的错误抱着客观的态度,这种客观的态度可以解决测试中的心理学问题,既能够以揭露软件中的错误为目的进行工作,也能不受发现的错误的影响; ● 经济上的独立性使其工作有更充分的条件按测试要求去完成; ● 软件测试是技术含量很高的工作,需要有专业部门加以研究,并进行工程实践,积累大量的实践经验。专业化分工是提高测试水平、保证测试质量、充分发挥测试效用的必然途径; ● 由于专业优势,测试部门独立形成的测试结果更具信服力,而测试结果常常和对软件的质量评价联系在一起。因此,由专业化的独立测试部门进行评价的权威性更强; ● 独立测试部门的主要任务是进行独立测试工作,这使得测试工作在经费、人力和时间方面更有保证,不会因为开发的压力而减少对测试的投入,降低测试的有效性,从而可以避免开发组织侧重软件开发而对测试工作产生不利的影响。 随着测试部门的独立,也会带来一些问题: ● 组织的复杂度越来越高,管理成本增加; ● 沟通效率降低,原来可能只是需要打个招呼的问题,现在需要通过复杂的配置管理、缺陷管理和文档管理系统来解决; ● 测试人员和开发人员的距离越来越远,项目团队氛围可能会下降,某些极端情况甚至出现开发人员和测试人员的对立现象; ● 测试人员重点关注测试相关技能,对开发技能的掌握比较差,不利于发现系统需求和设计方面的缺陷; ● 独立的测试部门可能降低开发人员的质量责任感,开发人员可能会觉得产品质量应该是测试部门的事情,而不是整个项目团队的责任。
因此对于测试部门是否有必要独立于开发部门,各个公司确实需要根据自身的规模、项目的特点、项目经理的素质、测试人员的能力等等进行决策。
|