《软件工程7-1.ppt》由会员分享,可在线阅读,更多相关《软件工程7-1.ppt(96页珍藏版)》请在金锄头文库上搜索。
1、现代软件工程现代软件工程第七部分第七部分现代软件工程的质量保证现代软件工程的质量保证 现代软件工程现代软件工程本部分主要参考书本部分主要参考书软件验证与确认的最佳管理方法软件验证与确认的最佳管理方法(美)(美)StevenR.Rakitin著于秀山等译(电子工业出版社)著于秀山等译(电子工业出版社)2002测试流程管理测试流程管理(美)(美)RexBlack著(北京大学出版社)著(北京大学出版社)2001软件工程与软件测试自动化教程软件工程与软件测试自动化教程张克东、庄燕滨(电子张克东、庄燕滨(电子工业出版社)工业出版社)软件工程规范软件工程规范(美)(美)Watts.S.Humphrey著,
2、傅为、苏俊、著,傅为、苏俊、许青松译(清华大学出版社)许青松译(清华大学出版社)2004软件配置管理策略与软件配置管理策略与RationalClearCase(美)(美)BrianA.White著尤克滨等译(人民邮电出版社)著尤克滨等译(人民邮电出版社)2003现代软件工程的质量保证过程-1软件测试的组织与管理-2软件系统的可靠性工程-3配置管理方法与实践-4第七部分第七部分现代软件工程的质量保证现代软件工程的质量保证第一章 现代软件工程的质量保证过程 软件的质量要素与度量-1.1软件工程的质量保证过程-1.2软件工程的质量保证活动-1.3软件质量保证体系建设-1.4 第七部分第七部分现代软件
3、工程的质量保证现代软件工程的质量保证软件质量n软件质量的定义:软件质量的定义:nANSI/IEEEStd729-1983定义软件质量为定义软件质量为定义软件质量为定义软件质量为“与软件产品满足与软件产品满足与软件产品满足与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体规定的和隐含的需求的能力有关的特征或特性的全体规定的和隐含的需求的能力有关的特征或特性的全体规定的和隐含的需求的能力有关的特征或特性的全体”。nM.J.Fisher 定义软件质量为定义软件质量为定义软件质量为定义软件质量为“ “所有描述计算机软件优秀程度所有描述计算机软件优秀程度所有描述计算机软件优秀程度所有描述计算机
4、软件优秀程度的特性的组合的特性的组合的特性的组合的特性的组合” ”。n n质量特性及其组合,是软件开发与维护中的重要考虑质量特性及其组合,是软件开发与维护中的重要考虑因素因素n n为满足软件的各项精确定义的功能、性能需求,符合文档化为满足软件的各项精确定义的功能、性能需求,符合文档化为满足软件的各项精确定义的功能、性能需求,符合文档化为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合。的开发标准,需要相应地给出或设计一些质量特性及其组合。的开发标准,需要相应地给出或设计一些质量特性及其组合。的开发标准,需要相应地给出或设计一些质量特性及其组
5、合。n n如果这些质量特性及其组合都能在产品中得到满足,则这个如果这些质量特性及其组合都能在产品中得到满足,则这个如果这些质量特性及其组合都能在产品中得到满足,则这个如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。软件产品质量就是高的。软件产品质量就是高的。软件产品质量就是高的。n n软件需求是度量软件质量的基础软件需求是度量软件质量的基础软件需求是度量软件质量的基础软件需求是度量软件质量的基础。不符合需求的软件。不符合需求的软件。不符合需求的软件。不符合需求的软件就不具备质量。就不具备质量。就不具备质量。就不具备质量。n n标准定义了一组开发准则,用来指导软件人员用
6、工程标准定义了一组开发准则,用来指导软件人员用工程标准定义了一组开发准则,用来指导软件人员用工程标准定义了一组开发准则,用来指导软件人员用工程化的方法来开发软件化的方法来开发软件化的方法来开发软件化的方法来开发软件。如果不遵守这些开发准则,软。如果不遵守这些开发准则,软。如果不遵守这些开发准则,软。如果不遵守这些开发准则,软件质量就得不到保证。件质量就得不到保证。件质量就得不到保证。件质量就得不到保证。n n软件质量是各种特性的复杂组合。它随着应用的不同软件质量是各种特性的复杂组合。它随着应用的不同软件质量是各种特性的复杂组合。它随着应用的不同软件质量是各种特性的复杂组合。它随着应用的不同而不
7、同,随着用户提出的质量要求不同而不同。而不同,随着用户提出的质量要求不同而不同。而不同,随着用户提出的质量要求不同而不同。而不同,随着用户提出的质量要求不同而不同。n n软件质量特性,反映了软件的本质软件质量特性,反映了软件的本质软件质量特性,反映了软件的本质软件质量特性,反映了软件的本质。讨论一个软件的质量,问题。讨论一个软件的质量,问题。讨论一个软件的质量,问题。讨论一个软件的质量,问题最终要归结到定义软件的质量特性。最终要归结到定义软件的质量特性。最终要归结到定义软件的质量特性。最终要归结到定义软件的质量特性。n n定义一个软件的质量,就等价于为该软件定义一系列质量特性。定义一个软件的质
8、量,就等价于为该软件定义一系列质量特性。定义一个软件的质量,就等价于为该软件定义一系列质量特性。定义一个软件的质量,就等价于为该软件定义一系列质量特性。n n人们通常把影响软件质量的特性用软件质量模型来描述人们通常把影响软件质量的特性用软件质量模型来描述人们通常把影响软件质量的特性用软件质量模型来描述人们通常把影响软件质量的特性用软件质量模型来描述。软件质量软件质量n软件质量的因素与度量有关n直接度量的因素n如单位时间内千行代码中所产生的错误数。n间接度量的因素n如可用性或可维护性软件质量n软件质量的度量模型n1976年,Boehm第一次提出了软件质量度量的层次模型。n1978年,Walter
9、s和McCall等人提出了从软件质量要素、准则到度量的三个层次式的模型。n1985年,ISO建议软件质量模型由三层组成:n高层:软件质量需求评价准则(SQRC)n中层:软件质量设计评价准则(SQDC)n低层:软件质量度量评价准则(SQMC)现代软件工程的标准体系ISO/IEC12207应用成果应用成果基础产品基础产品实用产品实用产品需求需求软件工程项目管理软件工程项目管理软件配置管理软件配置管理风险管理风险管理软件质量保证软件质量保证设计设计实现实现测试测试维护维护1.1软件质量的要素与度量软件质量的要素与度量1.1.11.1.1软件的质量要素软件的质量要素软件的质量要素软件的质量要素1.1.
10、21.1.2软件质量评价的准则软件质量评价的准则软件质量评价的准则软件质量评价的准则1.1.31.1.3软件质量的度量软件质量的度量软件质量的度量软件质量的度量1.1.41.1.4软件质量度量的实施软件质量度量的实施软件质量度量的实施软件质量度量的实施1.1.1 软件的质量要素什么是软件的质量?什么是软件的质量?ISO9000的质量定义:的质量定义:质量的定义:反映实体满足明确和隐含需质量的定义:反映实体满足明确和隐含需要能力的特性综合要能力的特性综合定义的说明:定义的说明: 明确需要:指合同中用户明确提出的要求与需要明确需要:指合同中用户明确提出的要求与需要明确需要:指合同中用户明确提出的要
11、求与需要明确需要:指合同中用户明确提出的要求与需要 隐含需要:指由生产企业通过市场调研进行识别与隐含需要:指由生产企业通过市场调研进行识别与隐含需要:指由生产企业通过市场调研进行识别与隐含需要:指由生产企业通过市场调研进行识别与探明的要求或需要探明的要求或需要探明的要求或需要探明的要求或需要质量与等级的关系n等级的含义是:对功能用途相同、但技术特性不同的存在等级的含义是:对功能用途相同、但技术特性不同的存在事务的一种分类或排序事务的一种分类或排序n例如:高质量例如:高质量无错误、可读性强的用户手册无错误、可读性强的用户手册低等级低等级有限的功能有限的功能低质量低质量错误百出、编排混乱的用户手册
12、错误百出、编排混乱的用户手册高等级高等级大量功能大量功能n确定质量和等级标准水平,是项目经理的责任确定质量和等级标准水平,是项目经理的责任n质量的要素质量的要素讨论软件的质量定义,一般地从讨论软件的质量定义,一般地从4个角度来看,即用户的角度、个角度来看,即用户的角度、开发商的角度、产品的角度和价值的角度。开发商的角度、产品的角度和价值的角度。19761976年美国的年美国的B.W.Boehm和和R.Brown先后提出了三层次的评先后提出了三层次的评价度量模型:软件质量要素、准则、度量。随后价度量模型:软件质量要素、准则、度量。随后G.Mruine提出提出了自己的软件质量度量了自己的软件质量度
13、量SQM技术,波音公司在软件开发过程中技术,波音公司在软件开发过程中采用了采用了SQM技术,日本的技术,日本的NEC公司也提出了自己的公司也提出了自己的SQM工具,工具,即即SQMAT,并且在成本控制和进度安排方面取得了良好的效果。并且在成本控制和进度安排方面取得了良好的效果。IEEEIEEE标准标准1061-19981061-1998以表格的形式,定义了有关确认和收集与软以表格的形式,定义了有关确认和收集与软件质量需求有关一个模型,或称为一个框架。件质量需求有关一个模型,或称为一个框架。可度量的软件的质量要素IEEE定义的软件质量度量框架度量框架度量框架一一种种用用来来组组织织、选选择择、沟
14、沟通通、评评价价软软件件系系统统要要求求的的质质量量属属性性的的辅助决策法。它逐层分解为特性、子特性和度量辅助决策法。它逐层分解为特性、子特性和度量质量特性质量特性一个与质量有关的面向管理的软件属性一个与质量有关的面向管理的软件属性质量子特性质量子特性质量特性分解出来的技术组件质量特性分解出来的技术组件直接度量直接度量一种不依赖与任何其他属性测量的度量一种不依赖与任何其他属性测量的度量预计度量预计度量一种试用于开发阶段的度量,它用来预计软件质量特性的值一种试用于开发阶段的度量,它用来预计软件质量特性的值质量度量质量度量一一个个函函数数、它它的的输输入入是是软软件件数数据据,输输出出是是一一个个
15、单单一一数数值值。它它可可解释为给定的软件属性对其质量的影响程度解释为给定的软件属性对其质量的影响程度过程质量过程质量一一种种用用来来测测量量在在软软件件系系统统开开发发、实实现现和和维维护护过过程程中中使使用用的的方方法法、技术和工具特性的度量技术和工具特性的度量产品度量产品度量一种用来测量软件开发过程中任何中间或最终产品特性的度量一种用来测量软件开发过程中任何中间或最终产品特性的度量IEEE定义的软件质量度量框架n第一层次:质量需求第一层次:质量需求n在四层模型的第一层,软件产品质量层,是产品必须满足的质量需求。在四层模型的第一层,软件产品质量层,是产品必须满足的质量需求。它是用用户术语描
16、述的,主要有四点:它是用用户术语描述的,主要有四点:n(1 1)产品将在用户所在组织当前使用的平台和操作系统上运行。)产品将在用户所在组织当前使用的平台和操作系统上运行。n(2 2)产品将是可靠的并能防止数据丢失的机制。产品将是可靠的并能防止数据丢失的机制。n(3 3)产品将提供完成某些任务所必需的功能。产品将提供完成某些任务所必需的功能。n(4 4)产品将易于使用。产品将易于使用。n第二层次:质量特性第二层次:质量特性n在模型的第二层,表示与整个质量需求有关的特殊质量特性,它代表在模型的第二层,表示与整个质量需求有关的特殊质量特性,它代表了用户的质量需求。它采用从用户角度考虑的立场,把软件质
17、量分解了用户的质量需求。它采用从用户角度考虑的立场,把软件质量分解成四类质量特性,这四个质量特性是软件的基本特征。成四类质量特性,这四个质量特性是软件的基本特征。nIEEEIEEE的四个质量特性是:的四个质量特性是:可移植性、可靠性、功能性、可使用性。可移植性、可靠性、功能性、可使用性。IEEE定义的软件质量度量框架四层模型质量需求质量需求质量特质量特性性质量子特性质量子特性直接度量直接度量度量描述(例子)度量描述(例子)产产品品将将在在多多平平台台和和当当前前用用户户正正在在使使用用的的操操作作系系统上运行统上运行可可 移移 植植性性硬件独立性硬件独立性硬件依赖性硬件依赖性计算硬件的依赖性计
18、算硬件的依赖性软件独立性软件独立性软件依赖性软件依赖性计算软件的依赖性计算软件的依赖性易安装性易安装性安装时间安装时间测量安装时间测量安装时间可重用性可重用性能能够够用用于于其其他软件中他软件中计计算算能能够够或或已已经经应应用用于于其其他软件系统的模块数量他软件系统的模块数量产产品品将将是是可可靠靠的的并并能能提提供供防防止止数数据据丢失的机制丢失的机制可靠性可靠性无缺陷性无缺陷性测试覆盖测试覆盖测量测试覆盖度测量测试覆盖度审查覆盖审查覆盖计计算算已已做做过过的的代代码码审审查查模模块块容错性容错性数据完整性数据完整性统计用户数据被破坏情况统计用户数据被破坏情况数据恢复数据恢复测测量量恢恢复
19、复被被破破坏坏的的数数据据的的能力能力可用性可用性软软件件可可用用的的百分比百分比软软件件可可用用时时间间除除以以总总的的软软件使用时间件使用时间产产品品将将提提供供完完成成某某些些任任务务所所必需的功能必需的功能功能性功能性完备性完备性测试覆盖测试覆盖计算调用或分支测量覆盖计算调用或分支测量覆盖正确性正确性缺陷密度缺陷密度计算每一版本发布前的缺陷计算每一版本发布前的缺陷安全性安全性数据安全性数据安全性统计用户数据被破坏的情况统计用户数据被破坏的情况用户安全性用户安全性没没有有被被阻阻止止的的非非法法用用户户入入侵侵数数兼容性兼容性环境变化环境变化软软件件安安装装后后必必须须修修改改的的环环境
20、境变量数量变量数量互操作性互操作性混混合合应应用用环环境境下下软软件件的的可操作性可操作性混混合合应应用用环环境境下下可可正正确确运运行行的数量的数量产产品品将将易易于于使使用用可使用性可使用性易理解性易理解性学学习习所所用用时时间间新新用用户户学学习习软软件件特特性性所所花花费费的时间的时间易学性易学性学学习习所所用用时时间间新新用用户户学学会会操操作作软软件件提提供供的的基本功能所花费的时间基本功能所花费的时间易操作性易操作性人的因素人的因素新新用用户户基基于于人人类类工工程程学学对对软软件消极方面的评价数量件消极方面的评价数量沟通性沟通性人的因素人的因素新新用用户户基基于于人人类类工工程
21、程学学对对软软件消极方面的评价数量件消极方面的评价数量质量需求质量需求质量特性质量特性质量子特性质量子特性直接度量直接度量度量描述(例子)度量描述(例子)1978年,年,Walters和和McCall等人提出了从软件质量要素、准则到度量的等人提出了从软件质量要素、准则到度量的三个层次式的模型。三个层次式的模型。McCallMcCall选择的软件质量要素评价准则共选择的软件质量要素评价准则共2121种,它们是:种,它们是:(1)可审查性(auditability)。检查软件需求、规格说明、标准、过程、指令、代码与合同是否一致的难易程度。(2)准确性(accuracy)。计算和控制的精度,是对无误
22、差程序的一种定量估计。最好表示成相对误差的函数。值越大表示精度越高。(3)通信通用性(communication commonality)。使用标准接口、协议、规范的程序。(4)完全性 (completeness)。所需功能完全实现的程度。 (5)简明性(conciseness)。程序源代码的紧凑与简洁性。(6)一致性(consistency)。设计文档与系统实现的一致性。(7)数据通用性(datacommonality)。在程序中使用标准的数据结构和类型。(8)容错性(error-tolerance)。系统在各种异常条件下提供继续操作的能力。(9)执行效率(execution Efficie
23、ncy)。程序运行效率。(10)可扩充性(expandability)。能够对结构设计、数据设计和过程设计进行扩充的程度。1.1.2 软件质量评价的准则(1111)通用性)通用性(generality)(generality)。程序部件潜在的应用范围的广泛性,即部件可重用。程序部件潜在的应用范围的广泛性,即部件可重用。(1212)硬硬件件独独立立性性(hardware (hardware independence)independence)。软软件件同同支支持持他他运运行行的的硬硬件件系系统统不不相相关关的程度。的程度。(1313)检检测测性性(instrumentation)(instrum
24、entation)。监监视视程程序序的的运运行行,一一旦旦发发生生错错误误时时,能能明明确确地地标标识错误的程度。识错误的程度。(1414)模块化)模块化(modularity)(modularity)。程序部件的功能独立性。程序部件的功能独立性。(1515)可操作性可操作性(operability)(operability)。操作一个软件的难易程度。操作一个软件的难易程度。(1616)安安全全性性(security)(security)。控控制制或或保保护护程程序序和和数数据据不不受受破破坏坏的的机机制制,以以防防止止程程序序和和数据受到意外的或蓄意的存取、使用、修改、毁坏或泄密。数据受到意
25、外的或蓄意的存取、使用、修改、毁坏或泄密。(1717)自文档化)自文档化( (sdlfsdlf-documentation)-documentation)。源代码提供有意义文档的程度。源代码提供有意义文档的程度。(1818)简单性)简单性(simplicity)(simplicity)。理解程序的难易程度。理解程序的难易程度。(1919)软软件件系系统统独独立立性性(software (software system system independence)independence)。程程序序与与非非标标准准的的程程序序设设计语言特征、操作系统特征以及其他环境约束无关的程度。计语言特征、操作系
26、统特征以及其他环境约束无关的程度。(2020)可追踪性)可追踪性( (reacebilityreacebility) )。从设计表示或实际程序构件,追踪到需求的能力。从设计表示或实际程序构件,追踪到需求的能力。(2121)易培训性易培训性(training)(training)。软件支持新用户使用该系统的能力。软件支持新用户使用该系统的能力。McCall的软件质量评价准则的软件质量评价准则软件质量评价准则 n1、正确性n正确性是指软件按照需求正确执行任务的能力。 “正确性”的语义涵盖了“精确性”。n正确性无疑是第一重要的软件质量属性。n技术评审和测试的第一关都是检查工作成果的正确性。 n机器不
27、会主动欺骗人,软件运行出错通常都是人造成的,所以不要找借口埋怨机器有毛病。n2、健壮性 n健壮性是指在异常情况下,软件能够正常运行的能力。 n正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外的行为。n开发者往往把异常情况当成正常情况而不作处理,结果降低了健壮性。 n用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方的错。所以提高软件的健壮性也是开发者的义务。n健壮性有两层含义:一是容错能力,二是恢复能力。 n3、可靠性 n可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。n可靠性本来是硬件领域的术语。比如某个电子设备在刚开始工作时挺好的,但由于器件在工作
28、中其物理性质会发生变化(如发热),慢慢地系统的功能或性能就会失常。所以一个从设计到生产完全正确的硬件系统,在工作中未必就是可靠的。 n软件在运行时不会发生物理性质的变化,人们常以为如果软件的某个功能是正确的,那么它一辈子都是正确的。可是我们无法对软件进行彻底地测试,无法根除软件中潜在的错误。平时软件运行得好好的,说不准哪一天就不正常了,如有千年等一回的“千年虫”问题,司空见惯的“内存泄露”问题、“误差累积”问题等等。 n时隐时现的错误一般都属于可靠性问题,纠错的代价很高。软件质量评价准则 n4、性能n性能通常是指软件的“时间-空间”效率,而不仅是指软件的运行速度。人们总希望软件的运行速度高些,
29、并且占用资源少些。 n性能优化的关键工作是找出限制性能的“瓶颈” n可以通过优化数据结构、算法和代码来提高软件的性能。 n5、易用性n易用性是指用户使用软件的容易程度。n现代人的生活节奏快,图方便。所以把易用性作为重要的质量属性对待无可非议。 n导致软件易用性差的根本原因 :n教育缺陷:没有开设人机工程学、美学、心理学这些必修课,大部分开发人员不知道如何设计易用的软件产品。n开发人员犯了“错位”的毛病:他以为只要自己用起来方便,用户也就会满意。 n软件的易用性要让用户来评价。当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用“界面友好” 等词来评价软件产品。 软件质量评价准则 n6、
30、清晰性 n清晰意味者所有的工作成果易读、易理解,可以提高团队开发效率,降低维护代价。 n开发人员只有在自己思路清晰的时候才可能写出让别人易读、易理解的程序和文档。 n可理解的东西通常是简洁的。一个原始问题可能很复杂,但高水平的人就能够把软件系统设计得很简洁。如果软件系统臃肿不堪,它迟早会出问题。所以简洁是人们对工作“精益求精”的结果,而不是潦草应付的结果。 n千万不要把在学校里“造文章”的手法用于开发产品! n7、安全性 n安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。 n“道高一尺,魔高一丈” ,绝对安全的信息系统几乎不存在。n开发商和客户愿意为提高安全性而投入的资金是有
31、限的,他们要考虑值不值得。 软件质量评价准则 n8、可扩展性 n可扩展性反映软件适应“变化”的能力。 n在软件开发过程中,“变化”是司空见惯的事情,如需求、设计的变化,算法的改进,程序的变化等等。由于软件是“软”的,是否它天生就容易修改以适应“变化”?关键要看软件的规模和复杂性。 n现代软件产品通常采用“增量开发模式”,不断推出新版本,获取增值利润。可扩展性越来越重要。可扩展性是系统设计阶段重点考虑的质量属性。 n9、兼容性n兼容性是指两个或两个以上的软件相互交换信息的能力。n兼容性的商业规则:弱者设法与强者兼容,否则无容身之地;强者应当避免被兼容,否则市场将被瓜分。10、可移植性n可移植性是
32、指软件运行于不同软硬件环境的能力n编程语言越低级,其程序越难移植,反之则容易。软件设计时应该将“设备相关程序”与“设备无关程序”分开,将“功能模块”与“用户界面”分开。软件质量评价准则 19851985年年,国国际际标标准准化化组组织织(ISOISO)建建议议,软软件件质质量量度度量量模模型型由由三三层层组组成成。高高层层称称软软件件质质量量需需求求评评价价准准则则(SQSQR RC C),中中层层称称软软件件质质 量量 设设 计计 评评 价价 准准 则则(SQSQD DC C),低低层层称称软软件件质质量量度度量量评评价价准准则则(SQSQM MC C)。分分别别对对应应McCallMcCa
33、ll等等人人的的要要素素、评评价价准准则则和和度度量量。ISOISO认认为为应应对对高高层层和和中中层层建建立立国国际际标标准准,以以便便在在国国际际范范围围内内推推广广应应用用软软件件质质量量管管理理,而而低低层层可可由由各各使使用用单单位位自自行行制制定定。ISOISO高高层层由由8 8个个要要素素组组成成、中中层层由由2323个个评价准则组成。评价准则组成。高高层层的的8 8个个要要素素为为左左表表的的行行,中中层层的的2323个个准准则则为为下下表表的的列列。它它们们之之间间的的关关系系如左表所示。如左表所示。1.1.3 软件质量的度量软件度量:软件度量:分分分分析析析析模模模模型型型
34、型的的的的度度度度量量量量(对对对对分分分分析析析析模模模模型型型型的的的的度度度度量量量量以以以以测测测测试试试试系系系系统统统统的的的的大小)大小)大小)大小)设设设设计计计计模模模模型型型型的的的的度度度度量量量量(度度度度量量量量体体体体系系系系结结结结构构构构、数数数数据据据据和和和和系系系系统统统统的的的的复复复复杂度)杂度)杂度)杂度)源源源源代代代代码码码码的的的的度度度度量量量量(度度度度量量量量程程程程序序序序的的的的长长长长度度度度、层层层层次次次次、开开开开发发发发量量量量、时间等)时间等)时间等)时间等)对对对对测测测测试试试试的的的的度度度度量量量量(度度度度量量量
35、量测测测测试试试试的的的的宽宽宽宽度度度度、深深深深度度度度、错错错错误误误误的的的的级级级级别)别)别)别)对维护的度量(度量软件的稳定性)对维护的度量(度量软件的稳定性)对维护的度量(度量软件的稳定性)对维护的度量(度量软件的稳定性) 软件质量度量n每个软件属性都有一套度量方法,选择度量方法时,必须考虑下列因素。1. 与软件属性的相关性相关性分为4个等级:nA度量方法与相应的软件属性始终存在正相关nAA几乎总是存在正相关nU经常存在正相关nS偶尔存在正相关软件质量度量2. 度量值的可理解性定量的度量方法所得到的值分为5种情况:nAL通过一个自动算法很容易理解nUR不需要受过专门训练的人员n
36、TR需要受过专门训练的人员nER需要专家nEX需要执行程序3. 开发自动工具的容易性开发度量工具的难易程度分为3种情况nE容易nM存在困难nD很困难软件质量度量4. 自动工具的完备性 所开发的自动工具是否完全等价于度量方法,有2种情况nC完全等价nP部分等价5. 潜在效益潜在效益分为5个级别:5、4、3、2、1软件质量度量软件质量的度量和评价n n软件质量特性度量有两类:软件质量特性度量有两类:软件质量特性度量有两类:软件质量特性度量有两类:预测型预测型预测型预测型和和和和验收型验收型验收型验收型。n n预测度量预测度量预测度量预测度量是利用定量或定性的方法,估算软件质量是利用定量或定性的方法
37、,估算软件质量是利用定量或定性的方法,估算软件质量是利用定量或定性的方法,估算软件质量的评价值,以得到软件质量的比较精确的估算值。的评价值,以得到软件质量的比较精确的估算值。的评价值,以得到软件质量的比较精确的估算值。的评价值,以得到软件质量的比较精确的估算值。n n第一种叫做第一种叫做第一种叫做第一种叫做尺度度量尺度度量尺度度量尺度度量,这是一种,这是一种,这是一种,这是一种定量度量定量度量定量度量定量度量。它适用于一些。它适用于一些。它适用于一些。它适用于一些能够直接度量的特性,能够直接度量的特性,能够直接度量的特性,能够直接度量的特性,例如,出错率定义为:错误数例如,出错率定义为:错误数
38、例如,出错率定义为:错误数例如,出错率定义为:错误数KLOCKLOC单位时间单位时间单位时间单位时间。n n第二种叫做第二种叫做第二种叫做第二种叫做二元度量二元度量二元度量二元度量,这是一种,这是一种,这是一种,这是一种定性度量定性度量定性度量定性度量。它适用于一些。它适用于一些。它适用于一些。它适用于一些只能间接度量的特性,只能间接度量的特性,只能间接度量的特性,只能间接度量的特性,例如,可使用性、灵活性等等例如,可使用性、灵活性等等例如,可使用性、灵活性等等例如,可使用性、灵活性等等。n n验收度量验收度量验收度量验收度量是在软件开发各阶段的检查点,对软件的是在软件开发各阶段的检查点,对软
39、件的是在软件开发各阶段的检查点,对软件的是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,它是对开要求质量进行确认性检查的具体评价值,它是对开要求质量进行确认性检查的具体评价值,它是对开要求质量进行确认性检查的具体评价值,它是对开发过程中的预测进行评价。发过程中的预测进行评价。发过程中的预测进行评价。发过程中的预测进行评价。基于软件配置管理基于软件配置管理的度量和度量准则SCMSCM提供软件产品的状态统计。提供软件产品的状态统计。提供软件产品的状态统计。提供软件产品的状态统计。统计提供寻找软件开发的瓶颈和解决办法,并据此统计提供寻找软件开发的瓶颈和解决办法,并据此统计提供
40、寻找软件开发的瓶颈和解决办法,并据此统计提供寻找软件开发的瓶颈和解决办法,并据此衡量软件产品的成熟度。衡量软件产品的成熟度。衡量软件产品的成熟度。衡量软件产品的成熟度。度量准则:度量准则:度量准则:度量准则:pp平均严重程度平均严重程度平均严重程度平均严重程度pp严重程度级的分布严重程度级的分布严重程度级的分布严重程度级的分布pp平均关闭时间平均关闭时间平均关闭时间平均关闭时间pp严重程度的图示严重程度的图示严重程度的图示严重程度的图示pp各配置项或子系统的图示各配置项或子系统的图示各配置项或子系统的图示各配置项或子系统的图示 SCM的度量和度量准则软件产品成熟度数据要求:软件产品成熟度数据要
41、求:软件产品成熟度数据要求:软件产品成熟度数据要求: 软件变更(问题)数量软件变更(问题)数量软件变更(问题)数量软件变更(问题)数量 描述描述描述描述 计算机软件配置项标识(计算机软件配置项标识(计算机软件配置项标识(计算机软件配置项标识(CSCICSCI) 严重程度级严重程度级严重程度级严重程度级 打开变更的日期(或发现问题)打开变更的日期(或发现问题)打开变更的日期(或发现问题)打开变更的日期(或发现问题) 关闭变更(问题)和实施日期关闭变更(问题)和实施日期关闭变更(问题)和实施日期关闭变更(问题)和实施日期1.1.4 软件质量度量的实施 在在在在确确确确定定定定要要要要对对对对一一一
42、一个个个个软软软软件件件件(系系系系统统统统)进进进进行行行行度度度度量量量量之之之之后后后后,一一一一般般般般,采采采采取取取取以以以以下下下下5 5 5 5个个个个步步步步骤,来实施对该软件的度量:骤,来实施对该软件的度量:骤,来实施对该软件的度量:骤,来实施对该软件的度量: (1 1 1 1)确定软件质量需求;)确定软件质量需求;)确定软件质量需求;)确定软件质量需求; 在在用用户户需需求求中中,除除功功能能需需求求外外,还还有有非非功功能能需需求求,包包括括:质质量量需需求求、环环境境需需求、设计约束、开发策略等。质量需求是用户比较关心的内容。求、设计约束、开发策略等。质量需求是用户比
43、较关心的内容。但但是是,我我们们已已经经知知道道,软软件件的的功功能能需需求求的的确确定定,存存在在一一定定的的难难度度。而而非非功功能能需需求求的的确确定定,则则难难度度更更大大。这这些些困困难难包包括括:需需求求如如何何获获取取,需需求求冲冲突突如如何何协协调、需求的确认和变更的授权等。调、需求的确认和变更的授权等。过程:过程: 需需求求获获取取:首首先先,你你要要理理解解用用户户的的需需求求,区区分分哪哪些些是是质质量量需需求求,把把这这些些需需求求记录下来,获得用户的确认。记录下来,获得用户的确认。 需需求求分分析析:拿拿到到用用户户确确认认的的需需求求后后,你你可可以以开开始始把把用
44、用户户的的质质量量需需求求与与我我们们设设定定的的质质量量特特性性联联系系起起来来,一一直直区区分分到到子子特特性性。这这种种联联系系,就就是是把把用用户户语语言言描描述述的的需需求求,转转变变为为计计算算机机工工程程师师语语言言的的需需求求。建建立立了了这这种种关关联联后后,可可以以根根据据分类,分级,确定直接度量。分类,分级,确定直接度量。 1.1.4 软件质量度量的实施(2)确定直接度量)确定直接度量直接度量就是实际的软件质量测量活动,它的输入是软件或软件过程,直接度量就是实际的软件质量测量活动,它的输入是软件或软件过程,输出是一个测量值。它通过执行一系列的任务,获得一个质量值。输出是一
45、个测量值。它通过执行一系列的任务,获得一个质量值。例如:对一个没有经过培训的用户,让他使用软件系统的某一功能,例如:对一个没有经过培训的用户,让他使用软件系统的某一功能,在界面提示、联机帮助、使用手册的帮助下,他学会掌握该功能所花的时在界面提示、联机帮助、使用手册的帮助下,他学会掌握该功能所花的时间。而用户需求对此项指标的要求(目标)和现实系统所达到的实际值间。而用户需求对此项指标的要求(目标)和现实系统所达到的实际值(比如:(比如:10个人次测量后统计意义上的)的比较,就是将提交质量评审的个人次测量后统计意义上的)的比较,就是将提交质量评审的质量值。质量值。在进行直接度量前,你应该有以下准备
46、:在进行直接度量前,你应该有以下准备:(1)工具:有助于计算度量值的硬件)工具:有助于计算度量值的硬件/软件工具,如:缺陷跟踪工具;软件工具,如:缺陷跟踪工具;(2)应用:描述度量结果的希望值、度量值的意义、作用和对度量结)应用:描述度量结果的希望值、度量值的意义、作用和对度量结果数据的使用方法;果数据的使用方法;(3)数据:获得度量结果所需的数据、程序、过程等度量对象;)数据:获得度量结果所需的数据、程序、过程等度量对象;(4)计算:度量程序、步骤和方法。)计算:度量程序、步骤和方法。(5)费用:测试是要花钱(人力、物力、时间等)的。)费用:测试是要花钱(人力、物力、时间等)的。1.1.4
47、软件质量度量的实施(3)分析度量结果 对度量过程进行跟踪和分析,需要时,可能会对度量程序、度量工具、度量方法,甚至原始数据,做出补充和调整。 (4)确认质量度量 在度量过程中,进行度量结果的确认非常重要。首先,要确认度量过程是否与事实相符,脱离现实真实的度量,与目标再相符的结果也是没有意义的。其次,是确认方法的有效性,例如:在度量中,我们用到很多统计学方法,在这些方法中,我们有一些概率分布假设(例如:某些错误的发生,我们假设符合随机概率分布),当这些假设并不成立时,度量的结果是不真实的。p一个系统集成项目的质量特性与度量一个系统集成项目的质量特性与度量一个系统集成项目的质量特性与度量一个系统集
48、成项目的质量特性与度量p可交付成果的质量可交付成果的质量可交付成果的质量可交付成果的质量pp采购的主机采购的主机采购的主机采购的主机/ /存储存储存储存储/ /网络硬件网络硬件网络硬件网络硬件/ /软件软件软件软件pp运输运输运输运输/ /安装安装安装安装/ /检验检验检验检验/ /调试调试调试调试/ /测试测试测试测试pp培训培训培训培训/ /服务服务服务服务/ /技术支持技术支持技术支持技术支持/ /维护维护维护维护/ /响应响应响应响应pp资料文档(手册)提供资料文档(手册)提供资料文档(手册)提供资料文档(手册)提供p项目实施过程的质量项目实施过程的质量项目实施过程的质量项目实施过程的
49、质量pp项目的计划性项目的计划性项目的计划性项目的计划性pp组织准备的充分与周到性组织准备的充分与周到性组织准备的充分与周到性组织准备的充分与周到性pp沟通与协调性沟通与协调性沟通与协调性沟通与协调性pp操作与行为的规范性操作与行为的规范性操作与行为的规范性操作与行为的规范性案例分析1 1、你已经确认的,你的项目的质量需求(质量你已经确认的,你的项目的质量需求(质量你已经确认的,你的项目的质量需求(质量你已经确认的,你的项目的质量需求(质量特性)是什么?特性)是什么?特性)是什么?特性)是什么?2 2、这些质量需求的(面向度量)的子特性是什、这些质量需求的(面向度量)的子特性是什、这些质量需求
50、的(面向度量)的子特性是什、这些质量需求的(面向度量)的子特性是什么?么?么?么?3 3、如何进行这些子特性的度量(方法设计)?、如何进行这些子特性的度量(方法设计)?、如何进行这些子特性的度量(方法设计)?、如何进行这些子特性的度量(方法设计)?4 4、度量结果(度量值)的评价标准是什么?、度量结果(度量值)的评价标准是什么?、度量结果(度量值)的评价标准是什么?、度量结果(度量值)的评价标准是什么?问题1:1.2.11.2.1确认过程确认过程确认过程确认过程1.2.21.2.2验证过程验证过程验证过程验证过程1.2 软件工程的质量保证过程软件质量保证n n什么是质量保证什么是质量保证什么是
51、质量保证什么是质量保证n n它是它是为保证产品和服务充分满足消费者要求的质量而进行的有计划、为保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动有组织的活动。n n质量保证是质量保证是面向消费者的活动面向消费者的活动,是为了使产品实现用户要求的功能,是为了使产品实现用户要求的功能,站在用户立场上来掌握产品质量的。站在用户立场上来掌握产品质量的。n n什么是软件的质量保证什么是软件的质量保证什么是软件的质量保证什么是软件的质量保证n n就是向用户及社会提供满意的高质量的产品。就是向用户及社会提供满意的高质量的产品。n n软件的质量保证活动也和一般的质量保证活动一样,是软件的质量保
52、证活动也和一般的质量保证活动一样,是确保软件产确保软件产品从诞生到消亡为止的所有阶段的质量的活动品从诞生到消亡为止的所有阶段的质量的活动。即。即为了确定、达到为了确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动和维护需要的软件质量而进行的所有有计划、有系统的管理活动。n现现代代软软件件工工程程的的质质量量保保证证过过程程,主主要要包包括括软软件件确确认认与与验验证证二个过程二个过程n软件的确认(Validation)与验证(Verification)简称为VV 或V2,也是软件产品质量度量的具体方法。n软件确认的概念n确认是这样一个过程,它评价“在软件开发过程期间(针对单元)
53、或结束(针对系统)时,单元或系统是否满足用户特定的需求”。换句话说,是开发结束期间确认,我们的产品符合用户要求吗?n因此,确认的产品质量。确认活动围绕三个基本过程来开展,测试、度量和软件可靠性增长n软件验证的概念n而验证是这样一个过程,它评价“在一个给定的开发阶段中,单元或系统是否满足在此阶段开始时确定的条件”。因此,它的意思是,我们正在制作的产品符合用户要求吗?n因此,验证的是产品开发过程质量工作质量。验证活动也是围绕三个基本过程来进行,审查、度量和配置管理。软件工程的质量保证过程软件质量保证n传统的软件质量保证的活动1.技术方法的应用2.正式技术评审的实施3.软件测试4.标准的执行5.修改
54、的控制6.度量7.记录和记录保存n现代方法1.基于架构的迭代和增量开发2.配置管理软件确认过程1:测试n根根据据不不同同的的软件件生生命命周周期期定定义,测试的的阶段段、方方法法和和类型型构构成成一一个个层次次结构,如下构,如下图: V V模模型型中中的的过过程程从从左左到到右右,描描述述了了基基本本的的开开发发过过程程和和测测试试行行为为。V V模模型型的的价价值值在在于于它它非非常常明明确确地地标标明明了了测测试试过过程程中中存存在在的的不不同同级级别别,并并且且清清楚楚地地描描述述了了这这些些测测试试阶阶段段和和开开发发过过程程期期间间各各阶段的对应关系。阶段的对应关系。 测试与开发阶段
55、的对应测试与开发阶段的对应V模式模式单元测试n 单元测试的内容主要是:单元测试的内容主要是: 算算法法逻逻辑辑、数数据据定定义义的的理理解解和和使使用用、接接口口、各各种种CASECASE路路径径、边边界界条条件、错误处理等。件、错误处理等。n 单元测试的目的通常是单元测试的目的通常是: : 在在开开发发环环境境中中,程程序序设设计计工工程程师师为为了了检检查查单单元元程程序序模模块块内内部部的的逻逻辑辑、算算法法和和数数据据处处理理结结果果的的正正确确性性等等。单单元元测测试试通通常常由由负负责责编编码码的的工工程程师师自自己己在在代代码码完完成成后后测测试试,也也有有在在项项目目组组内内,
56、由由工工程程师师相相互互交交叉叉测测试。试。n 调试与测试的最大的不同点是二者的目的和视角的区别:调试与测试的最大的不同点是二者的目的和视角的区别: 调调试试包包括括查查找找BUGBUG、定定位位BUGBUG、修修改改并并最最终终确确认认BUGBUG已已经经被被修修复复的的软软件故障排除过程。件故障排除过程。 测测试试是是在在一一个个相相对对独独立立的的环环境境下下(测测试试应应尽尽可可能能地地模模拟拟运运行行环环境境,调调试试是是在在开开发发环环境境),运运行行系系统统单单元元,观观察察和和记记录录运运行行结结果果,对对结结果进行独立评价的过程。果进行独立评价的过程。 单元测试(模块测试)n
57、 实实际际上上,在在单单元元测测试试级级,一一般般项项目目组组很很难难做做到到把把调调试试与与测测试试分分开开。因因为为二二者者的的工工作作内内容容比比较较接接近近,担担负负人人常常常常是是一一个个人人,环环境境区区别别并并不不大大或或者者重重新新搭搭建建环环境境在在时时间间、成成本本和和人人力力上上,都都比比较较困困难难。这这些些都是一般项目组并没有独立的单元测试的原因。都是一般项目组并没有独立的单元测试的原因。n 将单元测试与模块调试合并可能带来的问题是:将单元测试与模块调试合并可能带来的问题是:(1 1)单单元元测测试试没没有有任任何何记记录录和和文文档档。少少有有笔笔头头勤勤快快的的工
58、工程程师师,会会把把他他每每天天测测了了什什么么、改改了了什什么么,记记录录下下来来。软软件件工工程程师师要要的的就就是是没没有有BUGBUG的程序,任何中间结果都是垃圾。的程序,任何中间结果都是垃圾。(2 2)由由于于调调试试的的目目标标是是获获得得没没有有故故障障的的程程序序,因因此此,与与功功能能无无关关的的程程序序属属性性往往往往被被忽忽略略,或或者者要要到到集集成成测测试试、确确认认测测试试时时才才被被发发现现。例如:命名标准、程序形式规范等。例如:命名标准、程序形式规范等。n 不不论论怎怎么么说说,现现实实情情况况,单单元元测测试试与与模模块块调调试试经经常常是是混混为为一一谈谈的
59、的,要想改变,也不太容易。要想改变,也不太容易。 由由于于单单元元测测试试在在项项目目组组中中,常常常常由由编编码码工工程程师师完完成成,项项目目经经理理的的管管理一般并不深入到单元测试层。理一般并不深入到单元测试层。 集成测试(子系统测试)n集集成成测测试试又又称称组组装装测测试试,它它是是在在单单元元测测试试完完成成后后,组组装装为为一一个个子子系系统统后后,对对下下列列只只有有组组装装后后才才能能发发生生和和测测试试到到的的问问题题,进进行行检检查查:(1 1)组装后一个模块对一个模块的影响;)组装后一个模块对一个模块的影响;(2 2)合并功能是否是预期的;)合并功能是否是预期的;(3
60、3)独独立立的的误误差差在在合合并并后后的的变变化化,是是扩扩大大还还是是减减小小,是是否否在在可可接接受的范围内;受的范围内;(4 4)实实际际的的接接口口测测试试;包包括括:模模块块之之间间对对实实际际衔衔接接的的标标准准、时时序序(实时性)、应答响应、容错与错误处理等;(实时性)、应答响应、容错与错误处理等;(5 5)模块间的资源竞争等。)模块间的资源竞争等。n 集集成成测测试试也也很很重重视视集集成成的的阶阶段段性性。最最坏坏的的情情况况是是系系统统只只有有一一次次集集成成,就就是是系系统统全全部部模模块块完完成成后后进进行行集集成成。实实际际上上,这这就就像像一一部部汽汽车车,直直到
61、到要要出出厂厂时时,才才来来一一次次总总测测试试。而而当当你你每每天天生生产产一一部部完完全全不不同同规规格、型号的汽车时,这个时候的测试,可能是非常要命的。格、型号的汽车时,这个时候的测试,可能是非常要命的。n 比比较较好好的的办办法法是是通通常常采采用用的的增增量量组组装装法法,包包括括自自顶顶向向下下或或自自低低向向上上的的增增量量组组装装。分分阶阶段段的的增增量量组组装装测测试试,可可以以解解决决一一次次集集成成,问问题题的隔离和区分不易的困难。的隔离和区分不易的困难。 确认测试(系统测试)n 确确认认测测试试的的目目的的是是按按照照与与用用户户确确认认的的软软件件需需求求规规格格说说
62、明明书书的的要要求求,检检查查系系统统的的需需求求实实现现。确确认认需需求求的的测测试试依依据据是是需需求求阶阶段段产产生生的的测测试试脚脚本本(测试用例)。(测试用例)。n 国内项目组的现实情况有以下几种:国内项目组的现实情况有以下几种:(1 1)没有确认测试;)没有确认测试;(2 2)没有独立的确认测试,测试与设计、编码不分离;)没有独立的确认测试,测试与设计、编码不分离;(3 3)有有独独立立的的确确认认测测试试,但但测测试试用用例例是是设设计计和和编编码码人人员员写写的的,因因此此,独立测试人员相当于按设计和编码人员的设计思路再测一遍。独立测试人员相当于按设计和编码人员的设计思路再测一
63、遍。n 上上述述这这些些情情况况,就就丧丧失失了了确确认认测测试试的的大大部部分分意意义义。正正确确的的确确认认测测试试是是独独立立的的测测试试组组中中,具具有有相相应应知知识识的的测测试试设设计计师师,根根据据需需求求规规格格说说明明书书,并并依依据据该该软软件件在在用用户户方方面面将将会会是是在在什什么么环环境境下下,用用户户将将如如何何使使用用该该软软件件,来来设设计计测测试试方方案案和和测测试试用用例例,安安排排测测试试人人员员进进行行测测试试。很很显显然然,现实离理想的距离还比较遥远。现实离理想的距离还比较遥远。n 确确认认测测试试还还包包括括软软件件经经修修改改后后的的再再测测试试
64、(回回归归测测试试)。回回归归测测试试是是对对已已测测试试并并发发现现故故障障的的部部分分,修修改改后后进进行行再再测测试试。回回归归测测试试不不应应修修改改测测试试程程序序、测测试试内内容容或或测测试试标标准准。它它与与正正常常测测试试不不同同的的仅仅是是:它它可可能能并并不不需需要要再再完完整整地地走走一一遍遍所所有有的的确确认认测测试试,而而是是小小心心地地选选择择部部分分确确认认测测试程序,选择的标准是不减低原标准的整体要求。试程序,选择的标准是不减低原标准的整体要求。 测试和测试和 测试测试 n为为了了实实际际检检验验软软件件的的功功能能和和性性能能,有有时时,常常邀邀请请特特定定的
65、的用用户户帮帮助助试试用用(测测试试)系系统统正正式式发发布布前前的的版版本本,请请用用户户对对系系统统进进行行评评价价。这这就就是通常所说的是通常所说的 测试和测试和 测试。测试。n 测测试试是是由由一一个个用用户户在在开开发发者者的的场场所所,在在开开发发者者指指导导下下进进行行的的测测试试。开发者记录下问题和错误,是在开发者开发者记录下问题和错误,是在开发者“控制控制”下的测试。下的测试。n 测测试试是是用用户户的的环环境境中中,开开发发者者可可能能并并不不在在现现场场,由由用用户户“活活用用”系系统情况下的测试。用户记录下问题,报告给开发者。统情况下的测试。用户记录下问题,报告给开发者
66、。n在在商商用用套套装装软软件件中中,这这种种情情况况比比较较多多见见,在在行行业业应应用用系系统统中中,由由于于现现实实环环境境并并不不允允许许不不成成功功的的软软件件直直接接投投入入使使用用,用用户户也也没没有有参参与与测测试试义义务务、时时间间和和资资源源的的投投入入和和配配合合的的积积极极性性,因因此此,这这种种测测试试很很少少发生。发生。 验收测试n在在行行业业应应用用软软件件环环境境中中,验验收收测测试试是是项项目目过过程程非非常常重重要要的的一一环环,也也是项目经理非常关注的一项工作。是项目经理非常关注的一项工作。n验验收收测测试试与与确确认认测测试试非非常常相相似似,所所不不同
67、同的的是是,确确认认测测试试是是项项目目组组或或组组织织内内部部的的测测试试,验验收收测测试试是是用用户户主主导导、现现场场参参与与、现现场场环环境境下下的的测试。测试。n验验收收测测试试通通常常由由项项目目组组先先提提出出测测试试大大纲纲,定定义义测测试试目目的的、范范围围、方方法法、测测试试用用例例、预预期期结结果果、验验收收标标准准等等。经经用用户户同同意意批批准准,可可能能包包括用户的修改、增加后,确定测试时间,开始进入验收测试。括用户的修改、增加后,确定测试时间,开始进入验收测试。n用用户户在在完完成成按按测测试试用用例例的的测测试试后后,在在测测试试记记录录上上逐逐条条确确认认、签
68、签字字,最后,在测试报告上签字,完成验收测试。最后,在测试报告上签字,完成验收测试。n一般地、验收测试报告是项目初验、终验的依据和主要验收形式。一般地、验收测试报告是项目初验、终验的依据和主要验收形式。 单元测试与验收测试单元测试和验收测试没有什么区别?单元测试和验收测试没有什么区别?n单单元元测测试试可可以以类类比比为为一一个个建建筑筑的的质质检检人人员员对对建建筑筑进进行行的的检检测测, 他他关关注注的的重重点点是是建建筑筑的的内内部部结结构构、地地基基、框框架架以以及及墙墙壁壁是是否否垂垂直直等等。他他的的检检测测是是要要保保证证建建筑筑的的各各个个部部分分是是正正常常的的、安安全全的的
69、,换换句句话话说说,就是要保证施工满足建筑上面的质量标准。就是要保证施工满足建筑上面的质量标准。n验验收收测测试试可可以以类类比比为为建建筑筑的的使使用用者者来来对对建建筑筑进进行行的的检检测测。他他关关心心建建筑筑的的外外观观是是否否美美观观、各各个个房房间间的的大大小小是是否否合合适适,窗窗户户的的位位置置是是否否合合适适,是是否否能能够够满满足足家家庭庭的的需需要要等等。这这里里,建建筑筑的的使使用用者者执执行行的的就就是是验收测试,他是从用户的角度出发的。验收测试,他是从用户的角度出发的。n正正是是这这种种角角度度的的不不同同决决定定了了单单元元测测试试和和验验收收测测试试之之间间的的
70、区区别别。它它们们是是对对系系统统的的不不同同的的方方面面进进行行的的测测试试,二二者者是是互互相相补补充充的的。不不管管我我们们在在系系统统的的构构建建中中使使用用了了多多么么聪聪明明的的方方法法,不不管管我我们们的的系系统统是是多多么么的的灵灵活活,但但是是首首先先我我们们的的产产品品必必须须是是可可用用的的,否否则则我我们们所所做做的的就就是是浪浪费时间,从这一点上来说验收测试要比单元测试显得更加重要。费时间,从这一点上来说验收测试要比单元测试显得更加重要。 测试方法n测试所处的阶段不同,方法也不同:测试所处的阶段不同,方法也不同:n白盒测试白盒测试在在单单元元测测试试阶阶段段,由由于于
71、测测试试者者对对被被测测对对象象的的内内部部结结构构、逻逻辑辑思思路路、接接口口关关系系等等比比较较熟熟悉悉,一一般般采采取取白白盒盒测测试试的的方方法法,它它是是根根据据模模块块的的内内部部逻逻辑辑,进进行行测测试试设设计计的的方方法法。有有些些集集成成测测试试也也采采用用白白盒盒方方法法,关键看集成阶段的划分。关键看集成阶段的划分。n黑盒测试黑盒测试在在集集成成测测试试以以至至此此后后的的各各阶阶段段,测测试试设设计计和和测测试试人人员员,对对被被测测对对象象的的内内部部结结构构不不了了解解也也不不需需要要了了解解,他他的的目目的的是是按按需需求求功功能能进进行行确确认认。因此,黑盒测试是
72、严格按软件需求进行测试设计的方法。因此,黑盒测试是严格按软件需求进行测试设计的方法。n代码走查代码走查 测试类型测试类型在不同阶段,测试的类型也不相同,常有的测试类型是:在不同阶段,测试的类型也不相同,常有的测试类型是:(1 1)功功能能测测试试:软软件件实实现现的的功功能能是是否否符符合合需需求求规规格格说说明明书书中中定定义义的的功功能;能;(2 2)性能测试:软件在规定配置下的性能是否符合需求规定;)性能测试:软件在规定配置下的性能是否符合需求规定;(3 3)算法测试:确认实现的算法的正确性;)算法测试:确认实现的算法的正确性;(4 4)正正向向测测试试:按按照照用用户户正正常常的的理理
73、解解、操操作作方方式式、思思维维和和使使用用习习惯惯使使用软件,得到的结果是否与需求一致。用软件,得到的结果是否与需求一致。(5 5)逆逆向向测测试试:如如果果不不按按用用户户正正常常的的理理解解、操操作作发发生生、思思维维和和使使用用习习惯惯使使用用软软件件,软软件件是是否否能能正正确确地地进进行行处处理理。如如:无无效效操操作作、错错误误的的数据输入处理、非法进入等。数据输入处理、非法进入等。(6 6)边界测试:按软件的限制、假设条件的边界输入,进行测试。)边界测试:按软件的限制、假设条件的边界输入,进行测试。(7 7)配配置置测测试试:对对软软件件环环境境进进行行配配置置变变化化,软软件
74、件需需求求实实现现,特特别别是是性性能实现是否能符合需求规定要求。能实现是否能符合需求规定要求。(8 8)负负载载测测试试:在在业业务务处处理理量量、数数据据负负载载量量、通通讯讯负负载载量量达达到到何何种种情情况,系统的性能变化和承载能力情况。况,系统的性能变化和承载能力情况。测试计划测试计划测试估计测试估计在拟定测试计划时,首先需要对以下情况,做出估计:在拟定测试计划时,首先需要对以下情况,做出估计:(1 1)完成测试设计所需要的工作量:完成测试设计所需要的工作量:(2 2)完成测试设计所需要的工作时间:完成测试设计所需要的工作时间:(3 3)完成测试所需要的时间:完成测试所需要的时间:根
75、根据据以以上上三三个个部部分分的的结结果果,我我们们已已经经知知道道了了测测试试的的范范围围、内内容容、任任务务分分配配、时时间间等等,这这样样,项项目目经经理理可可以以能能比比较较充充分分地地规规划划资资源源,制制订出一份比较全面和切实的测试工作计划。订出一份比较全面和切实的测试工作计划。测试分配测试分配测测试试计计划划确确定定了了测测试试的的范范围围、内内容容和和估估计计时时间间,根根据据WBSWBS方方法法,测测试试计计划划还还应应说说明明具具体体测测试试任任务务的的分分解解和和测测试试工工作作的的分分配配。测测试试组组的的成成员员根根据据分分工工,各各自自完完成成一一部部分分测测试试任
76、任务务。测测试试组组与与项项目目开开发发组组还还需需要要保保持持一一定定的的同同步步,使使测测试试与与开开发发、修修改改在在协协调调的的步步骤骤下下进进行行,以以节约宝贵的项目总时间。节约宝贵的项目总时间。测试确认测试确认 测试用例:测试用例: 测试用例由谁设计?测试用例由谁设计? 设计测试用例的依据是什么?设计测试用例的依据是什么? 测试设计的重点是什么?测试设计的重点是什么?测试报告:测试报告:收集齐上述的所有测试用例,构成了测试报告的基收集齐上述的所有测试用例,构成了测试报告的基本要件。本要件。测试报告是对所有测试用例测试过程的总结。测试报告是对所有测试用例测试过程的总结。在测试报告中,
77、应反映:在测试报告中,应反映:(1)测试中出现问题的统计汇总和分析;)测试中出现问题的统计汇总和分析;(2)未解决问题的汇总和解决方案建议;)未解决问题的汇总和解决方案建议;(3)回归测试的统计和分析(度量)回归测试的统计和分析(度量);(4)对测试计划的总结或修改。)对测试计划的总结或修改。测试过程组织测试过程组织一个独立的测试小组为例,测试过程一般如下:一个独立的测试小组为例,测试过程一般如下:(1)测试准备:制定人员、环境、工具、培训和外部支)测试准备:制定人员、环境、工具、培训和外部支持计划。持计划。(2)测试计划:确定测试策略、建立测试计划。)测试计划:确定测试策略、建立测试计划。(
78、3)测试用例:建立测试顺序树、确定测试的优先级、)测试用例:建立测试顺序树、确定测试的优先级、详细列出测试程序和测试数据,设计测试用例。详细列出测试程序和测试数据,设计测试用例。(4)测试环境:了解需求、搭建环境、安装备份和恢复)测试环境:了解需求、搭建环境、安装备份和恢复程序,记录初始环境、测试环境、恢复环境等。程序,记录初始环境、测试环境、恢复环境等。(5)测试执行:从测试计划复审测试计划进度表、恢复)测试执行:从测试计划复审测试计划进度表、恢复测试执行环境。测试执行环境。(6)结果分析:执行结果分析、度量。)结果分析:执行结果分析、度量。(7)测试报告:错误趋势图、测试变动指示、产品检查
79、)测试报告:错误趋势图、测试变动指示、产品检查点建议。点建议。软件审查的概念软件审查的概念回顾:我们在上节介绍软件的确认和验证过程时,已经介绍了软件回顾:我们在上节介绍软件的确认和验证过程时,已经介绍了软件回顾:我们在上节介绍软件的确认和验证过程时,已经介绍了软件回顾:我们在上节介绍软件的确认和验证过程时,已经介绍了软件验证的三个过程是:验证的三个过程是:验证的三个过程是:验证的三个过程是:审查、测量和配置管理审查、测量和配置管理审查、测量和配置管理审查、测量和配置管理。同时,我们也谈到,。同时,我们也谈到,。同时,我们也谈到,。同时,我们也谈到,验证与确认的区别是,确认是在整个软件系统完成交
80、付前或某模块验证与确认的区别是,确认是在整个软件系统完成交付前或某模块验证与确认的区别是,确认是在整个软件系统完成交付前或某模块验证与确认的区别是,确认是在整个软件系统完成交付前或某模块完成交付前的检查,它的检查点是交付前。而验证贯穿于整个开发完成交付前的检查,它的检查点是交付前。而验证贯穿于整个开发完成交付前的检查,它的检查点是交付前。而验证贯穿于整个开发完成交付前的检查,它的检查点是交付前。而验证贯穿于整个开发过程,是对过程的确认。因此,验证的范围包括了整个开发过程,过程,是对过程的确认。因此,验证的范围包括了整个开发过程,过程,是对过程的确认。因此,验证的范围包括了整个开发过程,过程,是
81、对过程的确认。因此,验证的范围包括了整个开发过程,它是软件质量保证并持续改进的强大工具。它是软件质量保证并持续改进的强大工具。它是软件质量保证并持续改进的强大工具。它是软件质量保证并持续改进的强大工具。什么是审查,审查是一个正式的、严格的、具有深度的技术评什么是审查,审查是一个正式的、严格的、具有深度的技术评什么是审查,审查是一个正式的、严格的、具有深度的技术评什么是审查,审查是一个正式的、严格的、具有深度的技术评审过程。因此,评审的目的是:审过程。因此,评审的目的是:审过程。因此,评审的目的是:审过程。因此,评审的目的是: (1 1)在软件开发过程中,尽早可能地发现问题,特别是过程性的)在软
82、件开发过程中,尽早可能地发现问题,特别是过程性的)在软件开发过程中,尽早可能地发现问题,特别是过程性的)在软件开发过程中,尽早可能地发现问题,特别是过程性的问题;问题;问题;问题; (2 2)确保对需求保持一致的意见;)确保对需求保持一致的意见;)确保对需求保持一致的意见;)确保对需求保持一致的意见; (3 3)验证任何修改和变更满足预先定义的准则;)验证任何修改和变更满足预先定义的准则;)验证任何修改和变更满足预先定义的准则;)验证任何修改和变更满足预先定义的准则; (4 4)为组织提供产品在质量和过程方面是否有效的实际数据;)为组织提供产品在质量和过程方面是否有效的实际数据;)为组织提供产
83、品在质量和过程方面是否有效的实际数据;)为组织提供产品在质量和过程方面是否有效的实际数据; (5 5)使团队成员之间在技术上建立相互的了解;)使团队成员之间在技术上建立相互的了解;)使团队成员之间在技术上建立相互的了解;)使团队成员之间在技术上建立相互的了解; (6 6)增加软件确认测试的有效性;)增加软件确认测试的有效性;)增加软件确认测试的有效性;)增加软件确认测试的有效性; (7 7)提高优秀软件工程师的水准。)提高优秀软件工程师的水准。)提高优秀软件工程师的水准。)提高优秀软件工程师的水准。软件评审n软件评审n在软件开发的各个阶段,都要采用评审的方法,以便及早发现软件的缺陷。n软件评审
84、的必要性1. 从技术角度进行的审查是保证软件质量的重要措施n由于人的认识不可能百分之百地符合客观实际,因此生命周期每个阶段的工作中都可能发生错误。由于前一阶段的成果是后一阶段工作的基础,前一阶段的错误自然会导致后一阶段的工作结果中有相应的错误,而且错误会积累起来,如下图所示。软件评审n软件评审的办法n成立评审小组,组员包括:组长、作者、评审员1. 组长n组长是小组的核心,最后由技术水平较高且没有直接参与这项工程的人担任。n组长的任务是组织和领导技术审查的全过程,如安排会议日程,分发必要的文档资料,主持审查会议,确保审查全面、公正。2. 作者n作者是被审查文档或程序的编写者。如果开发小组由一个小
85、组集体完成,通常由技术小组负责人代表小组参加审查小组。n作者的责任是回答技术上的问题3. 评审员n评审员也应由技术专家担任。通常一个是前一阶段的技术骨干,另一个是后一阶段的骨干。n评审员的任务是分别从各自的角度,公正客观地评价被审查的软件产品。软件评审n软件评审的步骤1.准备2.简要介绍情况3.阅读被评审的文档(如检查表)4.开评审会5.返工6.复审n软件开发的各个阶段,其检查表的内容不一样。6.3.1软件审查的准备软件审查的准备评审人:审查一般由一个审查小组或审查委员会负责进行,审查小组内,评审人:审查一般由一个审查小组或审查委员会负责进行,审查小组内,评审人:审查一般由一个审查小组或审查委
86、员会负责进行,审查小组内,评审人:审查一般由一个审查小组或审查委员会负责进行,审查小组内,应有以下角色构成:应有以下角色构成:应有以下角色构成:应有以下角色构成:(1 1)主持审查活动的主审员;)主持审查活动的主审员;)主持审查活动的主审员;)主持审查活动的主审员;(2 2)被审查产品负责人,包括产品经理、技术经理、质量经理等;)被审查产品负责人,包括产品经理、技术经理、质量经理等;)被审查产品负责人,包括产品经理、技术经理、质量经理等;)被审查产品负责人,包括产品经理、技术经理、质量经理等;(3 3)负责对被审查产品进行讲解和解释的主讲人;)负责对被审查产品进行讲解和解释的主讲人;)负责对被
87、审查产品进行讲解和解释的主讲人;)负责对被审查产品进行讲解和解释的主讲人;(4 4)来自各有关部门的审查员;)来自各有关部门的审查员;)来自各有关部门的审查员;)来自各有关部门的审查员;(5 5)记录员;)记录员;)记录员;)记录员;(6 6) 项目经理项目经理项目经理项目经理项目经理应该参与软件的审查过程,关注审查结果,但不一定要参项目经理应该参与软件的审查过程,关注审查结果,但不一定要参项目经理应该参与软件的审查过程,关注审查结果,但不一定要参项目经理应该参与软件的审查过程,关注审查结果,但不一定要参加审查会议。这要看审查的级别。如果是组织内的项目级审查,项目经加审查会议。这要看审查的级别
88、。如果是组织内的项目级审查,项目经加审查会议。这要看审查的级别。如果是组织内的项目级审查,项目经加审查会议。这要看审查的级别。如果是组织内的项目级审查,项目经理作为被审查产品的负责人,应参加审查会议,否则,应该由具体的产理作为被审查产品的负责人,应参加审查会议,否则,应该由具体的产理作为被审查产品的负责人,应参加审查会议,否则,应该由具体的产理作为被审查产品的负责人,应参加审查会议,否则,应该由具体的产品、技术或质量经理去参加这样的会议。品、技术或质量经理去参加这样的会议。品、技术或质量经理去参加这样的会议。品、技术或质量经理去参加这样的会议。被审产品的负责人参加这样的会议,不是为了解释审查中
89、发现的缺被审产品的负责人参加这样的会议,不是为了解释审查中发现的缺被审产品的负责人参加这样的会议,不是为了解释审查中发现的缺被审产品的负责人参加这样的会议,不是为了解释审查中发现的缺陷,及其责任,进行辩解,而只是如实地向审查小组介绍产品为什么要陷,及其责任,进行辩解,而只是如实地向审查小组介绍产品为什么要陷,及其责任,进行辩解,而只是如实地向审查小组介绍产品为什么要陷,及其责任,进行辩解,而只是如实地向审查小组介绍产品为什么要这样做,和做了什么。审查的目的不是为了追究什么人的责任,而是为这样做,和做了什么。审查的目的不是为了追究什么人的责任,而是为这样做,和做了什么。审查的目的不是为了追究什么
90、人的责任,而是为这样做,和做了什么。审查的目的不是为了追究什么人的责任,而是为了改进过程。如果把评审,引入到人与人之间的斗争中去,则完全丧失了改进过程。如果把评审,引入到人与人之间的斗争中去,则完全丧失了改进过程。如果把评审,引入到人与人之间的斗争中去,则完全丧失了改进过程。如果把评审,引入到人与人之间的斗争中去,则完全丧失了评审,作为过程改进手段的意义。了评审,作为过程改进手段的意义。了评审,作为过程改进手段的意义。了评审,作为过程改进手段的意义。评审内容及要求,见下表:评审内容及要求,见下表:评审内容及要求,见下表:评审内容及要求,见下表:审查类型审查类型审查类型审查类型被审查项被审查项被
91、审查项被审查项需提交的资料需提交的资料需提交的资料需提交的资料提交审查条件提交审查条件提交审查条件提交审查条件需求需求需求需求软软软软件件件件需需需需求求求求规规规规格格格格说说说说明书明书明书明书软软软软件件件件需需需需求求求求规规规规格格格格说说说说明明明明书书书书及及及及在在在在此此此此之之之之前前前前有有有有关关关关的的的的需需需需求求求求分分分分析析析析文文文文档档档档、需需需需求求求求基基基基线线线线及及及及批批批批准文档准文档准文档准文档确确确确认认认认的的的的需需需需求求求求、已已已已经经经经被被被被分分分分析析析析和和和和形形形形式式式式化化化化描描描描述述述述,需需需需求求
92、求求基基基基线已经被确定线已经被确定线已经被确定线已经被确定 设计设计设计设计软件设计说明软件设计说明软件设计说明软件设计说明软件设计文档软件设计文档软件设计文档软件设计文档设计完成设计完成设计完成设计完成编码编码编码编码源代码模块源代码模块源代码模块源代码模块源源源源程程程程序序序序代代代代码码码码、设设设设计计计计文文文文档档档档、组织的编码标准与规范组织的编码标准与规范组织的编码标准与规范组织的编码标准与规范被被被被审审审审查查查查模模模模块块块块已已已已经经经经编编编编译译译译正正正正确确确确并并并并完完完完成成成成独立测试独立测试独立测试独立测试确认测试确认测试确认测试确认测试测试记
93、录测试记录测试记录测试记录测测测测试试试试结结结结果果果果报报报报告告告告、质质质质量量量量和和和和验收标准验收标准验收标准验收标准 系统确认及回归系统确认及回归系统确认及回归系统确认及回归测试已经完成测试已经完成测试已经完成测试已经完成 审查内容审查内容审查内容审查内容 作作作作为为为为被被被被审审审审查查查查对对对对象象象象的的的的项项项项目目目目组组组组,按按按按照照照照审审审审查查查查组组组组的的的的要要要要求求求求,提提提提交交交交被被被被审审审审查查查查材材材材料料料料,接受审查。接受审查。接受审查。接受审查。 作为审查员,应该做什么准备?作为审查员,应该做什么准备?作为审查员,应
94、该做什么准备?作为审查员,应该做什么准备? 首先,明确作为审查员的定角色位、职责。首先,明确作为审查员的定角色位、职责。首先,明确作为审查员的定角色位、职责。首先,明确作为审查员的定角色位、职责。 审审审审查查查查员员员员是是是是那那那那些些些些具具具具有有有有相相相相关关关关知知知知识识识识和和和和对对对对被被被被审审审审查查查查产产产产品品品品具具具具有有有有一一一一定定定定熟熟熟熟悉悉悉悉程程程程度度度度的的的的,但但但但不不不不一一一一定定定定就就就就是是是是直直直直接接接接从从从从事事事事相相相相同同同同岗岗岗岗位位位位(有有有有时时时时,还还还还特特特特别别别别需需需需要要要要交交
95、交交叉叉叉叉换换换换位位位位)的的的的人人人人员员员员。在在在在参参参参加加加加审审审审查查查查前前前前,他他他他必必必必须须须须花花花花一一一一定定定定的的的的时时时时间间间间和和和和精精精精力力力力,来来来来了了了了解解解解产产产产品品品品,并并并并能能能能通通通通过过过过阅阅阅阅读提交的资料,了解产品与文档、标准和规范之间的差异。读提交的资料,了解产品与文档、标准和规范之间的差异。读提交的资料,了解产品与文档、标准和规范之间的差异。读提交的资料,了解产品与文档、标准和规范之间的差异。 因此,他在审查中的责任是:因此,他在审查中的责任是:因此,他在审查中的责任是:因此,他在审查中的责任是:
96、(1 1 1 1)必须完全熟悉要审查的产品和产品所依据的文档和标准;)必须完全熟悉要审查的产品和产品所依据的文档和标准;)必须完全熟悉要审查的产品和产品所依据的文档和标准;)必须完全熟悉要审查的产品和产品所依据的文档和标准;(2 2 2 2)对照产品和文档,鉴别其中的差异;)对照产品和文档,鉴别其中的差异;)对照产品和文档,鉴别其中的差异;)对照产品和文档,鉴别其中的差异;(3 3 3 3)客观地评价差异,识别是属于实现程度差别、缺陷,还是错误;)客观地评价差异,识别是属于实现程度差别、缺陷,还是错误;)客观地评价差异,识别是属于实现程度差别、缺陷,还是错误;)客观地评价差异,识别是属于实现程
97、度差别、缺陷,还是错误;(4 4 4 4)判断差异是实现的个体现象,还是过程问题;)判断差异是实现的个体现象,还是过程问题;)判断差异是实现的个体现象,还是过程问题;)判断差异是实现的个体现象,还是过程问题;(5 5 5 5)以对产品而不是对人的态度,对差异进行评估和分析;)以对产品而不是对人的态度,对差异进行评估和分析;)以对产品而不是对人的态度,对差异进行评估和分析;)以对产品而不是对人的态度,对差异进行评估和分析;(6 6 6 6)向主审员报告审查结果和分析意见。)向主审员报告审查结果和分析意见。)向主审员报告审查结果和分析意见。)向主审员报告审查结果和分析意见。审查员的职责审查员的职责
98、审查员的职责审查员的职责软件审查的过程软件审查的过程在审查开始之前,审查组与被审查项目的有关人员,产品经理、在审查开始之前,审查组与被审查项目的有关人员,产品经理、在审查开始之前,审查组与被审查项目的有关人员,产品经理、在审查开始之前,审查组与被审查项目的有关人员,产品经理、技术经理、质量经理和项目经理们开一个技术经理、质量经理和项目经理们开一个技术经理、质量经理和项目经理们开一个技术经理、质量经理和项目经理们开一个“ “审查开工会审查开工会审查开工会审查开工会” ”,主审员,主审员,主审员,主审员向被审查对象的有关人员介绍本次审查的目的、对象、范围和内容,向被审查对象的有关人员介绍本次审查的
99、目的、对象、范围和内容,向被审查对象的有关人员介绍本次审查的目的、对象、范围和内容,向被审查对象的有关人员介绍本次审查的目的、对象、范围和内容,有必要的话,花一点时间介绍一下审查方法,使得审查员和被审查有必要的话,花一点时间介绍一下审查方法,使得审查员和被审查有必要的话,花一点时间介绍一下审查方法,使得审查员和被审查有必要的话,花一点时间介绍一下审查方法,使得审查员和被审查项目的有关人员,在审查过程中易于沟通和理解。当被审查有关人项目的有关人员,在审查过程中易于沟通和理解。当被审查有关人项目的有关人员,在审查过程中易于沟通和理解。当被审查有关人项目的有关人员,在审查过程中易于沟通和理解。当被审
100、查有关人员知道(不是同意)审查的主要内容后,主审员把审查工作,按分员知道(不是同意)审查的主要内容后,主审员把审查工作,按分员知道(不是同意)审查的主要内容后,主审员把审查工作,按分员知道(不是同意)审查的主要内容后,主审员把审查工作,按分工,分配给各审查员,并请项目组指定有关的配合人员。会议约定工,分配给各审查员,并请项目组指定有关的配合人员。会议约定工,分配给各审查员,并请项目组指定有关的配合人员。会议约定工,分配给各审查员,并请项目组指定有关的配合人员。会议约定好完成分组审查的时间,即召开审查汇报会的时间。好完成分组审查的时间,即召开审查汇报会的时间。好完成分组审查的时间,即召开审查汇报
101、会的时间。好完成分组审查的时间,即召开审查汇报会的时间。获得审查资料的审查员,可以开始从看资料如手,进入审查阶获得审查资料的审查员,可以开始从看资料如手,进入审查阶获得审查资料的审查员,可以开始从看资料如手,进入审查阶获得审查资料的审查员,可以开始从看资料如手,进入审查阶段。如果需要实际测试和运行检查,项目组要配合安排机器时间、段。如果需要实际测试和运行检查,项目组要配合安排机器时间、段。如果需要实际测试和运行检查,项目组要配合安排机器时间、段。如果需要实际测试和运行检查,项目组要配合安排机器时间、软件演示等与操作有关的环境。软件演示等与操作有关的环境。软件演示等与操作有关的环境。软件演示等与
102、操作有关的环境。审查员经过一段时间的工作,已经对所分工的部分,通过阅读审查员经过一段时间的工作,已经对所分工的部分,通过阅读审查员经过一段时间的工作,已经对所分工的部分,通过阅读审查员经过一段时间的工作,已经对所分工的部分,通过阅读资料、实际查看等,获得了必要的信息,有关的疑问,通过向项目资料、实际查看等,获得了必要的信息,有关的疑问,通过向项目资料、实际查看等,获得了必要的信息,有关的疑问,通过向项目资料、实际查看等,获得了必要的信息,有关的疑问,通过向项目组实际询问,解释了不清楚的地方。审查员对差异,已经做好了记组实际询问,解释了不清楚的地方。审查员对差异,已经做好了记组实际询问,解释了不
103、清楚的地方。审查员对差异,已经做好了记组实际询问,解释了不清楚的地方。审查员对差异,已经做好了记录。主审员按时间和进度,可以招集审查汇报会。录。主审员按时间和进度,可以招集审查汇报会。录。主审员按时间和进度,可以招集审查汇报会。录。主审员按时间和进度,可以招集审查汇报会。在审查汇报会上,审查员汇报分组审查中发现的潜在的(还没有定论)在审查汇报会上,审查员汇报分组审查中发现的潜在的(还没有定论)在审查汇报会上,审查员汇报分组审查中发现的潜在的(还没有定论)在审查汇报会上,审查员汇报分组审查中发现的潜在的(还没有定论)的错误、缺陷和差异。审查小组对每一个问题进行讨论,并争取获得的错误、缺陷和差异。
104、审查小组对每一个问题进行讨论,并争取获得的错误、缺陷和差异。审查小组对每一个问题进行讨论,并争取获得的错误、缺陷和差异。审查小组对每一个问题进行讨论,并争取获得一致的意见。必要时,可以请项目组再做解释。记录员此时应详细记一致的意见。必要时,可以请项目组再做解释。记录员此时应详细记一致的意见。必要时,可以请项目组再做解释。记录员此时应详细记一致的意见。必要时,可以请项目组再做解释。记录员此时应详细记录讨论的过程和各自的意见,并确保这些记录的完整性、正确性和真录讨论的过程和各自的意见,并确保这些记录的完整性、正确性和真录讨论的过程和各自的意见,并确保这些记录的完整性、正确性和真录讨论的过程和各自的
105、意见,并确保这些记录的完整性、正确性和真实性。实性。实性。实性。如果一次会议不能解决争论的问题,或者需要再扩大参加人员的范如果一次会议不能解决争论的问题,或者需要再扩大参加人员的范如果一次会议不能解决争论的问题,或者需要再扩大参加人员的范如果一次会议不能解决争论的问题,或者需要再扩大参加人员的范围,或者需要再做测试,那就那样去做。或者审查组发现问题已经非围,或者需要再做测试,那就那样去做。或者审查组发现问题已经非围,或者需要再做测试,那就那样去做。或者审查组发现问题已经非围,或者需要再做测试,那就那样去做。或者审查组发现问题已经非常严重,已经超出了软件评审的范围,那么,应立即停止评审,向有常严
106、重,已经超出了软件评审的范围,那么,应立即停止评审,向有常严重,已经超出了软件评审的范围,那么,应立即停止评审,向有常严重,已经超出了软件评审的范围,那么,应立即停止评审,向有关上级报告问题,以便上级做出重大改进的措施。关上级报告问题,以便上级做出重大改进的措施。关上级报告问题,以便上级做出重大改进的措施。关上级报告问题,以便上级做出重大改进的措施。审查结果的发布是一个非技术的敏感问题。什么性质的结果可以发审查结果的发布是一个非技术的敏感问题。什么性质的结果可以发审查结果的发布是一个非技术的敏感问题。什么性质的结果可以发审查结果的发布是一个非技术的敏感问题。什么性质的结果可以发布,在多大范围内
107、发布。审查结果如果比较满意,它的发布将对项目布,在多大范围内发布。审查结果如果比较满意,它的发布将对项目布,在多大范围内发布。审查结果如果比较满意,它的发布将对项目布,在多大范围内发布。审查结果如果比较满意,它的发布将对项目组是一个正向的激励,是相关人员能力的象征。负面的审查结果可能组是一个正向的激励,是相关人员能力的象征。负面的审查结果可能组是一个正向的激励,是相关人员能力的象征。负面的审查结果可能组是一个正向的激励,是相关人员能力的象征。负面的审查结果可能引来更大的争议和动荡。因此,审查小组和项目经理,要充分沟通,引来更大的争议和动荡。因此,审查小组和项目经理,要充分沟通,引来更大的争议和
108、动荡。因此,审查小组和项目经理,要充分沟通,引来更大的争议和动荡。因此,审查小组和项目经理,要充分沟通,从积极的方面,使用审查结果。从积极的方面,使用审查结果。从积极的方面,使用审查结果。从积极的方面,使用审查结果。任何审查结果都不是针对个人的,但是任何工作都是由具体个人来任何审查结果都不是针对个人的,但是任何工作都是由具体个人来任何审查结果都不是针对个人的,但是任何工作都是由具体个人来任何审查结果都不是针对个人的,但是任何工作都是由具体个人来负责和承担相应责任的。因此,审查结果的难处,就在这句话的二面负责和承担相应责任的。因此,审查结果的难处,就在这句话的二面负责和承担相应责任的。因此,审查
109、结果的难处,就在这句话的二面负责和承担相应责任的。因此,审查结果的难处,就在这句话的二面性。性。性。性。软件审查的过程软件审查的过程需求审查需求审查需求文档与需求属性需求文档与需求属性需求文档与需求属性需求文档与需求属性(第二章已经介绍)(第二章已经介绍)(第二章已经介绍)(第二章已经介绍)需求审查表(问题清单)需求审查表(问题清单)需求审查表(问题清单)需求审查表(问题清单)(1 1)需求是否定义了要向用户展示的全部信息?需求是否定义了要向用户展示的全部信息?需求是否定义了要向用户展示的全部信息?需求是否定义了要向用户展示的全部信息?(2 2)需求是否论述了系统对用户错误操作的反映?需求是否
110、论述了系统对用户错误操作的反映?需求是否论述了系统对用户错误操作的反映?需求是否论述了系统对用户错误操作的反映?(3 3)每一需求项的描述是否清楚、简洁和没有二意性?每一需求项的描述是否清楚、简洁和没有二意性?每一需求项的描述是否清楚、简洁和没有二意性?每一需求项的描述是否清楚、简洁和没有二意性?(4 4)每一项需求是否都是可测试的?每一项需求是否都是可测试的?每一项需求是否都是可测试的?每一项需求是否都是可测试的?(5 5)需求是否有隐含或暗示的功能理解?需求是否有隐含或暗示的功能理解?需求是否有隐含或暗示的功能理解?需求是否有隐含或暗示的功能理解?(6 6)需求项之间是否有自相矛盾的地方?
111、需求项之间是否有自相矛盾的地方?需求项之间是否有自相矛盾的地方?需求项之间是否有自相矛盾的地方?(7 7)需求是否有应该论述但没有提及的地方?需求是否有应该论述但没有提及的地方?需求是否有应该论述但没有提及的地方?需求是否有应该论述但没有提及的地方?(8 8)需求对实时性、精确度、负载能力等有没有定义?需求对实时性、精确度、负载能力等有没有定义?需求对实时性、精确度、负载能力等有没有定义?需求对实时性、精确度、负载能力等有没有定义?(9 9)需求是否包括了性能需求、质量需求等非功能需求?需求是否包括了性能需求、质量需求等非功能需求?需求是否包括了性能需求、质量需求等非功能需求?需求是否包括了性
112、能需求、质量需求等非功能需求?(1010) 如果需求涉及复杂的关联关系、复杂的算法、复杂的决策如果需求涉及复杂的关联关系、复杂的算法、复杂的决策如果需求涉及复杂的关联关系、复杂的算法、复杂的决策如果需求涉及复杂的关联关系、复杂的算法、复杂的决策机制,用户能完全理解吗?机制,用户能完全理解吗?机制,用户能完全理解吗?机制,用户能完全理解吗?(1111) 需求对软件升级、版本变更是否有明确的承诺?需求对软件升级、版本变更是否有明确的承诺?需求对软件升级、版本变更是否有明确的承诺?需求对软件升级、版本变更是否有明确的承诺?(1212) 需求文档是否含有不必要的设计细节?需求文档是否含有不必要的设计细
113、节?需求文档是否含有不必要的设计细节?需求文档是否含有不必要的设计细节?(1313) 是否可以根据需求,开发出适当的和完整的测试用例集?是否可以根据需求,开发出适当的和完整的测试用例集?是否可以根据需求,开发出适当的和完整的测试用例集?是否可以根据需求,开发出适当的和完整的测试用例集?(1414) 需求的假设和限制条件是否明确?需求的假设和限制条件是否明确?需求的假设和限制条件是否明确?需求的假设和限制条件是否明确?需求审查需求审查需求审查过程需求审查过程需求审查过程需求审查过程我们在上一节,已经一般地讨论过审查的过程。需求审查也遵循我们在上一节,已经一般地讨论过审查的过程。需求审查也遵循我们
114、在上一节,已经一般地讨论过审查的过程。需求审查也遵循我们在上一节,已经一般地讨论过审查的过程。需求审查也遵循这样的过程:组织审查组;收集项目组提交的被审查资料;确定审这样的过程:组织审查组;收集项目组提交的被审查资料;确定审这样的过程:组织审查组;收集项目组提交的被审查资料;确定审这样的过程:组织审查组;收集项目组提交的被审查资料;确定审查日期;审查员在获得审查任务分配和开始工作,包括:对资料的查日期;审查员在获得审查任务分配和开始工作,包括:对资料的查日期;审查员在获得审查任务分配和开始工作,包括:对资料的查日期;审查员在获得审查任务分配和开始工作,包括:对资料的阅读和评审、做实地的检查、调
115、查和询问、记录并报告;参加评审阅读和评审、做实地的检查、调查和询问、记录并报告;参加评审阅读和评审、做实地的检查、调查和询问、记录并报告;参加评审阅读和评审、做实地的检查、调查和询问、记录并报告;参加评审会议并报告自己的发现和分析。会议并报告自己的发现和分析。会议并报告自己的发现和分析。会议并报告自己的发现和分析。审查小组首先检查审查活动是否充分和没有偏差、疏漏。审查员审查小组首先检查审查活动是否充分和没有偏差、疏漏。审查员审查小组首先检查审查活动是否充分和没有偏差、疏漏。审查员审查小组首先检查审查活动是否充分和没有偏差、疏漏。审查员对问题的认识有没有片面和主观。主审员根据自己的经验,可能会对
116、问题的认识有没有片面和主观。主审员根据自己的经验,可能会对问题的认识有没有片面和主观。主审员根据自己的经验,可能会对问题的认识有没有片面和主观。主审员根据自己的经验,可能会对年轻的审查员要求做出补充调查。通过讨论,审查小组争取对问对年轻的审查员要求做出补充调查。通过讨论,审查小组争取对问对年轻的审查员要求做出补充调查。通过讨论,审查小组争取对问对年轻的审查员要求做出补充调查。通过讨论,审查小组争取对问题取得一致的意见,并形成审查报告。题取得一致的意见,并形成审查报告。题取得一致的意见,并形成审查报告。题取得一致的意见,并形成审查报告。追踪与改正追踪与改正追踪与改正追踪与改正审查的目的是监督项目
117、组对软件的品质,保持良好的状态和不断审查的目的是监督项目组对软件的品质,保持良好的状态和不断审查的目的是监督项目组对软件的品质,保持良好的状态和不断审查的目的是监督项目组对软件的品质,保持良好的状态和不断地改进。因此,审查小组有责任跟踪项目组对审查结果的利用情况。地改进。因此,审查小组有责任跟踪项目组对审查结果的利用情况。地改进。因此,审查小组有责任跟踪项目组对审查结果的利用情况。地改进。因此,审查小组有责任跟踪项目组对审查结果的利用情况。关注项目组的改进,是项目经理比关注审查结果更重要的事情。关注项目组的改进,是项目经理比关注审查结果更重要的事情。关注项目组的改进,是项目经理比关注审查结果更
118、重要的事情。关注项目组的改进,是项目经理比关注审查结果更重要的事情。设计审查设计审查概要设计审查表(问题清单)概要设计审查表(问题清单)概要设计审查表(问题清单)概要设计审查表(问题清单)详细设计审查表(问题清单)详细设计审查表(问题清单)详细设计审查表(问题清单)详细设计审查表(问题清单)设计审查的目标:设计审查的目标:设计审查的目标:设计审查的目标:概要设计重点审查以下几个方面(概要设计重点审查以下几个方面(概要设计重点审查以下几个方面(概要设计重点审查以下几个方面(概要设计针对需求)概要设计针对需求)概要设计针对需求)概要设计针对需求)(1 1)概要设计对需求的完整实现;)概要设计对需求
119、的完整实现;)概要设计对需求的完整实现;)概要设计对需求的完整实现; (2 2)概要设计与需求的一致性;)概要设计与需求的一致性;)概要设计与需求的一致性;)概要设计与需求的一致性;(3 3)概要设计向需求的反向可追踪;)概要设计向需求的反向可追踪;)概要设计向需求的反向可追踪;)概要设计向需求的反向可追踪;(4 4)概要设计中,对系统结构设计的逻辑性、合理性和可扩展性;)概要设计中,对系统结构设计的逻辑性、合理性和可扩展性;)概要设计中,对系统结构设计的逻辑性、合理性和可扩展性;)概要设计中,对系统结构设计的逻辑性、合理性和可扩展性;由于概要设计是直接衔接需求的,因此,概要设计审查更多地是把
120、设由于概要设计是直接衔接需求的,因此,概要设计审查更多地是把设由于概要设计是直接衔接需求的,因此,概要设计审查更多地是把设由于概要设计是直接衔接需求的,因此,概要设计审查更多地是把设计与需求相衔接。计与需求相衔接。计与需求相衔接。计与需求相衔接。在详细设计中,应重点审查以下方面(在详细设计中,应重点审查以下方面(在详细设计中,应重点审查以下方面(在详细设计中,应重点审查以下方面(详细设计针对实现)详细设计针对实现)详细设计针对实现)详细设计针对实现)(1 1)设计应符合组织即定的标准;)设计应符合组织即定的标准;)设计应符合组织即定的标准;)设计应符合组织即定的标准;(2 2)设计结果对下一阶
121、段的编码是可用的。)设计结果对下一阶段的编码是可用的。)设计结果对下一阶段的编码是可用的。)设计结果对下一阶段的编码是可用的。由于详细设计直接提供编码实现,因此,在组织内,应对详细设计的由于详细设计直接提供编码实现,因此,在组织内,应对详细设计的由于详细设计直接提供编码实现,因此,在组织内,应对详细设计的由于详细设计直接提供编码实现,因此,在组织内,应对详细设计的“ “粒度粒度粒度粒度” ”做出规定。这样,即明确详细设计与代码实现的界面,同时,做出规定。这样,即明确详细设计与代码实现的界面,同时,做出规定。这样,即明确详细设计与代码实现的界面,同时,做出规定。这样,即明确详细设计与代码实现的界
122、面,同时,也是编码标准化的工作基础。在这方面,应结合实际,进行研究。也是编码标准化的工作基础。在这方面,应结合实际,进行研究。也是编码标准化的工作基础。在这方面,应结合实际,进行研究。也是编码标准化的工作基础。在这方面,应结合实际,进行研究。代码审查代码审查代码的审查与具体实现工具有关,而且与具体实现工具的版本有代码的审查与具体实现工具有关,而且与具体实现工具的版本有代码的审查与具体实现工具有关,而且与具体实现工具的版本有代码的审查与具体实现工具有关,而且与具体实现工具的版本有关,因此,我们在这里就不具体讨论代码审查的内容。有不少文章具关,因此,我们在这里就不具体讨论代码审查的内容。有不少文章
123、具关,因此,我们在这里就不具体讨论代码审查的内容。有不少文章具关,因此,我们在这里就不具体讨论代码审查的内容。有不少文章具体讨论代码的标准化和设计技巧,可以作为审查的范本(如果必要的体讨论代码的标准化和设计技巧,可以作为审查的范本(如果必要的体讨论代码的标准化和设计技巧,可以作为审查的范本(如果必要的体讨论代码的标准化和设计技巧,可以作为审查的范本(如果必要的话)。话)。话)。话)。代码审查的一个办法是走查。就是由审查人员代码审查的一个办法是走查。就是由审查人员代码审查的一个办法是走查。就是由审查人员代码审查的一个办法是走查。就是由审查人员“ “读读读读” ”工程师写的代工程师写的代工程师写的
124、代工程师写的代码,然后对照码,然后对照码,然后对照码,然后对照“ “标准标准标准标准” ”进行检查,是对软件文档的一种书面检查。它进行检查,是对软件文档的一种书面检查。它进行检查,是对软件文档的一种书面检查。它进行检查,是对软件文档的一种书面检查。它通过人工模拟执行源程序的过程,检查软件设计的正确性。人工模拟通过人工模拟执行源程序的过程,检查软件设计的正确性。人工模拟通过人工模拟执行源程序的过程,检查软件设计的正确性。人工模拟通过人工模拟执行源程序的过程,检查软件设计的正确性。人工模拟也像计算机执行那样,可以仔细推敲、校验和核实每一步的执行结果,也像计算机执行那样,可以仔细推敲、校验和核实每一
125、步的执行结果,也像计算机执行那样,可以仔细推敲、校验和核实每一步的执行结果,也像计算机执行那样,可以仔细推敲、校验和核实每一步的执行结果,进而确定其执行逻辑、控制模型、算法和使用参数与数据的正确性。进而确定其执行逻辑、控制模型、算法和使用参数与数据的正确性。进而确定其执行逻辑、控制模型、算法和使用参数与数据的正确性。进而确定其执行逻辑、控制模型、算法和使用参数与数据的正确性。走查是一件非常艰苦的工作,同时是需要非常大的毅力和记忆力的走查是一件非常艰苦的工作,同时是需要非常大的毅力和记忆力的走查是一件非常艰苦的工作,同时是需要非常大的毅力和记忆力的走查是一件非常艰苦的工作,同时是需要非常大的毅力
126、和记忆力的工作。因为一个系统程序量之大,组织的规则和要求之多。审查员要工作。因为一个系统程序量之大,组织的规则和要求之多。审查员要工作。因为一个系统程序量之大,组织的规则和要求之多。审查员要工作。因为一个系统程序量之大,组织的规则和要求之多。审查员要做的是做的是做的是做的是N N的的的的N N次方的核对。现在也有一些计算机程序,按一定的规则,次方的核对。现在也有一些计算机程序,按一定的规则,次方的核对。现在也有一些计算机程序,按一定的规则,次方的核对。现在也有一些计算机程序,按一定的规则,帮助审查员帮助审查员帮助审查员帮助审查员“ “读读读读” ”程序,并挑出(有的可以做简单的修改)毛病,程序
127、,并挑出(有的可以做简单的修改)毛病,程序,并挑出(有的可以做简单的修改)毛病,程序,并挑出(有的可以做简单的修改)毛病,VisualBasicVisualBasic就有这样的程序。如果没有计算机程序的帮助,审查员会就有这样的程序。如果没有计算机程序的帮助,审查员会就有这样的程序。如果没有计算机程序的帮助,审查员会就有这样的程序。如果没有计算机程序的帮助,审查员会“ “疯疯疯疯” ”掉的。掉的。掉的。掉的。测试审查测试审查测试审查是对测试结果进行审查,它审查的内容包括:测试审查是对测试结果进行审查,它审查的内容包括:测试审查是对测试结果进行审查,它审查的内容包括:测试审查是对测试结果进行审查,
128、它审查的内容包括:(1 1)对测试用例的审查:测试用例的哪些要素(用例)对测试用例的审查:测试用例的哪些要素(用例)对测试用例的审查:测试用例的哪些要素(用例)对测试用例的审查:测试用例的哪些要素(用例名、测试日期、预期测试结果等)是否齐备?(宽度)名、测试日期、预期测试结果等)是否齐备?(宽度)名、测试日期、预期测试结果等)是否齐备?(宽度)名、测试日期、预期测试结果等)是否齐备?(宽度)(2 2)在概要设计和详细设计中确定的关键点或特殊需)在概要设计和详细设计中确定的关键点或特殊需)在概要设计和详细设计中确定的关键点或特殊需)在概要设计和详细设计中确定的关键点或特殊需求是否都测试到了?(深
129、度)求是否都测试到了?(深度)求是否都测试到了?(深度)求是否都测试到了?(深度)(3 3)测试过程(步骤、环境、用户模拟等)的设计是)测试过程(步骤、环境、用户模拟等)的设计是)测试过程(步骤、环境、用户模拟等)的设计是)测试过程(步骤、环境、用户模拟等)的设计是否正确、恰当?否正确、恰当?否正确、恰当?否正确、恰当?(4 4)预期值与结果值的差异统计;)预期值与结果值的差异统计;)预期值与结果值的差异统计;)预期值与结果值的差异统计;(5 5)测试目的是否达到?)测试目的是否达到?)测试目的是否达到?)测试目的是否达到?1.4.11.4.1现代质量管理回顾现代质量管理回顾现代质量管理回顾现
130、代质量管理回顾1.4.2ISO90001.4.2ISO9000质量管理体系质量管理体系质量管理体系质量管理体系1.4.3PMBOK1.4.3PMBOK的质量管理的质量管理的质量管理的质量管理1.4.4CMM21.4.4CMM2的质量保证的质量保证的质量保证的质量保证1.4软件工程与相关质量保证体系1.4.1 现代质量管理回顾n现代质量管理是对项目管理的补充现代质量管理是对项目管理的补充n现代质量管理在以下方面,做出更多的强调:现代质量管理在以下方面,做出更多的强调: (1 1)以客户满意为质量目标;以客户满意为质量目标; (2 2)比注重结果更多地注重过程;比注重结果更多地注重过程; (3 3
131、)管理层对质量负有责任。管理层对质量负有责任。n这些观点,是以下这些质量管理大师和前辈,在逐步总结这些观点,是以下这些质量管理大师和前辈,在逐步总结质量管理经验的基础上,建立起来的。质量管理经验的基础上,建立起来的。1.4.2 ISO9000质量管理体系 n什么叫什么叫ISOISOISOISO是国际标准化组织是国际标准化组织International Organization for International Organization for StandardizationStandardization的英文首尾字母的缩写词的英文首尾字母的缩写词, ,翻译成中文翻译成中文就是就是“国际标准化
132、组织国际标准化组织”。n什么是什么是ISO9000ISO9000?ISOISO制定出来的国制定出来的国际标准除了有准除了有规范的名称之外,范的名称之外,还有有编号,号,编号的格式是:号的格式是:ISO+ISO+标准号准号+杠杠+ +分分标准号准号+冒号冒号+ +发布年号(方括号中的内容可有可无),例如:布年号(方括号中的内容可有可无),例如:ISO8402ISO8402:19871987、ISO9000-1ISO9000-1:19941994等,分等,分别是某一个是某一个标准的准的编号。号。n但是,但是,“ISO9000”ISO9000”不是指一个不是指一个标准,而是一族准,而是一族标准的准的
133、统称。称。根据根据ISO9000-1ISO9000-1:19941994的定的定义:“ISO9000ISO9000族族 是由是由ISO/TC176ISO/TC176制定的所有国制定的所有国际标准。准。”ISO9000质量管理体系 n什么是什么是质量量认证 质量量认证也叫合格也叫合格评定,是国定,是国际上通行的管理上通行的管理产质量的有量的有效方法。效方法。质量量认证按按认证的的对象分象分为产质量量认证和和质量体量体系系认证两两类;按;按认证的作用可分的作用可分为安全安全认证和合格和合格认证。n什么是什么是产品品质量量认证 产品品质量量认证是指依据是指依据产品品标准和相准和相应技技术要求,要求,
134、经认证机构确机构确认并通并通过颁发认证证书和和认证标志来志来证明某一明某一产品品符合相符合相应标准和相准和相应技技术要求的活要求的活动。n什么是什么是质量体系量体系认证 质量体系量体系认证的的对象是企象是企业的的质量体系,或者量体系,或者说是企是企业的的质量保量保证能力。能力。 ISO9000质量管理体系n软件企业为什么要建立软件企业为什么要建立ISO9000质量管理体系?质量管理体系?p(1 1)软件本身的特点和目前软件开发模式使隐藏在软)软件本身的特点和目前软件开发模式使隐藏在软件内部的质量缺陷不可能完全避免件内部的质量缺陷不可能完全避免p(2 2)从技术上解决软件质量问题的效果十分有限。
135、)从技术上解决软件质量问题的效果十分有限。p(3 3)技术人员和管理人员在软件开发工作中仍有一些)技术人员和管理人员在软件开发工作中仍有一些不正确的认识需要纠正,这需要在企业建立和实施质量不正确的认识需要纠正,这需要在企业建立和实施质量体系的过程中加以解决。体系的过程中加以解决。p(4 4)目前多数软件企业的质量管理尚未得到应有的重)目前多数软件企业的质量管理尚未得到应有的重视,他们需要认真总结教训,并将其渗入质量体系形成视,他们需要认真总结教训,并将其渗入质量体系形成制度化的规定。制度化的规定。p(5 5)软件开发必须靠加强管理来实现工程化,质量管)软件开发必须靠加强管理来实现工程化,质量管
136、理要体现在建立和实施开发规范中,保证软件工程的各理要体现在建立和实施开发规范中,保证软件工程的各个步骤和各个岗位的工作都符合要求,并且即使产品在个步骤和各个岗位的工作都符合要求,并且即使产品在使用中出现了问题,也能及时的发现,及时妥善解决。使用中出现了问题,也能及时的发现,及时妥善解决。ISO9000质量管理体系n质量体系文件的层次质量体系文件的层次n第一层:质量手册第一层:质量手册n第二层:程序文件第二层:程序文件n第三层:作业指导书第三层:作业指导书n管管理理性性第第三三层层文文件件(如如:车车间间管管理理办办法法、仓仓库库管管理理办办法法、文文件件和和资料编写导则、产品标识细则等)资料编
137、写导则、产品标识细则等)n技技术术性性第第三三层层文文件件(如如:产产品品标标准准、原原材材料料标标准准、技技术术图图纸纸、工工序作业指导书、工艺卡、设备操作规程、抽样标准、检验规程等)序作业指导书、工艺卡、设备操作规程、抽样标准、检验规程等)n第四层第四层 表格与(质量)记录。表格与(质量)记录。n质量体系文件的作用质量体系文件的作用n1. 1. 质质量量体体系系文文件件确确定定了了职职责责的的分分配配和和活活动动的的程程序序,是是企企业业内内部的部的“法规法规”。n2. 2. 质量体系文件是企业开展内部培训的依据。质量体系文件是企业开展内部培训的依据。n3. 3. 质量体系文件是质量审核的
138、依据。质量体系文件是质量审核的依据。n4. 4. 质量体系文件使质量改进有章可循。质量体系文件使质量改进有章可循。ISO9000质量管理体系ISO9000ISO9000质量管理的质量管理的8 8项原则:项原则:n原则原则1 1: 以顾客为中心以顾客为中心 n原则原则2 2: 领导作用领导作用n原则原则3 3: 全员参与全员参与 n原则原则4 4: 过程方法过程方法 n原则原则5 5: 管理的系统方法管理的系统方法 n原则原则6 6: 持续改进持续改进n原则原则7 7: 基于事实的决策方法基于事实的决策方法n原则原则8 8: 互利的供方关系互利的供方关系 1.4.3 CMM2的质量保证过程nCM
139、M2CMM2质量保证(质量保证(SQASQA)的目标的目标 CMM2CMM2对对SQASQA确定了确定了4 4个目标,它们是:个目标,它们是: 目标目标1 1:对软件质量保证活动做到有计划;:对软件质量保证活动做到有计划; 目标目标2 2:客观地验证软件产品及其活动是否遵守应用的标准、:客观地验证软件产品及其活动是否遵守应用的标准、 规程和需求;规程和需求; 目标目标3 3:将软件质量保证活动及其结果及时通知相关小组和个:将软件质量保证活动及其结果及时通知相关小组和个 人;人; 目标目标4:由上级管理部门及时处理软件项目内部解决不了的不:由上级管理部门及时处理软件项目内部解决不了的不 一致性问
140、题。一致性问题。CMM2的质量保证过程nCMM2CMM2的质量保证活动的质量保证活动 CMM2CMM2对对SQASQA定义了定义了8 8项活动,它们是:项活动,它们是:活动活动1 1:与项目总体计划同步地制订:与项目总体计划同步地制订SQASQA计划;计划;活动活动2 2:SQASQA组按组按SQASQA计划进行活动;计划进行活动;活动活动3 3:SQASQA组要参与制订和评审项目的软件开发计划、标准和规程;组要参与制订和评审项目的软件开发计划、标准和规程;活动活动4 4:SQASQA小组要评审软件工程活动,验证其一致性;小组要评审软件工程活动,验证其一致性;活动活动5 5:SQASQA小组要
141、审核软件产品,验证其一致性;小组要审核软件产品,验证其一致性;活动活动6 6:SQASQA小组要定期向软件工程组报告活动结果;小组要定期向软件工程组报告活动结果;活动活动7 7:依据规定,归档和处理软件活动和产品中的偏差;:依据规定,归档和处理软件活动和产品中的偏差;活动活动8 8:合适时,与用户的:合适时,与用户的SQASQA人员定期对人员定期对SQASQA组的活动和结果,进行评审。组的活动和结果,进行评审。ISO9000ISO9000与与CMMCMM的比较的比较比较内容比较内容2000版版ISO/DIS9001CMM管理体系管理体系强调完整的组织体系,可以用来建立强调完整的组织体系,可以用
142、来建立符合符合ISO9000ISO9000管理的组织管理管理的组织管理本身对管理体系没有明确要求,默本身对管理体系没有明确要求,默认组织体系是有效的、健全的。认组织体系是有效的、健全的。管理上的侧重管理上的侧重组织管理过程管理组织管理过程管理项目管理技术管理过程的控制以项目管理技术管理过程的控制以KPAKPA的形式来强调各环节的管理,的形式来强调各环节的管理,但缺乏整个过程的管理但缺乏整个过程的管理管理职责管理职责强调宏观上的管理职责强调宏观上的管理职责强调项目管理中不同角色的职责强调项目管理中不同角色的职责文件体系文件体系分为组织层(规范)文件和项目层文分为组织层(规范)文件和项目层文件,并
143、将文件体系化分为质量手件,并将文件体系化分为质量手册、程序文件和作业指导书,层册、程序文件和作业指导书,层次清楚次清楚所有文件同等对待所有文件同等对待数据分析数据分析加强了数据分析、测量加强了数据分析、测量在定量过程管理(在定量过程管理(KPAKPA)中强调)中强调适用范围适用范围所有行业,但对软件行业的适用性不所有行业,但对软件行业的适用性不够强,对企业规模无要求够强,对企业规模无要求大型软件企业(大型软件企业(500500人以上),对人以上),对于于500500人以下的中小型企业需要人以下的中小型企业需要进行裁剪进行裁剪ISO9000ISO9000与与CMMCMM的比较的比较比较内容比较内
144、容2000版版ISO/DIS9001CMM管理理念管理理念以以顾客客满意意为目目标评价承包商的价承包商的软件成熟能力件成熟能力配置管理配置管理弱弱强强需求管理需求管理强强调了合同了合同评审,但,但对需求的管理需求的管理很弱很弱对需求管理有很需求管理有很强强的控制,但没的控制,但没有有对合同合同评审进行控制行控制评审有有较强强的管理的管理评审,但,但对技技术评审管理管理较弱弱有有较强强的技的技术评审,但,但对管理管理评审的控制的控制较弱弱内部沟通内部沟通强强调内部沟通内部沟通强强调内部沟通,并通内部沟通,并通过组际协调(KPA)来)来实现。外部沟通外部沟通强强调内部沟通内部沟通强强调内部沟通,并
145、通内部沟通,并通过组际协调(KPA)来)来实现。变更管理更管理弱弱强强(有(有专门的的KPA进行控制,包行控制,包括技括技术变更和更和过程程变更)更)1.4.4 PMBOK的质量管理过程 项目的质量的二层含义项目的质量的二层含义项目的质量的二层含义项目的质量的二层含义 从项目作为一项最终产品来看,项目质量体现在其性从项目作为一项最终产品来看,项目质量体现在其性从项目作为一项最终产品来看,项目质量体现在其性从项目作为一项最终产品来看,项目质量体现在其性能或者使用价值上,也即能或者使用价值上,也即能或者使用价值上,也即能或者使用价值上,也即项目的产品质量项目的产品质量项目的产品质量项目的产品质量。
146、 从项目作为一次性的活动来看,项目管理质量体现在从项目作为一次性的活动来看,项目管理质量体现在从项目作为一次性的活动来看,项目管理质量体现在从项目作为一次性的活动来看,项目管理质量体现在由由由由WBSWBS反映出的项目范围内所有的阶段、子项目、项反映出的项目范围内所有的阶段、子项目、项反映出的项目范围内所有的阶段、子项目、项反映出的项目范围内所有的阶段、子项目、项目工作单元的质量所构成,也即目工作单元的质量所构成,也即目工作单元的质量所构成,也即目工作单元的质量所构成,也即项目的工作质量项目的工作质量项目的工作质量项目的工作质量; 项目是应业主的要求进行的项目是应业主的要求进行的项目是应业主的
147、要求进行的项目是应业主的要求进行的, ,不同的业主有着不同的产品不同的业主有着不同的产品不同的业主有着不同的产品不同的业主有着不同的产品质量要求,其意图已反映在项目合同中。因此,质量要求,其意图已反映在项目合同中。因此,质量要求,其意图已反映在项目合同中。因此,质量要求,其意图已反映在项目合同中。因此,项目合项目合项目合项目合同是进行项目产品质量管理的主要依据同是进行项目产品质量管理的主要依据同是进行项目产品质量管理的主要依据同是进行项目产品质量管理的主要依据。PMBOKPMBOKPMBOKPMBOK的项目质量管理域的项目质量管理域的项目质量管理域的项目质量管理域包含一些程序,它要求保证该项包
148、含一些程序,它要求保证该项包含一些程序,它要求保证该项包含一些程序,它要求保证该项目能够兑现它的关于满足各种需求的承诺。它包括目能够兑现它的关于满足各种需求的承诺。它包括目能够兑现它的关于满足各种需求的承诺。它包括目能够兑现它的关于满足各种需求的承诺。它包括“ “在在在在质量体系中,与决定质量工作的策略、目标和责任的全质量体系中,与决定质量工作的策略、目标和责任的全质量体系中,与决定质量工作的策略、目标和责任的全质量体系中,与决定质量工作的策略、目标和责任的全部管理功能有关的各种活动,并通过诸如质量计划、质部管理功能有关的各种活动,并通过诸如质量计划、质部管理功能有关的各种活动,并通过诸如质量
149、计划、质部管理功能有关的各种活动,并通过诸如质量计划、质量保证和质量提高等手段来完成这些活动量保证和质量提高等手段来完成这些活动量保证和质量提高等手段来完成这些活动量保证和质量提高等手段来完成这些活动” ”。PMBOK的质量管理过程 PMBOKPMBOKPMBOKPMBOK的项目质量管理域的项目质量管理域的项目质量管理域的项目质量管理域包含一些程序,它要求保证该项目能够兑现它包含一些程序,它要求保证该项目能够兑现它包含一些程序,它要求保证该项目能够兑现它包含一些程序,它要求保证该项目能够兑现它的关于满足各种需求的承诺。它包括的关于满足各种需求的承诺。它包括的关于满足各种需求的承诺。它包括的关于
150、满足各种需求的承诺。它包括“ “在质量体系中,与决定质量工作在质量体系中,与决定质量工作在质量体系中,与决定质量工作在质量体系中,与决定质量工作的策略、目标和责任的全部管理功能有关的各种活动,并通过诸如质量的策略、目标和责任的全部管理功能有关的各种活动,并通过诸如质量的策略、目标和责任的全部管理功能有关的各种活动,并通过诸如质量的策略、目标和责任的全部管理功能有关的各种活动,并通过诸如质量计划、质量保证和质量提高等手段来完成这些活动计划、质量保证和质量提高等手段来完成这些活动计划、质量保证和质量提高等手段来完成这些活动计划、质量保证和质量提高等手段来完成这些活动” ”。 PMBOKPMBOKP
151、MBOKPMBOK的质量管理过程是:的质量管理过程是:的质量管理过程是:的质量管理过程是:1 1 1 1、质量计划、质量计划、质量计划、质量计划-确定哪些质量标准适用于该项目,并决定如何达标。确定哪些质量标准适用于该项目,并决定如何达标。确定哪些质量标准适用于该项目,并决定如何达标。确定哪些质量标准适用于该项目,并决定如何达标。2 2 2 2、质量保证、质量保证、质量保证、质量保证-在常规基础上对整个项目执行情况作评估,以提供信用,在常规基础上对整个项目执行情况作评估,以提供信用,在常规基础上对整个项目执行情况作评估,以提供信用,在常规基础上对整个项目执行情况作评估,以提供信用, 保证该项目将
152、能够达到有关质量标准。保证该项目将能够达到有关质量标准。保证该项目将能够达到有关质量标准。保证该项目将能够达到有关质量标准。3 3 3 3、质量控制、质量控制、质量控制、质量控制-监控特定项目的执行结果,以确定它们是否符合有关的监控特定项目的执行结果,以确定它们是否符合有关的监控特定项目的执行结果,以确定它们是否符合有关的监控特定项目的执行结果,以确定它们是否符合有关的 质量标准,并确定适当方式消除导致项目绩效令人不满意的原因。质量标准,并确定适当方式消除导致项目绩效令人不满意的原因。质量标准,并确定适当方式消除导致项目绩效令人不满意的原因。质量标准,并确定适当方式消除导致项目绩效令人不满意的
153、原因。 这些工作程序互有影响,并且与其它知识领域中的程序之间也存在相互这些工作程序互有影响,并且与其它知识领域中的程序之间也存在相互这些工作程序互有影响,并且与其它知识领域中的程序之间也存在相互这些工作程序互有影响,并且与其它知识领域中的程序之间也存在相互影响。依据项目的需要,每道程序都可能包含一个或更多的个人或由团影响。依据项目的需要,每道程序都可能包含一个或更多的个人或由团影响。依据项目的需要,每道程序都可能包含一个或更多的个人或由团影响。依据项目的需要,每道程序都可能包含一个或更多的个人或由团队的努力。在每个项目阶段中,每道程序通常都会至少经历一次。队的努力。在每个项目阶段中,每道程序通
154、常都会至少经历一次。队的努力。在每个项目阶段中,每道程序通常都会至少经历一次。队的努力。在每个项目阶段中,每道程序通常都会至少经历一次。提高质量的途径提高质量的途径提高质量的途径提高质量的途径的的6个步骤个步骤1 - 建立目标建立目标2 - 建立诊断分析方法建立诊断分析方法3 - 建立行动计划建立行动计划4 - 实施实施5 - 行动计划的后续措施行动计划的后续措施6 - 定期审查和更新定期审查和更新提高质量的途径提高质量的途径提高质量的途径提高质量的途径的的6个步骤个步骤提高质量的途径提高质量的途径满足要求:满足要求:- 最终客户最终客户- 直接过程客户直接过程客户- 公司客户公司客户目标目标
155、1诊断分析诊断分析2行动计划行动计划3改进改进4后续措施后续措施5定期审查定期审查6再实现再实现提高质量的途径提高质量的途径过程控制保证质量过程控制保证质量1 - 风险控制风险控制2 - 过程评估过程评估3 - 10个标准个标准4 - 预防预防5 - 监督监督提高质量的途径提高质量的途径10个标准个标准1 过程被确定,已知其界限,它的所有者、参与者和客户都被确定2 客户的需求被详细说明,并且确定了主要特点3 有具体方法用于测定需求的满意度4 评估了故障的风险,以最少的成本控制它们的起因(预防措施)5 尽早地进行检查和检测,以补救残留的风险6 实施文件中叙述了实施过程及其程序和指令7 证据(记录
156、)已经备案并可用于增强客户的信任8 参与者了解并应用过程及其程序和指令 9 对观察的故障采取补救和改进措施,所有的修改都由预防措施所补救 10 确定并使用监督系统 提高质量的途径提高质量的途径补救措施:补救措施:采取的措施是纠正不一致性或缺点,并恢复一致性采取的措施是纠正不一致性或缺点,并恢复一致性需要:需要:n 快速反应n 对客户造成的后果最小n 对公司造成的后果最小(特别是经济上)提高质量的途径提高质量的途径改进措施改进措施:“ 采取的措施是排除引起现有的不一致性或其它不符合采取的措施是排除引起现有的不一致性或其它不符合要求情况的原因,以防止再次发生要求情况的原因,以防止再次发生”需要:需
157、要:n 优先处理n 确保所采取措施的成果n 使用合适的方法n 涉及的参与者提高质量的途径提高质量的途径预防措施预防措施:“ 采取的措施是排除潜在的不一致性或其它潜在的不符合要求情采取的措施是排除潜在的不一致性或其它潜在的不符合要求情况的起因况的起因”需要:需要:n 一开始就采取行动一开始就采取行动n 使用合适的方法使用合适的方法(如:过程分析如:过程分析)n 涉及所有的参与者涉及所有的参与者n 确定合适的措施确定合适的措施n 将决定的措施正式化将决定的措施正式化n 有效的和系统的实施有效的和系统的实施提高质量的途径提高质量的途径行动1 - 选择被研究的过程、所有者、参与者。选择被研究的过程、所
158、有者、参与者。2 - 过程的定义:范围和限制。过程的定义:范围和限制。3 - 客户:他们是谁?他们希望什么?客户:他们是谁?他们希望什么?4 - 故障故障的风险?的风险?5 - 预防措施。预防措施。6 - 选择选择检验方式:检查、自查,等检验方式:检查、自查,等7 - 监督系统:监督系统: 结束:预防偏差、确定监督方法结束:预防偏差、确定监督方法8 - 资格资格方法方法 + 培训和参与者资格培训和参与者资格SQA小组建设小组建设对对SQASQA人员的素质要求人员的素质要求很很强强的沟通能力的沟通能力熟悉熟悉软件开件开发过程程 有很有很强强的的计划性划性能能应对繁繁杂的工作的工作 要客要客观,有
159、,有责任心任心 SQASQA人员的组成人员的组成 软软件件企企业业中中的的SQASQA人人员员既既可可以以由由全全职职人人员员担担任任,也也可可以以由由企企业业内内具具有有相相关关素素质质、经经过过SQASQA培培训训的的人人员员兼兼职职担担任任。由由此此组组成成的的SQASQA小小组组可可能能是是一一个个真真正正的的物物理理上上存存在在的的独独立立部部门门,也也可可以以是是一一个个逻逻辑辑上上存存在在的的平平台台。但但不不管管是是真真正正的的独独立立部部门门还还是是逻逻辑辑上上的的平平台台,它它都都需需要要有有一一个个灵灵魂魂人人物物SQASQA小组组长,来组织小组组长,来组织SQASQA小组的日常活动。小组的日常活动。 在在给给一一个个项项目目组组分分配配负负责责监监督督其其项项目目过过程程的的SQASQA时时,一一定定要要注注意意一一点点:就就是是该该项项目目的的SQASQA不不能能是是该该项项目目组组的的开开发发人人员员、配配置置管管理理人人员员或或测测试试人人员员,一一个个项项目目的的SQASQA除除了了监监控控项项目目过过程程,完完成成SQASQA相相关关工工作作以以外外,不不应应该该参参与与项项目目组组的的其其他他实实质质性性工工作作,否否则则他他会会与与项项目目组组捆捆绑绑在在一一起起,很很难难保保持客观性。持客观性。