软件质量管理体系建设方案cjoe.docx
《软件质量管理体系建设方案cjoe.docx》由会员分享,可在线阅读,更多相关《软件质量管理体系建设方案cjoe.docx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于软件质量管理体系建设的方案参考资料:cmmi3级软件过程改进方法与规范 ISO9001:2000标准修改记录:版本修改内容描述作者日期备注1.00第一版zhanlinhui2009/03/061.01增加“测试管理体系”章节zhanlinhui2009/05/15批准: 审核: 作者简介:软件企业质量经理、高级项目经理,联系方式_qq:317974257方案说明:参考了cmmi3级软件过程改进方法与规范、 ISO9001:2000标准。同时参考了业界同行写的相关方案或文章,吸收了他们的优秀见解。目 录1.引言21.1软件质量概述21.2公司软件质量现状分析31.3软件质量管理的特点41.4
2、软件质量责任分配52.软件质量管理体系建设总体方案72.1进一步推动软件质量管理体系建设的原则72.2软件质量管理体系完善需要解决的主要问题82.3配置管理实施软件质量管理的重要步骤92.4进一步完善我们的测试管理体系102.4.1.软件测试的组织与管理规划112.4.2.测试管理体系过程控制132.4.2.1测试流程模型142.4.2.2测试流程控制142.4.2.3 测试小结162.5软件质量保证(SQA)的实施162.5.1.SQA概述162.5.1.SQA实施172.5.2.SQA与SQC区别与协作182.6全面软件质量管理192.6.1.全面软件质量管理192.6.2.全面软件质量管
3、理的方法-制定质量管理计划192.6.3.全面软件质量管理的方法-技术评审203.结束语201.引言1.1软件质量概述随着信息技术的飞速发展,使软件产品应用到社会的各个领域,也造就了软件行业激烈竞争的生存环境,随着软件规模及复杂性急剧加大,软件质量已经成为人们共同关注的焦点。技术是软件企业的生命,而质量则是它的灵魂,软件企业要在竞争中占有一席之地,软件质量保证是第一要素。由此,软件质量的重要性是不言而喻的。软件质量是指与软件产品满足规定的和隐含的需求的能力有关的特征和特性的总和。通常来说,软件质量应该包含六方面的特性: 功能性、可靠性、易使用性、效率、可维护性、可移植性。软件质量管理包括:软件
4、质量计划编制、软件质量保证和软件质量控制三个过程域。质量计划就是为了实现质量目标的计划,它主要结合各个公司的质量方针,产品描述以及质量标准和规则通过收益、成本分析和流程设计等工具制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。质量保证(Quality Assurance ,QA)的目的是提供一种有效的人员组织形式和管理方法,通过客观地检查和监控“过程质量”与“产品质量”,从而实现持续地改进质量。质量保证是一种有计划的、贯穿于整个产品生命周期的质量管理
5、方法。质量控制是对阶段性的成果进行检测、验证,为质量保证提供参考依据,它是一个PDCA循环过程。1c d)EMs:b&p7u Q7f48371 1.2公司软件质量现状分析公司的软件开发历经多个生产个环节,产生大量的中间产品,每个环节都有可能带来产品质量问题;同时由于软件产品是逻辑体,不具备实体的可见性,因而难以度量,质量也难以把控,因此如何有效地管理软件产品的质量一直是我们面临的挑战。虽然我公司在研发电力行业信息化相关软件方面取得很大成绩,但是其软件能力成熟度与国内同行业知名企业相比,还有一定的差距。我公司研发的软件产品,除了产业规模偏小、自主创新能力不足之外,在易用性、可靠性、可移植性、可维
6、护性、可扩展性及系统集成等方面也存在着一定的质量问题,导致“用户抱怨较多、产品投产后缺陷纠正过多、公司售后服务投入过大”的不利局面,制约了我公司在电力软件行业的持续快速健康发展。究其原因,可能是以下几种原因造成的:(1)对软件工程标准化重视不够。(2)软件质量管理体系不健全,实施效果不佳。(3)企业对测试工作投入不足,测试管理和测试环境有待完善,测试技术有待提升。1.3软件质量管理的特点要解决软件的质量问题,同时保证开发的成本和项目的进度控制、解决研发中的诸多不规范问题,关键是要建立起完善的软件质量管理体系,把软件开发过程合理地监控起来,管理起来,进而达到提高产品的质量,控制产品开发的进度和成
7、本的目的。分析软件质量管理的特点,主要有以下几点:1、软件质量管理是贯穿软件研发的全过程,而不能仅局限于软件本身软件质量不仅仅是一些测试数据、统计数据、客户满意度调查反馈表等等,衡量一个软件质量的好坏,应该首先考虑完成该软件生产的整个过程是否达到了一定的质量要求。在软件开发实践中,软件质量控制可以依靠流程管理(如需求管理、缺陷管理、配置管理、软件发布等),严格按照软件工程执行, 确保软件的功能性、可靠性、易使用性、效率、可维护性、可移植性。 2、对技术文档的评审是控制软件质量的有效方式 研发过程中的很多技术文档作为产品的组成部分,也需要像对产品一样进行检验,而对技术文档的评审就构成了产品检验的
8、重要方式。技术评审主要有以下好处:通过消除工作成果的缺陷而提高产品的质量;技术评审可以在任何开发阶段执行,不必等到软件可以运行之际,越早消除缺陷就越能降低开发成本;开发人员能够及时地得到同行专家的帮助和指导,无疑会加深对工作成果的理解,更好地预防缺陷,一定程度上提高了开发效率。3、运用技术手段保证质量 利用多种工具软件进行质量保证的各种工作,如用Svn软件进行配置管理、文档管理和软件变更控制。采用先进的系统分析方法和软件设计方法(OOA、OOD、软件复用等)来促进软件质量的提高。 4、应用质量管理思想满足顾客需求l 缺陷预防 分析已经产生的缺陷并采用相应的措施以避免这类缺陷重复出现, 找出并确
9、定引起缺陷的通常原因。不公如此,还要规划缺陷预防活动, 对引起缺陷的通常原因划分优先级并系统地予以消除。 紧紧抓住用户需求 充分地满足客户的需求,不管是付钱的顾客,还是软件的使用者,都要尽可能地满足。 采用快速原型法,尽快演示(Demo)给用户并及时获取用户的反馈,根据用户的反馈不断修改软件,而不是全部完工后再最后交给用户。否则,要改的地方可能很多。甚至推翻重来。充分设计之后再编码,防止因考虑不周而造成返工。 l 牢牢控制对缺陷的修改 通过诸如TD之类的强大的软件缺陷管理平台,记录、跟踪和控制软件缺陷的修复。l 对软件进行充分的系统测试 在软件通过集成测试后,还需要进行充分的、完整的系统测试和
10、回归测试,直至所有的缺陷关闭为止。l 把握软件放行的尺度商业目标决定质量目标。提高软件质量的最终目的是为了赢利,而不是创造完美无缺的产品。因此对于普通商业软件而言,并不是“质量越高越好”,而是恰好让广大用户满意,并且将提高质量所付出的代价控制在预算之内。 软件零缺陷几乎是不可能的,对遗留的缺陷要进行充分分析,只要能满足用户需求,软件遗留的缺陷可以在今后升级版本中解决。1.4软件质量责任分配K _ Pxs0VFt$w48371我们公司已经建立了初步的研发管理体系,项目开发具备一定的规范化,在研发流程上采用ISO9001:2000的标准进行。我们公司目前每个项目除配备了项目开发所需角色外,还专门配
11、备了配置管理组、测试组和质量保证组(目前此角色由项目管理部的监理来履行此项职责,但尚未真正开展活动)确保软件质量管理的实施,下面针对这三种角色进行说明:51Testing软件测试网0hie.U-V S1、配置管理组职责51Testing软件测试网8J Dne!zUcC 配置管理组是保证项目开发完毕的同时,内部文档和外部文档都同时完成。内部文档的及时产生和规范,是保证项目开发各小组能够更好的接口和沟通的重要前提,从另一个方面讲,也是保证项目不被某个关键路径所阻塞而延滞的前提。如上所述,配置管理小组还是保证质量保证小组得以发挥作用的基础。配置管理小组的主要职责包括: 完善各个部门发送需要存档和进行
12、版本控制的代码、文档(包括外来文件)和阶段性成果; 对代码、文档等进行单向出入的控制; 对所有存档的文档进行版本控制; 提供文档规范,并传达到开发组中。2、测试组职责,sf$O:O7YN48371 测试组作为质量控制的主要手段,负责软件的测试设计和执行工作。如同软件开发一样,测试在执行之前,同样需要进行测试计划和测试策略的设计,通常情况下测试可以分为如下几种类型,如:功能性测试、性能测试、安全测试和系统测试等。而这些测试均需要在测试计划和测试策略中进行描述用以指导测试组成员进行测试用例编写和测试执行。程序员在交给测试人员之前应该是进行过一定的单元测试,确保程序编译、运行正确。51Testing
13、软件测试网2WD Z6RWh#M 测试人员只有根据软件需求规格说明书和详细设计说明书所提及的功能进行检测,才能确保项目组开发的软件产品满足用户需求。在正确性测试完成之后,需要测试的是软件的性能,软件的性能在本项目中占有重要的地位,性能要求有可能改变软件的设计,为避免造成软件的后期返工,测试在性能上需要较大的侧重。如果有必要的话,测试小组还需要做安全测试,以确保系统使用安全可靠。51Testing软件测试网;PszPRGW2i(NW3、质量保证组职责51Testing软件测试网4Wv%m 质量保证小组作为质量保证的实施小组,主要职责是保证软件透明开发的主要环节。在项目开发的过程中几乎所有的部门都
14、与质量保证小组有关。质量保证组对项目经理提供项目进度与项目真正开发时的差异报告,提出差异原因和改进方法。51Testing软件测试网:o M r0a)k)CL 在质量保证组认为某阶段开发质量有问题时,提请项目经理、项目负责人等必要的相关人员举行质量会议以解决当前存在的和潜在的问题。质量保证是建立在文档的复审基础之上,因而文档版本的控制,特别是软件配置管理,直接影响软件质量保证的影响力和力度。质量保证小组的检测范围包括:系统分析人员是否正确的反映了用户的需求; 软件执行体是否正确的实现了分析人员的设计思想; 测试人员是否进行了较为彻底的和全面的测试; 配置管理员是否对文档的规范化进行的比较彻底,
15、版本控制是否有效。&K$o7c%a&RB/t WDh48371 2.软件质量管理体系建设总体方案软件的质量的重要性日益凸现,国内大型软件企业不断在CMMI上投入大量资源提高软件能力成熟度,而中小软件企业也纷纷积极行动起来,不断改进软件质量。目前我公司实施软件质量管理在过去一段时间效果不是太好,分析其原因,可能有以下几点:1、公司过去面对的是项目多,项目杂的复杂情况。因此无暇在软件质量的方面投入过多的资源。2、公司是项目型软件企业,主要以承接客户的委托开发项目为主,它主要的关注焦点是在项目的合同期内,在项目成本许可的条件下,交付出客户满意的开发项目。而软件质量并没有成为大家关注的焦点,暂时也不会
16、影响公司的生存。 3、在实施的过程中,易发生质量控制人员和研发人员的矛盾,降低实施的有效性;因此针对我公司质量管理实践的现状,我们不能操之过急,急于求成,应该对质量管理体系的建设进行有计划有步骤的稳步规划和推进,特别需要根据客观情况,制定一定的实施原则,才可能有效地推动公司软件质量管理工作。2.1进一步推动软件质量管理体系建设的原则1、首先作检验型质量管理,再延伸至过程型质量管理 所谓的检验型质控,是指在产品在某个阶段结束的时候,通过有效的评审和测试验证其是否达到了预期的质量需求,主要的步骤有需求评审、概要设计评审、详细设计评审、代码走查或评审、测试、测试评审等过程。而过程型质控是针对软件研发
17、过程的不断改进,来提高软件的质量。在中小软件企业中提倡首先作检验型质控,再作过程型质控是基于下面的几点考虑:首先,检验型质控(评审、测试)是解决显性问题的最有效方法。通过检验型质控,使软件质量得到较快提高,增强质量人员和公司领导对公司质量管理工作的信心,为过渡到过程型质量控制奠定坚实的基础。其次,目前普遍存在的软件研发人员质量意识薄弱,须通过有效的检验型质控为研发人员进行初级的质量意识教育。当我们的检验型质控发展到一定的阶段,真正起到了作用后,再开始进行过程型质控的工作,使质量的深层次问题不断得到解决。2、过程型质量管理要循续渐进,尊重客观规律,避免拔苗助长 过程型质控是对研发工作流程的改动,
18、这种改动对项目组成员来说改动了他过去多年形成的一些习惯,并且改动会增加项目组的工作量,这种改动或多或少地会遭受到项目组成员有意无意的抵制。因此,在制定过程型质控方案的时候要判断好优先级,从最需要改动的过程着手,一步一步地做。避免急于求成,使工作得不到研发人员的理解和支持。3、软件质量管理是一种服务,需要经验丰富的质量管理人才才能够胜任 质量管理实际上是对项目的一种质量服务,目的是对项目人员在质量上的一种帮助,帮助其发现问题、提供解决方法。因此作为质量控制人员的能力需求上是比较高的。同时,质量控制人员通过提供这种服务,能够拉近和研发人员的距离,研发人员能够更加接受过程型质控的改动,使质控工作的矛
19、盾更小。因此,建议从事质量管理的人员应该是从事较长时间项目研发、项目管理的人员,只有一个资历深的质量管理人员才能够真正地对项目研发提供一种高质量的服务。 4、加强相关人员的培训是工作中的重中之重培训工作应该包括两个方面的内容:一方面,在实施过程型质控过程中制定的过程、标准需要通过培训的方式来让所有的人员都理解并接受。另一方面,需要通过培训的方式提高研发人员的质量意识。只有质量意识提高了,才能大大减少质量管理人员的工作量。 2.2软件质量管理体系完善需要解决的主要问题1、 识别和建立软件研发的过程通用的软件的研发过程一般归结为:项目立项需求分析概要设计详细设计编码测试运行维护。我们公司在研发流程
20、上采用ISO9000的标准进行,已经具备一定的规范性。我们可以应用ISO12207信息技术软件生存周期过程,对照CMMI软件能力成熟度模型框架,结合软件企业的具体情况,进行过程建模优化,这是建立一个适宜的软件质量管理体系的前提。2、 明确管理职责、调整组织结构第一步就是要进行软件质量管理情况诊断,根据企业的实际情况和依据ISO9001标准的要求,进行软件质理管理组织架构重构。第二步就是有明确岗位分工与职责,特别要明确与软件质量管理有关的岗位和职责,为建立软件质量管理体系打下基础,以适应建立软件质量管理体系的需要。由于公司在近几年一直再做软件质量管理的基础工作,因此这项工作具备一定的基础,例如:
21、构建了较稳定的配置管理体系、测试管理体系也在不断的改进之中。我们目前的最主要问题是在于缺乏一个有效的质量保证组织。3、 建立文件化工作程序。再好的管理方法如果没有写成文件化的程序,也是空谈。建立文件化程序就是为了将软件质量管理体系固化下来,相关的过程和操作都要做到有章可循。建立文件化程序的过程实际上是对流程的一次全面整理的过程。4、 解决好软件配置管理和软件变更控制。由于软件需求的不确定性,软件设计的变更是不可避免的。建立基线是加强变更控制的前提。在设计发生变更时软件的配置也必须随之改变,所以将软件配置管理作为一个关键过程纳入软件质量管理体系是一项重要的任务。2.3配置管理实施软件质量管理的重
22、要步骤软件配置管理简称SCM(Software Configuration Management的缩写),是在项目开发中,标识、控制和管理软件变更的一种管理。配置管理的目标是记录软件产品的演化过程,确保项目组成员在软件生命周期中各个阶段都能得到精确的产品配置。其最终目标是实现软件产品在其生命周期全过程中的一致性、完整性和可追溯性,使产品极大程度地与用户需求吻合。其主要工作和研究内容和包括:标识配置项、定义基线、建立配置库和基线库、控制配置项和基线的变更、做好配置项和基线的定期备份和异地备份、定期进行配置审计、及时报告配置状态。在软件质量体系的诸多支持活动中,配置管理处在支持活动的中心位置,它有
23、机地把其它支持活动结合起来,形成一个有机整体,相互促进,相互影响,有力地保证了软件质量体系的实施。从现在软件企业的发展战略来说,如何在技术日新月异、人员流动频繁的情况下建立本公司的知识库及经验库,把个人的知识及经验转变成公司的知识和经验,这对于提高工作效率,缩短产品周期,加强公司的竞争力具有至关重要的作用。同时良好的配置管理有利于规范管理,量化工作量考核,规范测试,加强协调和沟通。采用科学的配置管理思想,辅之以先进的配置管理工具,已经成为必不可少的手段。配置管理工作是一个默默无闻,不受人关注,但是极为重要的工作。这二年来,我们尽心尽责地配合所有项目组,为各个项目制定配置管理计划,建立配置管理系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 质量管理 体系 建设 方案 cjoe
限制150内