质量管理思想在软件项目开发中的应用研究

2014-04-26 05:02韩雪
商品与质量·消费研究 2013年12期
关键词:质量保证合格测试

韩雪

文章编号:ISSN1006—656X(2013)12-0064-02

一、软件质量管理的含义

美国项目管理专家资质认证委员会主席Paul Grace说过,在当今社会中,一切都是项目,一切也将成为项目。项目管理学科的发展,不管在国内还是国外,都进入了一个以超乎寻常的速度发展的阶段。软件项目管理作为一个新兴领域随着软件产业的蓬勃发展而愈发受人瞩目。而软件项目的质量始终是软件的核心竞争力,要真正实现和提高软件项目质量,做好项目质量管理就显得尤为重要。随着时代的发展,各企业的信息化程度越来越高,一旦软件使用过程中出现问题,对客户的影响将无法估计。

那什么是软件的质量呢?

国际化标准组织在ISOPIEC9126中将软件质量定义为:“反映软件产品满足规定需求和潜在需求能力的特征和特征的总和”。而M. J . Fisher 将软件质量定义为:“所有描述计算机软件优秀程度的特性的组合”。

软件项目质量管理指的是保证项目满足其目标要求所需要的过程,它包括编制质量计划、质量控制、软件质量保证、软件配置管理、软件测试及软件过程改进所形成的质量保证系统。软件项目质量管理包括:质量计划编制、质量保证和质量控制三个过程域。质量计划是质量管理的第一过程域,它主要结合各个公司的质量方针,产品描述以及质量标准和规则通过收益、成本分析和流程设计等工具制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。质量保证则是贯穿整个项目全生命周期的有计划和有系统的活动,经常性地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。质量控制是对阶段性的成果进行检测、验证,为质量保证提供参考依据,它是一个PDCA循环过程。

二、软件项目质量管理的主要内容

软件项目质量管理主要包括三个过程:质量计划、质量保证和质量控制。

(一)质量计划

现代质量管理的基本宗旨是:“质量出自计划,而非出自检查”。只有做出精准的质量计划,才能指导项目的实施、做好质量控制。 质量管理计划就是为了实现质量目标的计划。而质量目标则是由商业目标决定的。质量管理计划是全面质量管理的行动纲领。

所谓质量计划是质量管理的第一过程域,它主要指依据公司的质量方针、产品描述以及质量标准和规则等制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。

编制项目的质量计划,首先必须确定项目的范围、中间产品和最终产品,然后明确关于中间产品和最终产品的有关规定、标准,确定可能影响产品质量的技术要点,并找出能够确保高效满足相关规定、标准的过程方法。编制质量计划通常采用流程图、因果分析图等方法对项目进行分析,确定需要监控的关键元素,设置合理的见证点(W点)、停工待检点(H点),并制定质量标准。

质量在计划中确定,而非在检验中确定。质量计划包括计划哪种质量标注适合该项目并决定如何达到这些标注。在项目计划中,其是程序推进的主要动力之一,应当有规律地执行并与其他项目计划并行。

(二)质量保证。

所谓质量保证是贯穿整个项目全生命周期的有计划和有系统的活动,经常性地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。

(三)质量控制

质量计划确定后,按照其建立的质量管理体系,各责任单位就必须按照PDCA质量环的要求,实施有效的质量控制。质量控制应贯穿于项目的整个过程,它可分为监测和控制两个阶段:监测的目的就是收集、记录和汇报有关项目质量的数据信息;控制就是使用质量监测提供的数据,进行控制,确保项目质量与计划保持一致。

所谓质量控制是对阶段性的成果进行测试、验证,为质量保证提供参考依据,其具体包括:

(1)质量检测分析。在质量监测过程中,对于质量计划中设置的见证点、停工待检点,质量监测人员要按照作业程序及时进行测量检查(其中对于停工待检点必须由监理人员签字认可后才能进入下一道工序),以确定项目成果(或阶段成果)是否符合相关的质量标准。对于见证点或停工待检点要防止跳过检查,因为避免错误的成本总是大大低于补救错误的成本。 对质量监测的结果应采用相应的统计方法进行分析,如帕累托图法(按发生频率排序的直方图,它显示了可识别原因的种类和所造成的结果的数量)等。通过统计分析对人员、设备、参考资料、方法、环境等影响项目质量的因素进行监控,确定项目实施过程是否在控制之中,同时进行趋势分析,对一些偏向于不合格的趋势及早进行控制。 质量控制阶段应根据验收数据做出验收决定,确定是否进入下一步工序。对于质量监测中发现的不合格,应及时利用“因果分析图”等方法分析原因,并进行适宜的处置,保证不合格得到识别和有效的控制。不合格处置包括返工、返修、降级、让步放行、报废等形式。

