资源描述
软件产品项目生命周期管理
软件产品/项目生命周期管理
软件产品/项目生命周期管理
汪明
江苏省软件产品检测中心
第 1 页 共 25 页
软件产品/项目生命周期管理
1、 软件产品/项目生命周期管理
江苏省软件产品检测中心为通过 ISO/IEC 17025 实验室认证(编号:CNAS L4338) 的专业测试机构,将依据国家对软件产品质量标准的要求,进行软件测试。 软件 产品
是指向用户提供的计算机软件、信息系统或设备中嵌入的软件或在提供计算机 信息系统集成、应用服务等技术服务时提供的计算机软件。 项目
项目是指在一定的约束条件下(主要是限定时间、限定资源),具有明确目标的 一次性任务。
项目是一件事情、一项独一无二的任务,也可以理解为是在一定的时间和一定 的预算内所要达到的预期目的。
项目侧重于过程,它是一个动态的概念,例如我们可以将软件的研发过程视为 项目,但不可以把软件本身称为项目。那么到底什么活动可以称为项目呢,开发和 介绍一种新产品;涉及和实施一个计算机系统;进行企业的现代化改造;主持一次会 议等等这些在我们日常生活中经常可以遇到的一些事情都可以称为项目。
项目管理的根本在于解决所发生的失败,而并非建立一种不允许失败的组织 项目生命周期
一个项目从概念到完成所经过的各个阶段。
项目的性质在每个阶段都会发生变化。由于项目的本质是在规定期限内完成特 定的、不可重复的客观目标,因此,所有项目都有开始与结束,既项目“出生、成 熟、死亡”。
“即项目在本质上是单一方向发展的。”许多项目,由于意料之外的环境变 化,即使在接近原先规划的最后阶段时,也可能重新开始。
项目的生命周期可以分为四个阶段:项目立项期、项目启动期、项目发展成熟 期以及项目完成期。
1 项目立项阶段
第 2 页 共 25 页
软件产品/项目生命周期管理
在确定一个项目的初期,项目管理层通常热情很高,但目标却不清晰,因此, 在项目生命周期的初始阶段,最关键的工作是明确项目的概念和制定计划,并使之 与未来的活动场所相适应。在这个阶段,以下方面需注意。 1.1 组建并整合管理 团队
在这个时期应组建并整合管理团队的关键成员。另外,要用大量时间与精力确 定项目所需要的专业技术与行为。一切工作以人员为中心展开,这表明项目组织中 不仅需要优秀的管理,而且需要人才,特别是在大型项目中位于项目管理梯队上 层、具有领导才能的人士。
1.2 阐明项目的理念或者方向
项目组织中的领导者应该阐明项目的理念或者方向,这种理念可能包含在项目 经济性目标之外更高的目标,真正的领导者在实施所提出的理念时也会认真思考并 采取关键的行动。领导者的行为应真正符合他们所倡导的理念。
1.3 项目谈判
项目立项阶段管理过程中关键的风险承担者是项目的出资者。在项目立项阶 段,管理层的一项关键工作是和项目主顾就项目概念和战略进行谈判,以达成一致 意见 ;
另外,还要与项目主顾就全面资源计划和项目期限进行谈判。这项谈判非常重 要,这不仅关系到项目的执行,而且直接影响项目管理层与项目主顾之间建立良 好、清晰的工作关系。
1.4 制定项目运作计划的步骤
在项目立项阶段,项目管理层制定项目运作计划的具体工作可以分为三个基本 步骤。
, 确定工作的细分及相应的产出
工作细分明确所要进行的各项工作是指项目人员需采取的行动,在确定工作细 分时,明确必须相应生产的有形产品。
, 工作任务排序
在运作计划中需要列出各项工作所需的时间,各项任务之间的互动关系,以及 这些工作的最后完成顺序,这个步骤被称为“工作任务排序”。无论是
第 3 页 共 25 页
软件产品/项目生命周期管理
将工作按照网状关系排列,还是简单地以时间顺序进行排列,都可以使项目管 理层获得项目运作计划的整体视野。工作任务关系图可以有多种形式,最简单的形 式之一,是列出以时间标出的一阶段性工作的顺序,这种任务关系图通常被称为 “甘特图”,图中对一项工作的明确,也使另外两项重要计划
工作得以明确:支持各项工作所需的资源和各项工作间的互动关系。“甘特 图”形象地表明各项工作任务所需要的资源以及相应的时间。
评估项目的因素中,如果有些因素受到阻碍,将会使整个项目停顿不前,这些 因素就是项目的最关键因素,项目最关键因素的序列就是著名的“关键路径”,确 定关键路径的目标只是为了确保项目按照这一特定顺序仔细执行,从而不至于使整 个项目停顿、拖延。管理团队对于无法确定的工作,应该在项目运作计划中进行充 分的分析研究,从而最大限度地降低这些工作可能对整个项目所产生的影响。
, 确定任务所需资源
确定任务所需资源,即确定工作序列中各项任务所需的资源,以及所计划的资 源利用方式。同时,项目管理人员应该理解某项工作与其他工作之间的关系,这种 关系或者是以工作产品为基础,这些资源包括时间,当然也包括人力资源。
项目需要哪些技术以及相应哪些人需要成为项目团队的成员,哪些人是项目团 队直接的、长期成员以及哪些人只是在特定的时间内成为项目团队的成员,哪些工 作可以被进一步分包,而哪些工作必须由项目管理团队的成员直接完成,
以上的所有安排都同样适用于采取企业型管理的项目,以及采取比较传统的行 政管理模式的项目。此外,项目参与人员需要花费额外时间来确定他们在项目中的 作用,以及去了解怎样和项目的其他参与方交流或者协作。 1.5 项目立项阶段的 管理建议
项目的成功要依赖于项目管理团队,项目管理团队不仅要完成管理整个项目的 任务,激励并指导其他各方完成相应的工作,而且还要为项目管理结构提供最根本 的支持。项目立项阶段管理,有以下的建议。
, 明确目标
第 4 页 共 25 页
软件产品/项目生命周期管理
项目管理团队的项目目标非常清晰,并且能用通俗易懂的语言将项目目标表示 出来,使每一个人都明白这个目标,不仅使团队有更多的动力投入自己的时间与精 力,而且他们也能够做出更好的决策。
, 规划标准化、确切无误
在规划下一步工作时,尽最大可能使规划建立在标准化、确切无误的基础上。
, 简化项目因素
简单化是指合作方与项目团队成员之间协议的简单化、项目团队成员之间的关 系以及项目各项工作之间的关系简单化。
在设计项目规划时,项目管理层应该牢记:尽量简单化~
所以项目管理层应该尽量减少工作所涉及的因素,以及计划参加项目的各方数 量,重点考虑责任与能力。
, 与其他人有效合作
在项目管理中,与其他人有效合作的主要决定因素是:项目管理层设定的基本 行为准则与项目运营规则。在确定项目适当的运营规则和管理环境以后,至少还应 该在项目组织内建立信任。很明显,如果与参与方建立了信任关系,项目团队就可 以提高工作绩效。
此外,在许多情况下,即使网络与通信再发达,也无法替代工作现场的几个小 组的“默契交流”。当这些小组在一起工作时,会产生大量正式的与非正式的信 息,不要低估非正式交往的力量,非正式交往经常产生问题的创新解决方案,以及 减少项目组织内的各种矛盾与冲突。
2 项目启动阶段
在项目启动阶段,项目的规划将逐步成为现实,其中包括一些为了实现项目目 标而采取的实际措施与行动。在项目启动阶段,确定项目目标、前景评估,以及规
划的各种专业团队,都必须与领导项目的团队进行全面合作。所有团队都必须和项
目团队成员以及加入项目的或者与项目联系在一起的合作方进行合作与沟通。
在项目的这个阶段,最有可能在各个方面产生矛盾与冲突,会产生许多管理上 的挑战,特别是在大型复杂的项目中。有必要将项目的经济因素与各
第 5 页 共 25 页
软件产品/项目生命周期管理
方的工作联结起来,对项目参与各方反复灌输一些非正式的制度和行为规则 ; 有必要确立清晰的、各方共同接受的工作与资源计划;将另外一些人士可能拥有新 的、重要的信息,特别是那些负责项目实施的人考虑进来至关重要的。最后,以上 的所有工作都必须由项目管理团队来完成。在此阶段,有以下方面需要注意。
2.1 项目管理层必须关注的基本行为
如果要在项目启动阶段取得成功,项目管理层须关注以下基本行为。
, 整体目标和理念的传达要清晰
整体项目的前景、目标的说明和传达要清晰明确。任何规定明确的运作限制条 件、行为准则,以及非正式行为准则,都必须通过恰当的途径传达。并非所有的传 达都要以备忘录的形式出现,而可以通过各种形式进行传达,从书面的指令到为项
目各方相互交流而召开的非正式会议。
项目从开始就要传达希望项目各方遵守的一些行为准则和规定的信息,这些关 键规则的表述形式要简明扼要。
, 项目运作计划的传达
对于项目团队新增的成员和项目其他参与方,都需要把项目运作计划传达到, 目的是让项目所有相关人员都清楚地了解项目各项任务的关系。通常,项目管理方
所犯的错误是封锁了那些可以帮助项目其他参与方做出决定的信息。实际上,项目
管理层的一项重要工作是将这类信息充分传达到项目各方,使项目的所有人员以及 合同方都能据此形成正确的思维,做出正确的决策。
, 角色分工、责任和汇报关系的传达
在项目启动阶段,还有一项重要的工作就是角色分工、责任和汇报关系的传 达。项目组织中所产生的大量不必要的、非常耗费精力的冲突,起源于项目早期阶 段项目团队的各个成员没有清楚了解各自的角色定位与相应的责任。。
, 与项目团队成员和合作方签约
项目管理中的一项重要工作就是与项目团队成员和合作方签定合同。合同必须 清晰地列出各方所提供的价值以及任何能够提高工作绩效的激励措
第 6 页 共 25 页
软件产品/项目生命周期管理
施。
在完成项目任务方面,信任比合同更重要,而且信任要从项目开始时建立,信 任和良好的工作关系,只有通过公平合理地对待项目组织中的各方,以及每位人员 才能真正建立起来,因此,千万不要胁迫项目各方接受不现实的条款,也不要欺骗 他们接受不现实的资源约定。此外,合同协商是一个持续的过程,并不能在项目启 动阶段因为各方暂时达成一致意见就结束。 2.2 项目启动阶段的管理建议
从项目启动阶段重要的管理工作中,可以得出下面一些阶段性管理建议。
, 项目经理在实施计划时应该认识到自身的局限
在项目启动阶段,项目经理和项目管理团队经常犯一些不应该犯的错误,如在 沟通方面。 “项目早期阶段有三条重要规则:沟通,沟通,沟通~”
许多企业型项目组织在这个阶段会四分五裂:在企业型项目组织中,应该认真 制定项目启动阶段合理的时间表。通常,项目管理团队要花上大量超出计划的时 间,才能使项目真正启动,这种问题是由项目成员的一些不切实际的想法导致的。
因为在缺乏成熟的管理工具和技术的情况下,项目成员往往认为“我们应该马上采 取行动”~他们没有意识到在管理工具欠缺的时候,更需要多花时间进行项目成员 之间的协调。
, 建立备用资源
人们无法事先知道项目过程中会出现哪些错误,在项目资源计划中加上适当的 额外备用资源,可以应付一些错误的产生,从而确保项目成员仍有必要的资源进行 工作。如果在预算和时间上没有预留额外的资源,在项目中就不能应付意外情况的 发生。
在项目组织中有各式各样的“备用”安排。例如可以预留空余时间,鼓励项目 成员的创新活动。在项目预算中列出一定的可自由支配的资金,供项目关键的资源 提供者适量分配给那些试图“尝试”新作法的项目成员。
没有预备资源的计划,既不能鼓励项目成员创新,也无法使项目成员协作,解 决意料之外的难题。当项目的任何成员需要为别的成员提供额外帮助时,如果没有 备用的资源,就无法采取实际行动,甚至连设想合作都比较困
第 7 页 共 25 页
软件产品/项目生命周期管理
难。
, 尽量减少管理的层次和协调职位
参与协调的人越多,完成任务需要的程序也就越多。因此,在项目中应该设立 尽可能少的运作规则和汇报制度。为了提高创造性,使项目成员真正发挥才能,就 要让项目成员拥有一定的决策自由。总之,为了有效达到目的,集中控制和个人自 由之间要取得平衡。
大多数成功的项目一般都分解成几个子项目,分别由较小的团队来管理。这些 小型团队有明确的责任去完成指定的任务,同时也拥有一定的自由和职责做出决
定,从而达到预定的目标。这样,负责项目具体实施的人员不仅有责任,而且有一 定的权力,从而使项目得以成功地执行。
, 以人为核心
有许多项目经理有希望控制一切的欲望,这种欲望的根源通常是一种设想:即 通过个人管理控制一切可以降低失败的概率,从而提高成功的机率。个人式管理或 者集中式控制往往有一定的负作用。
项目中的成员并非因为受到监督才有动力进行工作,而且,一个人也不可能知 道每一件发生的事情,这并不是说项目管理层不应该了解、监控项目的进程,而是 希望项目管理层在尽可能的情况下扩大项目成员决策的范围,让那些拥有最有效信 息的项目成员做出具体的决定。位于项目组织的管理高层,并不意味着就能拥有最 有效的信息去解决实际中产生的问题。这再一次证明项目管理应该以人为核心。
项目管理层应该重点考虑项目成员的素质、他们是否适合所分配的具体工作, 以及他们如何完成相应的工作。项目管理层必须确保具有相应责任的项目成员得到 适当的培训去从事分配的工作,或者作为一种选择方案,项目成员愿意承担责任, 迅速熟悉新的工作领域。
, 适当的项目文化
项目管理层可能比较关注如何使项目顺利启动,不过,还有一项关键性工作就 是建立适当的项目文化。这项工作包括确定并强化各种非正式的项目运作规则,并 且使项目成员意识到自己是在做重要的事情。
当项目真正启动后,项目成员已经开始各自的工作,在项目中灌输更高
第 8 页 共 25 页
软件产品/项目生命周期管理
的目标和更适当的行为方式的机会就已经逐步消失了。项目管理层一定要确保 所有项目成员理解管理团队的理念,在项目执行过程中,强化管理层认可的行为, 公开指出管理层不认可的行为。
项目管理层的另一项重要工作是建立适当的总结和学习机制。这种总结学习的 机制可以是“讨论会”,项目成员在会上定期见面交流;或者是总结板报。只要能 使项目成员保持学习的热情和动力即可。 3 项目发展/成熟阶段
在每项工作都启动以后,项目的各项工作的进展都会加快。从责任者的角度而 言,在这个阶段项目的主角应该是项目团队或者个人以及此阶段的合作方。项目管 理的重点,也会随着项目从早期成熟阶段,转到更接近项目完成的比较成熟的阶 段。
3.1 工作流程
在项目发展成熟阶段,管理层的关键工作是持续保持项目的动力,以及管理正 在发展着的项目。大多数项目的主要问题不再是管理项目成员的个人工作,而是着 重处理项目发展过程中对其他方面能够产生影响的特殊事件和互动关系。因此,在 项目发展成熟阶段,管理工作的重点应该放在工作流程上,而不是项目团队中其他 成员的实际工作上。
3.2 关键路径
在项目工作网络图中存在一条数学意义明确的关键路径,项目过程中工作上的 一些微小延误都会改变关键路径。因此,项目管理层应该随时确认最新的关键路 径,并且及时通知项目组织中的每一位成员。
3.3 互相合作
关键的一点是项目小组之间的合作,而不是互相争夺资源。每一位项目成员都 必须理解合作的价值,而不能“狭隘地维护自己的利益”。项目组织中往往存在着 一种适度的竞争气氛,通常,健康的竞争气氛非常有利于项目组织的发展。
第 9 页 共 25 页
软件产品/项目生命周期管理
3.4 关键节点评估
在项目中有许多相互依赖、相互影响的工作,因此,一些工作的结果往往直接 影响到下一步的工作。项目管理层必须时刻审查相互依赖工作之间的变化,以及这 些变化对项目其他工作所产生的影响。许多项目失败的原因是由于一项工作的延误 产生的“多米诺骨牌”效应,该项工作与其他两项或者三项工作紧密相连,这项工 作的延误,导致其他的工作也相应延误。为了使项目重回正轨,需要动用关键资源 去完成该项工作,从而更进一步加剧“多米诺骨牌”效应。
对项目工作进行经常评估,标明相应的日期,可以为项目成员提供清晰的项目 工作座标图。这也确立了一项清晰的标准,即项目的每项工作都很重要,只有项目 所有的工作都顺利完成,整个项目才算真正成功。工作评估也实使项目成员真正了 解工作绩效的重要性。通过以下方面可以获得准确的绩效评估。
, 及时、准确的沟通
在项目管理的过程中,沟通必须非常真实,管理层应该及时劝阻或者惩罚任何 传递不正确沟通信息的项目成员,因为只有准确的数据,才能使项目评估总结工作 准确无误。
, 进行阶段性评估
获得准确绩效评估的方法是和关键项目成员一起采取阶段性评估,来总结整个 项目的进展。在开展的阶段性评估中,讨论已完成、未完成,以及即将实施的工 作,并做出正确的评估,参会的人员通常有外来服务商,他们可起到仲裁作用,并 能提出有用的建议。
, 建立外部评估委员会
在项目开始时就建立专门的外部评估委员会,外部评估委员会仅仅是项目的顾 问,对项目的进展做出阶段性评估,并且及时提供项目当前状况的独立评估报告。
评估委员会的组成人员不能从项目获得直接利益,也不能与项目有任何直接关 系,但是必须具备关于该项目所需的管理方法,或者所使用的技术等方面的专业知 识和技能。
第 10 页 共 25 页
软件产品/项目生命周期管理
3.5 维护组织沟通的渠道
当项目的各项工作有序展开的时候,项目管理层应担负起建立、维护组织沟通 渠道的任务,并且成为沟通的平台。成功的项目管理层应认识到,项目成员不仅需 要了解他们所从事的工作,也需要了解所从事工作的背景。关于维护组织的沟通渠 道主要包括几个方面。
, 外部因素对项目的影响
有效的项目管理层在项目各个小组成员直接提供帮助的情况下,应该随时关注 无法预料的各种外部影响。这些外来影响包括无法预料的管理规定与时间或者运 输、或者项目整体目标方面的变化等。
外部影响固然重要,便更重要的是项目管理团队,尤其是项目负责人忽略了项 目的外部环境。切记项目的许多恶性事件往往来自项目外部,而非内部。
, 临时会议的重要性
在创业型管理方式的项目中,临时会议非常重要,项目成员甚至可以每天用十 分钟讨论所遇到的问题、机遇以及项目目前的处境。这种临时会议不必每天都举 行,但是必须定期召开,让项目成员交流项目的现状以及其他各种信息,这些交流 比采取传统管理模式项目中的会议要重要得多。
, 如何提高沟通效果
管理层如何才能提高沟通效果呢,关键是实地调查研究,并真正回答项目成员 所提出的问题。许多成功的项目经理,总是毫不迟疑地公布项目的现状报告以供每 位项目成员参考,而且不会只报喜不报忧,关键是要让项目组织成员了解真实情 况。
3.6 对失败的管理
越来越多的人认识到“无失败”管理既不实际也不可取,如果一个组织没有经 历过任何失败,这说明该组织成员从来没有尝试过创新。因此,项目管理层应该做 的不是消除任何失败而是迅速识别出失败、并作出终止失败的行为,并且从失败中 汲取经验教训。
有许多项目经理宣称一些项目之所以成功并不是因为他们每一项工作都进展顺 利,而是因为他们更擅长于消除工作失败所产生的影响。由于意料
第 11 页 共 25 页
软件产品/项目生命周期管理
不到的情况时有发生,事情往往不会按照原计划那样发展,在项目中几乎每天 都有困难发生,重要的是迅速识别困难、理解困难的本质,找到并实施替代方案。
项目管理的根本在于解决所发生的失败,而并非建立一种不允许失败的组织。 在失败被视为“禁忌”的组织中,项目成员不会及时识别已产生的失败,因而导致 失败长期存在下去。
3.7 表彰
作为成功项目的重要特征,表彰是一种非常重要的项目管理行为,它可以使项 目成员获得成就感,以及对组织的归属感,另外,还可以使项目成员更加注重工作 的成绩,从而使项目顺利发展。任何项目完美的标志都是“取得成功”。
项目成功的最佳衡量方法是项目完成时的实际验收交付。
不过,许多成功的项目经理和项目组织把重点放在清晰的、阶段性的交付上来 获得整个项目的成功——他们通过表彰阶段性成绩来确保项目的整体成功。
在实际工作中,有许多项目经理非常关注项目费用率以及工作水准,这些确实 是比较有效的衡量标准,也是反映项目所用资源及工作效率的重要指标。
如果项目经理能够将项目分解成为清晰的、阶段性的工作产出,项目成员必须 真正按时交付这些任务,而且项目经理及时确认已交付的产出,那么,这个项目经 理就很有可能成功。
3.8 项目发展阶段的管理建议
从上述项目发展阶段管理层应该关注的工作中,可以引导出以下三项通用的管 理建议。
, 保持行为导向
许多项目管理团队在项目发展过程中变得筋疲力尽,从而容易疏忽大意,这是 复杂艰难的项目立项阶段以后出现的正常反映,项目领导团队应该通过各种管理手 段和人际方式重新建立项目发展的动力。
, 按阶段评估每项工作
第 12 页 共 25 页
软件产品/项目生命周期管理
阶段性评估可以较早发现那些微小的疏忽,从而避免以后酿成灾难性后果。
, 关注决策过程
项目管理层不仅需要关注项目成员所做的决定,以及决定的最终结果,而且要 关注项目成员是怎样做出决定的。项目管理层不可能查看每件事的决策过程,可 是,在项目的发展过程中,特别是在挑战性很强的工作中,项目成员采用的决策方 式有可能很不理想。在这种情况下,项目管理层应该分析项目成员所做的决策,帮 助他们了解错误想法出在什么时候。 4 项目完成阶段
项目管理层的关注重点应该是衡量并控制项目的最后几项要素。此时项目的关 键责任人,除了正在焦急等待项目最终产品或服务的项目客户之外,就是正在完成 各自工作的项目工作人员和合作方。
即使对于成功的项目而言,项目的完成阶段也都是最危险的时期,因为,如果 项目中的每件工作都进展顺利,项目人员就会很容易认为,项目将很快完成,态度 就会变得松懈。
另外,一些根本不可能取得共识的暗含协议,常常也会出现。
在项目的这个阶段,项目管理层产生大量的焦虑,而项目的客户或者主顾却抱 着过高的期望。在项目的这个阶段,需要大量认真的工作,项目管理层应该在项目 日常工作中发挥重要的积极作用,即使是参与管理的项目经理在这个阶段都要更加 直接地管理项目的各项工作。因此,在项目完成阶段,项目管理层要面临许多特殊 的挑战,这些挑战主要有以下方面。 4.1 确保每项关键工作顺利完成
许多项目人员以及合同方在最后阶段经常忽略一些对项目非常重要的微小因 素,因为在项目将要完成的时候,项目管理层已经失去了许多对项目合作方或者相 关人员的约束力。
因此,项目管理层必须使项目保持在持续运营的状态,在这个阶段,与项目中 关键人员和合作方每天开会,甚至一天开两次会,项目管理层要持续评估项目的运 作状况。这样做的原因是:在当前阶段已经没有时间进行漫长的沟通了,小的错误 可能随时阻碍项目的最后进程。
第 13 页 共 25 页
软件产品/项目生命周期管理
4.2 避免项目扩展
项目一些工作范围的扩大可能使项目完工期限延长,从而为项目的客户带来许 多困难,并且增加项目的成本。项目管理层应该理解这样一个事实,即这时项目人
员个人和合作方(特别是合同方)的本能意识,并不是完成工作,而是想扩大工作范 围,并继续下去。因为人类有一种“不负责”的本性,即愿意从事他所熟悉的事 物。因此,项目管理层必须仔细并迅速地开展工作,确保每一个项目成员和合同方 都按照明确的既定计划和方式完成各自的工作,并且结束与项目的关系。
4.3 帮助相关人员正常退出
帮助项目成员和合同方正常退出项目是一种商业行为,也是一种道德行为。在 项目中辛勤工作的人员,通常希望项目管理层帮助他们找到另一份工作,这件事情 非常耗费项目管理层的时间,但是对于项目涉及的各方都非常重要。
4.4 传递学习经验
项目管理层还要承担一项重要义务:将该项目中的经验传递给同类项目的下一 代项目管理者,项目管理层的工作重点应该放在项目记录和学习经验的整理方面。 由于要等到项目真正完成后才需进行项目的事后总结分析,那么,这个时候就是收 集相关资料的关键时期,因为随着项目成员和其他合作方的陆续离开,大量的数据 和记录极有可能丢失。
4.5 全力关注项目的完成阶段
对于项目管理层的一项最重要的管理就是:在项目完成阶段投入大量精力,并 且密切关注工作中的细节。
只有将成功的项目管理看作是在变化的环境中对人的管理,而不是一种按照预 先计划的任务实施的过程,项目管理才会既富有挑战性又有趣味性。
项目管理是以理解项目的目标而开始的。
项目是一项有计划的任务。项目管理涉及人力、资源、时间、技术目标,关系 到项目实施的结果,因此项目管理中需要注意的几个方面包括:项目的相同点、项 目管理与普通管理的差别、项目管理中常见的错误观点、过分地强调项目计划的重 要性的原因、项目管理方式、成功项目管理的基础条件。
第 14 页 共 25 页
软件产品/项目生命周期管理
软件工程 软件产品质量要求与评价(SQuaRE)商业现货(COTS)软件产品的质量 要求和测试细则
第 15 页 共 25 页
软件产品/项目生命周期管理
2、 软件测试的原则
软件测试从不同的角度出发会派生出两种不同的测试原则,从用户的角度出 发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可 以接受该产品,从开发者的角度出发,就是希望测试能表明软件产品不存在错误, 已经正确地实现了用户的需求,确立人们对软件质量的信心。
测试的原则就是从用户和开发者的角度出发进行软件产品测试的,通过测试, 可以为用户提供放心的产品,并对优秀的产品进行认证。
为了达到上述的原则,那么需要注意以下几点 :
1(应当把“尽早和不断的测试”作为开发者的座右铭
2(程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机 构来完成。
3(设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件, 特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。
4(一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很 大的关系。
5(对测试错误结果一定要有一个确认的过程,一般有 A 测试出来的错误,
评审会进行讨论和分析。 一定要有一个 B 来确认,严重的错误可以召开
6(制定严格的测试计划,并把测试时间安排的尽量宽松,不要希望在极短的时 间内完成一个高水平的测试。
7(回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误 出现的现象并不少见。
8(妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测 试文档
在测试实施之前,软件测试工程师必须确定将要采用的测试策略和测试方法, 并以此为依据制定详细的测试案例。而一个好的测试策略和测试方法必将给软件测 试带来事半功倍的效果,它可以充分利用有限的人力和物力资源,高效率、高质量 地完成测试。
第 16 页 共 25 页
软件产品/项目生命周期管理
那么,究竟如何才能确定一个好的测试策略和测试方法呢,一般来说,在确定 测试方法时,应该遵循以下原则 :
第一,要根据程序的重要性和一旦发生故障将造成的损失来确定它的测试等级 和测试重点 ;
第二,要认真研究测试策略,以便能使用尽可能少的测试用例,发现尽可能多 的程序错误,因为一次完整的软件测试过后,如果程序中遗留的错误过多并且很严 重,则表明本次测试是失败的,是不足的,而测试不足意味着让用户承担隐藏错误 带来的危险,同时反过来说如果过度测试则又会浪费许多宝贵的资源。我们需要在 这两点上进行权衡,找到一个最佳平衡点。
测试依据 :
《GB/T 25000.51-2010 软件工程 软件产品质量要求与评价(SQuaRE) 商业现 货(COTS)软件产品的质量要求和测试细则》
第 17 页 共 25 页
软件产品/项目生命周期管理
3、 软件测试的基本方法
软件测试的方法和技术是多种多样的。对于软件测试技术,可以从不同的角度 加以分类:从是否需要执行被测软件的角度,可分为静态测试和动态测试。从测试 是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测 试。
黑盒测试
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通 过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的 黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行 测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适 当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的 完整性。
黑盒测试方法主要有等价类划分、边界值分析、错误推测法、因果图等,主要 用于软件确认测试。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对 软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输 入都作为测试情况使用,才能以这种方法查出程序中所有的错误。
白盒测试
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过 测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结 构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的 功能,白盒测试的主要方法有逻辑覆盖、基本路径测试等,主要用于软件验证。
“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒” 法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查 程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条 路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规 范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路 径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。
第 18 页 共 25 页
软件产品/项目生命周期管理
第 19 页 共 25 页
软件产品/项目生命周期管理
4、 江苏软件测试公共服务平台工具介绍
项目全生命周期管理平台工具
序号 类型 产品名 产品描述 1 测试流程与方法 IBM Rational Method Composer 测试方法、流程 2 测试过程管理 IBM Rational Quality Manager 包括 需求、计划、用例、质量报表、测
Standard Edition 试自动化
3 HP Quality Center 包括需求管理、计划管理、执行管理、
缺陷跟踪管理、模板创建、负载均衡等
功能模块。
4 测试需求管理 IBM Rational DOORS 管理软件需求
5 测试资产管理 IBM Rational ClearCase 对资产进行版本化管理 6 测试缺 陷管理 IBM Rational ClearQuest 实现缺陷的管理和追踪,并生成多种报
告
IBM Rational Software Analyzer 基于规则的代码静态分析,主要针对 7 Developer Edition Java/J2EE
代码,也支持 C/C++的代码评审 白盒测试--静态测
试 8 IBM Rational Logiscope 基于规则的代码静态分析,主要 用于支持 C/C++代码,也支持
Java
9 白盒测试--动态测 IBM PurifyPlus Enterprise Edition 包括内存访问错误 检测 ;
试 (包括 Purify/ PureCoverage 和代码覆盖、函数覆盖检测 ;
Quantify 三个组件) 性能/嵌入式系统测试; 10 安全性测试 IBM Rational AppScan Standard 对基于 Web 的应用进行安全性测试
Edition
11 功能测试 IBM Rational Functional Tester 基于 Web、 Win32/Java 和.NET 应用功能测
试
12 含 Java, Web, ActiveX,
HP QuickTest Professional Oracle, .Net ,SAP 等所有开发语言及协 议插件
13 性能测试 IBM Rational Performance Tester 基于 Web 应用的性能测试
14 包含脚本录制工具、监控组件、 AnalyseHP LoadRunner9.2 等功能模块。
15 支持 flex 协议 HP LoadRunner9.5(英文版)
16 WEB 协议包, 250 并发用户许可。支持 Web
(HTTP/HTTPS/HTML)、 Web (Click and LoadRunner WEB 协议包 Script)、 MediaPlayer (MMS)、
RealPlayer 等协议测试。 17 J2EE/.NET 应用深层诊断工具。 HP Dignostic
第 20 页 共 25 页
软件产品/项目生命周期管理
工具技术及功能 :
测试流程与方法技术及功能
(1)提供项目计划模板和成功经验帮助团队快速定义项目目标、规划项目资源 和确定项目里程碑 ;
(2)提供完整的 IT 生命周期管理过程,帮助业务和 IT 部门的有效合作,保持 IT 项目和业务发展目标一致,提高 IT 的整体投资汇报率 ;
(3)提供功能强大的、可视化的、易用的过程定义工具,方便用户根据项目的 实际需要,定制出自己的 RUP 式的软件项目管理过程;
测试过程管理技术及功能
IBM Rational Quality Manager Standard Edition(RQM)
HP Quality Center(QC)
测试过程能够完成从需求、计划、设计、实施、执行到测试结果分析、测试报 告的自动生成整个测试生命周期的管理,包括 :
(1)能够完成通过测试需求覆盖率来评价测试完备性,并在测试需求发生变化 后,可自动显示可能需要修改的测试用例 ;
(2)能够完成基于目标的测试用例的层次化的分类管理和组织管理,批量地执 行一组测试用例,从而可以有效地进行自动化的回归测试 ;
(3)能够完成对自动执行测试用例和手工执行的测试用例的管理;
(4)能够根据实际测试执行的情况,自动的生成各种测试分析报告。 需求管理 技术及功能
IBM Rational DOORS(DOORS)
(1)Rational DOORS 和软件生命周期工具易于集成,可以集成 RQM 或者QC;
(2)可以自定义需求体系结构;
(3)可以自定义需求项目模板;
(4)具备需求到测试的跟踪能力,将需求用例和测试用例关联起来,为软件开
发提供全生命周期的跟踪能力 ;
(5)具备需求的属性定制能力和查询能力;
(6)具备需求管理流程定制、需求变更、需求审
展开阅读全文