




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文件发行及分发状况分发部门收文章发行章份数发行部门变更履历No.版本修订日期修订内容修订者123456789101112131415161718制作审核批准张琦1 目的根据软件工程的特点和要求,建立完善的软件质量管理体系,合理控制软件产品的研发过程,不断改善软件的各项质量属性,努力提高软件产品的整体质量,最大程度地满足客户或用户的要求和期望,以适应不断变化的市场环境和要求,在激烈的市场竞争中以质量取胜,并可持续发展。2 定义2.1 软件质量软件质量一般可简单定义为:一个软件系统、组件或过程符合特定或潜在需求的程度,满足客户或用户的要求或期望的程度,优良或出色的程度。软件质量是许多质量属性的综合
2、体现,如正确性、功用性、可靠性、健壮性、可用性与易用性、性能与效率、可扩展性、可维护性、兼容性与可移植性、安全性等等。我们通过改善软件的各种质量属性,来提高软件的整体质量。对于企业而言,理想的软件质量目标不是尽善尽美和“零缺陷”,而是恰好让广大用户满意,并且将提高质量所付出的代价控制在预算之内。对于一个特定的软件产品,我们首先必须从商业和技术的角度出发,识别出哪些质量属性是客户最关心的,哪些质量属性对软件整体质量影响最大,把主要资源和精力用在最重要的质量属性上。只有这样,才能给出提高软件质量的有效措施。2.2 软件质量保证软件质量保证(Software Quality Assurance,SQ
3、A)是建立一套有计划的系统的方法,来向管理层和客户保证拟定的制度、标准、规程、步骤、实践和方法能够正确地被所有软件项目所采用,目的是使软件过程对于管理人员和客户来说是可见和可控的。SQA通过对软件产品和活动进行评审和审计来验证软件是否合乎既定的标准和规范,重点是对软件开发过程进行监督、管理和控制。SQA对于保证质量而言,只是必要的手段,而非充分的手段。2.3 软件质量控制软件质量控制(Software Quality Control,SQC)是一项或一系列确认软件产品是否满足标准的活动:度量软件产品实际的质量属性,并与标准和需求比较,当发现差异时采取措施和行动。SQC可在软件开发过程中的任何一
4、点对软件产品进行评估和验证。SQC主要通过软件测试、技术评审和代码走查等实现。SQA强调事先预防和过程检查与监督,而SQC则侧重于事后验证与控制。3 范围软件质量管理主要包括确定质量方针、目标和职责,并通过质量体系中的质量控制、质量保证和过程改进来使其实现的所有管理职能的全部活动。在质量方针指导下和在良好的质量文化氛围里,质量管理发挥指挥和控制组织的质量活动,协调质量的各项工作,包括质量控制、质量保证和过程改进等的作用。软件质量管理贯穿了整个软件开发生命周期,不仅确保项目最终交付的产品满足质量要求,而且要保证项目实施过程中阶段性成果的质量,包括软件需求和产品定义的质量、软件系统设计和代码的质量
5、,以及其它各种项目和工程技术文档的质量,等等。4 职责SQA1) 从流程上对软件质量进行跟踪、控制和改进,即监督软件项目按已定义的流程进行,并符合已定义的相关标准;2) 制定质量方针和质量计划,提出质量目标和要求,明确质量保证工作要采用的质量控制方法、技术和工具等;3) 质量计划的实施、检查控制和总结;4) 组织技术评审,包括对软件产品、技术、文档,以及软件流程和管理过程等方面的评审;5) 测试过程的检查和控制,找出明显不符合规范的测试过程和工作成果,及时指导测试人员纠正错误;6) 缺陷预防和跟踪分析。软件测试1) 根据软件工程规范,制定测试规范和测试标准,设计测试策略和测试流程;2) 参与软
6、件产品的需求分析,了解技术和架构设计,关注需求和设计的可测性,预先评估项目的风险;3) 制定测试计划,搭建测试环境、设计测试用例、编写测试脚本、执行测试;4) 缺陷的记录、分析、提交和跟踪等;5) 向项目干系人提交软件测试报告和产品质量评估报告;6) 设计和开发自动化测试工具或系统,不断总结和积累测试过程的最佳实践和经验;7) 推动测试流程、方法和工具等的持续改进和创新,努力提升测试的质量和效率;8) 测试团队的建设、管理及培训等工作。配置管理1) 制定软件配置管理策略和配置管理计划;2) 创建配置管理环境,并负责相关配置工具的日常管理和维护;3) 配置项的标识、管理和维护;4) 软件项目基线
7、、开发里程碑及发布等活动的管理;5) 版本控制和变更控制的管理;6) 配置状态监控和报告;7) 配置审计;8) 组织和进行有关配置管理工作的培训。5 程序提高软件质量的基本手段是消除或减少软件缺陷。为了更好地管理软件产品质量,首先需要制定软件项目的质量计划;然后,在软件开发的过程中,需要进行技术评审和软件测试,并进行缺陷跟踪;最后对整个过程进行检查,并进行有效的过程改进,以便在以后的软件项目中进一步提高软件质量。5.1 软件质量管理模型通过分析质量要素和质量目标,制定合适的质量计划,整合技术评审、软件测试与纠错、过程检查、缺陷(或问题)跟踪等手段,在开发过程之中内建高质量。我们提炼出全面软件质
8、量管理的参考模型,如下图所示。软件产品或软件项目开发中的所有人员几乎都参与了质量活动,只是介入的时间和程度不同而已。5.2 软件质量管理的组织保证软件项目质量管理,首先要在组织上得到保证。组织上没有保证,就不会有人去制定质量计划,质量的控制和管理也难以得到落实。软件项目质量的组织保证如下图所示: 管理层:管理层具有很强的“质量第一”的意识,能制定有利于保证和提高软件质量的正确的方针和策略,在整个组织中营造良好的质量文化和氛围。整个组织的质量方针、质量文化体现了组织对质量总的追求,对项目的影响是非常大的,是项目质量工作的指导思想、基础和行动指南。 SQA组:软件质量保证团队主要是从流程上对软件质
9、量进行跟踪、控制和改进,即监督软件项目按已定义的流程进行,并符合已定义的相关标准。例如,要求项目组在开发过程中及时建立相关的文档,以及任何需求变更都要经过变更控制流程,批准之后还要进行配置项修改等。SQA组在职能划分上独立于项目组,但监督项目组的各项活动。 测试组:软件测试组负责对软件产品进行全面的测试,包括需求评审、设计评审、功能测试、性能测试、安全性测试等,从中找出所存在的缺陷。测试组主要是面向产品,进行事后检查,从而给出软件产品的质量评估。测试组是项目组的重要组成部分,和项目经理、产品经理、设计人员、开发组等一起工作,直至软件成功发布。在敏捷开发模式下,项目团队是跨职能的团队,不再分为开
10、发组和测试组,但可以有测试人员角色,而且也鼓励开发人员做更多的测试。 SEPG组:软件工程过程组通常由软件专家组成,在软件开发组织中领导和协调过程改进的小组。其主要任务是推动企业所应用的过程的定义、维护和改进。和SQA相比,SEPG类似于一个“立法”机构,而SQA则类似于一个“监督”机构。SEPG一般负责组织的过程定义,但也可以帮助项目进行过程裁剪,从而使项目流程更有效。5.3 质量计划质量计划是进行软件项目质量管理、实现软件项目质量方针和目标的具体规划,是软件质量管理的行动纲领,是项目管理计划的重要组成部分。软件质量计划需要覆盖软件开发和维护的整个生命周期,即需要针对需求、设计、编码、测试和
11、部署等各项工作提出质量目标和要求,并就质量控制内容、方法和手段给出建议或指导,总体过程也经历4个阶段:计划的编制、实施、检查调整和总结。5.3.1 质量计划的主要内容 质量计划的目的和范围。 该质量计划参考的文件列表。 质量目标,包括总体目标和分阶段或分项的质量目标。 质量的任务,即在软件项目质量计划中要完成的具体任务说明,包括组织流程说明会、流程实施指导、关键成果(需求说明、产品定义、设计和代码等)的评审等。 参与质量管理的相关人员及其责任,如在软件开发的不同阶段,项目经理、产品经理、开发小组、测试小组、QA等负有什么样的责任。 为项目的一些关键文档(例如开发手册、测试计划、配置管理计划)提
12、出要求。 重申适合软件项目的相关标准,如明确地区分技术评审和文档评审的不同点等。 配置管理要求,如代码版本控制、需求变更控制等。 问题报告和处理系统,确保所有的软件问题都被记录、分析和解决,并被归入到特定的范畴和文档化,为将来的项目服务。 所要采用的质量控制工具、技术和方法等。5.3.2 质量计划的制定1. 了解项目的基本概况,收集项目有关资料。质量管理计划编制阶段应重点了解项目的目标、用户需求和项目的实施范围,还要考虑如何和风险计划、资源计划、进度计划等协调,避免冲突,达成一致。2. 确定项目的质量目标。先根据项目总体目标和用户需求确定项目的质量方针和总体目标,然后根据项目的组成与划分来分解
13、质量目标,建立各个具体的质量目标。3. 确定围绕质量目标的工作任务。从软件质量目标出发,比较容易确定所要开展的工作,包括评审、跟踪、统计分析等,从而确定所要进行的具体活动或任务。4. 明确项目质量管理组织机构。根据项目的规模、项目特点、项目组织、项目总体进度计划和已建立的具体质量目标,配备各级质量管理人员、设备资源,并确定质量管理人员的角色和责任,建立项目的质量管理机构,绘制项目质量管理组织机构图。5. 制定项目质量控制程序。项目的质量控制程序主要有:项目质量控制工作程序、初始的检查实验和标识程序、项目实施过程中的质量检查程序、不合格项目产品的控制程序、各类项目实施质量记录的控制程序和校验程序
14、等。6. 质量计划的评审。项目质量计划编制完成后,经相关部门审阅,并经项目负责人(或技术负责人)审定和项目经理批准后颁布实施。当项目的规模较大、子项目较多或某部分的质量比较关键时,也可以按照子项目或关键项目,根据项目进度分阶段编制项目的质量计划。5.3.3 质量计划的实施、检查控制和总结质量计划确定后,各责任单位就必须按照设定的质量目标来安排质量工作,开展相关活动,实施有效的质量控制。质量控制贯穿项目的整个过程,它通过收集、记录和分析有关项目质量的数据信息,确保质量计划得到贯彻执行,也可以根据实际情况对计划进行调整控制,适应市场和客户的新要求。在质量计划实施过程中,应该设置检查点、验证点,对阶
15、段性成果进行评审或完成质量评估,以确定项目阶段性成果是否达到所设定的质量标准。如果满足了质量标准,就可以进入软件生命周期的下一个阶段。如果不符合相关的质量标准,能使质量问题及早暴露出来,从而能够及时采取纠正措施或预防措施,以消除导致不合格或潜在不合格产品的原因,从根本上解决质量问题,避免发生更大的质量问题,还可避免最后一刻因质量问题使项目延期。项目收尾阶段的质量控制是一个非常重要而又容易被忽视的内容,它需要检查项目文件资料的完备性,包括评审会议记录、测试报告等,同时进行项目总结。项目总结是一个把实际运行情况与项目计划进行比较以吸取教训、提炼经验的过程。通过项目质量计划和总结,项目过程中的经验和
16、教训将得到完整的记录和升华,成为“组织财富”。5.4 技术评审5.4.1 技术评审的目的技术评审的目的是通过同行专家对工作成果的评审讨论,集众人智慧,尽早发现工作成果中的问题和缺陷,并帮助开发人员及时消除缺陷,从而有效地提高软件产品的质量,同时也是大家相互学习的好机会。技术评审的涉及面比较广,从软件产品、软件技术、软件文档到软件流程和管理等。因为评审的对象不同,其评审目的是不一样的。 当评审的对象是需求文档、产品定义、技术设计和代码等,主要目的就是能尽早地发现产品的缺陷,以前期较少的投入来消除后期大量的返工; 当评审的对象是软件技术时,主要目的是判断引入新的技术是否带来很大风险,技术是否适用当
17、前的研发环境等; 当评审的对象是软件流程、管理时,主要目的是发现流程、管理中存在的问题,加以改进。 当评审的对象是项目计划、测试计划、测试用例等时,主要目的也是发现问题,完善这些计划和文档。5.4.2 技术评审的方法1. 互为评审(Peer Review),或称同行评审。在软件团队里,容易形成一对一的伙伴合作关系,从而相互审查对方的工作成果,帮助对方找出问题。这种方法,由于两人的工作内容和技术比较接近,涉及人员很少,复审效率比较高也比较灵活,已成为软件工程的最佳实践之一,例如代码的互为评审,极限编程中的结对编程等。2. 走查(Walkthrough)。走查主要强调对评审的对象要从头到尾检查一遍
18、,比互为评审要求更严格一些,从而保证其评审的范围全面,达到预期效果。有时,也可以将走查和互为评审结合起来使用。走查还常用在产品基本完成之后,由市场人员和产品经理来完成这一工作,以发现产品中界面、操作逻辑、用户体验等方面的问题。3. 会议审查(Inspection)。会议审查是一种系统化、严密的集体评审方法。它的过程一般包含了制定计划、准备和组织会议、跟踪和分析结果等。对于最可能产生风险的工作成果,要采用这种最正式的评审方式。例如,软件需求分析报告、产品定义、系统架构设计和核心模块的代码等,一般都采用这种方式。4. 检查列表(Checklist)。在实际的技术评审过程中,不仅要采用合适的评审方法
19、,还需要选择合适的评审技术。检查列表就是一种简单有效的技术。例如,需求缺陷检查表或设计缺陷检查表列出容易出现的典型错误,作为评审的一个重要组成部分,帮助评审人员找出被评审的对象中可能的缺陷,提高评审质量和效率。5.4.3 评审角色和责任在评审过程中涉及多个角色,包括:作者、评审组长、评审员、读者和记录者等。虽然评审员是一个独立的角色,但实际上,所有的参与者除了自身担任的特定角色外,都在评审中充当评审员的角色。有时候,由于人员的限制,一个人可能充当多个角色,如评审组长也可以是读者和记录者。而在不同形式的评审中,角色也会发生一些变化。角色/职责审查评审走查主持者评审组长评审组长或作者作者材料陈述者
20、评审者评审组长作者记录员是是可能专门的评审角色是是否检查表是是否问题跟踪和分析是可能否产品评估是是否5.4.4 技术评审的过程技术评审,尤其是会议审查,是需要事先做好策划、准备和组织的。在举行评审会议之前,首先要做好计划,包括确定被评审的对象、期望达到的评审目标和计划选用的评审方法;然后,为评审计划的实施进行准备,包括选择参加评审的合适的人员,协商和安排评审的时间,以及收集和发放所需的相关资料;接着,进入关键阶段,召开会议进行集体评审,确定所存在的各种问题;最后,跟踪这些问题直至所有问题被解决。5.4.5 评审注意事项 明确自己的角色和责任。 熟悉评审内容,为评审做好准备,细致到位。 在评审会
21、议上关注问题,针对问题阐述观点,而不是针对个人。 可以分别讨论主要的问题和次要的问题。 在会议前或者会议后可以就存在的问题提出自己的建设性的意见。 提高自己的沟通能力,采取适当的、灵活的表述方式。 对发现的问题,要按重要性和紧迫程度,追踪到底。5.5 软件测试5.5.1 测试方法及分类5.5.2 测试与纠错的流程5.5.3 敏捷测试的流程5.6 缺陷预防和跟踪分析软件缺陷不仅仅局限于程序功能的问题,任何与用户需求不符合的地方(包括各类文档),都是缺陷。5.6.1 缺陷预防缺陷预防要求在软件开发生命周期的每个阶段实施根本原因分析(Root Cause Analysis),为有效开展缺陷预防活动提
22、供依据。通过对缺陷的深入分析可以找到缺陷产生的根本原因,确定这些缺陷产生的根源和这些根源存在的程度,从而找出对策、采取措施消除问题的根源,防止将来再次发生同类的问题。缺陷预防也会指导我们怎么正确地做事,如何只做正确的事,了解哪些因素可能会引起缺陷,吸取教训,不断总结经验,杜绝缺陷的产生。 从流程上进行控制,避免缺陷的引入,也就是定义或制定规范的、行之有效的开发流程来减少缺陷。例如,加强软件的各种评审活动,包括需求规格评审、产品定义评审、技术架构和设计评审、代码评审和测试用例评审等,对每一环节都进行把关,杜绝缺陷,保证每一个环节的质量,最后就能保证整体产品的质量。 采用有效的工作方法和技巧来减少缺陷,即提高软件工程师的设计能力、编码能力和测试能力,使每个工程师采用有效的方法和手段进行工作,有效地提高个体和团队的工作质量,最终提高产品的质量。5.6.2 缺陷记录和跟踪为了跟踪和分析软件的缺陷,所有的缺陷都要有相应的记录,而且便于筛选和过滤所需要的数据。换言之,进行缺陷跟踪和分析的必要条件是缺陷的有效收集。收集、记录和跟踪缺陷最好的方式是使用缺陷管理系统,例如Bugzilla、Bugfree、MantisBT、Jira,等等。5.6.3 缺陷分析缺陷分析是收集到的缺陷信息进行分类和汇总统计。通过缺陷分析,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门吊撞坏检讨书
- 施工人员资格备案表模板
- 农村互助性养老服务的资金筹集与使用策略
- 2025至2030年中国电分上稿油行业投资前景及策略咨询报告
- 2025至2030年中国环型工装板输送线行业投资前景及策略咨询报告
- 2025至2030年中国煤矿用局部通风机行业投资前景及策略咨询报告
- 体育教育毕业后干什么
- 2025至2030年中国滑动鼠标行业投资前景及策略咨询报告
- 2025至2030年中国涂料油漆新型添加剂行业投资前景及策略咨询报告
- 2025至2030年中国沥青罐车行业投资前景及策略咨询报告
- 2024年人教版一年级数学(下册)期末试卷及答案(各版本)
- 特种设备安全员守则内容
- DB50-T 1556.1-2024 医疗护理员服务等级评定 第1部分:普通患者护理员
- 2024年山东东营初中生物会考模拟试卷(解析版)
- 上海市八年级下学期数学期末考试模拟卷01-2023-2024学年上海市初中数学下学期期末全真模拟检测卷(沪教版)
- 2024年投资入股协议电子版(4篇)
- 《电力建设工程起重施工技术规范》
- 大学生在校表现证明模板3篇
- 4.彩泥蔬菜(一)(课件)-一年级劳动教育“小农庄”(校本课程)
- T-XLXH 012-2023 梨火疫病防治技术规程
- 2024年甘肃省初中《体育》学业水平考试参考题库(含答案)
评论
0/150
提交评论