质量监测分析时,对于已发现的不合格或潜在不合格,应制定相应的纠正措施或预防措施,以消除不合格或潜在不合格的原因,防止不合格的发生。纠正措施或预防措施制定后,应对质量计划进行相应的调整,保证项目的顺利实施。

(2)项目收尾。项目收尾包括项目评估和项目终止两个阶段。项目收尾阶段的质量控制是个非常重要而又容易忽视的内容。

(3)质量评估。项目质量评估不仅仅是在项目完成后进行,还包括对项目实施过程中的各个关键点的质量评估。项目质量评估看起来属于事后控制,但他的目的不是为了改动那些已发生的事情,而是试图抓住项目质量合格或不合格的精髓,以使将来的项目质量管理能从中获益。

(4)项目终止。项目收尾包括项目评估和项目终止两个阶段。项目收尾阶段的质量控制是一个非常重要而又容易忽视的内容。项目质量评估不仅仅是在项目完成后进行,还包括对项目实施过程中的各个关键点的质量评估。项目质量评估看起来属于事后控制,但它的目的不是为了改变那些已经发生的事情,而是试图抓住项目质量合格或不合格的精髓,以使将来的项目质量管理能从中获益。

项目终止阶段,是在决策项目终止后,检查项目文件资料完备,包括项目施工质量验评表、竣工报告等,同时进行项目总结。项目总结是一个把实际运行情况与项目计划不断比较以提炼经验教训的过程。通过项目质量计划和总结,项目过程中的经验和教训将得到完整的记录和升华,成为“组织财富”。

三、软件项目质量分析工具

(一)因果图

因果图又称鱼骨图或石川图,它侧重表示潜在问题之间的各种相关因素。通过因果图可以刺激思维和讨论,以便对问题进行深入讨论,寻找潜在的根源。

其主要步骤:

(1)确定讨论问题;

(2)挑选人员进行讨论;

(3)确定主要原因,画出问题框和主干箭线;

(4)确定下一级主要原因;

(5)确定各缺陷原因;

(6)画出整个因果图;

(7)分析原因及纠正行动;

(8)确定纠正行动。

(二)帕累托图

帕累托图是一种柱状图,其是按照对问题发生的频率或影响从大到小的方式进行排列,从而确定解决问题的先后顺序。

帕累托图是根据帕累托法则得来的。帕累托法则也称为80/20法则,它是一种统计规律。例如:社会上的80%财富掌握在20%的人手中,大约80%的问题目是因为20%的原因造成的。

通过帕累托图,管理人员可以很快找到那20%的主要原因并进行解决,使系统的质量得到迅度提升。

(三)控制图

控制图可以对开发过程中的质量参数进行采样,科学地分析其是随机波动还是异常波动,从而对开发过程中的异常趋势提出预警人,以便项目管理人员及时采取行劝,消除异常,从而达到提高和控制质量的目的。

对于开发环节中的某一特性,例如,对缺陷严重程度进行跟踪时,允许其出现级别较高的缺陷。只要在控制界限内的过程结果都是可以接受的,如果过程结果超出了控制界限,那通常称为失控。

四、提升软件项目质量管理的方法

(一)明确用户需求

明确用户的真实需求是非常重要的,在项目失败的案例中, 大部分是由于需求分析的不明确造成的。软件项目的需求决定了软件项目的功能和目标,目标不明确就没法制定下一阶段的工作计划,从而不能按质量完成整个软件项目。因此, 明确客户的真实需求, 是保证软件产品质量是否能合格使用的关键一环。需求分析是研发人员对系统需要做什么和怎样做的定义过程。从系统研发的过程得知,系统分析时犯下的错误,会在接下来的阶段被成倍的放大,越是在研发的后期,纠正分析时犯下的错误所花费的代价越是昂贵,也越发影响系统的工期和系统的质量。所以需求分析一定要做好、做细,确保需求分析的准确性,并做好需求变更风险评估与需求变更记录。

