当前位置:文档之家› 软件质量管理体系建设方案

软件质量管理体系建设方案

关于软件质量管理体系建设的方案参考资料:《cmmi3级软件过程改进方法与规范》《ISO9001:2000标准》修改记录:作者简介:软件企业质量经理、高级项目经理,联系方式__qq:317974257方案说明:参考了《cmmi3级软件过程改进方法与规范》、《ISO9001:2000标准》。

同时参考了业界同行写的相关方案或文章,吸收了他们的优秀见解。

1.引言 (3)1.1软件质量概述 (3)1.2公司软件质量现状分析 (3)1.3软件质量管理的特点 (4)1.4软件质量责任分配 (6)2.软件质量管理体系建设总体方案 (6)2.1进一步推动软件质量管理体系建设的原则 (6)2.2软件质量管理体系完善需要解决的主要问题 (8)2.3配置管理—实施软件质量管理的重要步骤 (8)2.4进一步完善我们的测试管理体系 (10)2.4.1.软件测试的组织与管理规划 (10)2.4.2.测试管理体系过程控制 (12)2.4.2.1测试流程模型 (13)2.4.2.2测试流程控制 (13)2.4.2.3测试小结 (15)2.5软件质量保证(SQA)的实施 (16)2.5.1.SQA概述 (16)2.5.1.SQA实施 (16)2.5.2.SQA与SQC区别与协作 (17)2.6全面软件质量管理 (18)2.6.1.全面软件质量管理 (18)2.6.2.全面软件质量管理的方法---制定质量管理计划 (19)2.6.3.全面软件质量管理的方法---技术评审 (19)3.结束语 (19)1.引言1.1软件质量概述随着信息技术的飞速发展,使软件产品应用到社会的各个领域,也造就了软件行业激烈竞争的生存环境,随着软件规模及复杂性急剧加大,软件质量已经成为人们共同关注的焦点。

技术是软件企业的生命,而质量则是它的灵魂,软件企业要在竞争中占有一席之地,软件质量保证是第一要素。

由此,软件质量的重要性是不言而喻的。

软件质量是指与软件产品满足规定的和隐含的需求的能力有关的特征和特性的总和。

通常来说,软件质量应该包含六方面的特性: 功能性、可靠性、易使用性、效率、可维护性、可移植性。

软件质量管理包括:软件质量计划编制、软件质量保证和软件质量控制三个过程域。

质量计划就是为了实现质量目标的计划,它主要结合各个公司的质量方针,产品描述以及质量标准和规则通过收益、成本分析和流程设计等工具制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。

质量保证(Quality Assurance ,QA)的目的是提供一种有效的人员组织形式和管理方法,通过客观地检查和监控“过程质量”与“产品质量”,从而实现持续地改进质量。

质量保证是一种有计划的、贯穿于整个产品生命周期的质量管理方法。

质量控制是对阶段性的成果进行检测、验证,为质量保证提供参考依据,它是一个PDCA循环过程。

1.2公司软件质量现状分析公司的软件开发历经多个生产个环节,产生大量的中间产品,每个环节都有可能带来产品质量问题;同时由于软件产品是逻辑体,不具备实体的可见性,因而难以度量,质量也难以把控,因此如何有效地管理软件产品的质量一直是我们面临的挑战。

虽然我公司在研发电力行业信息化相关软件方面取得很大成绩,但是其软件能力成熟度与国内同行业知名企业相比,还有一定的差距。

我公司研发的软件产品,除了产业规模偏小、自主创新能力不足之外,在易用性、可靠性、可移植性、可维护性、可扩展性及系统集成等方面也存在着一定的质量问题,导致“用户抱怨较多、产品投产后缺陷纠正过多、公司售后服务投入过大”的不利局面,制约了我公司在电力软件行业的持续快速健康发展。

究其原因,可能是以下几种原因造成的:(1)对软件工程标准化重视不够。

(2)软件质量管理体系不健全,实施效果不佳。

(3)企业对测试工作投入不足,测试管理和测试环境有待完善,测试技术有待提升。

1.3软件质量管理的特点要解决软件的质量问题,同时保证开发的成本和项目的进度控制、解决研发中的诸多不规范问题,关键是要建立起完善的软件质量管理体系,把软件开发过程合理地监控起来,管理起来,进而达到提高产品的质量,控制产品开发的进度和成本的目的。

分析软件质量管理的特点,主要有以下几点:1、软件质量管理是贯穿软件研发的全过程,而不能仅局限于软件本身软件质量不仅仅是一些测试数据、统计数据、客户满意度调查反馈表等等,衡量一个软件质量的好坏,应该首先考虑完成该软件生产的整个过程是否达到了一定的质量要求。

在软件开发实践中,软件质量控制可以依靠流程管理(如需求管理、缺陷管理、配置管理、软件发布等),严格按照软件工程执行,确保软件的功能性、可靠性、易使用性、效率、可维护性、可移植性。

2、对技术文档的评审是控制软件质量的有效方式研发过程中的很多技术文档作为产品的组成部分,也需要像对产品一样进行检验,而对技术文档的评审就构成了产品检验的重要方式。

技术评审主要有以下好处:通过消除工作成果的缺陷而提高产品的质量;技术评审可以在任何开发阶段执行,不必等到软件可以运行之际,越早消除缺陷就越能降低开发成本;开发人员能够及时地得到同行专家的帮助和指导,无疑会加深对工作成果的理解,更好地预防缺陷,一定程度上提高了开发效率。

3、运用技术手段保证质量利用多种工具软件进行质量保证的各种工作,如用Svn软件进行配置管理、文档管理和软件变更控制。

采用先进的系统分析方法和软件设计方法(OOA、OOD、软件复用等)来促进软件质量的提高。

