
第8部分软件量保证.ppt
102页第第8 8章章 软件质量保证软件质量保证n n8.1 8.1 软件质量软件质量软件质量软件质量n n8.2 8.2 质量运动质量运动质量运动质量运动n n8.3 8.3 软件质量保证软件质量保证软件质量保证软件质量保证n n8.4 8.4 软件评审软件评审软件评审软件评审n n8.5 8.5 正式技术评审正式技术评审正式技术评审正式技术评审n n8.6 SQA8.6 SQA的形式化方法的形式化方法的形式化方法的形式化方法n n8.7 8.7 统计软件质量保证统计软件质量保证统计软件质量保证统计软件质量保证n n8.8 8.8 软件可靠性软件可靠性软件可靠性软件可靠性n n8.9 8.9 软件的错误防范软件的错误防范软件的错误防范软件的错误防范n n8.10 ISO90008.10 ISO9000质量标准质量标准质量标准质量标准n n8.11 SQA8.11 SQA计划计划计划计划淋衫蔗钠扇幽吃脱伍贤延态烘秆曹倚梢椿宏拷壶晤旦芬糊季本拄砸吵漫浸第8部分软件量保证第8部分软件量保证n““软件质量保证软件质量保证””((SQA)是一种应用于整个软件过)是一种应用于整个软件过程的庇护性活动。
程的庇护性活动 SQA包含:包含:((1)一种质量管理方法;)一种质量管理方法;((2)有效的软件工程技术(方法和工具);)有效的软件工程技术(方法和工具);((3)在整个软件过程中采用的正式技术复审;)在整个软件过程中采用的正式技术复审;((4)一种多层次的测试策略)一种多层次的测试策略;;((5)对软件文档及其修改的控制;)对软件文档及其修改的控制;((6)保证软件遵从软件开发标准的规程(在适用时);)保证软件遵从软件开发标准的规程(在适用时);((7)测量和报告机制)测量和报告机制颇椭撂蝴肯个萧庄裴恭荚驴频惧滩押晴鸿聚稠塘赵搐常坯赎魏恕郧状骋捍第8部分软件量保证第8部分软件量保证n本章将集中讨论为支持软件组织本章将集中讨论为支持软件组织““在正确的时间、在正确的时间、以正确的方式、做正确的事情以正确的方式、做正确的事情””的相关管理问题的相关管理问题和特定过程活动和特定过程活动戍饯榷哮壬近洒敢蠢逢钮慕彻寅闰滩充盈抬谰村房这魁吠宠轿授立致筐兼第8部分软件量保证第8部分软件量保证8.1质量概念质量概念 Quality Conceptsn《美国传统字典》(《美国传统字典》(American Heritage Dictionary)中对质量的定义是:)中对质量的定义是:““某一事物某一事物的特征或属性的特征或属性””。
n作为一个事物的属性,质量指的是可以度量的作为一个事物的属性,质量指的是可以度量的特征特征――那些可以与已知标准进行比较的东西,那些可以与已知标准进行比较的东西,如长度、颜色、电的性质、可延展性等等如长度、颜色、电的性质、可延展性等等n但是软件,很大程度上是一种但是软件,很大程度上是一种知识实体知识实体,其特,其特征的定义远比物理对象要困难得多征的定义远比物理对象要困难得多 摊吁宝笑阵熟页磕域萎嘻沿焙外触栈朗乳形宅胜烟羊投韶醚朝昼冀议浆拄第8部分软件量保证第8部分软件量保证n nANSI/IEEE Std 729-1983定义软件定义软件质量为质量为“与软件产品满足规定的和与软件产品满足规定的和隐含的需求的能力有关的特征或特隐含的需求的能力有关的特征或特性的全体性的全体”n nM.J. Fisher 定义软件质量为定义软件质量为“所有所有描述计算机软件优秀程度的特性的描述计算机软件优秀程度的特性的组合组合”琶獭慌出邱蚊啄炉爱凸剧缎变满诱腔启服馁妮乙良竖啄爹焚闽蛛傅终窄保第8部分软件量保证第8部分软件量保证n程序特征的度量的确存在程序特征的度量的确存在这样的属性包括这样的属性包括循环循环复杂度、内聚、功能点、代码行数复杂度、内聚、功能点、代码行数和其他许多属和其他许多属性。
在根据对象的可度量特征考察一个对象时,性在根据对象的可度量特征考察一个对象时,可以有以下两种不同的质量:可以有以下两种不同的质量:设计质量和符合质设计质量和符合质量n设计质量设计质量:是指设计者为一件产品规定的特征是指设计者为一件产品规定的特征材料等级、耐久性、及性能的规约都属于设计质材料等级、耐久性、及性能的规约都属于设计质量n当规定使用更高级别的材料、要求达到更强的耐当规定使用更高级别的材料、要求达到更强的耐久性和更高层次的性能时,如果产品能够依照规久性和更高层次的性能时,如果产品能够依照规约进行制造,则产品的设计质量便会提高约进行制造,则产品的设计质量便会提高 漳可勤破暂面蹬尾畔惭迫饭埋滦刹显躇潘陆桑癌仁识洒胚癸采佳翻宙锭五第8部分软件量保证第8部分软件量保证n符合质量符合质量:是指在制造过程中符合设计规格的:是指在制造过程中符合设计规格的程度同样,符合程度越高,符合质量也就越程度同样,符合程度越高,符合质量也就越高n在软件开发时,在软件开发时,设计质量设计质量包括系统的需求、规包括系统的需求、规约和设计约和设计符合质量符合质量则主要关注实现问题如则主要关注实现问题如果实现符合设计、得到的系统满足系统需求和果实现符合设计、得到的系统满足系统需求和性能目标,则符合质量较高。
性能目标,则符合质量较高 淫什医痰遥耐戌欠褂蛀怔幂取毫仅寅津清粕捕郑祝振松配内挫霄拢起泵寅第8部分软件量保证第8部分软件量保证软件质量特性软件质量特性n n软件质量特性,反映了软件的本质软件质量特性,反映了软件的本质讨论一个软件的质量,问题最终要讨论一个软件的质量,问题最终要归结到定义软件的质量特性归结到定义软件的质量特性n n定义一个软件的质量,就等价于为定义一个软件的质量,就等价于为该软件定义一系列质量特性该软件定义一系列质量特性n n人们通常把影响软件质量的特性用人们通常把影响软件质量的特性用软件质量模型来描述软件质量模型来描述煌蝎竿汕瑟款俭雪苔轩军陷郧霞生替娜俺刁粪魂峙漠每矿羊建示吮鸽寺吴第8部分软件量保证第8部分软件量保证软件质量模型软件质量模型n n软件质量特性定义成软件质量特性定义成分层模型分层模型n n最基本的叫做最基本的叫做基本质量特性基本质量特性,它可,它可以由一些子质量特性定义和度量以由一些子质量特性定义和度量n n二次特性二次特性在必要时又可由它的一些在必要时又可由它的一些子质量特性定义和度量子质量特性定义和度量 窟剪榆诛噎勺扒甸酝澡瘩廊吾柠似佐昂榜匈羚轧俺哩蓟鄙掖隆怯乎挡叠短第8部分软件量保证第8部分软件量保证点擎阑湛悲勋汛总慷愿抨摸送趋赂萨延蹭恼予迷肪短衰酝絮馋彰棺兵耍谊第8部分软件量保证第8部分软件量保证Boehm质量模型质量模型拭厅执油领碳水惯享抡邀乃凸寡释叮极脾颗珐闰吝贤纤妻参腑勉迅光置喧第8部分软件量保证第8部分软件量保证ISO的软件质量评价模型的软件质量评价模型n n按照按照按照按照ISO/TC97/SC7/WG3/1985-1-30/N382ISO/TC97/SC7/WG3/1985-1-30/N382,,,,软件质量度量模型由三层组成:软件质量度量模型由三层组成:软件质量度量模型由三层组成:软件质量度量模型由三层组成: 软件质量需求评价准则 软件质量需求评价准则 软件质量需求评价准则 软件质量需求评价准则((((SQRCSQRC)))) 软件质量设计评价准则 软件质量设计评价准则 软件质量设计评价准则 软件质量设计评价准则((((SQDCSQDC)))) 软件质量度量评价准则 软件质量度量评价准则 软件质量度量评价准则 软件质量度量评价准则((((SQMCSQMC))))n n高层和中层建立国际标准,低层可由各使用高层和中层建立国际标准,低层可由各使用高层和中层建立国际标准,低层可由各使用高层和中层建立国际标准,低层可由各使用单位视实际情况制定单位视实际情况制定单位视实际情况制定单位视实际情况制定碰痪岛额桨吸劝讯显剥洛银肉螟您菜似细访暂键碰蝶围晚诞膀届擦趟隙计第8部分软件量保证第8部分软件量保证尘怀孔比擅送耳陷杖封续另昌佛仕咬石酗收税箱棉否色僻拿壁钳油登砍尾第8部分软件量保证第8部分软件量保证1991年年 ISO质质量量特特性性国国际际标标准准 ((ISO/IEC9126))n n质量特性:质量特性:质量特性:质量特性:功能性功能性功能性功能性、、、、可靠性可靠性可靠性可靠性、、、、可维护性可维护性可维护性可维护性、、、、效效效效率率率率、、、、可使用性可使用性可使用性可使用性、、、、可移植性可移植性可移植性可移植性n n推荐推荐推荐推荐2121个子特性:适合性个子特性:适合性个子特性:适合性个子特性:适合性 准确性准确性准确性准确性 互用性互用性互用性互用性 依从性依从性依从性依从性 安全性安全性安全性安全性 成熟性成熟性成熟性成熟性 容错性容错性容错性容错性 可恢复性可恢复性可恢复性可恢复性 可理解性可理解性可理解性可理解性 易学习性易学习性易学习性易学习性 操作性操作性操作性操作性 时间特性时间特性时间特性时间特性 资源特性资源特性资源特性资源特性 可分析性可分析性可分析性可分析性 稳定性稳定性稳定性稳定性 可变更性可变更性可变更性可变更性 可测试性可测试性可测试性可测试性 可安装性可安装性可安装性可安装性 可替换性可替换性可替换性可替换性 适应性适应性适应性适应性 一一一一致性致性致性致性 内校碟茁停冤灵傻京毁障宝七詹梁献志吨操字钞娶讼太仰布辕骸擎绿瓣仗第8部分软件量保证第8部分软件量保证豪船颧剁脆碾尧晶诊窖肝薯伯准笛墙钒瘟抠藐谓范伤抵酒陌辽归示餐仇蓉第8部分软件量保证第8部分软件量保证质量控制质量控制 Quality Controln差异控制可以等同于质量控制差异控制可以等同于质量控制。
n““质量控制质量控制””是为了保证每一件工作产品都满是为了保证每一件工作产品都满足对它的需求而应用于整个开发周期中的一系足对它的需求而应用于整个开发周期中的一系列审查、复审和测试列审查、复审和测试n质量控制在创建工作产品的过程中包含一个反质量控制在创建工作产品的过程中包含一个反馈循环度量和反馈相结合,使得我们能够在馈循环度量和反馈相结合,使得我们能够在得到的工作产品不能满足其规约时调整开发过得到的工作产品不能满足其规约时调整开发过程这种方法将质量控制视为整个制造过程的程这种方法将质量控制视为整个制造过程的一部分 对碟恶遂洛镑炙惕拣雄栏乙翅河业焚丹夷替横便得畜铡检懦聘碰腾游钱崭第8部分软件量保证第8部分软件量保证n质量控制活动可以是全自动的、全人工的,也可质量控制活动可以是全自动的、全人工的,也可以是自动工具与人员交互的结合质量控制中的以是自动工具与人员交互的结合质量控制中的关键概念之一是所有工作产品都具有定义好的和关键概念之一是所有工作产品都具有定义好的和可度量的规约,我们可以将每个过程的产品与这可度量的规约,我们可以将每个过程的产品与这一规约进行比较反馈循环的引入对于最小化产一规约进行比较。
反馈循环的引入对于最小化产生的缺陷至关重要生的缺陷至关重要 牌西强沧乾氢次统凸功恕滨名拴谊初昔哑储笼晰仁署系俞涂泽朴掘邻甥天第8部分软件量保证第8部分软件量保证n““质量保证质量保证””由管理层的审计和报告功能构成由管理层的审计和报告功能构成质量保证的目标是为管理层提供为获知产品质量质量保证的目标是为管理层提供为获知产品质量信息所需的数据,从而获得产品质量是否符合预信息所需的数据,从而获得产品质量是否符合预定目标的认识和信心当然如果质量保证所提供定目标的认识和信心当然如果质量保证所提供的数据发现了问题,则管理层负责解决这一问题的数据发现了问题,则管理层负责解决这一问题并为解决质量问题分配所需的资源并为解决质量问题分配所需的资源班盏衫充逊煎控馆短副遍尊冀备琼诫轨俐灾普牵绵起甸申敛斡胃摔粤硷耽第8部分软件量保证第8部分软件量保证质量的成本质量的成本 Cost of Qualityn质量成本包括所有由质量工作或者进行与质量有关质量成本包括所有由质量工作或者进行与质量有关的活动所导致的成本质量成本研究的开展能够为的活动所导致的成本质量成本研究的开展能够为当前质量成本设定基线,标识降低质量成本的机会,当前质量成本设定基线,标识降低质量成本的机会,并提供一种规范化的比较基础。
规范化的基础几乎并提供一种规范化的比较基础规范化的基础几乎全都以全都以““元元””(钱)计算一旦我们将质量成本以(钱)计算一旦我们将质量成本以““元元””为单位进行了规范化,我们就拥有了必要的为单位进行了规范化,我们就拥有了必要的数据以评估能够在何处改进现有过程而且,还可数据以评估能够在何处改进现有过程而且,还可以进一步评估那些基于以进一步评估那些基于““元元””的项在改变时所产生的项在改变时所产生的影响 友秘斗唾虞洽痪酵陡软刊便北惑识鸿油膝驹绕诧猾骤帜倘伐咕涉藐掐震者第8部分软件量保证第8部分软件量保证n质量成本可以被划分为与预防、鉴定及失败相质量成本可以被划分为与预防、鉴定及失败相关的成本关的成本预防成本预防成本””包括:包括: * 质量计划质量计划 * 正式技术复审正式技术复审 * 测试设备测试设备 * 培训培训 款错呕第食斡银位各犯贝淖绚普百麓攒同僧讶蛔郡篇诱焙息梳杀加滋陶去第8部分软件量保证第8部分软件量保证n““鉴定成本鉴定成本””包括为深入了解包括为深入了解““首次通过首次通过””各个过程时产品的状态而开展的那些活动各个过程时产品的状态而开展的那些活动。
鉴定成本的例子如下:鉴定成本的例子如下: * 过程内和过程间审查过程内和过程间审查 * 设备校准和维护设备校准和维护 * 测试测试 驼啥粉骚茶痔形板盯佩惺哦霸歇堵体至弧螺厩蠕征桶绢母姐斌辜逼馆性凿第8部分软件量保证第8部分软件量保证n““失败成本失败成本””是指如果在将产品交付给客户之是指如果在将产品交付给客户之前已经消除了缺陷时就不会存在的成本失败前已经消除了缺陷时就不会存在的成本失败成本可以进一步划分为内部失败成本和外部失成本可以进一步划分为内部失败成本和外部失败成本内部失败成本内部失败成本””是指在产品交付之是指在产品交付之前发现错误而引发的成本内部失败成本包括:前发现错误而引发的成本内部失败成本包括: * 返工返工 * 修复修复 * 失败模式分析失败模式分析 驳猛发阂尸椽泌蔑服趋炳霜础支楞迁卸已梭上阻谗苇锨耘马铸甩呐静背代第8部分软件量保证第8部分软件量保证n““外部失败成本外部失败成本””是指与产品交付给客是指与产品交付给客户之后所发现的缺陷相关的成本外部户之后所发现的缺陷相关的成本外部失败成本的例子如下:失败成本的例子如下: * 解决客户的抱怨解决客户的抱怨 * 退换产品退换产品 * 求助支持求助支持 * 保修工作保修工作 模缓锡毒京盏贞近钢叮宏达烹谆乃岭霜挎岩束弓买餐寸财治报随运望醉婿第8部分软件量保证第8部分软件量保证n正如我们所预料的,发现和修改一个缺陷的相正如我们所预料的,发现和修改一个缺陷的相对成本将随着我们从预防到检测、到从内部失对成本将随着我们从预防到检测、到从内部失败及到外部失败的成本而急剧增加。
根据败及到外部失败的成本而急剧增加根据Boehm所收集的数据,阐述了这一现象所收集的数据,阐述了这一现象 森娘控瘁远犀几桅烁公名乌擂雅镶张颊棍只咎杭旗贾垒肃绘肉类觉龄五拥第8部分软件量保证第8部分软件量保证黄翔别雌娱殉葵硷共态来污嫡匹演逃柯啮无蕊启茵叶磺秦谜伴熄杀赏沪哦第8部分软件量保证第8部分软件量保证nADVICE::测试是必要的,但是,它也是一种测试是必要的,但是,它也是一种非常昂贵的发现错误的方式非常昂贵的发现错误的方式在过程的早期花在过程的早期花时间发现错误,你可能能够大量地减少测试和时间发现错误,你可能能够大量地减少测试和调试成本调试成本布悉燎沧企乓仅熙寒鹿动能剖嘿爱叛桔现粮直捧篆负弯厘府羌馋伟隆低迫第8部分软件量保证第8部分软件量保证8.2 质量运动质量运动 The Quality Movementn质量运动始于本世纪质量运动始于本世纪40年代年代W. Edwards Deming的开创性工作,第一次真正的实验则是在日本进的开创性工作,第一次真正的实验则是在日本进行的以Deming的想法为基础,日本人开发了一的想法为基础,日本人开发了一种系统化的方法来从根本上消除造成产品缺陷的种系统化的方法来从根本上消除造成产品缺陷的原因。
从原因从70年代到年代到80代,他们的工作被移植到西代,他们的工作被移植到西方,有时被称作方,有时被称作““全面质量管理(全面质量管理(TQM))””n尽管不同公司和不同作者那里的术语略有不同,尽管不同公司和不同作者那里的术语略有不同,但通常采用的都是但通常采用的都是4个步骤的过程个步骤的过程,该过程构成了,该过程构成了任何一个好的任何一个好的TQM项目的基础项目的基础 饯蜂闯拢坊秃赌兰陶芳张豫启虾晰宝街胁并堑罕志齐纹伪甲缓满串斗坎憾第8部分软件量保证第8部分软件量保证n第一步第一步是指是指一个连续的过程改进系统一个连续的过程改进系统目标是开目标是开发一个可见的、可重复的和可度量的过程(在这发一个可见的、可重复的和可度量的过程(在这里是指软件过程)里是指软件过程)n第二步第二步将将检查影响过程的无形因素,并对这些因检查影响过程的无形因素,并对这些因素对过程的影响进行优化素对过程的影响进行优化 例如例如,软件过程可能受到高层职员流动的影响,,软件过程可能受到高层职员流动的影响,而这本身又是由公司内部不断重组而引起的因而这本身又是由公司内部不断重组而引起的因此一个稳定的公司组织可能会对软件质量的提高此一个稳定的公司组织可能会对软件质量的提高有很大的帮助。
可以帮助管理者对公司重组方式有很大的帮助可以帮助管理者对公司重组方式提出建议提出建议 灌兆频羔贮伴邻瞄灯呢仕惜绸厨衣楔藻掺野延舟删光男逝础蔬顷域勉导奄第8部分软件量保证第8部分软件量保证n第三步第三步:关注:关注产品的用户产品的用户(这里的产品是指软件)(这里的产品是指软件)通过检查用户使用产品的方式,对产品本身及通过检查用户使用产品的方式,对产品本身及产品的生产过程进行改进产品的生产过程进行改进n最后一个步骤最后一个步骤将管理者的注意力从当前的产品上将管理者的注意力从当前的产品上拓宽通过观察产品在市场上的用途,寻找产品拓宽通过观察产品在市场上的用途,寻找产品在相关领域中的发展机会在相关领域中的发展机会爹意咆喳讫桑烟哑阶和侯栏都座爽窟希督秧支颅玲痹稚报菊甭娇炮鸥洒凰第8部分软件量保证第8部分软件量保证8.3 软件质量保证软件质量保证 Software Quality Assurancen软件质量软件质量的定义:的定义: 对显式声明的功能和性能需求、显式文档化对显式声明的功能和性能需求、显式文档化的开发标准、以及专业人员开发的软件所应具的开发标准、以及专业人员开发的软件所应具有的所有隐含特征的符合有的所有隐含特征的符合。
躯轨灰蒲炔撰垮岗秸仲惋缮孙隙讳抡引川籍笛篷震镜侦盔豫轴替柬邓涂辊第8部分软件量保证第8部分软件量保证上述定义强调了以下三个重要方面:上述定义强调了以下三个重要方面:1. 软件需求是进行软件需求是进行““质量质量””测量的基础与需求测量的基础与需求不符就是质量不高不符就是质量不高2. 指定的标准定义了一组指导软件开发的准则指定的标准定义了一组指导软件开发的准则如果不能遵照这些准则,就极有可能导致质量如果不能遵照这些准则,就极有可能导致质量不高3. 通常有一组通常有一组““隐含需求隐含需求””是不被提及的(如对是不被提及的(如对易维护性的需求)如果软件符合了显式的需易维护性的需求)如果软件符合了显式的需求却没有满足隐含需求,软件质量仍然值得怀求却没有满足隐含需求,软件质量仍然值得怀疑疑 淌浩拳疾朗蝉与蔡渣牙先前幻蜗搬纬去戴钟饭射妊褥乙瓦崎闽醇勋锤宽舵第8部分软件量保证第8部分软件量保证SQA活动活动 n软件质量保证由各种任务构成,这些任务分别与软件质量保证由各种任务构成,这些任务分别与两种不同的参与者相关两种不同的参与者相关――做技术工作的软件工做技术工作的软件工程师和负责质量保证的计划、监督、记录、分析程师和负责质量保证的计划、监督、记录、分析及报告工作的及报告工作的SQA小组。
小组n软件工程师通过采用可靠的技术方法和措施、进软件工程师通过采用可靠的技术方法和措施、进行正式的技术复审、执行计划周密的软件测试来行正式的技术复审、执行计划周密的软件测试来考虑质量问题(并完成软件质量保证和质量控制考虑质量问题(并完成软件质量保证和质量控制活动)梭伙石拿献台楔仆亩土叠题疹拆励禹启焰蘑邑恫昨罚描戚童差柔敦羽尺振第8部分软件量保证第8部分软件量保证nSQASQA小组的职责是辅助软件工程小组得到高质量小组的职责是辅助软件工程小组得到高质量的最终产品软件工程研究所的最终产品软件工程研究所SEISEI推荐了一组有推荐了一组有关质量保证中的计划、监督、记录、分析及报关质量保证中的计划、监督、记录、分析及报告的告的SQASQA活动这些活动将由一个独立的活动这些活动将由一个独立的SQASQA小小组执行(或协助)组执行(或协助)n为项目准备为项目准备SQASQA计划计划:该计划在制定项目计划时:该计划在制定项目计划时制定,由所有感兴趣的相关部门复审该计划制定,由所有感兴趣的相关部门复审该计划将控制由软件工程小组和将控制由软件工程小组和SQASQA小组执行的质量保小组执行的质量保证活动。
证活动唆碰喉窒警幅半镊浇魂峰湾寒气耽南弓附米逆烁霄舌拭雏拈景庶奠瑟梗韭第8部分软件量保证第8部分软件量保证在计划中要标识以下几点在计划中要标识以下几点::* 需要进行的评价需要进行的评价* 需要进行的审计和复审需要进行的审计和复审* 项目可采用的标准项目可采用的标准* 错误报告和跟踪的规程错误报告和跟踪的规程* 由由SQA小组产生的文档小组产生的文档* 为软件项目组提供的反馈数量为软件项目组提供的反馈数量 舍梭浅犁险厨诊迟鲁询面胆路垛涨眠由葫诅象盆组插本踏丧洞姻期览变信第8部分软件量保证第8部分软件量保证n参与开发该项目的软件过程描述参与开发该项目的软件过程描述――软件工程小软件工程小组为要进行的工作选择一个过程组为要进行的工作选择一个过程SQA小组将描小组将描述复审过程以保证该过程与组织政策、内部软件述复审过程以保证该过程与组织政策、内部软件标准、外界所订标准(如标准、外界所订标准(如ISO 9001)以及软件项)以及软件项目计划的其他部分相符目计划的其他部分相符n复审各项软件工程活动、对其是否符合定义好的复审各项软件工程活动、对其是否符合定义好的软件过程进行核实软件过程进行核实――SQA小组识别、记录和跟踪小组识别、记录和跟踪与过程的偏差,并对是否已经改正进行核实。
与过程的偏差,并对是否已经改正进行核实n审计指定的软件工作产品、对其是否符合定义好审计指定的软件工作产品、对其是否符合定义好的软件过程中的相应部分进行核实的软件过程中的相应部分进行核实――SQA小组对小组对选出的产品进行复审;识别、记录和跟踪出现的选出的产品进行复审;识别、记录和跟踪出现的偏差、对是否已经改正进行核实、定期将工作结偏差、对是否已经改正进行核实、定期将工作结果向项目管理者报告果向项目管理者报告 采毙飘揉利孺尉板葛尊问冕泼棵舅杨重屋艘驼龙纱乾陡柔党亡熔彰粘胃贱第8部分软件量保证第8部分软件量保证n确保软件工作及工作产品中的偏差已被记录在案并根确保软件工作及工作产品中的偏差已被记录在案并根据预定规程进行处理据预定规程进行处理――偏差可能出现在项目计划、偏差可能出现在项目计划、过程描述、采用的标准或技术工作产品中过程描述、采用的标准或技术工作产品中n记录所有不符合的部分并报告给高级管理者记录所有不符合的部分并报告给高级管理者――不符不符合的部分将受到跟踪直至问题得到解决合的部分将受到跟踪直至问题得到解决 除进行上述活动之外,除进行上述活动之外,SQA小组还需要协调变化的控小组还需要协调变化的控制和管理,并帮助收集和分析软件度量信息。
制和管理,并帮助收集和分析软件度量信息 惦习坡贬瓷骂匣乘腑吾捷长赚叹窃媳赦畴烬斯墒臣岭羞何踪嫩任嚏啡叔痴第8部分软件量保证第8部分软件量保证8.4 软件复审软件复审 Software Reviewsn软件复审是软件工程过程中的软件复审是软件工程过程中的““过滤器过滤器””复审被用于软件开发过程中的多个不同的点上,审被用于软件开发过程中的多个不同的点上,起到发现错误(进而引发排错活动)的作用起到发现错误(进而引发排错活动)的作用软件复审起到的作用是软件复审起到的作用是““净化净化””分析、设计和分析、设计和编码中所产生的软件工作产品编码中所产生的软件工作产品Freedman和和Weinberg在中对复审的讨论如下:在中对复审的讨论如下:n技术工作需要复审的理由就象铅笔需要橡皮技术工作需要复审的理由就象铅笔需要橡皮――““人非圣贤,孰能无过人非圣贤,孰能无过””我们需要复审我们需要复审的第二个理由是:尽管人善于发现自己的某些的第二个理由是:尽管人善于发现自己的某些错误,但是犯错误的人自己对许多种错误的发错误,但是犯错误的人自己对许多种错误的发现能力远小于其他的人现能力远小于其他的人 杉丢芳炊料搀旗遣激鲍漂剩操池虾泅居十蠕曼捐浮奇挣怠篡她拔犬必敢涟第8部分软件量保证第8部分软件量保证 复审复审(任何复审)均是一种借助一组人(任何复审)均是一种借助一组人的差异性来:的差异性来: (1) 指出一个人或小组生产的产品所需进行的改进;指出一个人或小组生产的产品所需进行的改进; (2) 确定产品中不需要或者不希望改进的部分;确定产品中不需要或者不希望改进的部分; (3) 得到与没有进行复审相比更加一致、或者至少更得到与没有进行复审相比更加一致、或者至少更可预测的技术工作的质量,从而使得技术工作更易可预测的技术工作的质量,从而使得技术工作更易于管理。
于管理 赢蘑邓曝僻碗诌驴顺岭洱改虐耐蓑勿饯慈个吴烈壁沟批算浴耻镑辕谬诈遭第8部分软件量保证第8部分软件量保证 在软件工程过程中可以进行的复审有许多种,它们各有用在软件工程过程中可以进行的复审有许多种,它们各有用处n在饭桌上讨论技术问题的非正式会议是一种复审;在饭桌上讨论技术问题的非正式会议是一种复审;n将软件设计正式介绍给客户、管理层和技术人员也是一种将软件设计正式介绍给客户、管理层和技术人员也是一种复审方式复审方式n正式的技术复审正式的技术复审:有时称为有时称为““走查走查””((Walkthrough)或)或检查(检查(Inspection) 从质量保证的角度出发,正式的技术复审是最有效的过滤从质量保证的角度出发,正式的技术复审是最有效的过滤器由软件工程师(或其他人)对软件工程师进行的正式器由软件工程师(或其他人)对软件工程师进行的正式技术复审(技术复审(FTR)是一种提高软件质量的有效方法是一种提高软件质量的有效方法 货瘤皮撮伶拒遮稻芍宵珠毋背莽篱瘟攘剂污垒钳屏耗捉氨久践鸵垫衣钮洁第8部分软件量保证第8部分软件量保证软件缺陷对成本的影响软件缺陷对成本的影响Cost Impact of Software Defects n在软件过程范围中,术语在软件过程范围中,术语““缺陷缺陷””和和““故障故障””是是同义词。
它们都表示在软件交付给最终用户之后同义词它们都表示在软件交付给最终用户之后发现的质量问题发现的质量问题n正式技术复审的主要目标是在此过程中发现错误,正式技术复审的主要目标是在此过程中发现错误,以便使的它们不会在软件发布之后变成缺陷正以便使的它们不会在软件发布之后变成缺陷正式技术复审的明显优点是较早发现错误,防止错式技术复审的明显优点是较早发现错误,防止错误被传播到软件过程的后续阶段误被传播到软件过程的后续阶段 注白魂拧动眷溉赁覆备榔编请福韦吃畜靖厩狈陕腐弃间嫉堵蔼鹤桌淄蒲含第8部分软件量保证第8部分软件量保证n产业界的大量研究(产业界的大量研究(TRW、、Nippon Electric和和Mitre Corp.以及其他公司)表明以及其他公司)表明设计活动引入的设计活动引入的错误占软件过程中出现的所有错误(和最终的缺错误占软件过程中出现的所有错误(和最终的缺陷)数量的陷)数量的50%到%到65%%n而现有研究表明而现有研究表明正式技术复审在发现设计错误方正式技术复审在发现设计错误方面最高达到面最高达到75%的有效性%的有效性通过检测和排除大量通过检测和排除大量设计错误,复审过程将极大降低后续开发和维护设计错误,复审过程将极大降低后续开发和维护阶段的成本。
阶段的成本 差拙膊检鹅圈肤摧孟陀渔柒汝骸酪诗敞虫铸诗粤赋贸咯估皑箱咕杭毯约寇第8部分软件量保证第8部分软件量保证n为了说明尽早发现错误对成本的影响,我们将根为了说明尽早发现错误对成本的影响,我们将根据从大型软件项目中收集的实际数据研究一系列据从大型软件项目中收集的实际数据研究一系列的相对成本的相对成本n假定在假定在设计阶段发现的错误的改正成本为设计阶段发现的错误的改正成本为1.0个个货币单位,在货币单位,在测试开始之前发现一个错误的改正测试开始之前发现一个错误的改正成本为成本为6.5个货币单位,在个货币单位,在测试时发现一个错误测试时发现一个错误的改正成本为的改正成本为15个货币单位,而在个货币单位,而在发布之后发现发布之后发现一个错误的改正成本为一个错误的改正成本为60到到100个货币单位个货币单位 敌脂厦宋汹仍怕溉啦唯呢寂殃逻黄粉种颤构惑捎罕翅削臣义沤翟纷弧婴溉第8部分软件量保证第8部分软件量保证缺陷的放大和消除缺陷的放大和消除Defect Amplification and Removal n可以用可以用““缺陷放大模型缺陷放大模型””[IBM81]来说明在软件工程过程中来说明在软件工程过程中的概要设计、详细设计和编码阶段中错误的产生及检测。
的概要设计、详细设计和编码阶段中错误的产生及检测馈躯环矾芋聋疆化罢驱盘尺列线旨鬃硷惟搭蕊淬艳野攻画袄炼愈憎碾卵焚第8部分软件量保证第8部分软件量保证n在没有复审的软件开发过程中缺陷放大的例子在没有复审的软件开发过程中缺陷放大的例子图图8.3 缺陷的放大(无复审)缺陷的放大(无复审)语上看辈甄绎缮泻诲攫晦丢蛛恫活举欧危佩狮愁库茎较锤腻道级试咆瘪蝇第8部分软件量保证第8部分软件量保证n在设计和编码过程中将复审作为每个软件过程步骤在设计和编码过程中将复审作为每个软件过程步骤的一部分的一部分图图8.4 缺陷的放大(有复审)缺陷的放大(有复审)50%亢寂赎驮布翁禾亡锣播驾鲁杂君阀倍蘸缉网牙狞蜀邱殖熊绰巷绣蝎颅篱峻第8部分软件量保证第8部分软件量保证n在每个步骤中发现的错误数量被乘以消除一个错在每个步骤中发现的错误数量被乘以消除一个错误的成本(对设计是误的成本(对设计是1.5个成本单位,测试前是个成本单位,测试前是6.5个成本单位,测试中是个成本单位,测试中是15个成本单位,而发个成本单位,而发布后是布后是67个成本单位),个成本单位),n使用这些数据,在进行了复审的情况下,开发和使用这些数据,在进行了复审的情况下,开发和维护的总成本是维护的总成本是783个成本单位。
个成本单位n而在不进行复审的情况下,总成本是而在不进行复审的情况下,总成本是2177个成本个成本单位后者几乎是前者的后者几乎是前者的3倍倍 挂毗缔队彦爬鬃颧漂吨轴联仑卉骡枣冗去键帛仑摩晃痛们乒请痹成耪疽帛第8部分软件量保证第8部分软件量保证n为了进行复审,软件工程师必须花费时间和工为了进行复审,软件工程师必须花费时间和工作量,开发组织必须投入资金作量,开发组织必须投入资金n但是上述例子的结果证明,我们面临的是一种但是上述例子的结果证明,我们面临的是一种““现在付出、否则以后付出更多现在付出、否则以后付出更多””的情况n(设计和其他技术活动中的)正式技术复审提(设计和其他技术活动中的)正式技术复审提供了显而易见的成本效益供了显而易见的成本效益n因此因此,,应该进行复审活动应该进行复审活动 许汤子唾储趁杜宣咬单缔碉圈拄料哮穆雇锨各庶蹲肃裤茸探竣鞍鼠贴瑞顿第8部分软件量保证第8部分软件量保证8.5 正式技术复审正式技术复审Formal technical Reviews 正式技术复审(正式技术复审(FTR)是一种由软件工程师进行)是一种由软件工程师进行的的软件质量保证活动软件质量保证活动。
FTR的的目标目标是是((1)在软件的任何一种表示形式中发现功能、逻辑)在软件的任何一种表示形式中发现功能、逻辑或实现的错误;或实现的错误;((2)证实经过复审的软件的确满足需求;)证实经过复审的软件的确满足需求;((3)保证软件的表示符合预定义的标准;)保证软件的表示符合预定义的标准;((4)得到以一种一致的方式开发的软件;)得到以一种一致的方式开发的软件;((5)使项目更易于管理)使项目更易于管理由于FTR的进行使大量人的进行使大量人员对软件系统中原本并不熟悉的部分更为了解,员对软件系统中原本并不熟悉的部分更为了解,因此,因此,FTR还起到了提高项目连续性和培训后备还起到了提高项目连续性和培训后备人员的作用人员的作用拱翼盗肥叶堪谜爹烁火衔葡涧硝撕碱姓疽颜坪扛怜神双烷郝瓶墟嚷猫呕钨第8部分软件量保证第8部分软件量保证nFTR(正式技术复审正式技术复审)实际上是一类复审方式,包括实际上是一类复审方式,包括““走查走查””((Walkthrough)、)、““审查审查””((Inspection)、)、““轮查轮查””((Round-robin Review)以及其他软件小组的技术评估。
以及其他软件小组的技术评估n每次每次FTR都以会议形式进行,只有经过适当的计划、都以会议形式进行,只有经过适当的计划、控制和参与,控制和参与,FTR才能获得成功才能获得成功照绝岗船恕劣财彝酷恩谤刮挖酝澄瞳娘龚面袁十手液说摹笋达驱俭焚梯贝第8部分软件量保证第8部分软件量保证复审会议复审会议 The Review Meetingn不论选择何种不论选择何种FTR(正式技术复审正式技术复审)形式,每个形式,每个复审会议都应该遵守下面的约束:复审会议都应该遵守下面的约束: * 复审会议(通常)应该在复审会议(通常)应该在3到到5个人之间进行个人之间进行 * 应该进行提前准备,但是每人占用工作时间应该进行提前准备,但是每人占用工作时间应该少于应该少于2小时小时 * 复审会议时间应该不超过复审会议时间应该不超过2小时小时 豪钡堕宗膝后秽任糟吱象总狗乌萍溃此加雇卞挨钵其誊恒塔竖榔矫著懊澄第8部分软件量保证第8部分软件量保证n在上述约束之下,显然在上述约束之下,显然FTRFTR应该关注的是应该关注的是整个软件中的某个特定(且较小)部分整个软件中的某个特定(且较小)部分 例如例如,不要试图复审整个设计,而是对,不要试图复审整个设计,而是对每个模块或者一小组模块进行走查。
当每个模块或者一小组模块进行走查当FTRFTR的关注范围较小时,发现错误的可能的关注范围较小时,发现错误的可能性更大煞晤咖核史查续从努金热警滨否毛踢兆晾阵撼路缴虞乔荷眶案哟于贤遗照第8部分软件量保证第8部分软件量保证 在复审结束时,所有在复审结束时,所有FTR的与会者必须作出以下的与会者必须作出以下决定中的一个:决定中的一个:((1)工作产品可以不经修改而被接受;)工作产品可以不经修改而被接受;((2)由于严重错误而否决工作产品(错误改正后必)由于严重错误而否决工作产品(错误改正后必须再次进行复审);或须再次进行复审);或((3)暂时接受工作产品(发现必须改正的微小错误,)暂时接受工作产品(发现必须改正的微小错误,但是不再需要进一步复审)作出决定之后,所但是不再需要进一步复审)作出决定之后,所有有FTR与会者需要与会者需要““签名签名””,以表示他们参加了,以表示他们参加了此次此次FTR,并且同意复审小组所作的决定并且同意复审小组所作的决定 牌训描寝耶磕厨浩茧千填舍潭驴畴涧魂游心孕宴绑倚碟九定萧雁萎墓脊屁第8部分软件量保证第8部分软件量保证复审报告和记录保存复审报告和记录保存 Review Reporting and Record Keepingn在在FTRFTR期间,一名复审者(记录员)主动记录所期间,一名复审者(记录员)主动记录所有提出的问题。
在复审会议结束时,对这些问有提出的问题在复审会议结束时,对这些问题进行总结,并生成一份题进行总结,并生成一份““复审问题列表复审问题列表””此外,还要完成一份简单的此外,还要完成一份简单的““复审总结报告复审总结报告””复审总结报告将回答以下问题:复审总结报告将回答以下问题: 1.1. 复审什么?复审什么? 2. 2. 由谁复审?由谁复审? 3. 3. 发现和结论是什么?发现和结论是什么? 芯辰遍蛆药耕虚写葱奏煞黄粘瓦疫纷幅舱李宰械糕属誉骄鹅火磷贬撅摈炒第8部分软件量保证第8部分软件量保证n复审总结报告通常是一页纸大小(可能还有附件)复审总结报告通常是一页纸大小(可能还有附件)它是项目历史记录的一部分,有可能被分发给项目它是项目历史记录的一部分,有可能被分发给项目管理者和其他感兴趣的参与方管理者和其他感兴趣的参与方n复审问题列表有两个作用复审问题列表有两个作用::(1) 标识产品中存在问题的区域;标识产品中存在问题的区域;(2) 用作用作““行动条目行动条目””检查表以指导生产者进行改正检查表以指导生产者进行改正 建立一个跟踪规程以保证问题列表中的每一项 建立一个跟踪规程以保证问题列表中的每一项条目都得到适当的改正条目都得到适当的改正。
只有做到这一点,才能保只有做到这一点,才能保证提出的问题真正得到控制证提出的问题真正得到控制榆悟坦匣瞧郧弊庭兼皆钠宦梦腻漏鹏耽校矗花捏隔榨盘站沤怯诵角径挺邢第8部分软件量保证第8部分软件量保证复审指南复审指南 Review Guidelines 进行正式技术复审之前必须建立复审指南,分 进行正式技术复审之前必须建立复审指南,分发给所有复审者,并得到大家的认可,然后才能发给所有复审者,并得到大家的认可,然后才能依照它进行复审依照它进行复审 ADVICE:不要严厉地指出错误一种温和地方式:不要严厉地指出错误一种温和地方式是问一个问题,以使得生产者能够发现他自己的是问一个问题,以使得生产者能够发现他自己的错误 尧孩毋蘸赂败肚浪榨袭哦悔冀算圣教卞摈嫌朔抗牙摩进左坚横折剔烫暗惹第8部分软件量保证第8部分软件量保证 1. 复审产品,而不是复审生产者复审产品,而不是复审生产者FTR涉及到别涉及到别人和自我如果进行得适当,人和自我如果进行得适当,FTR可以使所有参可以使所有参与者体会到温暖的成就感如果进行得不适当,与者体会到温暖的成就感如果进行得不适当,则可能陷入一种审问的气氛之中。
则可能陷入一种审问的气氛之中 复审主席应该引导复审会议以保证会议始终 复审主席应该引导复审会议以保证会议始终处于适当的气氛和态度之中,在讨论失去控制时处于适当的气氛和态度之中,在讨论失去控制时应立即休会应立即休会 哉鞘鞠势驹位葵掣卒体洼访锨脯讯赴缮历敏菩忽戒赃硅扑酶聂屎镜墅辉片第8部分软件量保证第8部分软件量保证 2. 制定日程并且遵守日程制定日程并且遵守日程各种类型的会议都具各种类型的会议都具有一个主要缺点:放任自流有一个主要缺点:放任自流FTR必须保证不要必须保证不要离题和按照计划进行复审主席被赋予维持会议离题和按照计划进行复审主席被赋予维持会议程序的责任,在有人转移话题时应该提醒他程序的责任,在有人转移话题时应该提醒他 3. 限制争论和辩驳限制争论和辩驳在复审者提出问题时,未必在复审者提出问题时,未必所有人都认同该问题的严重性不要花时间争论所有人都认同该问题的严重性不要花时间争论这一问题,这样的问题应该被记录在案,留到会这一问题,这样的问题应该被记录在案,留到会后进一步讨论后进一步讨论 截生怒惟傅蔑纪连端颇忘疏委枪肛搞酱坷盎溉似不李煮斡巷妆柯阵纺判亿第8部分软件量保证第8部分软件量保证 4. 对各个问题都发表见解,但是不要试图解决对各个问题都发表见解,但是不要试图解决所有记录的问题所有记录的问题。
复审不是一个问题解决会议复审不是一个问题解决会议问题的解决通常由生产者自己,或者在其他人问题的解决通常由生产者自己,或者在其他人的帮助下来完成问题解决应该放到复审会议的帮助下来完成问题解决应该放到复审会议之后进行之后进行 5. 作书面笔记作书面笔记 6. 限制参与者人数并坚持事先作准备限制参与者人数并坚持事先作准备卒毛倡大巩肆阅进镐冕夏桶肖喇仇颖攀晦斤限流瑞盲猎鸥额氨雄崩互帖吓第8部分软件量保证第8部分软件量保证 7. 为每个可能要复审的工作产品建立一个检查表为每个可能要复审的工作产品建立一个检查表检查表能够帮助复审主席组织检查表能够帮助复审主席组织FTR会议,并帮助会议,并帮助每个复审者将注意力集中在重要问题上应该为每个复审者将注意力集中在重要问题上应该为分析、设计、编码、甚至测试文档都建立检查表分析、设计、编码、甚至测试文档都建立检查表 8. 为为FTR分配资源和时间分配资源和时间为了让复审有效,应为了让复审有效,应该将复审作为软件工程过程中的任务加以调度该将复审作为软件工程过程中的任务加以调度而且要为由复审结果而导致的修改活动分配时间而且要为由复审结果而导致的修改活动分配时间。
阂型斥让燥贵昔穗邱瑞师读蛇取歧胀刀曲更吗熟圆争耶氏埋均坛咎焉迟斜第8部分软件量保证第8部分软件量保证 9. 对所有复审者进行有意义的培训对所有复审者进行有意义的培训为了提高效率,所有为了提高效率,所有复审参与者都应该接受某种正式培训复审参与者都应该接受某种正式培训 10. 复审以前所作的复审复审以前所作的复审听取汇报对发现复审过程本身的听取汇报对发现复审过程本身的问题十分有益最早被复审的工作产品应该是复审指南本身问题十分有益最早被复审的工作产品应该是复审指南本身 由于成功的复审涉及到许多变数(由于成功的复审涉及到许多变数(如,参与者数量、工作如,参与者数量、工作产品类型、时间和长度、特定的复审方法等)产品类型、时间和长度、特定的复审方法等),软件组织应,软件组织应该在实验中决定何种方法最为适用该在实验中决定何种方法最为适用娱陀间欺胯夫饵棱贤渐哗闯呐晴担违租化缚养诊沦宛逼悲少鸿屿视蚌殿妹第8部分软件量保证第8部分软件量保证8.6 SQA的形式化方法的形式化方法Formal Approaches to SQA n在过去的在过去的20年中,在软件界中有一群虽然很少但年中,在软件界中有一群虽然很少但是很坚决的人们,提出软件质量保证应该采用一是很坚决的人们,提出软件质量保证应该采用一种更为种更为形式化的方法形式化的方法。
一个计算机程序可以看作一个计算机程序可以看作一个数学对象一个数学对象 n对于每一种程序设计语言都能够定义一套严格的对于每一种程序设计语言都能够定义一套严格的语法和语义,且对于软件需求规格说明也出现了语法和语义,且对于软件需求规格说明也出现了一种类似的严格方法一种类似的严格方法篆忧斯猛汕邓尚逻讲厅辣隙蚁眠鉴溪僵荣周完石逐缮动陈弃囱猪捷撇晤朵第8部分软件量保证第8部分软件量保证n一旦需求模型(规约)和程序设计语言以一种一旦需求模型(规约)和程序设计语言以一种严格的方式被表达出来,就可以采用程序正确严格的方式被表达出来,就可以采用程序正确性的数学证明来说明程序是否严格符合它的规性的数学证明来说明程序是否严格符合它的规约n程序正确性证明程序正确性证明不是一个新的思路不是一个新的思路Dijkstra和和Linger、、Mills及及Witt,以及其他很多人都支持,以及其他很多人都支持程序正确性的数学证明,并将它与结构化程序程序正确性的数学证明,并将它与结构化程序设计概念联系在一起设计概念联系在一起 娶匆玉虽瞒挤跟侨剂曲攫钻奠嚎苍帮锥观驾旱署拇稿绕箔胰沟鹃奔扩让肾第8部分软件量保证第8部分软件量保证8.7统计软件质量保证统计软件质量保证 Statistical Quality Assurancen统计质量保证反映了一种在产业界不断增长的趋统计质量保证反映了一种在产业界不断增长的趋势:质量的量化。
对于软件而言,势:质量的量化对于软件而言,统计质量保证统计质量保证包括以下步骤:包括以下步骤: 1. 收集和分类软件缺陷信息收集和分类软件缺陷信息 2. 尝试对每个缺陷的形成原因(例如,不符合规尝试对每个缺陷的形成原因(例如,不符合规约、设计错误、违背标准、与客户通信不力等)约、设计错误、违背标准、与客户通信不力等)进行追溯进行追溯 酝果厅脆衬谎疥惹否葫素汝犹扦拱冉肛煎密拴辈今诊凉漱渔炽咕彝哺咖瘤第8部分软件量保证第8部分软件量保证3. 使用使用Pareto原则(原则(80%的缺陷可以追溯到所有%的缺陷可以追溯到所有可能原因中的可能原因中的20%),将这%),将这20%(重要的少数)%(重要的少数)分离出来分离出来4. 一旦标识出重要的少数原因,就可以开始纠正一旦标识出重要的少数原因,就可以开始纠正引起缺陷的问题引起缺陷的问题吸肩迈照繁韵硅薛笨痉惑感峻摇粕他蜕雏培祥部器襄搏散抚坛审戊课摈扮第8部分软件量保证第8部分软件量保证所有错误都可以追溯到下述原因中的一个所有错误都可以追溯到下述原因中的一个(或几个或几个):* 规约不完整或规约错误规约不完整或规约错误((incomplete or erroneous specifications,,IES))* 与客户通信中所产生的误解与客户通信中所产生的误解((misinterpretation of customer communication,,MCC))* 故意与规约偏离故意与规约偏离((intentional deviation from specification,,IDS))* 违反编程标准违反编程标准((violation of programming standards,,VPS))* 数据表示有错数据表示有错((error in data representation,,EDR))* 构件接口不一致构件接口不一致((inconsistent component interface,,ICI)) 鸣晤鼠穆咆耳技誊甄坑港涸系锋唤彤巾榴锥络尿奴贬仆宠呕盘膨舜笔岁捕第8部分软件量保证第8部分软件量保证* 设计逻辑有错设计逻辑有错((error in design logic,,EDL))* 不完整或错误的测试不完整或错误的测试((incomplete or erroneous testing,,IET))* 不准确或不完整的文档不准确或不完整的文档((inaccurate or incomplete documentation,,IID))* 将设计翻译成程序设计语言中的错误将设计翻译成程序设计语言中的错误((error in programming language translation of design,,PLT))* 不清晰或不一致的人机界面不清晰或不一致的人机界面((ambiguous or inconsistent human/computer interface,,HCI))* 杂项杂项((miscellaneous,,MIS)) 遥认荫梳价崩钞莫射梢嗡球赫堕涪蹭芯湖波确瘩左来显锁消涤缕羚附梭眉第8部分软件量保证第8部分软件量保证表表8-1瓶盆乙闭雌栗锣力乌郴釜坪羊凭揖哦库京耍税臃益粗澡及脓铣蔡喂浴皱剃第8部分软件量保证第8部分软件量保证n重要的是要注意,纠正性动作主要注重于重要的是要注意,纠正性动作主要注重于““重重要的少数要的少数””。
随着少数重要原因的不断改正,随着少数重要原因的不断改正,新的候选错误原因也将被提到改进日程上来新的候选错误原因也将被提到改进日程上来n软件的统计质量保证技术已经被证明提供了实软件的统计质量保证技术已经被证明提供了实质性的质量改善质性的质量改善n在某些情形,在应用这些技术后,软件组织已在某些情形,在应用这些技术后,软件组织已经达到了经达到了50%的年缺陷减少的年缺陷减少 也年悸挎征魁癸祷侦扳贤敛弱饺脆矾浓峪碑满详刁些棍窜帛汀茁卫肚苞珊第8部分软件量保证第8部分软件量保证n当与缺陷信息集合结合使用时,软件开发者可以当与缺陷信息集合结合使用时,软件开发者可以为软件工程过程中的每个步骤计算为软件工程过程中的每个步骤计算““错误指标错误指标””((Error index,,EI)在经过分析、设计、编)在经过分析、设计、编码、测试和发布之后,将收集到以下数据:码、测试和发布之后,将收集到以下数据:Ei == 在软件工程过程中的第在软件工程过程中的第i步中发现的错误总数步中发现的错误总数Si == 严重错误数严重错误数Mi == 一般错误数一般错误数Ti == 微小错误数微小错误数PS == 第第i步的产品规模(步的产品规模(LOC、设计陈述、文档页、设计陈述、文档页数)数) 谭怜盏轨茎浴皆恳噬嘉趣烈承躲驻诊恶墩扫瞩栏朽楚贝周妥僧枢绪彩毖芯第8部分软件量保证第8部分软件量保证nWs、、Wm、、Wt分别是严重、一般、微小错误的加分别是严重、一般、微小错误的加权因子,其推荐取值为权因子,其推荐取值为 Ws==10 Wm==3 Wt==1。
n随着过程的进展,每个阶段的加权因子取值逐渐随着过程的进展,每个阶段的加权因子取值逐渐变大也就是说,尽早发现错误的组织得益较多也就是说,尽早发现错误的组织得益较多n在软件工程过程中的每一步中,分别计算各个阶在软件工程过程中的每一步中,分别计算各个阶段的阶段指标(段的阶段指标(phase index))PIi:: PIi = Ws (Si/Ei) + Wm (Mi/Ei) + Wt (Ti/Ei) 川盐宽邑氯趁圭哩名瘟悸发竿五耙殷老脾队挟萎档不力谬吱瓮扮禹击伯区第8部分软件量保证第8部分软件量保证n错误指标错误指标EI通过计算各个通过计算各个PIi的加权效果得到,在软的加权效果得到,在软件工程过程中后面的步骤中遇到的错误的权重要高件工程过程中后面的步骤中遇到的错误的权重要高于在前面阶段遇到的错误权重于在前面阶段遇到的错误权重 EI = ∑ (i×PIi)/PS = (PI1+2PI2+3PI3+…+iPIi)/PSn错误指标与表错误指标与表8.1中收集的信息相结合,可以得出中收集的信息相结合,可以得出软件质量的整体改进指标软件质量的整体改进指标。
n统计统计SQA的应用及的应用及Pareto规则可以用一句话概括:规则可以用一句话概括:将时间集中用于真正重要的地方,但是首先你必须将时间集中用于真正重要的地方,但是首先你必须知道什么是重要的知道什么是重要的 瞥真啡赠囤钳裹著扁耿脐代庙盗呼弛瞥蜀姐咬玻园玉镊衣用灾娟楚好蛔斯第8部分软件量保证第8部分软件量保证8.8软件可靠性软件可靠性 Software Reliability n软件可靠性是软件可靠性是““在特定环境和特定时间内,计算在特定环境和特定时间内,计算机程序无故障地运行的概率机程序无故障地运行的概率”” 举例说明举例说明,程序,程序X在在8个小时处理占用时间中的个小时处理占用时间中的可靠性估计为可靠性估计为0.96;也就是说,如果程序;也就是说,如果程序X执行执行100次,每次运行次,每次运行8个小时的处理占用时间(执个小时的处理占用时间(执行时间),则行时间),则100次中正确运行(不失败)的次次中正确运行(不失败)的次数可能是数可能是96 劈扦吉强寻钟寅槽淮闽颁听畜瘟列衔竭慎何如握沛阮窄哲波抽喉黑干礁涌第8部分软件量保证第8部分软件量保证在软件工程中常用的定义在软件工程中常用的定义n n错误错误错误错误(error)(error)(error)(error):人类会犯错误。
同义词是过错:人类会犯错误同义词是过错:人类会犯错误同义词是过错:人类会犯错误同义词是过错(mistake),bug((mistake),bug((mistake),bug((mistake),bug(在编写代码时出现的过错在编写代码时出现的过错在编写代码时出现的过错在编写代码时出现的过错) ) ) ),指在软,指在软,指在软,指在软件交付给最终用户之前发现的质量问题件交付给最终用户之前发现的质量问题件交付给最终用户之前发现的质量问题件交付给最终用户之前发现的质量问题n n缺陷缺陷缺陷缺陷(defect):(defect):(defect):(defect):指在软件交付给最终用户之后发现的指在软件交付给最终用户之后发现的指在软件交付给最终用户之后发现的指在软件交付给最终用户之后发现的质量问题质量问题质量问题质量问题 n n故障故障故障故障/ / / /缺陷缺陷缺陷缺陷(fault)(fault)(fault)(fault)::::故障是错误的结果,或错误的表故障是错误的结果,或错误的表故障是错误的结果,或错误的表故障是错误的结果,或错误的表现n n失效失效失效失效(failure)(failure)(failure)(failure):当缺陷执行时会发生失效,失效只:当缺陷执行时会发生失效,失效只:当缺陷执行时会发生失效,失效只:当缺陷执行时会发生失效,失效只出现在可执行的表现中,通常是被装载的目标代码。
出现在可执行的表现中,通常是被装载的目标代码出现在可执行的表现中,通常是被装载的目标代码出现在可执行的表现中,通常是被装载的目标代码炒茹孩肆街析簧顿叭甄浊诣札帅牛琐特妒疑悸瘫羊士路短逻责寝斤虾桔芯第8部分软件量保证第8部分软件量保证n n以上定义的故障、错误和失效,分别以上定义的故障、错误和失效,分别代表了代表了广义的广义的“错误错误”在不同的条件在不同的条件下下所对应的术语所对应的术语n n它们可以理解为:设计者的失误它们可以理解为:设计者的失误─导致导致系统中留有错误的设计系统中留有错误的设计──缺陷或缺陷或“故故障障”(fault),这些,这些故障故障导致系统的错导致系统的错误执行误执行──错误错误(error),由于,由于错误错误导致导致系统的错误输出系统的错误输出──失效失效(failure)荫搞讳妥簇表恰池氖鸳皮榜淄储丧皑狙组磋稚挑凭虚怖统熙替物蚜剃儒咋第8部分软件量保证第8部分软件量保证n n故障是物理地或静态地存在的故障是物理地或静态地存在的n n失误、错误和失效都是系统的一种失误、错误和失效都是系统的一种动态的转瞬即逝的现象动态的转瞬即逝的现象n n软件发生失效标志着软件一次使用软件发生失效标志着软件一次使用寿命的结束寿命的结束n n发生过失效的软件通常仍然是可用发生过失效的软件通常仍然是可用的。
只有当软件频繁失效,或者公的只有当软件频繁失效,或者公认已经认已经“过时过时”了的时侯,软件才了的时侯,软件才被废弃,被废弃,意味着当前这一版本软件意味着当前这一版本软件使用寿命的终结使用寿命的终结躯哩昂络梦具骡驳凌菏猾拒委珠脖旋中惋近酵汀蓝开警幌今孪瓮琼捡尖司第8部分软件量保证第8部分软件量保证可靠性和可用性的测量可靠性和可用性的测量Measures of Reliability and Availability n当我们考虑一个基于计算机的系统时,当我们考虑一个基于计算机的系统时,可靠性的简可靠性的简单度量是单度量是““平均失效间隔时间平均失效间隔时间””((MTBF)),其中:,其中: MTBF == MTTF ++MTTR MTTF (Mean-Time-To-Failure)和和MTTR (Mean-Time-To-Repair)分别是分别是““平均失效时间平均失效时间””和和““平均修复时间平均修复时间”” 客覆籍卷擎凳伏峻哲漓菱恐李瘦罕佬舜疆涉须汗寐阮苫沟勉穴俞耻舷缅湃第8部分软件量保证第8部分软件量保证n许多研究人员认为许多研究人员认为MTBF是一个远比是一个远比““缺陷缺陷数数/KLOC””或或““缺陷数缺陷数/FP””更为有用的度量更为有用的度量指标指标。
简而言之,最终用户关心的是失效,而不是简而言之,最终用户关心的是失效,而不是总缺陷数总缺陷数杰吸傻敬雄疟福肇纺喀蒜守歼猖挚荚抬饼厕剩鸭佣其忙顺猾轿哇职墅赌刮第8部分软件量保证第8部分软件量保证n由于一个程序中包含的每个缺陷所具有的失效率不由于一个程序中包含的每个缺陷所具有的失效率不同,总缺陷数难以表示系统的可靠性同,总缺陷数难以表示系统的可靠性比如比如考虑一考虑一个已经投入运行个已经投入运行14个月的程序,程序中的许多缺陷个月的程序,程序中的许多缺陷的暴露需要经过几年的运行时间这种隐藏缺陷的的暴露需要经过几年的运行时间这种隐藏缺陷的MTBF可能是可能是50到到100年 n还有一些尚未被发现的缺陷的失败率可能是还有一些尚未被发现的缺陷的失败率可能是18或或24个月即使全部排除第一种缺陷(具有较长个月即使全部排除第一种缺陷(具有较长MTBF的缺陷),对软件可靠性的影响也微乎其微的缺陷),对软件可靠性的影响也微乎其微舍自嵌黄扰贮篷使码筑类斜神董断捶蓖豹么永窟绎沸俘屈贡李披禹皱伯弓第8部分软件量保证第8部分软件量保证n除可靠性度量之外,我们必须开发一个除可靠性度量之外,我们必须开发一个““可用性可用性””度量。
软件可用性是指在某个给定时间点上程度量软件可用性是指在某个给定时间点上程序能够按照需求执行的概率其定义为:序能够按照需求执行的概率其定义为: 可用性 可用性 == MTTF / (MTTF ++ MTTR) × 100%%nMTBF可靠性度量对可靠性度量对MTTF和和MTTR同样敏感而同样敏感而可用性度量在某种程度上对可用性度量在某种程度上对MTTR较为敏感,较为敏感,MTTR是软件可维护性的间接度量是软件可维护性的间接度量 件庐做庞堂钙惺辟贰艰安付角棒搬彝鼻哉毫插疏葵涣幸郸习参卢隙凶哲牛第8部分软件量保证第8部分软件量保证软件安全性(软件安全性(Software Safety)) n““软件安全性软件安全性””是集中于解决潜在危险(是集中于解决潜在危险(这些这些危险将负面影响软件系统并导致整个系统失效危险将负面影响软件系统并导致整个系统失效))的标识和评估问题的软件质量保证活动的标识和评估问题的软件质量保证活动n如果能够在软件工程过程的早期标识这些危险,如果能够在软件工程过程的早期标识这些危险,则可以指定软件设计特性以排除或控制潜在的则可以指定软件设计特性以排除或控制潜在的危险。
危险 逆酒盼斤肇彻细筑俏晰遭勒贞膝盼希孤劣灼拜往雇看揭喉咨又淀诫伶嘶妓第8部分软件量保证第8部分软件量保证n建模和分析过程可以视为软件安全性的一部分建模和分析过程可以视为软件安全性的一部分开始时,根据关键性和风险来标识和分类危险开始时,根据关键性和风险来标识和分类危险例如,与基于计算机的汽车驾驶控制相关的危例如,与基于计算机的汽车驾驶控制相关的危险可能有:险可能有:* 导致不受控制的加速使得不能停止导致不受控制的加速使得不能停止* 当刹车踏板踩下后不能制动当刹车踏板踩下后不能制动* 开关激活后不能启动开关激活后不能启动* 加速或减速缓慢加速或减速缓慢 惜笆腥鞍毛国馒舵鹿武美哆管覆追质砷丝肤恬蓄骤桨酒摄皇淖痔月副疙范第8部分软件量保证第8部分软件量保证n一旦这些系统级的危险被标识出来,就可以使用分一旦这些系统级的危险被标识出来,就可以使用分析技术指定这些危险发生的严重性和概率析技术指定这些危险发生的严重性和概率n为了真正有效,软件应该被置于整个系统中进行分为了真正有效,软件应该被置于整个系统中进行分析例如例如,一个微小的用户输入错误可能被软件,一个微小的用户输入错误可能被软件错误放大成产生将机械设备置于不正确位置的控错误放大成产生将机械设备置于不正确位置的控制数据。
如果满足一组外部环境条件(而且仅当制数据如果满足一组外部环境条件(而且仅当满足这些条件时),机械设备的不正确位置将引满足这些条件时),机械设备的不正确位置将引发灾难性的失败发灾难性的失败n故障树分析、实时逻辑或故障树分析、实时逻辑或Petri网模型等分析技术网模型等分析技术可以用于预测可能引起危险的事件链,以及事件可以用于预测可能引起危险的事件链,以及事件链中的各个事件出现的概率链中的各个事件出现的概率 峨尖吼浦坯赃酒姬混坪盅咋械李嗽绳涉窃肄店点迂式逞杯忧瑚狠夜婴羚誉第8部分软件量保证第8部分软件量保证n危险标识和分析完成之后,就可以进行软件中与安危险标识和分析完成之后,就可以进行软件中与安全性相关的需求进行规格说明了全性相关的需求进行规格说明了n尽管软件可靠性与软件安全性相互之间关系紧密,尽管软件可靠性与软件安全性相互之间关系紧密,但是理解它们之间的微妙差异更为重要但是理解它们之间的微妙差异更为重要n软件可靠性使用统计分析方法确定软件失效发生的软件可靠性使用统计分析方法确定软件失效发生的可能性可能性;而失效的发生未必导致危险或灾难而失效的发生未必导致危险或灾难软软件安全性则考察失效会导致灾难发生的条件件安全性则考察失效会导致灾难发生的条件。
击败祥港书倒攘肯歹显啥弯铭速为酒仰荤惶坦院挝晓毖遗砸掷溅方叼弛言第8部分软件量保证第8部分软件量保证8.9软件的错误防范软件的错误防范n在在1960年代,日本的工业工程师年代,日本的工业工程师Shigeo Shingo在在Toyota(丰田)工作时,开发了(丰田)工作时,开发了一种质量保证技术,用于制造过程中错误一种质量保证技术,用于制造过程中错误的预防和的预防和/或早期纠正,成为或早期纠正,成为poka-yoke(错误检验)错误检验)Shingo的概念使用的概念使用poka-yoke设备,设备, 用于:((1)潜在质量问题发生前的预防;)潜在质量问题发生前的预防;((2)质量问题的快速探测质量问题的快速探测梨龄避皋费饶路障圆团奉料品讫俭肪脸播凭路逗臼厅蛆巨怎犹矩践鹅捕浇第8部分软件量保证第8部分软件量保证n在我们的日常生活中总能遇到在我们的日常生活中总能遇到poka-yoke设备设备(即使我们并不知道这个概念),(即使我们并不知道这个概念),例如例如,如果,如果自动变速箱不是位于停车档上,则汽车的启动自动变速箱不是位于停车档上,则汽车的启动开关不能工作(预防设备),如果安全带未系开关不能工作(预防设备),如果安全带未系上,则汽车的警告声将响起(探测设备)。
上,则汽车的警告声将响起(探测设备) 骄蘸鄂召滔个漫县授揉占傈盐挖哆儿榨雌熬翁炭菲顾淳墩短绒兢狱菱毒力第8部分软件量保证第8部分软件量保证n一个有效的一个有效的poka-yoke设备展示了一组共同特征:设备展示了一组共同特征: * 简单且便宜简单且便宜如果某设备太复杂或太昂贵,则它如果某设备太复杂或太昂贵,则它将不是价格有效的将不是价格有效的 * 是过程的一部分是过程的一部分即,poka-yoke设备被集成进设备被集成进一个工程活动中一个工程活动中 * 位于发生错误的过程任务的旁边位于发生错误的过程任务的旁边这样,它提供这样,它提供快速的反馈和错误纠正快速的反馈和错误纠正 胶秩优屏询周矗湍救沦拟郊栓磨舀计蝇阐免灵阻人隋则恭芥绎袍锗挽友描第8部分软件量保证第8部分软件量保证8.10 ISO 9000质量标准质量标准 The ISO 9000 Quality Standardsn““质量保证系统质量保证系统””可以被定义成用于实现质量管可以被定义成用于实现质量管理的组织结构、责任、规程、过程和资源理的组织结构、责任、规程、过程和资源n这些系统覆盖了构成产品的完整生命期的大量的这些系统覆盖了构成产品的完整生命期的大量的活动,活动,包括计划、控制、测量、测试和报告,以包括计划、控制、测量、测试和报告,以及在贯穿开发和制造的过程中改进质量级别及在贯穿开发和制造的过程中改进质量级别。
nISO 9000标准以一种能够适用于任何行业(不论标准以一种能够适用于任何行业(不论提供的是何种产品或服务)的一般术语描述了质提供的是何种产品或服务)的一般术语描述了质量保证的元素量保证的元素颜威骤愚纵肉丑屈盾想椭钮剖绊周油今犬左晕粪伪葛纽宠筛提盎般姥艇肆第8部分软件量保证第8部分软件量保证n在采用标准以后,一个国家通常只允许在采用标准以后,一个国家通常只允许ISO登记登记的公司向政府部门和公共组织供应产品和服务的公司向政府部门和公共组织供应产品和服务电信设备和医疗设备是必须由电信设备和医疗设备是必须由ISO登记公司供应登记公司供应的产品类别的例子反过来,这些产品的制造商的产品类别的例子反过来,这些产品的制造商经常需要他们的供应商变成经常需要他们的供应商变成ISO登记的私有公登记的私有公司,如汽车和计算机制造商经常也需要他们的供司,如汽车和计算机制造商经常也需要他们的供应商是应商是ISO登记的 袭镜皇椎途颧新袖欲偷宗屋芽岛闷同着卡每陷吻那锄罗逾汝酵井夸窥间涂第8部分软件量保证第8部分软件量保证n为了登记成为为了登记成为ISO 9000中包含的质量保证系统中包含的质量保证系统模型中的一种,一个公司的质量系统和操作应模型中的一种,一个公司的质量系统和操作应该由第三方审计者仔细检查,查看其与标准的该由第三方审计者仔细检查,查看其与标准的符合性以及操作的有效性。
符合性以及操作的有效性n成功登记之后,这一公司将收到由审计者所代成功登记之后,这一公司将收到由审计者所代表的登记实体颁发的证书此后每半年进行一表的登记实体颁发的证书此后每半年进行一次的检查性审计将持续保证该公司的质量系统次的检查性审计将持续保证该公司的质量系统与标准是相符的与标准是相符的 莆财宙怪法磷盗契椅侩宵弦哺髓疹渐什奄应水楼裙伴哎段筹践曝淘戒蔽嚷第8部分软件量保证第8部分软件量保证ISO质量保证系统的方法质量保证系统的方法 nISO 9000质量保证模型将一个企业视为一个互联质量保证模型将一个企业视为一个互联过程的网络为了使质量系统符合过程的网络为了使质量系统符合ISO标准,这些标准,这些过程必须针对在标准中给出的区域,并且必须按过程必须针对在标准中给出的区域,并且必须按照标准中所述的予以文档化和实现照标准中所述的予以文档化和实现nISO 9000以一般术语描述了一个质量保证系统的以一般术语描述了一个质量保证系统的元素这些元素包括用于实现质量计划、质量控这些元素包括用于实现质量计划、质量控制、质量保证和质量改进所需的组织结构、规程、制、质量保证和质量改进所需的组织结构、规程、过程、和资源。
过程、和资源 纹赠命半细藉疽募馆忍托湾晒永厅滁粮嫩舀撇陆抱阮覆饱虑盈筛时环翅差第8部分软件量保证第8部分软件量保证n但是但是ISO 9000并不描述一个组织应该如何实现并不描述一个组织应该如何实现这些质量系统元素因此,真正的挑战在于如这些质量系统元素因此,真正的挑战在于如何设计和实现一个能够满足标准、并适用于公何设计和实现一个能够满足标准、并适用于公司的产品、服务和文化的质量保证系统司的产品、服务和文化的质量保证系统nKEYPOINT::ISO 9000描述必须做什么以保证描述必须做什么以保证符合,但是,它并没有描述必须如何做符合,但是,它并没有描述必须如何做 堵滑棒涟橙灼罗淀便秽冕春雀粥暇搓勾苑弄动冉继洞息蔽该科酵海描砧块第8部分软件量保证第8部分软件量保证 ISO 9001标准标准 nISO 9001是应用于软件工程的质量保证标准这一是应用于软件工程的质量保证标准这一标准中包含了高效的质量保证系统必须体现的标准中包含了高效的质量保证系统必须体现的20条条需求n因为因为ISO 9001标准适用于所有的工程行业,因此,标准适用于所有的工程行业,因此,为帮助解释该标准在软件过程中的使用而专门开发为帮助解释该标准在软件过程中的使用而专门开发了一个了一个ISO指南的子集(即指南的子集(即ISO 9000-3)。
嫉犯汪圾怒膊据慈蛮杉存匡由淄绕癸栽爹坝喊负压辑蹿渊箭氮首蚜揪躁疆第8部分软件量保证第8部分软件量保证nISO 9001描述的需求强调了管理责任、质量系描述的需求强调了管理责任、质量系统、控制复审、设计控制、文档和数据控制、产统、控制复审、设计控制、文档和数据控制、产品标识和跟踪、过程控制、审查和测试、纠正和品标识和跟踪、过程控制、审查和测试、纠正和预防性动作、控制质量记录、内部质量审计、培预防性动作、控制质量记录、内部质量审计、培训、服务以及统计技术的话题训、服务以及统计技术的话题n软件组织为了通过软件组织为了通过ISO 9001,就必须针对上面,就必须针对上面提到的每一条需求(和其他)建立相关政策和规提到的每一条需求(和其他)建立相关政策和规程,并且有能力显示出组织活动的确是按照这些程,并且有能力显示出组织活动的确是按照这些政策和规程进行的政策和规程进行的 远豁冒励颂筹原溺济且撤添又催儿喝轴僵医寸嗣监邦殊掩坝胳编盘曾辨捂第8部分软件量保证第8部分软件量保证8.11 SQA计划计划n““SQA计划计划””为建立软件质量保证提供了一张行为建立软件质量保证提供了一张行路图该计划由路图。
该计划由SQA小组制定,充当了每个软件小组制定,充当了每个软件项目中的项目中的SQA活动的模板活动的模板nSQA计划的标准由计划的标准由IEEE 推荐开始部分描述目推荐开始部分描述目的和文档范围,并指出质量保证所覆盖的软件过的和文档范围,并指出质量保证所覆盖的软件过程活动所有在程活动所有在SQA计划中提到的文档都被列出计划中提到的文档都被列出来,且所有可应用的标准都专门注明计划的来,且所有可应用的标准都专门注明计划的““管理管理””部分描述部分描述SQA在组织结构中的位置;在组织结构中的位置;SQA任务和活动、及它们在整个软件过程中的位置;任务和活动、及它们在整个软件过程中的位置;以及与产品质量有关的组织角色和责任以及与产品质量有关的组织角色和责任 高佣仙英猴彦眨效尤言斟腐舌破勘贴戎铝帐云听幻志托署臂源衔伶仟蚁扫第8部分软件量保证第8部分软件量保证n““文档文档””一节(通过引用)描述的是软件过程各一节(通过引用)描述的是软件过程各个部分所产生的各种工作产品,包括:个部分所产生的各种工作产品,包括: * 项目文档项目文档(例如项目计划)(例如项目计划) * 模型模型(例如(例如ERD模型、类层次模型)模型、类层次模型) * 技术文档技术文档(例如规约、测试计划)(例如规约、测试计划) * 用户文档用户文档(例如帮助文件)(例如帮助文件) 吊德扑邓纳漾琉房咋驮胆逼淆映翼哦境攻纺沾特刺匡辟鸥俄唯榨义亲迄氢第8部分软件量保证第8部分软件量保证n另外,在这一节中还定义了实现高质量所能接受另外,在这一节中还定义了实现高质量所能接受的工作产品的最小集合。
的工作产品的最小集合n在在““标准、实践和约定标准、实践和约定””中列出了所有在软件过中列出了所有在软件过程中采用的合适的标准和实践方法(例如,文档程中采用的合适的标准和实践方法(例如,文档标准、编码标准和复审指南)此外,还列出了标准、编码标准和复审指南)此外,还列出了作为软件工程工作的成分而收集的所有项目、过作为软件工程工作的成分而收集的所有项目、过程及(在某些情况下)产品度量信息程及(在某些情况下)产品度量信息n计划中的计划中的““复审和审计复审和审计””一节标识了软件工程小一节标识了软件工程小组、组、SQA小组和客户进行的审计和复审活动它小组和客户进行的审计和复审活动它给出了各种复审和审计方法的总览给出了各种复审和审计方法的总览 再歉犬嫡从言肿苞战授摄没撼匪新疏叭脐龟啄促痰古郴誊筛稽背淳啄轴舞第8部分软件量保证第8部分软件量保证n““测试测试””一节中列出了软件测试计划和过程它还一节中列出了软件测试计划和过程它还定义了测试记录保存的需求定义了测试记录保存的需求问题报告和改正行问题报告和改正行动动””中定义了错误及缺陷的报告、跟踪和解决规程,中定义了错误及缺陷的报告、跟踪和解决规程,这些活动的组织责任也被标识出来。
这些活动的组织责任也被标识出来n““SQA计划计划””的其他部分标识了支持的其他部分标识了支持SQA活动与任活动与任务的工具和方法;给出了控制变化的软件配置管理务的工具和方法;给出了控制变化的软件配置管理过程;定义了一种合同管理方法;建立了组装、保过程;定义了一种合同管理方法;建立了组装、保护、维护所有记录的方法;标识了为满足这一计划护、维护所有记录的方法;标识了为满足这一计划所需的培训;定义了标识、评估、监控和控制风险所需的培训;定义了标识、评估、监控和控制风险的方法 莹旁岸贪还氓肮彬傣捅唐盲久束腺辽淫蒋矣何酝症谩夫含互种蔽切份脐锯第8部分软件量保证第8部分软件量保证表表8-3效阀怎柏筛悍撂泼冯枢计没玉屏聚援彻盖蝎彰翅棱检杯猪玛粹咳泅阀洁耿第8部分软件量保证第8部分软件量保证8.12 小结小结 Summaryn软件质量保证是在软件过程中的每一步都进行软件质量保证是在软件过程中的每一步都进行的的““庇护性活动庇护性活动””SQA包括对方法和工具有包括对方法和工具有效应用的规程、正式技术复审、测试策略和技效应用的规程、正式技术复审、测试策略和技术、变化控制规程、保证与标准符合的规程、术、变化控制规程、保证与标准符合的规程、以及度量和报告机制。
以及度量和报告机制n软件质量的复杂本质软件质量的复杂本质――这是计算机程序的一这是计算机程序的一种属性,其定义是种属性,其定义是““与明确地和隐含地定义的与明确地和隐含地定义的需求的符合程度需求的符合程度””――使使SQA很复杂但是当很复杂但是当被更为一般地考虑时,软件质量包括了许多不被更为一般地考虑时,软件质量包括了许多不同的产品和过程因素及其相关的度量同的产品和过程因素及其相关的度量 将挡寒屁呀芹族吱腥吭董逼谊絮泽比缕敬蜀屿耗侦寸令摘瑚会汛虫纪睫尔第8部分软件量保证第8部分软件量保证n软件复审是最为重要的软件复审是最为重要的SQA活动之一复审活动之一复审的作用是作为软件过程的过滤器,在发现及的作用是作为软件过程的过滤器,在发现及改正错误的成本相对较小时就排除错误正改正错误的成本相对较小时就排除错误正式技术复审或走查是一种典型的复审会议,式技术复审或走查是一种典型的复审会议,在实践中这种形式对于发现错误极其有效在实践中这种形式对于发现错误极其有效n为了正确的进行软件质量保证,必须收集、为了正确的进行软件质量保证,必须收集、评估和发布软件工程过程的数据统计评估和发布软件工程过程的数据。
统计SQA有助于改进产品和软件过程本身的质量软有助于改进产品和软件过程本身的质量软件可靠性模型将度量加以扩展,能够由所收件可靠性模型将度量加以扩展,能够由所收集的缺陷数据推导出项目失败率和进行可靠集的缺陷数据推导出项目失败率和进行可靠性估计 化敦黎历抛浑范滑浸猪瑟甸瓢调牌沦更披丘啦私裤喀梆鲁盗肆奖芭狈尚喇第8部分软件量保证第8部分软件量保证n总而言之,让我们借用总而言之,让我们借用Dunn和和Ullman的一的一句话:句话:““软件质量保证就是将质量保证的管软件质量保证就是将质量保证的管理对象和设计原则映射到适用的软件工程管理对象和设计原则映射到适用的软件工程管理和技术空间上理和技术空间上质量保证的能力是成熟质量保证的能力是成熟的工程学科的量尺当上述映射成功实现时,的工程学科的量尺当上述映射成功实现时,其结果就是成熟的软件工程其结果就是成熟的软件工程 瘁频司判情道躺啃痘侣涵泽陕粘斜撇痈倾藐诞售西浮仑坝沉宝尹吴橇纠饲第8部分软件量保证第8部分软件量保证Bye!根镣厌懊稻溯峻受恿泛炒碉扣贞胳慰章毯讫慰匿告径汝冰粒渡件汹炒畏独第8部分软件量保证第8部分软件量保证。
