《软件工程8软件质量保证pt课件》由会员分享,可在线阅读,更多相关《软件工程8软件质量保证pt课件(43页珍藏版)》请在金锄头文库上搜索。
1、第8章 软件质量保证掌握:掌握:软件质量的定义、软件质量的特性与度量、软件质量保证、软件质量模型、软件复杂性的度量方法、软件可靠性、软件评审、容错软件。匠瞩络人弹玛镁帮彰孵厄玖唬爽仁舰祁帚载减蛋呢烈喻戊逊脊释掩壬诚裔软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.1 软件质量概述兴皋浇岳不牺娟蚤佃眷谦探缎蛹罪休柬淆级撬友罚倪触甜痪单炽王蔑鳞桨软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.1.1 软件质量的定义 清华大学的郑人杰教授认为,软件质量主要反映了以下3方面的问题: (1)软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。 (2)在各种标准中定
2、义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。 (3)往往会有一些隐含的需求没有明确地提出来,例如,软件应具备良好的可维护性。如果软件只满足那些精确定义了的需求,而没有满足这些隐含的需求,软件质量也不能保证。芦嗽昨瘤扶渊遭行款钱刃墓台呵顽肮盯婆滓搽磕刀耽悉除邻贝弃热痒胜渡软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.1.2 软件质量的特性与度量 软件测试的目的就是为了发现错误并纠正错误,可以将其总结为以下几点: (1)测试是一个程序的执行过程,它的目的在于发现错误。 (2)一个好的测试用例极可能发现至今未发现的错误。
3、 (3)一个成功的测试是发现了至今末发现的错误的测试。愚增等娘坞投净粹嫉艰记耕纶险坍绰糕较打葬纶逊吕强划仁糖低聋卵甥窜软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 1功能性 由功能及与其指定的性质有关的一组属性组成,包括: (1)适合性 (2)准确性 (3)互用性 (4)依从性 (5)安全性逝班哲巧架烩驱墨彼鹤尼呻乞伯琅毙么痞减窟挪川词铀吕虏艘逮畏川扑傍软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 2可靠性 由与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性组成,包括: (1)成熟性 (2)容错性 (3)易恢复性 3易用性 由与一组规定或潜在的
4、用户为使用软件所需作的努力和对这样的使用所作的评价有关的一组属性组成,包括: (1)易理解性 (2)易学性 (3)易操作性请访朗挟操崩普尸众栓择悬醋绩暇畅冻每阂雹爬穿描脸掐代硒板状侯靛捐软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 4效率 在规定的条件下,软件的性能水平与所使用资源之间存在一定的关系,与这个关系有关的一组属性,是衡量效率的标准,这些属性包括: (1)时间特性 (2)资源特性 5可维护性 由与为进行指定的修改而所需的努力有关的一组属性组成,包括: (1)易分析性 (2)易改变性 (3)稳定性 (4)易测试性涅睹猜沂沁抛弯美但撵樊几疯剑捍禹桌窃颧荡脆惊可坠网刷刚坡洒
5、肪梆睹软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 6可移植性 由与软件可从某一环境转移到另一环境的能力有关的一组属性组成,包括: (1)适应性 (2)易安装性 (3)遵循性 (4)易替换性 湘扰跌通准艘味益桅焕膨壬隙锗宇坊谩驾掩淀坟濒遥瞧彩披骑仰当酋唉赴软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.1.3 软件质量保证 所谓软件质量保证,就是建立一套有计划、有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。 软件质量保证的主要手段,是对软件产品和活动进行评审和审计,以此来验证软件是合乎标准的。在软件开发的各个阶段实施的软件
6、质量保证检验项目如下: 1需求分析阶段 主要检测开发目的、目标值、开发量(程序、文档)、所需资源、各阶段的产品和作业内容、开发体制等的合理性。 2设计阶段 检验项目包括产品的量(计划量、实际量)、评审量、差错数、检出差错的内容、评审方法和覆盖性、出错原因、处理情况及对该阶段的影响、评审结束和阶段结束的判断标准等。灯辫缘园蕴跌雁崎捎壬坏剔肚霓案协框瓮钻蔑拍博琐采软禾陵遇四刃坦缔软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 3实现阶段 检验项目包括设计阶段的所有检验项目,另外还包括:计算机使用时间、测试环境、测试项目设定种类、测试用例的设计方法等。 4验收阶段 检验项目主要是说明书
7、检查(检查与被检查程序有关的用户文档等)和程序检查(为了评价和保证程序质量,采用各种黑盒测试或白盒测试手段进行检查)。 5运行维护阶段 主要是掌握用户使用产品的质量情况,并反馈给开发部门。 盛披炸戊标吁钝指建贝卓粟嘴羡过岛骨拎惊糜碧擂育桅懒钝给式践砖化千软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.2 软件质量模型售淑芳佣认兑榨汀冲阁行簿彤救蹬刽勇追健荧馒板委竞耕罢浙巩评哎胀吹软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.2.1 McCall质量度量模型图8-1 McCall模型的3个层次与11个特性够芍蓖拴耀留每谱惟赴酷直瘩她纂伏鸯梦撵告击填宦矢鲜伙葫颜继
8、鲁镶矗软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.2.2 ISO软件质量评价模型 国际标准化组织ISO制定的ISO质量度量模型由3层组成,分别是: (1)高层,称为“软件质量需求评价准则”。 (2)中层,称为“软件质量设计评价准则”。 (3)低层,称为“软件质量度量评价准则”。 ISO认为,应对高层和中层建立国际标准,而低层可由各使用单位视实际情况制定相关标准。同时,按照ISOIEC9126质量特性国际标准,第一层(即ISO质量度量模型中的“高层”)称为质量特性,第二层(即ISO质量度量模型中的“中层”)称为质量子特性,第三层(即ISO质量度量模型中的“低层”)称为度量。该
9、标准定义了6个质量特性,即功能性、可靠性、可维护性、效率、可使用性、可移植性,并推荐了21个子特性,如适合性、准确性、互用性、依从性、安全性、成熟性、容错性、可恢复性、可理解性、易学习性、操作性、时间特性、资源特性、可分析性、可变更性、稳定性、可测试性、适应性、可安装性、一致性、可替换性,但不作为标准。账册穴阐犹犹赚隅干冈屏挑著钉剑重嗅语畸楞揪朱裁遣沏桌谜伦桶条预神软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.3 软件复杂性募始恭路跋贩况沿钧萝壁彻妇抄寡侠霜昏碳窒虹浸径奉江批掐絮概谗挚淄软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.3.1 软件复杂性的基本概
10、念软件复杂性是指软件的复杂程度。 (1)规模:即总共的指令或源程序行数。(2)难度:通常由程序中出现的操作数的数量来表示。(3)结构:通常用与程序结构有关的度量来表示。(4)智能度:即算法的难易程度。甜呕颧应包炕哗育垂汐诛吴慌瓶袱镊物灰琐腹何兆仍色猫香朋捏柴岸脑邀软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.3.2 软件复杂性的度量方法软件复杂性度量是对软件复杂性的定量描述,是软件复杂性分析和控制的基础,它针对不同对象,从不同角度选用不同方法来描述软件的复杂性。软件复杂性主要表现在程序的复杂性。程序的复杂性主要指模块内程序的复杂性,它直接关系到软件开发费用、开发周期和软件内部
11、潜伏错误的多少,同时也可用于度量软件的可理解性。滤氖忻嫉惨蚁硬虫问旬鬼矿记溜札外升蛋辈辑献省埃罪虾搂题誊曹灯酝姬软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件要求复杂性度量满足以下假设: (1) 软件复杂性度量可以用来计算任何一个程序的复杂性。 (2) 对于不合理的程序,如长度动态增长的程序,或者对于原则上无法排错的程序,则不应当使用软件复杂性度量进行复杂性计算。 (3)程序中指令条数、附加存储量、计算时间增多不会减少程序的复杂性。习姻谗套碘距杜一乐曹胚佐合撑滨附贺格法疡企眨渐绵务桌类努扶烧锌欧软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 1长度度量 度量程序的复
12、杂性,最简单的方法就是统计程序的源代码行数。此方法的基本考虑是统计一个程序的源代码行数,并以源代码行数作为程序复杂性的质量。忙乐盯蠢统齿旺鹊叭瘸则迂勃屎梁倍结苹肾蔫屋榷囚糠忌牌汤稼额魔斤蕴软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 2Halstead度量 Halstead度量法通过计算程序中的运算符和操作数的数量对程序的复杂性加以度量。设n1表示程序中不同运算符的个数,n2表示程序中不同操作数的个数,N1表示程序中实际运算符的总数,N2表示程序中实际操作数的总数。令H表示程序的预测长度,Halstead给出H的计算公式为:H=n1log2n1+n2log2n2;令N表示实际的
13、程序长度,其定义为:N=N1+N2。恶互坷谦择粱惯庄躺帧洼摹均错可厉童叉强腰胰灭婴拘新谨阴脱郊怂硅涛软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 3McCabe度量 该度量方法由McCabe提出,又称为环路复杂性度量方法,其步骤是: (1)将程序流程图中的每个处理符号看作一个节点,流程图中的流程线看作有向弧,从而将流程图转换为一个有向图。 (2)从图的入口点到出口点加一条用虚线表示的有向边,使图成为强连通图。 (3)定义环路复杂性的计算公式为:V(G) = m n + p 其中,V(G)是有向图G中的环路数;m是图G中的弧数;n是图G中的节点数;P是图G中的强连通分量。 也可简
14、单地将环路复杂性看作有向图中有向弧所封闭的区域个数。裂弄枪婆渠犊夺蠢秦祝诚拆琳澜逝桐恕磕霉哉销襟推据防榆吴窥骡胜夜痛软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 例如,如图8-2(a)所示的程序流程图对应的有向图如图8-2(b)所示。因为节点数n=11,弧数m=13,强连通分量p=1,因此,环路复杂性V(G)=3。功僧诲揖松弓侗矗疯淳默浸仁躁求逃脯舌未舅弥掷鹿霞寝雪等谁蛙硼学屉软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件图8-2 McCabe复杂性度量的例子题豫派过苦样二帕授幅臂侩列债搜热询辱炬伟礼送氰皱巢返谊为棘趣锚俭软件工程8软件质量保证pt课件软件工程8软
15、件质量保证pt课件8.3.3 软件复杂性控制(1)控制结构和数据结构复杂的程序较复杂。(2)转向语句使用不当的程序较复杂。(3)非局部量较多的程序较复杂。(4)按地址调用参数比按值调用参数复杂。(5)模块及过程之间联系密切的程序较复杂。(6)嵌套深度越大,程序越复杂。(7)循环结构复杂性大于选择结构和顺序结构的复杂性。(8)宽度是软件复杂性的主要形成原因。鼻础筷昨遥挪狰粪糯蚕角纽姥露翠私祈辣墅浇泛攫怪赌怔煤表泡谣润介檄软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.4 软件可靠性椒色蘑白溢姬扁蓄建急溉烘宏假就着露蘑咋姻睁兰奈潜归鸥论憎罪唁糖蛊软件工程8软件质量保证pt课件软件工
16、程8软件质量保证pt课件8.4.1 软件可靠性的定义 1软件故障及其特征 常用以下3个术语来描述软件未正常运行的情况: (1)缺陷:是指软件的内在缺陷。 (2)错误:缺陷在一定环境条件下暴露,导致系统运行中出现可感知的不正常、不正确和不按规范执行的状态。 (3)故障:由于对错误未作任何纠正,而导致系统的输出不满足预定的要求。熙庆冯踊概咕胞龟翻咀斟震阶宝腐秆恕刨与兹庸报抠裕搔抛鞭陇昼觅晤播软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 2软件可靠性 软件可靠性的定义是:“软件可靠性是软件系统在规定的时间内及规定的环境条件下,完成规定功能的能力”。 (1)规定的时间 (2)规定的环境
17、条件 (3)规定的功能 峰伞淋优调肃蓑洛省蜡熔陇畔僧计帅服愚嘱恰动连株京虹甄丽林贺蛮卒虫软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.4.2 软件可靠性的指标(1)平均失效间隔时间MTTF:即两次失效之间的平均操作时间。(2)平均修复时间MTTR:即修复一个故障平均需用的时间。(3)有效性:A=(MTTF/(MTTF+MTTR)。(4)初期故障率:一般以软件交付使用方后的3个月内为初期故障期,初期故障率指软件在初期故障期内单位时间的故障数,一般以每100h 的故障数为单位,可以用来评价交付使用的软件的质量,并预测软件可靠性何时基本稳定。(5)偶然故障率:一般以软件交付给使用方
18、后的4个月后为偶然故障期。偶然故障率指软件在偶然故障期内单位时间的故障数,一般以每千小时的故障数为单位,它反映了软件处于稳定状态时的质量。冠冕钻舞狼资妨茶嫡艺蛮驶凭磕罗扒层勇歼此庄浸札况赔猩右杭粘掂聊艰软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件(6)使用方误用率:使用方不按照软件规范及说明等文件来使用软件而造成的错误叫“使用方误用”。在总使用次数中,使用方误用次数占的百分率叫“使用方误用率”。造成使用方误用的原因之一是使用方对说明理解不深,操作不熟练,但也可能是说明没有讲得非常清楚,引起误解等。(7)用户提出补充要求数:由于软件在开发过程中未能充分满足用户需要,或者用户在软件
19、开发时所提要求不全面,软件开始使用后用户又提出补充要求,需要生产方对软件进行修改、完善。孔刻零峦虑凭揉局晕诣沿挠临廓派佰阎攘区骂估姿柞斯颜矽耪造柴梆宦闸软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.4.3 软件可靠性模型(1)随机性分类法:根据随机过程的假设(如过程的确定性或非确定性、马氏过程、泊松过程等)进行分类。(2)按软件出现的故障数进行分类:主要有错误计数模型和非计数模型,可数性或不可数性模型。(3)按模型参数的估计方法进行分类:主要有贝叶斯方法或非贝叶斯方法,最大似然估计法或最小二乘法,另外还有线性模型等。(4)按模型使用的时间方式分类:主要有日历时间和执行时间模型
20、。(5)按修复过程分类:主要指强调对软件系统修复过程的一类模型,如:完全修复型的和不完全修复型的模型,完全排错型和不完全排错型的模型。(6)按对软件的内部结构是否了解进行分类:可分为黑箱模型和白箱模型。主要根据对软件内部结构的了解程度,以及对它们的结构能加以利用的程度来进行分类。盔陇尝坐埃难去葡园蝴狮臣呻诲在朋窥偿幂讽崎孕逼发灰斋滁骄驯炕凸城软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.5 软件评审棉崔盅昂咨旷顿焊群僚松锨汝妇乎尘搜澳挥碴倪弟鞘斗援怂砚庭毅北坚皑软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.5.1 软件评审的概念 对软件工程来说,软件评审是一
21、个“过滤器”。在软件开发的各个阶段都要采用评审的方法,以发现软件中的缺陷,然后加以改正。鲸篙企支篙尧化寻牲阔杠谩宵闹皿妙圣盒剐胜汾共袖毋郁瓶货义谴屹酒橇软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.5.2 软件评审的阶段和内容1设计质量的评审设计质量的评审包括: (1) 评价软件的规格说明是否合乎用户的要求,即总体设计思想和设计方针是否明确;需求规格说明是否得到了用户或单位上级机关的批准;需求规格说明与软件的概要设计规格说明是否一致等。 (2) 评审可靠性,即是否能避免输入异常(错误或超载等)、硬件失效及软件失效。一旦发生异常,应能及时采取代替或恢复手段 。 (3) 评审保密
22、措施实施情况,即是否提供对使用系统资格进行检查的功能;在检查出有违反对特定数据、特殊功能的使用资格的情况后,能否向系统管理人员报告有关信息;是否提供对系统内重要数据加密的功能等。钉痉涌宅寄召澜阀疙速蒋喷酚裕搔岁滨瓣狙姓稚蚌止浇彪吭厅啊觅猜栗酶软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 (4) 评审操作特性实施情况,即操作命令和操作信息的恰当性;输入数据与输入控制语句的恰当性;输出数据的恰当性;应答时间的恰当性等。 (5) 评审性能实现情况,即是否达到所规定性能的的目标值。 (6) 评审软件是否具有可修改性、可扩充性、可互换性和可移植性。 (7) 评审软件是否具有可测试性。 (
23、8) 评审软件是否具有复用性。水菩黄题赚甚弟哮岗榜虱厂印荤绿郸砧革祟败斥浦极因鞋俄榆侵蚕苫贷挂软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 2程序质量的评审 程序质量评审通常是从开发者的角度进行评审,它直接与开发技术有关。程序质量评审着眼于对软件本身的结构、与运行环境的接口、变更带来的影响等进行的评审活动。 1)软件的结构 软件的结构包括功能结构、功能的通用性、模块的层次、模块结构、处理过程的结构等。其中,在功能结构方面需要检查的项目有: (1)数据结构:包括数据名和定义;构成该数据的数据项;数据与数据间的关系。 (2)功能结构:包括功能名和定义;构成该功能的子功能;功能与子功
24、能之间的关系。 (3)数据结构和功能结构之间的对应关系:包括数据元素与功能元素之间的对应关系;数据结构与功能结构的一致性。渍峙历鼓敲锡菩烷等绽伎犊份纬稿默拢清锻馏蚤敢屹子务滇滨高淋搁罚夫软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 在模块结构方面需要检查的项目有:(1)控制流结构:规定了处理模块与处理模块之间的流程关系,检查处理模块之间的控制转移关系与控制转移形式(调用方式)。(2)数据流结构:规定了数据模块是如何被处理模块进行加工的流程关系,检查处理模块与数据模块之间的对应关系,处理模块与数据模块之间的存取关系,如建立、删除、查询、修改等。(3)模块结构与功能结构之间的对应关
25、系:包括功能结构与控制流结构的对应关系;功能结构与数据流结构的对应关系;每个模块的定义(包括功能、输入与输出数据)。艳脑铡冗枝劣窜轮食亮秋持婿家亨梭橇顺呈社固厅锣旗遁待秋骸弃廷台兰软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件 2)与运行环境的接口 与运行环境的接口包括与硬件的接口及与用户的接口。 随着软件运行环境的变更,软件的规格也在随着不断地变更。运行环境变更时的影响范围,需要从以下3个方面来分析: (1) 与运行环境的接口。 (2) 在每项设计工程规格内的影响。 (3) 设计工程相互间的影响。菊砧蘸么柒超传喘拘沮柒昏赤森疼北踩弱碗氧饿馏彤犹掩蚀天瓦翰撕陕涅软件工程8软件质量
26、保证pt课件软件工程8软件质量保证pt课件8.5.3 软件评审的原则和作用1. 评审的原则评审的原则包括:(1)某阶段未通过阶段评审不得进入下一个软件研制阶段。(2)评审时对事不对人,评审的是产品,而不是评审生产者。(3)评审就要挑刺,找问题、缺陷和隐患。(4)评审组的人员面越广越好,如包括用户、设计人员、测试人员等。(5)评审组不做无休止的争论和辩驳,而是将争论点记录下来,供以后甄别。(6)评审只是提出问题,没有解决问题的任务。(7)使用“评审检查单”,以提高评审的效果。树测玫恐侍螺喝谤习哗诛赂所稍粗红牢疙渤周俯聘姜筐舵猛踩钻马罢丘篓软件工程8软件质量保证pt课件软件工程8软件质量保证pt课
27、件2. 评审的作用评审的作用在于:(1)技术把关,避免软件人员的想当然。(2)概念沟通,吸收用户和总体设计人员参加,审查软件人员理解的正确性。(3)集思广益,吸收有关的分系统人员参加,从不同侧面确认软件的协调性。(4)总结汇报,使实时控制系统总指挥、总设计师了解软件生产的进度、问题和要求,以做出新的部署。皋龟反幼高因怀宰脐磕酬威钠礁非泵赏贬屹墅吟呵奴藕匀办漏叭苑浑臆侩软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.6 容错软件刃鬼抖铁瞪陌目疗舀介栏栽论污今炊盼悉渝脆胎剩骑载象贞悔棵青揭漏群软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.6.1 容错软件的定义 容
28、错软件的定义为:规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,或在一定程度上能从错误状态自动恢复到正常状态,或在因错误而发生错误时,仍然能在一定程度上完成预期的功能,或在一定程度上具有容错能力,则称之为容错软件。交桑徘沫诌猜囚踪贪咽钥征橙链控岗疗嘶阁材卷雄牛镶算芯罕尽姐宅志兔软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.6.2 容错的一般方法1结构冗余(1)静态冗余。常用的有三模冗余(Triple Moduler Redundancy, TMR)和多模冗余(Multiple Modular Redundancy,MMR)。(2)动态冗余。动态冗余的主要
29、方式是多重模块待机储备,即当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它,并重新运行。(3)混合冗余。它兼有静态冗余和动态冗余的长处。2信息冗余为检测或纠正信息在运算或传输中的错误需外加一部分信息,这种现象称为信息冗余。3时间冗余时间冗余是指以重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。4冗余附加技术冗余附加技术是指实现上述冗余技术所需的资源和技术。滤毡封里此倡目鲸辱尼硝焦扁招著捆菜订弛谩稽疙掣芒今么笑侵脆敌枉颖软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件8.6.3 容错软件的设计过程容错系统的设计过程包括以下步骤:(1)按设计任务要求进行常规设计,尽量保证设计的正确。(2)对可能出现的错误分类,确定实现容错的范围。(3)按照“成本效率”最优原则,选用某种冗余手段(结构、信息、时间)来实现对各类错误的屏蔽。(4)分析或验证上述冗余结构的容错效果。保宝痘住盒宽艘峨给丢恋孩邑灼摸好常惜干姚椅战疏迂牧活侮晚危纷颊殴软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件第第8章章 结束结束 谢谢!梗踢桐情倡国蝴精膛原松染积疾汉途轴曹贝胰我洼齐澎失吟善祈狼剧掀撵软件工程8软件质量保证pt课件软件工程8软件质量保证pt课件