Ch4-软件测试依据和规范.ppt
软件测试方法和技术软件测试方法和技术-Ch.4软件测试依据和规范软件测试依据和规范 主讲教师:郭晓燕主讲教师:郭晓燕第三章回顾软件质量保证软件质量保证测试策略测试策略测试计划测试计划软件质量的可靠性评估软件质量的可靠性评估第四章第四章 软件测试依据和规范软件测试依据和规范 4.1 软件质量标准软件质量标准4.2 软件测试相关规范软件测试相关规范4.3 CMM思想和结构体系思想和结构体系4.4 建立软件测试管理和评判体系建立软件测试管理和评判体系ISO9000ISO9000是什么是什么?ISO 9000 的由来的由来 ISO 9000 总休思想总休思想 ISO 9000体系结构体系结构ISO 软件质量标准软件质量标准ISO(International Standardization Organization,国际标准化组织)TC/176技术委员会制定的所有国际 标准p 质量保证标准(ISO9001/2/3)p 质量管理标准(ISO9004)TC176即ISO中第176个技术委员会,成立于1980年,全称是“质量保证技术委员会”,1987年又更名为“质量管理和质量保证技术委员会”。TC176专门负责制定质量管理和质量保证技术的标准 ISO 软件质量标准思想软件质量标准思想p 控制思想控制思想,即对产品形成的全过程进行控制。任何事物都是由一个或多个过程活动的结果,只要对产品形成的全过程进行控制并达到过程质量要求,最终产品的质量就有了保证p 预防的思想预防的思想。通过对产品形成的全过程进行控制以及建立并有效运行自我完善机制达到预防不合格,从根本上减少或消除不合格品ISO 软件质量标准结构软件质量标准结构 ISO9001:设计/开发、生产、安装和服务中质量保证模式;ISO9002:生产和安装中的质量保证模式;ISO9003:最终检验和测试中的质量保证模式;ISO9004:质量管理和质量体系要素导则。ISO9000系列标准的主体部分分为两组:系列标准的主体部分分为两组:p“需方对供方要求质量保证”的标准ISO90019003p“供方建立质量保证体系”的标准ISO9004 ISO 软件质量标准结构软件质量标准结构ISO9000与与GB/T19000的关系的关系 GB/T(GB/T(国国标推荐推荐)IdtIdt(等同于等同于)ISOISO标准准GB/T 6583-1994idtISO 8402:1994 GB/T 19000.1-1994idtISO 9000-1:1994 GB/T 19000.2-1994idtISO 9000-2:1994 GB/T 19000.3-1994idtISO 9000-3:1994 GB/T 19001-1994idtISO 9001:1994 GB/T 19002-1994idtISO 9002:1994 GB/T 19003-1994idtISO 9003:1994 GB/T 19004.1-1994idtISO 9004-1:1994 GB/T 19004.2-1994idtISO 9004-2:1991 GB/T 19004.3-1994idtISO 9004-3:1993 GB/T 19004.4-1994idtISO 9004-4:1993 GB/T 19021.1-1993idtISO 10011-1:1990 GB/T 19021.2-1993idtISO 10011-2:1991 GB/T 19021.3-1993idtISO 10011-3:1993 GB/T 19022.1-1994idtISO 10012-1:1994 ISO9000-3 是什么是什么ISO9000-3其实是ISO质量管理和质量保证标准在软件开发、供应和维护中的使用指南,并不作为质量体系注册/认证时的评估准则,主要考虑软件行业的特殊性制定。参照ISO9001质量体系 设计、开发、生产、安装和服务的质量保证模式,并引用ISO 8402质量管理和质量保证术语,使得ISO9000系列标准应用范围得以拓展 ISO9000-3标准标准n软件开发、供应、维护中应用ISO9001的指南n是指南,不是标准n依然困惑:依然强调的是供应商和顾客的关系,不是工程师该如何做ISO 9000-3 体系结构体系结构合同评审需方需求规格说明开发计划质量计划设计和实现测试和确认验收复制、交付和安装维护软件测试规范软件测试规范 软件测试规范就是对软件测试的流程过软件测试规范就是对软件测试的流程过程化并对每一个过程元素进行明确的界程化并对每一个过程元素进行明确的界定,形成完整的规范体系。定,形成完整的规范体系。完整的软件测试规范是怎样的完整的软件测试规范是怎样的规范本身的详细说明规范本身的详细说明,比如规范目的、范围、文档结构、比如规范目的、范围、文档结构、词汇表、参考信息、可追溯性、方针、过程词汇表、参考信息、可追溯性、方针、过程/规范、指南、规范、指南、模板、检查表、培训、工具、参考资料等等。模板、检查表、培训、工具、参考资料等等。制定测试规范需要考虑的内容制定测试规范需要考虑的内容 角色的确定角色的确定 进入的准则进入的准则 输入项输入项 活动过程活动过程 输出项输出项 验证与确认验证与确认 退出的准则退出的准则 度量度量CMM思想和结构体系思想和结构体系 CMM即软件能力成熟度模型即软件能力成熟度模型(Capability Maturity Model)是向软件组织提供如何增加对其开发和维护软件过程的控制能力。设计并实施CMM是为了指导软件组织:通过确定当前过程的成熟度等级和识别出对软件质量和过程改进至关重要的问题,来选择其过程改进策略。通过关注一组有限的活动,并为实现它们而积极工作,组织能稳步地改善其软件过程,使其软件过程能力持续不断地增长。CMM的历史的历史CMMCMM分阶段的体系结构源于己有60多年历史的产品质量原理。ITTITT的Philip CrosbyPhilip Crosby在其书“Quality is FreeQuality is Free”(Crosby 79Crosby 79)中首先提出将质量原理改编为成熟度框架的思想。HumphreyHumphrey的成熟度框架早期版本发表在SEI技术报告(HumphreyHumphrey 87a,HumphreyHumphrey 87b)、文章(HumphreyHumphrey 88)和书“Managing the software ProcessManaging the software Process”(Humphrey 89Humphrey 89)中。基于基于CMM模型的过程改进模型的过程改进n软件过程改进的方法论-IDEAL 修 改 组 织 的 方 法 记 录 和 分 析 教 训 定 义 过 程 和 度 量 计 划 及 执 行 试 行 方 案 计 划,执 行 和 跟 踪 改 进 方 案 建 立 过 程 行 动 组 做 行 动 计 划 设 定 战 略 和 优 先 级 提 出 建 议 并 记 录 阶 段 成 果 评 估 当 前 实 践 情 况 改 进 动 机 确 定 改 进 范 围 以 及 获 取 支 持 建 立 改 进 机 制 诊诊 断断 建建 立立 行行 动动 学习学习 初初 始始 化化 InitiatingDiagnosingEstablishingActingLearningSix Sigma DMAIC Model1.IDENTIFY OPPORTUNITIESProcess Flow AnalysisSURVEYYES NOABCDBenchmarkingPareto Analysis2.FORM TEAM&SCOPE PROJECTIdentify Customersand RequirementsTree DiagramEstablish ProcessBoundaries3.ANALYZE CURRENT PROCESSAnalyze AvailableDataProcess Flow AnalysisCheck SheetHISTORYCHECK SHEETREPORT4.DEFINE DESIRED OUTCOMES FOR IMPROVED PROCESSDefine Performance MeasuresAgree on GoalsGOAL5.IDENTIFY ROOT CAUSES&PROPOSED SOLUTIONSWhy-Why DiagramBrainstormingProcess RedesignEFFECTCause&EffectDiagramNominal Group Technique6.PRIORITIZE,PLAN AND TEST PROPOSED SOLUTIONSDesign ofExperimentsC-C-C+C+90.0083.6777.3371.0064.6758.3352.00A-A+Level LoadingPRODUCTION DAYSABCD1 2 3 30Pull SystemPRIOROPERATIONNEXTOPERATION7.REFINE AND IMPLEMENT SOLUTIONSForce Field AnalysisGANTT Chart9.ACKNOWLEDGE TEAM ANDCOMMUNICATE RESULTSTraining&ProceduresBrainstormingRECYCLE IF NECESSARY8.MEASURE PROGRESS&HOLDGAINSTrend ChartSPCREPORTTEAM RESULTSPhaseStep(s)Define 1&2Measure 3&4Analyze 5Improve 6&7Control 8&9流程改进模型流程改进模型PDCA CyclePlan:What you want to accomplish over a period of time;What you might do,or need to do to get the goalsDo:What you planned on doingStart on small scaleCheck:The results of what you did to see if the objective was achievedAct:On the informationIf the result is successful,standardize the planIf not successful,continue in the cycle to plan for further improvementEvaluationNo perfect plan,do FirstDoing is not enough,how about its results?If has problem,how to correct it?Then new&improved planCMM的五个等级的五个等级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 unpredictableCMM的五个等级及关键过程域的五个等级及关键过程域(二二)不同成熟度的项目结果不同成熟度的项目结果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)23关键过程域关键过程域(Key Areas)过程更改管理过程更改管理*技术更改管理技术更改管理*错误预防错误预防*质量管理质量管理*过程量化管理过程量化管理*同级评审同级评审*组间协作组间协作软件产品工程软件产品工程*软件集成管理软件集成管理*培训计划培训计划软件过程定义软件过程定义*软件过程要点软件过程要点*软件配置管理软件配置管理软件质量保证软件质量保证软件子合同管理软件子合同管理软件项目追踪与监控软件项目追踪与监控*软件项目规划软件项目规划*需求管理需求管理II-可重复级可重复级III-已定义级已定义级IV-已管理级已管理级V-优化级优化级CMM的五个等级及关键过程域的五个等级及关键过程域(三三)个体软件过程个体软件过程PSP的演化的演化个体管理基线个体管理基线PSP0并行过程并行过程工作时间记录工作时间记录程序差错记录程序差错记录程序差错类型标准程序差错类型标准个体过程循环个体过程循环PSP3循环开发循环开发个体规划过程个体规划过程PSP1程序规模估计程序规模估计测试报告测试报告个体质量管理个体质量管理PSP2编码评审编码评审设计评审设计评审PSP1.1任务规划任务规划进度安排进度安排PSP2.1设计模板设计模板PSP0.1编码标准编码标准软件规模度量软件规模度量过程改善建议过程改善建议PSP 流程流程TSP流程流程PSP-TSPPSP-TSP-CMMCMM、PSP和和TSP组成的软件过程框架组成的软件过程框架CMMPSPTSP原则原则技能技能费用费用期限期限组织级能力组织级能力高质量的产品高质量的产品个人的技能个人的技能建立建立生产并交付生产并交付建立建立ISO9000与与CMM的关系的关系nISO9000相当于CMM二级和三级的一部分内容(有人称为2.5级)nCMM和ISO9000认证本身没有优劣之分nCMM是一个动态的过程n对于预算、项目周期管理等ISO9000涉及不够的内容,CMM有所覆盖ISO9000与与CMM的区别的区别nISO9001是通用的国际标准,适用于各类组织。nCMM是美国军方为评价软件供应商的质量水平,委托SEI开发的一个评价模型,只用于软件业。nCMM更详细,更专业。nISO9001只建立了一个可接受水平,而CMM是一个具有五个水平的评估工具。nISO9001聚焦于供应商和用户间的关系,而CMM更关注软件的开发过程。CMM与与ISO9001关系关系(一一)2000CMM与与ISO9001关系关系(二二)TickIT-欧洲的规则欧洲的规则n是根据ISO9001认证软件开发组织的体系(system)n是为软件的需要对ISO9001的诠释(interpretation)n包括对审核员的表现和竞争力的一组标准要求n包括对审核员标准化培训的课程n包括审核员注册的程序(scheme)n从事TickIT认证的认证机构的认可制度n演示TickIT认证的logotype建立软件测试管理和评判体系建立软件测试管理和评判体系 测试管理与评判的必要性测试管理与评判的必要性软件测试的管理和评判体系发展现状软件测试的管理和评判体系发展现状如何建立测试管理与评判体系如何建立测试管理与评判体系 为什么要建立管理与评判体系为什么要建立管理与评判体系?n监视和测量软件产品 n识别和控制不符合要求的产品n验证产品设计和开发 n监视和测量软件过程测试管理和评判体系发展现状测试管理和评判体系发展现状n美国质量保证研究所对软件测试的研究结果表明:越早发现软件中存在的问题,开发费用就越低;在编码后修改软件缺陷的成本是编码前的10倍,在产品交付后修改软件缺陷的成本是交付前的10倍;软件质量越高,软件发布后的维护费用越低。另外,根据对国际著名IT企业的统计,它们的软件测试费用占整个软件工程所有研发费用的50%以上。n中国软件企业在软件测试方面与国际水准仍存在较大差距。首先,认识上重开发、轻测试,没有认识到软件项目的如期完成不仅取决于开发人员,更取决于测试人员;其次,管理上随意、简单,没有建立有效、规范的软件测试管理和评判体系;另外,缺少自动化工具的支持,大多数企业在软件测试时并没有建立软件测试管理与评判体系。如何建立测试管理与评判体系如何建立测试管理与评判体系测试规划测试规划资源管理资源管理测试设计测试设计测试实施测试实施配置管理配置管理测试管理测试管理确定目标和策略确定测试方案及用例执行用例测试配置管理资源综合调配与管理对以上过程综合管理Q&A