【计算机】10 软件质量保证.doc
《【计算机】10 软件质量保证.doc》由会员分享,可在线阅读,更多相关《【计算机】10 软件质量保证.doc(55页珍藏版)》请在三一办公上搜索。
1、第十章 软件质量保证一、复习要求1. 了解软件质量保证、质量保证活动与质量检验的概念。2. 了解软件质量保证体系与质量保证的实施的概要。3. 了解正式技术评审概要。包括评审会议、设计质量和程序质量的评审。4. 了解软件配置管理的概念。包括配置项和基线概念、配置管理的主要工作。5. 了解软件工程标准化的概念。包括软件工程标准化意义、软件工程标准的制定与推行、软件工程标准的层次、软件工程的国家标准。6. 了解软件文档的概念。包括文档编制的要求、文档的作用、分类、文档的工作。7. 了解软件过程与过程改进的概念。包括过程分类与过程模型、剪裁过程、过程模型建造技术、软件过程改进。8. 了解软件过程能力评
2、估的CMM模型,包括过程成熟度的概念、软件机构的能力成熟度模型、关键过程域、关键实践的概念。9. 了解ISO 9000国际标准。包括质量管理、质量认证和质量审核的概念,ISO 9000系列标准的特点、科学依据、主要内容,以及ISO 9000-3标准。二、内容提要1. 软件质量保证(1) 质量保证的概念什么是质量保证?它是为保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动。质量保证是面向消费者的活动,是为了使产品实现用户要求的功能,站在用户立场上来掌握产品质量的。这种观点也适用于软件的质量保证。软件的质量保证就是向用户及社会提供满意的高质量的产品。进一步地,软件的质量保证活动也
3、和一般的质量保证活动一样,是确保软件产品在软件生存期所有阶段的质量的活动。即为了确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。它包括的主要功能如: 制定和展开质量方针; 制定质量保证方针和质量保证标准; 建立和管理质量保证体系; 明确各阶段的质量保证业务; 坚持各阶段的质量评审; 确保设计质量; 提出与分析重要的质量问题; 总结实现阶段的质量保证活动; 整理面向用户的文档、说明书等; 鉴定产品质量,鉴定质量保证体系; 收集、分析和整理质量信息。(2) 软件质量保证(SQA)活动软件质量保证由各项任务构成,这些任务的参与者有两种人:软件开发人员和质量保证人员。前者负责技术工
4、作,后者负责质量保证的计划、监督、记录、分析及报告工作。软件开发人员通过采用可靠的技术方法和措施,进行正式的技术评审,执行计划周密的软件测试来保证软件产品的质量。软件质量保证人员则辅助软件开发组得到高质量的最终产品。1993年美国SEI推荐了一组有关质量保证的计划、监督、记录、分析及报告的SQA活动。这些活动将由一个独立的SQA小组执行(或协助): 为项目制定SQA计划。该计划在制定项目计划时制定,由相关部门审定。它规定了软件开发小组和质量保证小组需要执行的质量保证活动,其要点包括:需要进行哪些评价?需要进行哪些审计和评审?项目采用的标准;错误报告的要求和跟踪过程;SQA小组应产生哪些文档?为
5、软件项目组提供的反馈数量等。 参与开发该软件项目的软件过程描述。软件开发小组为将要开展的工作选择软件过程,SQA小组则要评审过程说明,以保证该过程与组织政策、内部的软件标准、外界所制定的标准(如ISO 9001)以及软件项目计划的其它部分相符。 评审各项软件工程活动,核实其是否符合已定义的软件过程。SQA小组识别、记录和跟踪所有偏离过程的偏差,核实其是否已经改正。 审计指定的软件工作产品,核实其是否符合已定义的软件过程中的相应部分。SQA小组对选出的产品进行评审,识别、记录和跟踪出现的偏差,核实其是否已经改正,定期向项目负责人报告工作结果。 确保软件工作及工作产品中的偏差已被记录在案,并根据预
6、定规程进行处理。偏差可能出现在项目计划、过程描述、采用的标准或技术工作产品中。 记录所有不符合部分,并向上级管理部门报告。跟踪不符合的部分直到问题得到解决。除了进行上述活动外,SQA小组还需要协调变更的控制与管理,并帮助收集和分析软件度量的信息。(3) 质量保证与检验 检验在质量保证中的作用软件质量必须在设计和实现过程中加以保证。如果过程管理不力,软件开发环境或软件工具不够好,或者由于各种失误导致产生软件差错,其结果就会产生软件失效。为了确保每个开发过程的质量,防止把软件差错传递到下一个过程,必须进行质量检验。质量保证是面向消费者的,从质量保证的角度来讨论检查,下面几点应当明确: 用户要求的是
7、产品所具有的功能,这是“真质量”。靠质量检验,一般检查的是“真质量”的质量特性。 能靠质量检验的质量特性,即使全数检验,也只是代表产品的部分质量特性。 必须在各开发阶段对影响产品质量的因素进行切实的管理,认真检查实施落实情况。只有这样才能使产品达到用户要求,这比单靠检验来保证质量要有效、经济。 当开发阶段出现异常时,要从质量特性方面进行检验,看是否会给后续阶段带来影响,并对判断其好坏程度。从质量保证角度来看,此项工作极其重要。 虽然各开发阶段进展稳定,但由于工具支持不足等,软件产品不能满足用户要求的质量。这时可通过检验对该产品做出评价,判断是否能向用户提供该产品。 尽管各开发阶段进展稳定,但也
8、要以一定的标准检验产品,使其交付使用后保持稳定的质量水平。同时还要根据产品的质量特性,检查各个过程的管理状态。因此,检验的目的有二个。其一是切实搞好开发阶段的管理,检查各开发阶段的质量保证活动开展得如何;其二是预先防止软件差错给用户造成损失。 各个开发阶段中的检验为了切实做好质量保证,要在软件开发工程的各个阶段实施检验。检验的类型有: 供货检验:这是指对委托外单位承担开发作业,而后买进或转让的构成软件产品的部件、规格说明、半成品或产品的检查。由于委托单位、委托时间等情况差别很大,往往与质量相关的信息不完全,要想只靠供货时检查,质量很难保证。因此要调查接受委托单位的开发能力,并且要充分交流情况。
9、 中间检验阶段评审:在各阶段的中途或向下一阶段移交时进行的检查叫做中间检验或阶段评审。阶段评审的目的是为了判断是否可进入下一阶段进行后续开发工作,避免将差错传播到后续工作中,给后续工作带来不良影响,造成损失。 验收检验:确认产品是否已达到可以进行“产品检验”的质量要求。 产品检验:这是软件产品交付使用前进行的检查。其目的是判定向用户提供的软件,作为产品,是否达到了令人满意的程度。检验的实施有两种形式:实际运行检验(即白盒测试和黑盒测试)和鉴定。可在各开发阶段中结合起来使用。各开发阶段及阶段中的检验如图10.1所示。图10.1 开发阶段与相应的检验项目2. 软件质量保证体系与质量保证的实施(1)
10、 软件质量保证体系软件的质量保证活动,是涉及各个部门的部门间的活动。例如,如果在用户处发现了软件故障,产品服务部门就应听取用户的意见,再由检查部门调查该产品的检验结果,进而还要调查软件实现过程的状况,并根据情况检查设计是否有误,不当之处加以改进,防止再次发生问题。为了顺利开展以上活动,事先明确部门间的质量保证业务,确立部门间的联合与协作的机构十分重要,这个机构就是质量保证体系。图10.2和10.3是软件质量保证体系的图例。在质量保证体系图上,用户、领导、各部门横向安排,而纵向则顺序列出软件质量保证活动的各项工作。制定质量体系保证图应注意以下一些问题: 必须明确反馈途径。 必须在体系图的纵向(纵
11、坐标方向)顺序写明开发阶段,在横向(横坐标方向)写明组织机构,明确各部门的职责。 必须确定保证系统运行的方法、工具、有关文档资料,以及系统管理的规程和标准。 必须明确决定是否可向下一阶段进展的评价项目和评价准则。 必须不断地总结系统管理的经验教训,能够修改系统。仅靠质量保证体系图很难明确具体工作,因此必须制定质量保证计划,在这个计划中确定质量目标,确定在每个阶段为达到总目标所应达到的要求,对进度做出安排,确定所需的人力、资源和成本等等。图10.2 质量保证体系图例(程序检查) 在这个质量保证计划中包括的软件质量保证规程和技术准则应当 指示在何时、何处进行文档检查和程序检查; 指示应当采集哪些数
12、据,以及如何进行分析处理,例如,在每次评审和测试中发现的错误如何修正; 描述希望得到的质量度量; 规定在项目的哪个阶段进行评审及如何评审; 规定在项目的哪个阶段应当产生哪些报告和计划; 规定产品各方面测试应达到的水平。在计划中,在说明各种软件人员的职责时,要规定为了达到质量目标他们必须进行哪些活动。其次,要根据这个质量保证体系图,建立在各阶段中执行质量评价的质量评价和质量检查系统及有效运用质量信息的质量信息系统,并使其运行。图10.3 质量保证体系图(文档检查)(2) 质量保证的实施软件质量保证的实施需要从纵向和横向两个方面展开。一方面要求所有与软件生存期有关的人员都要参加,另一方面要求对产品
13、形成的全过程进行质量管理,这要求整个软件部门齐心协力,不断完善软件的开发环境。此外还需要与用户共同合作。 质量目标与度量为了开发高质量的软件,从计划阶段开始,不但需要明确软件的功能,还要明确软件应达到什么样的质量标准,即制定软件的质量目标。为了达到这个目标,在开发过程中的各个阶段进行检查和评价。在做质量评价时,需要有对质量进行度量的准则和方法,但更重要的是,需要有在软件生存期中如何使用这些准则和方法的质量保证步骤,以及提高该项作业效率的工具。软件质量度量和保证的条件通常有以下几项: 适应性:必须制定能适应各种用户要求、软件类型和规模的质量标准,并能够度量。 易学性:不需要特殊技术,软件技术人员
14、人人都容易掌握。 可靠性:对同一软件的评价,尽管评价的人或场合可能不同,但评价结果必须一致。 针对性:不是在检查时才改进质量,而必须从设计阶段起就确立质量目标,在各个阶段实施落实。 客观性:从各种不同角度加以评价,并将评价结果定量地表示,使得人人都能理解。 经济性:考虑如何才能把质量度量和保证所需要的费用控制在适当的范围内。 软件质量度量与保证的实施图10.4给出软件质量度量和保证系统在质量保证活动中的五个实施步骤: Target:以用户要求和开发方针为依据,对质量需求准则、质量设计准则的各质量特性设定质量目标。对各准则的重要程度可以设“特别重要”、“重要”、“一般”三级。 Plan:设定适合
15、于被开发软件的评测检查项目,与此同时还要研讨实现质量目标的方法或手段。 Do:在开发标准和质量评价准则的指导下,制作高质量的规格说明书和程序。在接受质量检查之前要先做自我检查。 Check:以Plan阶段设定的质量评价准则进行评价。算出得分,用质量图的形式表示出来,参看图10.5。比较评价结果的质量得分和质量目标,看其是否合格。 Action:对评价发现的问题进行改进活动,如果实现并达到了质量目标就转入下一个工程阶段。这样重复“Plan”到“Action”的过程,直到整个开发项目完成。Target研究质量特性及实现方法 设置质量度量准则 研究质量目标实现方法各阶段度量对象用户要求,开发方针设置
16、质量目标 设置质量特性指标 设置质量子特性指标Plan开发活动ActionDoCheck改进活动管理信息评测得分表质量图质量评价 设置质量度量准则 以得分和质量图表示 判断目标达到否?图10.5 软件质量度量与保证系统的管理图10.4 软件质量度量与保证体系的管理周期图10.5 质量图3. 正式技术评审(Formal Technical Review,FTR)人的认识不可能100符合客观实际,因此在软件生存期每个阶段的工作中都可能引入人为的错误。在某一阶段中出现的错误,如果得不到及时纠正,就会传播到开发的后续阶段中去,并在后续阶段中引出更多的错误。实践证明,提交给测试阶段的程序中包含的错误越多
17、,经过同样时间的测试后,程序中仍然潜伏的错误也越多。所以必须在开发时期的每个阶段,特别是设计阶段结束时都要进行严格的技术评审,尽量不让错误传播到下一个阶段。软件技术评审是软件开发人员实施的一种质量保证活动,FTR的目标是: 针对任一种软件范型,发现软件在功能、逻辑和实现上的错误。 验证经过评审的软件确实满足需求。 保证软件是按照已确定的标准表述的。 使得软件能按一致的方式开发。 使软件项目跟容易管理。此外,FTR还起到了提高项目连续性和训练软件工程人员的作用。FTR 包括了“走查”、“检查”、“循环评审”和其它的软件评审技术。每次FTR都以会议形式进行,只有在很好地计划、控制和参与的情况下,F
18、TR才有可能获得成功。(1) 评审会议每次评审会议都需遵守以下规定: 每次会议的参加人数3 5人。 会前应做好准备,但每个人的工作量不应超过2小时。 每次会议的时间不应超过2小时。按照上述规定,显然FTR关注的应是整个软件的某一特定(且较小)的部分。例如,不是对整个设计评审,而是逐个模块走查,或走查模块的一部分。通过缩小关注的范围,更容易发现错误。FTR的关注点集中于某个工作产品,即软件的某一部分(如部分需求规格说明、一个模块的详细设计、一个模块的源程序清单)。评审会议由评审负责人主持,所有评审人员和开发人员参加。FTR首先讨论日程安排,然后让开发人员“遍历”其工作产品,做简单介绍。评审人员根
19、据他们事先的准备提出问题。当问题被确认或错误被发现,记录员要将其一一记录下来。评审结束时,所有FTR的参加者必须作出决定: 接受该工作产品,不再做进一步的修改。 由于该工作产品错误严重,拒绝接受(错误改正后必须再次进行评审)。 暂时接受该工作产品(发现必须改正的微小错误,但不必再次进行评审)。当决定之后,FTR的所有参加者都必须签名,以表明他参加了会议,并同意评审组的决定。(2) 评审内容通常,把“质量”定义为“用户的满意程度”。为使得用户满意,有两个必要条件: 设计的规格说明要符合用户的要求; 程序要按照设计规格说明所规定的情况正确执行。我们把上述条件(1)称为“设计质量”,把条件(2)称为
20、“程序质量”。与上述质量的观点相对应,软件的规格说明可以分为外部规格说明和内部规格说明。外部规格说明是从用户角度来看的规格,包括硬件软件系统设计(在分析阶段进行)、功能设计(在需求分析阶段与概要设计阶段进行),而内部规格说明是为了实现外部规格的更详细的规格,即程序模块结构设计与模块处理加工设计(在概要设计与详细设计阶段进行)。因此,内部规格说明是从开发者角度来看的规格说明。将上述两个概念联系起来,则可以说设计质量是由外部规格说明决定的,程序质量是由内部规格说明决定的。下面讨论针对外部规格说明进行的设计评审。评审对象是在需求分析阶段产生的软件需求规格说明、数据要求规格说明,在软件概要设计阶段产生
21、的软件概要设计说明书等。通常,需要从12个方面进行评审。 评价软件的规格说明是否合乎用户的要求: 评审可靠性措施是否能避免引起系统失效的原因发生,而一旦发生后能否及时采取代替手段或恢复手段。 评审保密措施是否能实现。 评审操作特性实施情况。可从4个方面检查:操作命令和操作信息的恰当性;输入数据和输入控制语句的恰当性;输出数据的恰当性和应答时间的恰当性。 评审性能实现情况。一般来说,因性能设计是需要考虑多方面因素的复杂工作,因此,应明确规定性能的目标值。性能目标设定条件的恰当性;明确性能的评价方法。 评审软件是否具有可修改性。需要考察系统是否具备以下功能:检测故障的功能,获取分析数据的功能;区分
22、问题根源的方法;故障修正的方法。 评审软件是否有可扩充性。 评审软件是否具有兼容性。 评审软件是否具有可移植性。 评审软件是否具有可测试性:为保证软件在修改或扩充后的正确性,不仅要测试被修改或被扩充的部分是否能按规格执行,而且还应对该软件原有的功能经修改或扩充后是否能按以前的规格正确运行进行测试。 评审软件是否具有可复用性。 评审软件是否具有互连性:要求软件与其它软件应有共同接口,与其它软件之间的接口部分应是模块化的。程序质量评审是着眼于软件本身的结构、与运行环境的接口、变更带来的影响而进行的评审活动。通常它是从开发者的角度进行评审,直接与开发技术有关。 软件的结构。需要检查的项目有:数据结构
23、、功能结构、数据结构和功能结构之间的对应关系。 功能的通用性。 模块层次。包括模块的层次结构,与功能层次的对应关系。 模块结构。检查的项目有:控制流结构、数据流结构、模块结构与功能结构之间的对应关系,包括功能结构与控制流结构的对应关系;功能结构与数据流结构的对应关系。以及每个模块的定义。 处理过程的结构。对它的检查项目有:要求模块的功能结构与实现这些功能的处理过程的结构应明确对应;要求控制流应是结构化的;数据的结构与控制流之间的对应关系应是明确的,并且可依这种对应关系来明确数据流程的关系。 与运行环境的接口。主要检查项目有:与其它软件的接口;与硬件的接口;与用户的接口;变更的影响范围问题。4.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 【计算机】10 软件质量保证 10 软件 质量保证
链接地址:https://www.31ppt.com/p-2884709.html