软件质量保证与测试 第4讲 软件测试依据和规范 软件质量保证与测试 第4讲 软件测试依据和规范
软件测试依据和规范 4.1 软件质量标准 4.2 软件测试相关规范 4.3 CMM思想和结构体系 4.4 建立软件测试管理和评判体系
ISO9000是什么? ISO 9000 的由来 ISO 9000 总休思想 ISO 9000体系结构
ISO 软件质量标准 ISO (International Standardization Organization, 国际标准化组织) TC/176技术委员会制定的所有国际 标准 质量保证标准(ISO9001/2/3) 质量管理标准(ISO9004) TC176即ISO中第176个技术委员会,成立于1980年,全称是“质量保证技术委员会”,1987年又更名为“质量管理和质量保证技术委员会”。TC176专门负责制定质量管理和质量保证技术的标准
ISO 软件质量标准思想 控制思想,即对产品形成的全过程进行控制。任何事物都是由一个或多个过程活动的结果,只要对产品形成的全过程进行控制并达到过程质量要求,最终产品的质量就有了保证 预防的思想。通过对产品形成的全过程进行控制以及建立并有效运行自我完善机制达到预防不合格,从根本上减少或消除不合格品
ISO 软件质量标准结构 ISO9000系列标准的主体部分分为两组: “需方对供方要求质量保证”的标准ISO9001-9003
ISO9000与GB/T19000的关系 GB/T 6583-1994 idt ISO 8402:1994
ISO9000-3 是什么 ISO9000-3其实是ISO质量管理和质量保证标准在软件开发、供应和维护中的使用指南,并不作为质量体系注册/认证时的评估准则,主要考虑软件行业的特殊性制定。参照ISO9001《质量体系 设计、开发、生产、安装和服务的质量保证模式》,并引用ISO 8402《质量管理和质量保证术语》,使得ISO9000系列标准应用范围得以拓展
ISO9000-3标准 软件开发、供应、维护中应用ISO9001的指南 是指南,不是标准 依然困惑:依然强调的是供应商和顾客的关系,不是工程师该如何做
ISO 9000-3 体系结构 合同评审 需方需求规格说明 开发计划 质量计划 设计和实现 测试和确认 验收 复制、交付和安装 维护
软件测试规范 软件测试规范就是对软件测试的流程过程化并对每一个过程元素进行明确的界定,形成完整的规范体系。
完整的软件测试规范是怎样的 规范本身的详细说明,比如规范目的、范围、文档结构、词汇表、参考信息、可追溯性、方针、过程/规范、指南、模板、检查表、培训、工具、参考资料等等。
制定测试规范需要考虑的内容 角色的确定 进入的准则 输入项 活动过程 输出项 验证与确认 退出的准则 度量
CMM思想和结构体系 CMM即软件能力成熟度模型(Capability Maturity Model)是向软件组织提供如何增加对其开发和维护软件过程的控制能力。设计并实施CMM是为了指导软件组织: 通过确定当前过程的成熟度等级和识别出对软件质量和过程改进至关重要的问题,来选择其过程改进策略。 通过关注一组有限的活动,并为实现它们而积极工作,组织能稳步地改善其软件过程,使其软件过程能力持续不断地增长。
CMM的历史 CMM分阶段的体系结构源于己有60多年历史的产品质量原理。 ITT的Philip Crosby在其书“Quality is Free”(Crosby 79)中首先提出将质量原理改编为成熟度框架的思想。 Humphrey的成熟度框架早期版本发表在SEI技术报告(Humphrey 87a,Humphrey 87b)、文章(Humphrey 88)和书“Managing the software Process”(Humphrey 89)中。
基于CMM模型的过程改进 软件过程改进的方法论-IDEAL Learning Acting Initiating Diagnosing 修 改 组 织 的 方 法 记 录 和 分 析 教 训 定 义 过 程 和 度 量 计 划 及 执 行 试 行 方 案 计 划 , 执 行 和 跟 踪 改 进 方 案 建 立 过 程 行 动 组 做 行 动 计 划 设 定 战 略 和 优 先 级 提 出 建 议 并 记 录 阶 段 成 果 评 估 当 前 实 践 情 况 改 进 动 机 确 定 改 进 范 围 以 及 获 取 支 持 建 立 改 进 机 制 诊 断 建 立 行 动 学习 初 始 化 软件过程改进的方法论-IDEAL Learning Acting Initiating Diagnosing Establishing
Six Sigma DMAIC Model Define 1 & 2 Measure 3 & 4 Analyze 5 1. IDENTIFY OPPORTUNITIES Process Flow Analysis SURVEY YES NO A B C D Benchmarking Pareto Analysis 2. FORM TEAM & SCOPE PROJECT Identify Customers and Requirements Tree Diagram Establish Process Boundaries 3. ANALYZE CURRENT PROCESS Analyze Available Data Check Sheet HISTORY CHECK SHEET REPORT 4. DEFINE DESIRED OUTCOMES FOR IMPROVED PROCESS Define Performance Measures Agree on Goals GOAL 5. IDENTIFY ROOT CAUSES & PROPOSED SOLUTIONS Why-Why Diagram Brainstorming Process Redesign EFFECT Cause & Effect Nominal Group Technique 6. PRIORITIZE, PLAN AND TEST PROPOSED SOLUTIONS Design of Experiments C- C+ 90.00 83.67 77.33 71.00 64.67 58.33 52.00 A- A+ Level Loading PRODUCTION DAYS 1 2 3 30 Pull System PRIOR OPERATION NEXT 7. REFINE AND IMPLEMENT SOLUTIONS Force Field Analysis GANTT Chart 9. ACKNOWLEDGE TEAM AND COMMUNICATE RESULTS Training & Procedures RECYCLE IF NECESSARY 8. MEASURE PROGRESS & HOLD GAINS Trend Chart SPC TEAM RESULTS Phase Step(s) Define 1 & 2 Measure 3 & 4 Analyze 5 Improve 6 & 7 Control 8 & 9
流程改进模型 Plan: What you want to accomplish over a period of time; What you might do, or need to do to get the goals PDCA Cycle Then new & improved plan No perfect plan, do First Act: On the information If the result is successful, standardize the plan If not successful, continue in the cycle to plan for further improvement Do: What you planned on doing Start on small scale Doing is not enough, how about its results? If has problem, how to correct it? Check: The results of what you did to see if the objective was achieved Evaluation
CMM的五个等级 Continuously improving Process improvement institutionalized Optimizing (5) Process improvement institutionalized Predictable process Managed (4) Product & processes quantitatively controlled Standard, consistent process Defined (3) SW Engr & Mgmt processes defined & integrated Maturing Disciplined Process Repeatable (2) Project Mgmt system in place, performance repeatable Initial (1) Process is informal and unpredictable Adapted from SEI-93-TR-24
CMM的五个等级及关键过程域 (二)
不同成熟度的项目结果 5 4 3 2 1 Performance continuously improves Probability Time / $ / ... 5 Target Performance continuously improves Distribution of actual outcomes Probability Time / $ / ... 4 Based on quantitative understanding of process and product, performance continues to improve Target Probability Time / $ / ... 3 With well-defined processes, performance improves Target Probability Time / $ / ... 2 Plans based on past performance are more realistic Target Adapted from SEI-93-TR-24 Probability Time / $ / ... 1 Schedules and cost targets are typically overrun Target Target is the initial estimated objective for a critical project parameter (e.g., cost, delivery date, defect counts)
关键过程域(Key Areas) V-优化级 IV-已管理级 III-已定义级 II-可重复级 过程更改管理* 技术更改管理* 错误预防* 质量管理* 过程量化管理* IV-已管理级 同级评审* 组间协作 软件产品工程* 软件集成管理* 培训计划 软件过程定义* 软件过程要点* III-已定义级 软件配置管理 软件质量保证 软件子合同管理 软件项目追踪与监控* 软件项目规划* 需求管理 II-可重复级
CMM的五个等级及关键过程域 (三)
个体软件过程PSP的演化 设计模板 个体过程循环 个体质量管理 个体规划过程 个体管理基线 PSP2 PSP0.1 PSP0 PSP3 并行过程 工作时间记录 程序差错记录 程序差错类型标准 个体过程循环 PSP3 循环开发 个体规划过程 PSP1 程序规模估计 测试报告 个体质量管理 PSP2 编码评审 设计评审 PSP1.1 任务规划 进度安排 PSP2.1 设计模板 PSP0.1 编码标准 软件规模度量 过程改善建议 PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够: (1) 说明个体软件过程的原则; (2) 帮助软件工程师作出准确的计划; (3) 确定软件工程师为改善产品质量要采取的步骤; (4) 建立度量个体软件过程改善的基准; (5) 确定过程的改变对软件工程师能力的影响。 帮助软件工程师在个人的基础上运用过程的原则,借助于PSP提供的一些度量和分析工具,了解自己的技能水平,控制和管理自己的工作方式,使自己日常工作的评估、计划和预测更加准确、更加有效,进而改进个人的工作表现,提高个人的工作质量和产量,积极而有效地参与高级管理人员和过程人员推动的组织范围的软件工程过程改进。
PSP 流程
TSP流程
PSP-TSP
PSP-TSP-CMM
CMM、PSP和TSP组成的软件过程框架 建立 CMM 组织级能力 原则 CMM是过程改善的第一步,它提供了评价组织的能力、识别优先改善需求和追踪改善进展的管理方式。企业只有开始CMM改善后,才能接受需要规划的事实,认识到质量的重要性,才能注重对员工经常进行培训,合理分配项目人员,并且建立起有效的项目小组。 然而,它实现的成功与否与组织内部有关人员的积极参加和创造性活动密不可分。 PSP能够指导软件工程师如何保证自己的工作质量,估计和规划自身的工作,度量和追踪个人的表现,管理自身的软件过程和产品质量。 经过PSP学习和实践的正规训练,软件工程师们能够在他们参与的项目工作之中充分运用PSP,从而有助于CMM目标的实现。 TSP结合了CMM的管理方法和PSP的工程技能,通过告诉软件工程师如何将个体过程结合进小组软件过程,并将后者与组织进而整个管理系统相联系;通过告诉管理层如何支持和授权项目小组,坚持高质量的工作,并且依据数据进行项目的管理,向组织展示如何应用CMM的原则和PSP的技能去生产高质量的产品。 费用 TSP 生产并交付 高质量的产品 期限 技能 建立 PSP 个人的技能
ISO9000与CMM的关系 ISO9000相当于CMM二级和三级的一部分内容(有人称为2.5级)
ISO9000与CMM的区别 ISO9001是通用的国际标准,适用于各类组织。 CMM是美国军方为评价软件供应商的质量水平,委托SEI开发的一个评价模型,只用于软件业。 CMM更详细,更专业。 ISO9001只建立了一个可接受水平,而CMM是一个具有五个水平的评估工具。 ISO9001聚焦于供应商和用户间的关系,而CMM更关注软件的开发过程。
CMM与ISO9001关系 (一) 2000
CMM与ISO9001关系 (二)
TickIT-欧洲的规则 是根据ISO9001认证软件开发组织的体系(system) 是为软件的需要对ISO9001的诠释(interpretation) 包括对审核员的表现和竞争力的一组标准要求 包括对审核员标准化培训的课程 包括审核员注册的程序(scheme) 从事TickIT认证的认证机构的认可制度 演示TickIT认证的logotype
建立软件测试管理和评判体系 测试管理与评判的必要性 软件测试的管理和评判体系发展现状 如何建立测试管理与评判体系
为什么要建立管理与评判体系? 监视和测量软件产品 识别和控制不符合要求的产品 验证产品设计和开发 监视和测量软件过程
测试管理和评判体系发展现状 美国质量保证研究所对软件测试的研究结果表明:越早发现软件中存在的问题,开发费用就越低;在编码后修改软件缺陷的成本是编码前的10倍,在产品交付后修改软件缺陷的成本是交付前的10倍;软件质量越高,软件发布后的维护费用越低。另外,根据对国际著名IT企业的统计,它们的软件测试费用占整个软件工程所有研发费用的50% 以上。 中国软件企业在软件测试方面与国际水准仍存在较大差距。首先,认识上重开发、轻测试,没有认识到软件项目的如期完成不仅取决于开发人员,更取决于测试人员;其次,管理上随意、简单,没有建立有效、规范的软件测试管理和评判体系;另外,缺少自动化工具的支持,大多数企业在软件测试时并没有建立软件测试管理与评判体系。
如何建立测试管理与评判体系 测试规划 确定目标和策略 测试设计 确定测试方案及用例 测试实施 执行用例 配置管理 测试配置管理 资源管理 资源综合调配与管理 对以上过程综合管理
Q & A