此外,软件项目负责人和需求的提出者应该尽可能早地分析项目的相关业务逻辑、明确软件项目的需求。项目需求明确的越早,就能够越早的制定开发计划,软件项目的开发质量就越容易得到保证。在项目的实施阶段,还需要对每个阶段的需求进行进一步明确,制定每个阶段的子计划,从而使得软件项目的开发得以分解。保证了每个子计划的开发质量,就能够保证整个项目的开发质量。

(二)实行软件测试

测试就是对软件产品的检验。软件测试的目的是根据用户需求检查系统是否符合项目合同与任务书规定的要求。项目测试分集成测试和系统测试,主要进行功能测试、健壮性测试性能一效率测试用户界面测试、安全性测试、压力测试可靠性测试安装/反安装测试等活动。测试过程通常在模拟环境中进行。只有通过了上述全部测试的软件,才可以称之为符合用户质量要求的合格的软件。

测试活动要尽可能覆盖整改项目过程,从最初的需求到部署阶段,都应该制订详细的计划并编制相应的文档,如测试计划测试用例文档测试报告等。通过测试活动尽可能早得发现每个阶段中软件存在的缺陷,以方便后续阶段的实施。在这测试活动过程中,我们应该遵守一条基本原则—按照用户需求进行测试。我们即不能为求速度而缩短测试规模,也不能忽视用户需求而提高测试要求。总之一切测试应该符合用户需求。

(三)进行代码走查

软件质量在很大程度上依赖于代码质量。在实际环境中对于同一项目而言,由于项目组成员的编程能力、习惯、风格、对需求的理解和个性的不同所开发的代码质量也不尽相同。再加上一些难以预测的人为因素由此带来的隐患将严重影响代码质量最终造成软件质量低下,使得用户无法正常使用并为以后的维护带来更大的工作量和难度。

程序员写代码时,要思路清晰,认真负责,好的程序是高内聚、低耦合,同时也是条理分明,结构科学的。但由于项目组中各个成员的能力、编码习惯各有不同,所开发的代码质量也不尽相同。因此, 在软件开发过程中引进代码走查是非常有必要的。在一段时间内或是规定的时间, 让程序员对其所开发代码的主要部分进行讲解, 不仅能促使开发人员自己提高开发代码的质量, 而且能够促进组内成员的交流和学习, 从而更有力促进软件质量的提高。

代码走查的作用是非常有效率的,它可以检查到其他测试方法无法监测的错误,好多的逻辑错误是无法通过测试手段发现的,许多项目证明这是一个很好的质量控制方法。

(四)提升人员的执行力和技术

高质量的软件产品,必须依靠热心于质量,以提高质量产品为荣的专业人士开发。因此控制开发过程中“人”的质量非常重要。很多时候导致企业缺乏核心竞争力的原因是执行力太差。对质量管理目的的偏差,是造成执行力低这一问题的很大因素。我们总是常常提到利润最大化这个词,如果开发公司不断盲目强调收益,而且是“用最小的投入获得最大的利益”。这会导致开发团队不得不最大限度地、甚至不择手段地去取得财务的增长,从而大大降低了他们的执行力。质量的目的只是为了解决销售,质量管理真正实现的根基就不存在。我们应当逐步让公司企业选择一种更和谐的盈利方式。使自己的开发团队去注重用户的感受,选择与客户、合作伙伴的长远利益。

此外,应当认识到软件行业中人才的重要性以及人才对软件质量的重要作用,特别是领头人的作用。一个项目的主管、开发经理、实施经理对项目的把控水平、相互之间的沟通、协调、配合,以及项目中其它人员之间的合作,是项目质量保证的关键。项目经理需要关注如何才能充分调动项目成员的积极性、主动性,激发他们工作热情和责任感等问题。除了采用目标激励、信任激励、职务激励等精神激励外,还要采取相应的物质激励手段,这些都可以有助于提高人员的执行力。

参考文献:

[1](美)项目管理协会 编著,王勇,张斌译.项目管理知识体系指南(第4版)(PMBOK指南).电子工业出版社.2009(08)

[2]朱少民.软件质量保证和管理.清华大学出版社.2007(01)

[3]陈淦.也谈软件项目管理中的质量保证.福建电脑.2006 (10)

猜你喜欢
质量保证合格测试
药品技术转移过程的质量保证分析
心理测试
不合格的洗衣工
不合格的科学家
检验检测机构的质量控制
心理小测试
测试
小测试:你对电子邮件上瘾了吗?