UML软件工程组织

谈项目管理和软件测试过程
作者:雷红旗  文章来源:网友推荐

 以项目经理为主测试经理配合的项目管理方式

 项目经理是项目成败的关键人物,其对项目的成败负主要责任,同时配合项目经理的测试经理是项目成败的"试金石"。如果项目经理重视并充分发挥测试经 理的作用,和项目经理一起制订项目质量保证大纲,让项目经理在开始阶段更多了解项目的质量需求、结构设计、运行环境。 以华友公司为例项目经理在整个产品研发过程中特别是软件产品质量保障的各个环节所扮演的角色和任务如下,希望能对其它公司的软件项目经理有所启示。

 完成质量保证计划是项目经理的职责

 在华友公司,按流程在一个项目正式开展之前,项目经理需要完成:
  项目计划(Project Plan):在此描述整个项目所应完成的交付物、项目时间表、培训需求、资源需求、质量保证计划以及过程和交付物的定量质量目标等。
  项目配置管理计划(Project Configuration Plan):在此指定配置管理员,描述项目配置项列表、配置管理库、版本管理计划等等。
  项目过程说明(Process Handbook):在此描述本项目所采取的裁剪后的生命周期模型和流程。

 测试经理或测试主管在项目中的主要职责

 测试经理的角色决定工作内容和承担的任务。测试经理的角色应该承担什么任务呢?这没有统一的答案。因为,这与公司的规模,项目管理制度,公司领导和项目经理的管理风格,以及具体软件项目自身的特点有很大关系。

 一般讲主要职责如下:

 设置软件测试环境,安装必要的软件工具。
  运行软件,发现和报告软件缺陷或错误。尤其需要快速定位软件中的严重的错误。
  对软件整体质量提出评估
  确认软件达到某种具体标准
  以最低的成本,最短的时间,完成高质量的测试任务

 在项目开发过程中,随着项目进展,项目经理和测试经理要实时沟通

 项目经理需非常了解项目进度,进行工作任务细化、具体计划和安排项目成员工作任务等工作。对突发事件项目经理需能及时合理地进行协调。测试经理能准确地给出进展状态和项目的缺陷状态。

 软件项目开发是个分工明确的系统工程,不同的人员扮演了不同的角色,包括部门经理、产品经理、项目经理、系统分析师、程序员、测试工程师、质量保证人员等。可见,软件测试工程师只是软件项目开发中的一个角色而已。

 如同戏剧舞台上的生、旦、丑是不同的角色,其表演方式具有明显的特征,这是由于角色决定的。同样,软件测试工程师的角色,在软件项目开发中也存在如何定位和表现自身的行为和责任的问题。
在这其中,最重要的是要明确,程序员的责任和目标。在执行任何具体测试任务前,都要在项目组内对于责任和目标达成共识,以免带来后续工作的相互推诿。

 测试经理不仅需要注重项目质量,同时应注意项目工作效率不断提高

 软件测试的核心目的是满足用户的需求。在明确用户需求的前提下,提高测试质量的要诀:
  首先测试程序的核心功能,然后测试辅助功能。
  首先测试功能,然后测试性能。
  首先测试常见情况,然后测试异常情况。
  首先测试经过变更的部分,然后测试没有变更的部分。
  首先测试影响大的问题,然后测试影响小的问题。
  首先测试必须测试的部分,然后测试可选或没有要求测试的部分

 项目经理安排工作有这么几个特点

 a.项目经理对软件开发具有丰富的经验,了解软件开发的普遍流程,了解各个阶段所需完成的工作,特别是项目测试工作需要的时间,这是安排好项目组成员工作的前提,在华友公司对经理的整体素质要求非常高。

 b.在项目正式开展前,经理准备项目计划文档,在项目计划中包含了项目进度时间表,并且请求测试经理配合给出项目测试计划时间表,给出各个阶段和各个子阶段的起始结束日期。对各个阶段和各个子阶段的详细工作安排和各项工作责任人只能在项目开展工程中根据项目实际情况进行安排,一般是在每周项目组例会上进行本周详细工作安排。

 c.在项目组例会上的工作安排一般只限于本周或甚至是过后的二、三天,一般不会太长,对长时间工作的安排容易失去精确并且不易控制。相对而言,短时间的工作安排就比较精确而且容易控制,并且能不断根据完成的工作进行调整。当然,这就要求经理能根据项目计划中的项目时间表进行整体进度的把握。项目经理需要明确提出每周测试任务需求,测试经理配合完成测试任务实施。

 d.项目组例会一般一周一次(时间不能太长),但必要时(如组员工作已完成或其他事情),也可在中途召开项目会议进行工作安排,一般时间都比较短(十几分钟左右,一般不超过半小时,以免浪费时间),总之,当经理觉得需要时,就会召开项目会议, 把测试工作做为项目开发工作的一部分而不是服务,一定重视每周测试结果报告。

 e.善于鼓励手下,发挥员工的潜能,经理需要会赞扬很好地完成了工作的组员。

 从上面可以看出,对项目经理和测试经理的能力(包括技术和管理能力)要求是非常高的,我国的软件公司往往只重视经理的技术能力,我们公司也一样。甚至出现,有时领导发现有些经理忙于管理而忽视具体实施工作他会提醒我,反之,他认为我很努力,技术能力强,忽视管理问题,导致项目进度一团乱麻。但事实上,一个只精通技术的人往往不能成为一个合格的领导者, 笔者认为对经理而言,首先要求他能够比他的下属看得更远一步,顺利时不盲目乐观,遇到挫折时不茫然失措,使整个团队始终保持高昂的士气。

 总结

 以上结合我公司软件项目管理的经验总结了一些同类软件公司在项目管理和软件质量保障方面存在和应注意的问题。首先项目管理要认识到软件测试成败等同于项目成败。曾有一段时间联想、华为等公司重视测试,但招聘测试人员时常常明确给出测试人员比开发人员底的待遇。其实IBM和微软公司属于领先的大公司,对测试的认识也经历了一个过程。

 开始的时候,也是开发人员兼职做测试,就像今天国内一些较小规模的软件企业。但是,后来的结果表明,花在软件修补上面的费用太高,以至于远远超出了所能够允许的范围。这个时候,增加测试队伍的规模,提高测试队伍的素质,提高测试队伍的待遇和受重视的程度是更加划算的。

 笔者认为,要采取主动积极的工作态度和利益相关者去沟通,强化软件测试工作是能够有效保证项目质量的最好实践,一般软件公司都有测试工程师的职位,大部分公司也有测试部门。事实证明,首先是"占有",类似让鱼上钩的做法,如果测试工作开展的很有成效,取得项目经理和更高层领导的信任,自然会提出强化项目测试工作,不仅重视技术,也重视质量;然后才是"挑选"和"创新",建立性能价格比优异的测试环境,开发使用更多的测试技巧,争取测试阶段检查项目中存在的更多问题,降低产品进入维护阶段的费用,提高产品竞争力。

 项目管理过程和软件测试过程是一个紧密相连的有活力的过程,是一个复杂的大系统。复杂系统的解决方法是发挥项目团队的作用,从系统工程的观点看,项目管理普遍涉及到多个目标的要求,一个优秀的项目管理人员,应该注重包括测试经理在内的每个项目组成员分析问题能力,集思广益,形成一系列行之有效的解决方法,解决项目中的问题。 再次强调"人"是项目成功的关键,以人为本的项目管理必然是一门高超的艺术,需要结合实践不断探索。


版权所有:UML软件工程组织