4、应用质量管理思想满足顾客需求●缺陷预防分析已经产生的缺陷并采用相应的措施以避免这类缺陷重复出现, 找出并确定引起缺陷的通常原因。

不公如此,还要规划缺陷预防活动, 对引起缺陷的通常原因划分优先级并系统地予以消除。

紧紧抓住用户需求充分地满足客户的需求,不管是付钱的顾客,还是软件的使用者,都要尽可能地满足。

采用快速原型法,尽快演示(Demo)给用户并及时获取用户的反馈,根据用户的反馈不断修改软件,而不是全部完工后再最后交给用户。

否则,要改的地方可能很多。

甚至推翻重来。

充分设计之后再编码,防止因考虑不周而造成返工。

●牢牢控制对缺陷的修改通过诸如TD之类的强大的软件缺陷管理平台,记录、跟踪和控制软件缺陷的修复。

●对软件进行充分的系统测试在软件通过集成测试后,还需要进行充分的、完整的系统测试和回归测试,直至所有的缺陷关闭为止。

●把握软件放行的尺度商业目标决定质量目标。

提高软件质量的最终目的是为了赢利,而不是创造完美无缺的产品。

因此对于普通商业软件而言,并不是“质量越高越好”,而是恰好让广大用户满意,并且将提高质量所付出的代价控制在预算之内。

软件零缺陷几乎是不可能的,对遗留的缺陷要进行充分分析,只要能满足用户需求,软件遗留的缺陷可以在今后升级版本中解决。

1.4软件质量责任分配我们公司已经建立了初步的研发管理体系,项目开发具备一定的规范化,在研发流程上采用ISO9001:2000的标准进行。

我们公司目前每个项目除配备了项目开发所需角色外,还专门配备了配置管理组、测试组和质量保证组(目前此角色由项目管理部的监理来履行此项职责,但尚未真正开展活动)确保软件质量管理的实施,下面针对这三种角色进行说明:2.软件质量管理体系建设总体方案软件的质量的重要性日益凸现,国内大型软件企业不断在CMMI上投入大量资源提高软件能力成熟度,而中小软件企业也纷纷积极行动起来,不断改进软件质量。

目前我公司实施软件质量管理在过去一段时间效果不是太好,分析其原因,可能有以下几点:1、公司过去面对的是项目多,项目杂的复杂情况。

因此无暇在软件质量的方面投入过多的资源。

2、公司是项目型软件企业,主要以承接客户的委托开发项目为主,它主要的关注焦点是在项目的合同期内,在项目成本许可的条件下,交付出客户满意的开发项目。

而软件质量并没有成为大家关注的焦点,暂时也不会影响公司的生存。

3、在实施的过程中,易发生质量控制人员和研发人员的矛盾,降低实施的有效性;因此针对我公司质量管理实践的现状,我们不能操之过急,急于求成,应该对质量管理体系的建设进行有计划有步骤的稳步规划和推进,特别需要根据客观情况,制定一定的实施原则,才可能有效地推动公司软件质量管理工作。

2.1进一步推动软件质量管理体系建设的原则1、首先作检验型质量管理,再延伸至过程型质量管理所谓的检验型质控,是指在产品在某个阶段结束的时候,通过有效的评审和测试验证其是否达到了预期的质量需求,主要的步骤有需求评审、概要设计评审、详细设计评审、代码走查或评审、测试、测试评审等过程。

而过程型质控是针对软件研发过程的不断改进,来提高软件的质量。

在中小软件企业中提倡首先作检验型质控,再作过程型质控是基于下面的几点考虑:首先,检验型质控(评审、测试)是解决显性问题的最有效方法。

通过检验型质控,使软件质量得到较快提高,增强质量人员和公司领导对公司质量管理工作的信心,为过渡到过程型质量控制奠定坚实的基础。

其次,目前普遍存在的软件研发人员质量意识薄弱,须通过有效的检验型质控为研发人员进行初级的质量意识教育。

当我们的检验型质控发展到一定的阶段,真正起到了作用后,再开始进行过程型质控的工作,使质量的深层次问题不断得到解决。

2、过程型质量管理要循续渐进,尊重客观规律,避免拔苗助长过程型质控是对研发工作流程的改动,这种改动对项目组成员来说改动了他过去多年形成的一些习惯,并且改动会增加项目组的工作量,这种改动或多或少地会遭受到项目组成员有意无意的抵制。

因此,在制定过程型质控方案的时候要判断好优先级,从最需要改动的过程着手,一步一步地做。

避免急于求成,使工作得不到研发人员的理解和支持。

3、软件质量管理是一种服务,需要经验丰富的质量管理人才才能够胜任质量管理实际上是对项目的一种质量服务,目的是对项目人员在质量上的一种帮助,帮助其发现问题、提供解决方法。

因此作为质量控制人员的能力需求上是比较高的。

同时,质量控制人员通过提供这种服务,能够拉近和研发人员的距离,研发人员能够更加接受过程型质控的改动,使质控工作的矛盾更小。

因此,建议从事质量管理的人员应该是从事较长时间项目研发、项目管理的人员,只有一个资历深的质量管理人员才能够真正地对项目研发提供一种高质量的服务。

4、加强相关人员的培训是工作中的重中之重培训工作应该包括两个方面的内容:一方面,在实施过程型质控过程中制定的过程、标准需要通过培训的方式来让所有的人员都理解并接受。

另一方面,需要通过培训的方式提高研发人员的质量意识。

只有质量意识提高了,才能大大减少质量管理人员的工作量。

2.2软件质量管理体系完善需要解决的主要问题1、识别和建立软件研发的过程通用的软件的研发过程一般归结为:项目立项-需求分析-概要设计-详细设计-编码-测试-运行维护。

相关主题