质量,通常指产品的质量,广义的还包括工作的质量。
它反映了与产品质量直接有关的工作对产品质量的保证程度。许多几项目开发的系统应用在生死攸关的场合很多都是软件产品的质量出了问题。软件是一个纯智力的特殊产品,描述软件质量的定义则比描述实际物品质量定义面临着更多的潜在因素[2]。所以,在软件开发项目中认真抓好质量管理,并加强有关软件项目质量管理的研宄是摆在我们面前的重要课题。
1.质量的定义
1.1质量概念
质量是客户满意度的体现。ISO质量体系中,质量是一组固有特性满足明示的、通常隐含的或必须履行的需求或期望的程度。
质量的内涵是由一组满足客户及其他相关方所要求的固有特性组成,包括内在特性和外在特性:
1.1.1质量的客户属性
质量是相对客户而存在,也是质量相对性的一种体现。
1.1.2质量的成本属性
也可以称为质量的经济性,质量越好的产品,带给社会的损失就越小。
1.1.3社会属性
质量很多时候体现的是一种理念,是哲学而不仅仅是方法,它与社会的价值观有直接的关系。
1.1.4可测性
产品的质量好坏将取决对相应特征的衡量,质量的可测性决定了质量的可控特性。
1.1.5质量的可预见性
可以预测质量在不同过程中的结果。
2.戴明理论
戴明的重要成就之一就是“PDCA戴明环”理论,它将软件项目质量管理过程分为4个阶段,并且形成封闭的环路,以达到持续改进的效果。
(1) Plan(计划):制订提高质量的改进计划。
(2) Do(执行):执行计划。
(3) Check(检查):通过检查来判断是否达到期望的结果。
(4) Action(纠正):实施纠正行动。
3.项目质量管理过程
项目是在限定时间内、利用有限的资源、为完成有一定质量要求的目标而进行的一系列有序活动的一次组合。作为企业信息化软件项目管理,要想信息化项目软件取得成功,提高软件质量才是我们唯一出路。
软件项目的质量管理指的是保证项目满足其目标要求所需要的过程,它包括编制质量计划、质量控制、软件质量保证、软件配置管理、软件测试及软件过程改进所形成的质量保证系统。
现代质量管理的思想是:“质量是计划出来的,而非检查出来的”。只有做出精准的质量计划,才能指导项目的实施、做好质量控制'通常是以软件质量控制的结果作为其工作的重要输入,SQA要保证在质量体系中实施全部的计划和活动,以保证质量得到提高。
质量控制应贯穿于项目的整个过程,它可分为监测和控制两个阶段:监测的目的就是收集、记录和汇报有关项目质量的数据信息;控制就是使用质量监测提供的数据,进行控制,确保项目质量与计划保持一致。
4.项目质量管理实践应用
4.1质量管理责任分配
针对我这多年来承担软件开发和项目负责人的经验,我认为每个项目除配备项目开发所需角色外,还需专门配备配置管理小组、测试小组和质量保证小组。配置管理小组负责整个项目配置项的管理,保证了项目了配置质量管理;测试小组负责整个软件项目软件过程产品测试质量的管理,同时把握是否用户的需求是否得以实现;质量保证小组对项目经理提供项目进度与项目真正开发时的差异报告,提出差异原因和改进方法。
4.2项目开发的各阶段质量保证
4.2.1需求分析阶段
需求分析是开发人员对系统需要做什么和如何做的定义过程。这是一个循序渐进的过程,只有不断地和客户领域专家进行交流确认,方能逐步明了用户的需求。在项目中我经常邀请用户参与需求评定,然后对其用户的意见由质量保证成员跟踪检测是否纳入需求规格说明书,同时与用户签字确认形成需求基线,当对于无法实现或是变更会带来巨大的影响要通知用户进行讨论形成一致意见,并签字确认。
4.2.2系统设计阶段
优良的体系结构应当具备可扩展性和可配置性,而好的体系结构则需要好的设计方法,建议解决方法是项目组成员采用集中办公,分块学习,学习的成果马上向项目相关人员发布,再由配置管理员对其发布的文档进行整理、归类放入配置库以供大家共享。重要的环节是设计阶段需要进行项目设计评审,保证项目设计质量。
4.2.3实现阶段
实现是代码的生产过程。这里不仅包括代码的产生,同时也包括测试用例的产生。针对上一阶段提供详细设计,程序员开始编码并且调试程序,测试人员则根据设计进行测试用例的设计,设计出来的用例需要得到项目组成员认可由项目经理审核通过才能进入配置库。同时程序员调试完程序提交测试人员进行程序正确性检测。
4.2.4测试阶段
测试就是对软件产品的检验。软件测试的目的是根据用户需求检查系统是否符合项目合同与任务书规定的要求。项目测试分集成测试和系统测试,主要进行功能测试、健壮性测试、性能一效率测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等活动。测试过程通常在模拟环境中进行。只有通过了上述全部测试的软件,才可以称之为符合用户质量要求的合格的软件。
4.2.5上线运维阶段及项目验收
维护小组的任务一方面是保证对项目客户的跟踪服务,另一方面是确保该项目其它的开发人员从项目中尽快的解脱出来以便投入到下一个项目的开发中。对于一般性的错误,如操作不当等引起的问题,全部由维护小组执行完成,但需要用户测试确认上线。如果较大的修改则需要走变更控制流程,用户或者维护人员填写变更申请,经专家会议讨论分析可行方案在由维护小组实施,通过测试后方可提交用户。
根据上线试运行发现的问题后进行问题分析,并制定详细的解决系统运维过程中出现的系统Bug,控制好系统运行维护质量,针对验收项目时,注重验收过程的质量控制,成立验收委员会,进行初验及终验,最终完成真个软件工程项目的验收。
汪忆 重庆工程学院,重庆400056