1. 软件测试在公司的组织保障是基础 1.1 研发部组织结构介绍 以华友公司研发部的组织结构为例,测试部门属于研发部副总裁直接管理,见如下结构图
与软件产品部或内容产品部配合,协助完成内容产品的可行性、合理性分析; 平台、网关、应用产品的研发项目的立项和方案评审; 研发项目的概要设计、详细设计工作; 研发项目的编码、单元测试工作; 组织公司相关部门进行研发产品的培训; 协助相关部门做好产品的售前技术支持工作; 协助相关部门进行软件的安装与调试; 根据相关部门的要求做好产品的售后服务工作,保障软件的运行正常。 测试部隶属研发部,主要职责如下: 与内容产品部和软件产品部配合完成软件需求分析讨论,并根据需求说明书制订《项目测试方案》,编写《测试用例》,建立测试环境; 建立、推广并维护实施软件版本管理系统CVS和VSS; 使用并维护软件缺陷管理系统Bugzilla,负责软件问题解决过程跟踪记录; 负责推广实施软件开发文档规范化工作,管理研发产品相关文档; 负责配合软件运维部门等对于新业务软件或修改升级业务软件的上线测试工作,并提供上线测试报告; 负责监督软件开发流程的执行,并负责提出软件开发过程改进建议,提高软件产品质量。 1.2 软件产品研发各部门的组织结构分解 1)华友公司从2003年10月开始,对项目组制订明确指标的独立考核,各开发部门是技术总监带队,再细分各项目经理具体负责项目计划和执行,对项目具体开发成员进行分工。对于测试部门制订年度测试部门任务计划/考核表,如SMS业务销售额指标完成:目标1:9900万(奖金提取比例为0.01%);目标2:16800万(奖金提取比例为0.02%);目标3:23200万(奖金提取比例为0.03%) 详细给出财务目标和业务运营目标。 在每周的开发经理工作会议上交流报告任务进展情况,并提出最近测试需求,测试部门经理负责制订测试计划、测试用例和测试实施方案,安排测试工程师与对应的开发人员交流完成测试执行工作。测试部经理负责开发流程管理和人力资源、测试用软硬件资源调配,需要与研发之外的部门定期交流掌握下周或近期可能测试任务,所有其他外部接口都由测试部经理负责完成,与其他项目组和产品部门协调项目进度。 2) 工作汇报关系为: 开发部门:Team Member->Team Leader->研发总监->研发部副总裁->总裁。 测试部门:测试工程师->测试小组经理->测试部经理/总监->研发部副总裁->总裁。 3)项目成员结构: 华友公司的经过三次改造后的组织结构和项目组结构,各个业务部门分类非常细,任务明确,软件开发的每一个步骤都有专门的部门、专门的人员负责,从最基础的开发人员到负责统领全局的总监和副总裁,层层管理,沟通渠道畅通。而在软件测试上,由于有限的测试资源,首先体现在公司的组织结构上,集中表现为测试部门不得不面对公司级管理部门的缺失和管理的交叉上,没有质量管理部门,部门质量管理工作测试部门兼做。公司从成本角度考虑,测试部门规模较小,测试人员总数不超过10人,几乎每个测试人员接收处理10个开发人员的测试任务需求。从实际情况出发,首先明确测试部门和软件开发部门相对独立的组织关系,保证测试人员的工作不受开发小组的控制,实现测试客观、公证。华友公司要想有效地保障产品质量,首先就要在构架合理的组织结构和测试流程上下功夫,这就如同盖高楼首先要打好地基一样,地基不打牢,结构和流程不合理,其他方面再下功夫也是徒劳。 从实践经验看,一年前首先成立测试部,把属于开发部门的测试工程师归口到独立的测试部门管理,其次建立规范的测试流程,与开发部门交流,要求每周提出测试需求,再根据现有的资源制订每周测试计划,同时向人力资源部门提出招聘计划,随着测试工作的成绩不断被开发部门和上级领导认可,再推广实施软件开发过程规范化的管理,通过测试实践的优良成绩来确立测试部门在公司的地位和作用,经过一年的奋斗测试部门从无到有,从最初两人到现在十人,软件配置管理和缺陷跟踪系统已经被60%的开发人员自愿使用和接收。 总结本人在华友一年多测试工作经验,深深体会到在国内从事软件项目开发难、从事软件测试和质量保证工作更难,需要具备扎实的技术功底同时,不断提高测试项目管理能力,寻找工作的突破口。世上无难事,只怕有心人,但是只要你努力献身于软件测试工作,打出一片天地是有可能的。(待续) |