软件测试依据和规范PPT学习课件.ppt
软件测试方法和技术软件测试方法和技术-Ch.4软件测试依据和规范软件测试依据和规范 主讲教师:郭晓燕主讲教师:郭晓燕1 第四章第四章 软件测试依据和规范软件测试依据和规范 4.1 测试过程模型测试过程模型4.2 测试过程改进模型测试过程改进模型4.3 软件测试标准和规范软件测试标准和规范4.4 软件测试管理和评判体系软件测试管理和评判体系2引论引论标准和规范是成熟工业的标志标准和规范是成熟工业的标志 软件行业也在不断朝此方向努力软件行业也在不断朝此方向努力34.1 4.1 测试过程模型测试过程模型V模型模型 W模型模型4W模型5W W模型模型n测试过程和开发过程贯穿了软件过程的整个生命测试过程和开发过程贯穿了软件过程的整个生命周期,它们是相辅相成的关系,有以下几个关键点周期,它们是相辅相成的关系,有以下几个关键点:n测试过程和开发过程是同时开始,同时结束,两者保持测试过程和开发过程是同时开始,同时结束,两者保持同步关系。同步关系。n测试过程是对开发过程中的阶段性结果和产品进行严重测试过程是对开发过程中的阶段性结果和产品进行严重的过程,两者相互依赖。前期,的过程,两者相互依赖。前期,测试过程依赖于开发过测试过程依赖于开发过程程,后期,后期,开发过程更多地依赖于测试过程开发过程更多地依赖于测试过程。n测试过程和开发过程的工作重点可能不一样,两者有各测试过程和开发过程的工作重点可能不一样,两者有各自的特点,不论在资源和风险管理中,两者都存在差异。自的特点,不论在资源和风险管理中,两者都存在差异。6ISO9000ISO9000是什么是什么?ISO 9000 的由来的由来 ISO 9000 总体思想总体思想 ISO 9000体系结构体系结构7ISO 软件质量标准软件质量标准ISO(International Standardization Organization,国际标准化组织)TC/176技术委员会制定的所有国际 标准p 质量保证标准(ISO9001/2/3)p 质量管理标准(ISO9004)TC176TC176即即ISOISO中第中第176176个技术委员会,成立于个技术委员会,成立于19801980年,全称年,全称是是“质量保证技术委员会质量保证技术委员会”,19871987年又更名为年又更名为“质量管质量管理和质量保证技术委员会理和质量保证技术委员会”。TC176TC176专门负责制定质量管专门负责制定质量管理和质量保证技术的标准理和质量保证技术的标准 8ISO 软件质量标准思想软件质量标准思想p 控制思想控制思想,即对产品形成的全过程进行控制。任何事,即对产品形成的全过程进行控制。任何事物都是由一个或多个过程活动的结果,只要对产品形成的物都是由一个或多个过程活动的结果,只要对产品形成的全过程进行控制并达到过程质量要求,最终产品的质量就全过程进行控制并达到过程质量要求,最终产品的质量就有了保证有了保证p 预防的思想预防的思想。通过对产品形成的全过程进行控制以及。通过对产品形成的全过程进行控制以及建立并有效运行自我完善机制达到预防不合格,从根本上建立并有效运行自我完善机制达到预防不合格,从根本上减少或消除不合格品减少或消除不合格品9ISO 软件质量标准结构软件质量标准结构 ISO9001:设计:设计/开发、生产、安装和服务中质量保证模式;开发、生产、安装和服务中质量保证模式;ISO9002:生产和安装中的质量保证模式;:生产和安装中的质量保证模式;ISO9003:最终检验和测试中的质量保证模式;:最终检验和测试中的质量保证模式;ISO9004:质量管理和质量体系要素导则。:质量管理和质量体系要素导则。ISO9000系列标准的主体部分分为两组:系列标准的主体部分分为两组:p“需方对供方要求质量保证需方对供方要求质量保证”的标准的标准ISO90019003p“供方建立质量保证体系供方建立质量保证体系”的标准的标准ISO9004 10ISO9000-3 是什么是什么ISO9000-3其实是其实是ISO质量管理和质量保证标准在软件质量管理和质量保证标准在软件开发、供应和维护中的使用指南,并不作为质量体系开发、供应和维护中的使用指南,并不作为质量体系注册注册/认证时的评估准则,主要考虑软件行业的特殊性认证时的评估准则,主要考虑软件行业的特殊性制定。参照制定。参照ISO9001质量体系质量体系 设计、开发、生产、设计、开发、生产、安装和服务的质量保证模式安装和服务的质量保证模式,并引用,并引用ISO 8402质质量管理和质量保证术语量管理和质量保证术语,使得,使得ISO9000系列标准应系列标准应用范围得以拓展用范围得以拓展 11ISO9000-3标准标准n软件开发、供应、维护中应用ISO9001的指南n是指南,不是标准n依然困惑:依然强调的是供应商和顾客的关系,不是工程师该如何做12ISO 9000-3 体系结构体系结构合同评审合同评审需方需求规格说明需方需求规格说明开发计划开发计划质量计划质量计划设计和实现设计和实现测试和确认测试和确认验收验收复制、交付和安装复制、交付和安装维护维护13CMM思想和结构体系思想和结构体系 CMM即软件能力成熟度模型即软件能力成熟度模型(Capability Maturity Model)是向软件组织提供如何增加对其开发和维护软件过程的控制能力。设计并实施CMM是为了指导软件组织:通过确定当前过程的成熟度等级和识别出对软件质量和过程改进至关重要的问题,来选择其过程改进策略。通过关注一组有限的活动,并为实现它们而积极工作,组织能稳步地改善其软件过程,使其软件过程能力持续不断地增长。14CMM的历史的历史CMMCMM分阶段的体系结构源于己有分阶段的体系结构源于己有6060多年历史的产品质多年历史的产品质量原理。量原理。ITTITT的的Philip CrosbyPhilip Crosby在其书在其书“Quality is Quality is FreeFree”(Crosby 79Crosby 79)中首先提出将质量原理改编为)中首先提出将质量原理改编为成熟度框架的思想。成熟度框架的思想。HumphreyHumphrey的成熟度框架早期版本发表在的成熟度框架早期版本发表在SEISEI技术报告技术报告(Humphrey 87aHumphrey 87a,Humphrey 87bHumphrey 87b)、文章)、文章(Humphrey 88Humphrey 88)和书)和书“Managing the software Managing the software ProcessProcess”(Humphrey 89Humphrey 89)中。)中。15基于基于CMM模型的过程改进模型的过程改进n软件过程改进的方法论-IDEAL 修 改 组 织 的 方 法 记 录 和 分 析 教 训 定 义 过 程 和 度 量 计 划 及 执 行 试 行 方 案 计 划,执 行 和 跟 踪 改 进 方 案 建 立 过 程 行 动 组 做 行 动 计 划 设 定 战 略 和 优 先 级 提 出 建 议 并 记 录 阶 段 成 果 评 估 当 前 实 践 情 况 改 进 动 机 确 定 改 进 范 围 以 及 获 取 支 持 建 立 改 进 机 制 诊诊 断断 建建 立立 行行 动动 学习学习 初初 始始 化化 InitiatingDiagnosingEstablishingActingLearning16CMM的五个等级的五个等级Adapted from SEI-93-TR-24MaturingMaturingDisciplinedProcessRepeatable(2)Project Mgmt system in place,performance repeatableStandard,consistentprocessDefined(3)SW Engr&Mgmt processes defined&integratedPredictableprocessManaged(4)Product&processes quantitatively controlledContinuouslyimprovingprocessOptimizing(5)Process improvement institutionalizedInitial(1)Process is informal and unpredictable17CMM的五个等级及关键过程域的五个等级及关键过程域(二二)1819不同成熟度的项目结果不同成熟度的项目结果ProbabilityTime/$/.4Based on quantitative understanding of process and product,performance continues to improveTargetProbabilityTime/$/.3With well-defined processes,performance improvesTargetProbabilityTime/$/.2Plans based on past performance are more realisticTargetAdapted from SEI-93-TR-24ProbabilityTime/$/.1Schedules and cost targets are typically overrunTargetProbabilityTime/$/.5TargetPerformance continuously improvesDistribution of actual outcomesTarget is the initial estimated objective for a critical project parameter(e.g.,cost,delivery date,defect counts)关键过程域关键过程域(Key Areas)过程更改管理过程更改管理*技术更改管理技术更改管理*错误预防错误预防*质量管理质量管理*过程量化管理过程量化管理*同级评审同级评审*组间协作组间协作软件产品工程软件产品工程*软件集成管理软件集成管理*培训计划培训计划软件过程定义软件过程定义*软件过程要点软件过程要点*软件配置管理软件配置管理软件质量保证软件质量保证软件子合同管理软件子合同管理软件项目追踪与监控软件项目追踪与监控*软件项目规划软件项目规划*需求管理需求管理II-可重复级可重复级III-已定义级已定义级IV-已管理级已管理级V-优化级优化级20ISO9000与与CMM的关系的关系nISO9000相当于相当于CMM二级和三级的一部分内容二级和三级的一部分内容(有人称为有人称为2.5级级)nCMM和和ISO9000认证本身没有优劣之分认证本身没有优劣之分nCMM是一个动态的过程是一个动态的过程n对于预算、项目周期管理等对于预算、项目周期管理等ISO9000涉及不够涉及不够的内容,的内容,CMM有所覆盖有所覆盖21ISO9000与与CMM的区别的区别nISO9001是通用的国际标准是通用的国际标准,适用于各类组织。适用于各类组织。nCMM是美国军方为评价软件供应商的质量水平是美国军方为评价软件供应商的质量水平,委托委托SEI开发的一个评价模型开发的一个评价模型,只用于软件业。只用于软件业。nCMM更详细更详细,更专业。更专业。nISO9001只建立了一个可接受水平,而只建立了一个可接受水平,而CMM是一个具是一个具有五个水平的评估工具。有五个水平的评估工具。nISO9001聚焦于供应商和用户间的关系,而聚焦于供应商和用户间的关系,而CMM更关更关注软件的开发过程。注软件的开发过程。22nH公司的B项目是一个庞大的项目组,技术相当复杂。名词术语很多,而且对于同一件事物的表达方式也不尽相同。项目组非常有必要制定一个规范的术语表,既统一了说法,也方便项目组的新人查阅。但是事情的发展是很有戏剧性的。n项目组在起初并没有重视术语表的编制,因为人少,产生的文档也不多,所以这件事情无人重视。但是到了项目进展了1/3左右,术语的混乱已经相当严重的时候。B项目组的一个工程师X自发地开发了一个小程序,用于查阅术语的名称和缩写。项目经理对X工程师的做法提出了表扬,并委任X开发和维护这个标准术语表。n23n项目经理和相关部门的始终没有意识到:n(1)开发和维护这样的标准术语表是项目经理和配置管理配置管理人员的职责,不是某一个软件工程师的任务。n(2)类似的问题在别的项目组一定出现过,以后的项目组一定也会遇到,必须在开发规范上堵住这个漏洞,让别的项目不会重蹈覆辙。n所谓的“管理无大事”,过程管理的真谛就在于这些看似细节的小事。基本的过程管理原则和规范只是“骨架”,而“血肉”是要靠这些看似细枝末节的小事来丰满的。积沙成塔,集腋成裘,点滴持续地改进,其效果最终是巨大的。24案例分析nH公司和Z公司都在研发相同类型的C产品。H公司在推广CMM,采用了相对严格的过程规范,并且把相对重要的部分外包给了印度的CMM5级公司。这些手段Z公司都没有采用,但是Z公司却抢在了前面。nZ公司的“秘密武器”是一种形式化语言SDL,Z公司采用SDL作为设计工具,这样C产品的相当一部分代码可以由SDL工具自动生成,而且在设计阶段就可以进行仿真运行,这样就大大地提高了效率并减少了缺陷。H公司虽然采用了相对严格的过程规范,但是因为全部代码为手工编制,所以,无论是效率还是质量,H公司都落后了。nH公司显然忽视了先进技术可能为生产率带来的进步,通过了CMM高级别的评估,只能说明被评估的组织机构在过程控制上做得更加细致,但是并不能够保证你的开发过程是高效的。某些沉迷于CMM的组织机构忘记了先进的软件工程技术的重要性。25软件测试规范软件测试规范 软件测试规范就是对软件测试流软件测试规范就是对软件测试流程过程化并对每一个过程元素进程过程化并对每一个过程元素进行明确的界定,形成完整的规范行明确的界定,形成完整的规范体系。体系。26软件测试标准n国际标准nISO-9000-3、ISO/IEC 14598n国家标准nGB国标,GB/T 15532-2008n行业标准nIEEEn企业规范n项目规范27完整的软件测试规范是怎样的完整的软件测试规范是怎样的规范本身的详细说明规范本身的详细说明,比如规范目的、范围、文档结构、比如规范目的、范围、文档结构、词汇表、参考信息、可追溯性、方针、过程词汇表、参考信息、可追溯性、方针、过程/规范、指南、规范、指南、模板、检查表、培训、工具、参考资料等等。模板、检查表、培训、工具、参考资料等等。28制定测试规范需要考虑的内容制定测试规范需要考虑的内容 角色的确定角色的确定 进入的准则进入的准则 输入项输入项 活动过程活动过程 输出项输出项 验证与确认验证与确认 退出的准则退出的准则 度量度量29建立软件测试管理和评判体系建立软件测试管理和评判体系 测试管理与评判的必要性测试管理与评判的必要性软件测试的管理和评判体系发展现状软件测试的管理和评判体系发展现状如何建立测试管理与评判体系如何建立测试管理与评判体系 30为什么要建立管理与评判体系为什么要建立管理与评判体系?n监视和测量软件产品监视和测量软件产品 n识别和控制不符合要求的产品识别和控制不符合要求的产品n验证产品设计和开发验证产品设计和开发 n监视和测量软件过程监视和测量软件过程31测试管理和评判体系发展现状测试管理和评判体系发展现状n美国质量保证研究所对软件测试的研究结果表明美国质量保证研究所对软件测试的研究结果表明:越早越早发现软件中存在的问题,开发费用就越低发现软件中存在的问题,开发费用就越低;n在编码后修改软件缺陷的成本是编码前的在编码后修改软件缺陷的成本是编码前的1010倍,在产品交倍,在产品交付后修改软件缺陷的成本是交付前的付后修改软件缺陷的成本是交付前的1010倍倍;n软件质量越高,软件发布后的维护费用越低。软件质量越高,软件发布后的维护费用越低。n根据对国际著名根据对国际著名ITIT企业的统计,它们的软件测试费用占整企业的统计,它们的软件测试费用占整个软件工程所有研发费用的个软件工程所有研发费用的50%50%以上。以上。n中国软件企业在软件测试方面与国际水准仍存在较大中国软件企业在软件测试方面与国际水准仍存在较大差距。差距。n首先,认识上重开发、轻测试,没有认识到软件项目的如首先,认识上重开发、轻测试,没有认识到软件项目的如期完成不仅取决于开发人员,更取决于测试人员;期完成不仅取决于开发人员,更取决于测试人员;n其次,管理上随意、简单,没有建立有效、规范的软件测其次,管理上随意、简单,没有建立有效、规范的软件测试管理和评判体系;试管理和评判体系;n缺少自动化工具的支持缺少自动化工具的支持n大多数企业在软件测试时并没有建立软件测试管理与评判大多数企业在软件测试时并没有建立软件测试管理与评判体系。体系。32如何建立测试管理与评判体系如何建立测试管理与评判体系测试规划测试规划资源管理资源管理测试设计测试设计测试实施测试实施配置管理配置管理测试管理测试管理确定目标和策略确定测试方案及用例执行用例测试配置管理资源综合调配与管理对以上过程综合管理33Q&A34