1、授课内容,一、软件测试工程师知识体系 二、软件测试流程 三、软件测试管理 四、测试组管理 五、测试成熟度模型(TMM),一、软件测试工程师知识体系,1 通用技能 沟通交流 职业发展 质量准则和概念 软件开发和维护,一、软件测试工程师知识体系,2 测试技术/测试方法 测试原则和概念 验证和确认方法 测试管理、标准和环境,一、软件测试工程师知识体系,3 测试计划 风险分析 测试策略 进程规划,一、软件测试工程师知识体系,4 测试计划实施 测试设计 测试执行 缺陷跟踪与管理,一、软件测试工程师知识体系,5 测试分析、报告与改进 定量测量 测试报告 改进测试进程,二、软件测试流程,测试计划,配置环境,
2、测试设计和开发,测试执行和评审,测试报告及改进,二、软件测试流程,1、测试计划目的是规定测试活动的范围、方法、资源和进度;明确在测试的项目要测试的特性,要执行的测试任务,每个任务的负责人以及与计划相关的风险。,二、软件测试流程,测试计划活动包括: 形成测试需求文档 确定约束条件 制定测试目标/目的 建立测试策略 初期测试活动开始 确定可交付项目产品 确定关键成功功能,二、软件测试流程,定义测试活动的参数 确定项目的质量等级 制定测试过程文档 编制测试培训需求和计划 自动测试决策 建立测试的技术环境的文档 制定质量控制计划,二、软件测试流程,进行风险评估 确定测试进度 建立测试数据需求文档 定义
3、对报告的要求 定义小组成员的任务及职责 编制测试计划文档 进行测试就绪评审必要的计划和分析,二、软件测试流程,2、配置环境目的是配置软件测试必备的条件,确保测试达到预期目标。环境包括:硬件设备、网络设备、环境设施、软件、工具等,二、软件测试流程,配置环境活动包括: 测试环境设计的准备活动 设计测试环境 测试环境集成与设置,二、软件测试流程,3 测试设计目的是定义测试、相关需求和所需使用的用例分析和设计及测试程序定义和采用的测试技术,为测试开发奠定基础。,二、软件测试流程,测试设计活动包括: 确立测试技术和策略 准备和建立测试程序设计标准 确定测试程序和测试脚本的清单、层次 分配测试程序和脚本到
4、测试组成员 生成测试程序/脚本的设计输入及期望的输出 自动测试脚本库,二、软件测试流程,4、测试开发目的是有效地开发和管理测试案例,确保测试尽量成效显著。测试开发是根据产品信息及测试需求、测试计划选择适应的测试工具编制测试规范及开发测试案例。,二、软件测试流程,测试开发活动包括: 制定测试程序开发标准 实施测试程序执行标准 制定不同阶段的测试程序脚本 为测试程序准备分步执行的伪代码 为不同的测试阶段及测试子类型开发测试程序/脚本并执行,二、软件测试流程,与数据库小组协同工作,开发测试数据库环境。建立并维护测试数据基线 测试程序同行评审 建立和维护测试程序重用库 测试实用程序,二、软件测试流程,
5、5、测试执行和评审 根据软件测试计划、软件测试规范及测试案例执行测试活动及BUG报告和测试报告。,二、软件测试流程,测试执行和评审活动包括: 开发环境设置脚本 执行不同的测试阶段的测试活动 分析BUG并编制问题报告及定义缺陷跟踪工作并生成报告 汇总数据,编制测试报告 对测试过程进行评审以确定过程遵循相应标准和测试程序 测试配置管理及建立跟踪活动进展的机制 收集和分析度量,三、软件测试管理,1、项目管理概念 定义:项目管理是在项目活动中运用知识、能、工具和技术,以便达到项目要求。项目管理通过应用下列过程得以完成:启动、计划、执行、控制和收尾。项目队伍管理项目工作,这些工作主要包括: 下列各有矛盾
6、的需要:范围、时间、成本、风险和质量 有不同要求和期望的项目干系人 已明确的要求,三、软件测试管理,2、项目管理九大知识域:1)项目整体管理2)项目范围管理3)项目时间管理4)项目成本管理5)项目质量控制,三、软件测试管理,6)项目人力资源管理7)项目沟通管理8)项目风险管理9)项目采购管理,三、软件测试管理,1任务书 2测试计划 3测试规范 4问题报告 5 测试报告启动 计划 执行、控制 收尾,组 建 测 试 组,制 定 测 试 计 划,测 试 设 计 开 发,测 试 执 行,测 试 结 果 处 理,三、软件测试管理,3、软件测试各阶段的里程碑 组建测试组阶段的里程碑本阶段里程碑测试任务书
7、测试需求 测试组成员 测试依据 测试能力(资源、范围、规模、工具) 测试进度,三、软件测试管理,测试计划阶段的里程碑测试计划书 概述 计划测试的领域 测试方式描述 测试依据和标准 测试进度表 测试人员分配 配置范围和测试工具,三、软件测试管理,测试设计开发阶段的里程碑测试规范、测试案例 测试规范的内容: 背景信息 被测试的特性 功能考虑 测试考虑 测试设定,三、软件测试管理,测试案例的内容: 测试目标 要测试的功能 测试环境和其他条件 测试数据 过程 系统的预期行为,三、软件测试管理,测试执行阶段的里程碑BUG报告Bug报告的内容: Bug名称 被测试软件的版本 优先级与严重性 报告测试的步骤
8、 Bug造成的后果 预计的操作结果 其他信息,三、软件测试管理,测试报告测试报告内容如GB/T 17544 描述的。软件缺陷划分的通用原则: 严重性表示软件缺陷的恶劣程度,反映其对产品和用户的影响 优先级表示修复缺陷的重要程度和应该何时修复,三、软件测试管理,4 、软件测试动态管理 测试进度表 测试跟踪表 管理测试硬件和软件配置 测试变更管理 测试配置管理,三、软件测试管理,5、软件测试质量管理 软件质量保证(SQA)概念 质量控制为了保证每一件工作产品都 满足对它的需求而应用于整个开 发周期中的一系列审查、复审和 测试。,三、软件测试管理,质量保证由管理层的审计和报告功能构成。其目标是为管理
9、层提供为获得产 品质量信息所需的数据,从而获 得产品质量是否符合预定目标的 认识和信心。SQA是一种应用于整个软件过程的保护性活动。,三、软件测试管理,SQA包括: 一种质量管理方法 有效的软件工程技术(方法和工具) 在整个软件过程中采用的正式技术复审 一种多层次的测试策略 对软件文档及修改的控制 保证软件遵从软件开发标准的规程 度量和报告,三、软件测试管理,软件检测过程的质量保证,检测需求,测试计划和准备,测试结果处理,测试实施,质量保证活动,三、软件测试管理,6 、软件测试过程的SQA活动包括: 参与测试需求、测试过程和环境配置的设计 复审各测试阶段活动,对其是否符合定义好的测试过程进行核
10、实(合同评审、规范评审等)复审用于在过程中的多个不同阶段上,起到发现 错误的作用,三、软件测试管理,3) 审计软件问题单和测试报告,对其是否符合定义好的测试过程中的相应部分进行核实 (度量、识别、记录和跟踪出现的偏差) 4) 确保软件测试工作及测试报告的偏差记录在案,并根据预定规程进行处理 5) 记录所有不符合的部分,并报告给高级管理者 6) 对测试过程中需要协调变化的控制和管理,三、软件测试管理,7、软件测试过程的质量保证文件 1) 合同评审(能力确认、资源确认、时间和价格) 2) 规范评审(测试方法确认、测试用例确认、测试工具确认、测试标准确认等) 3) 环境和设备配置确认 4) 软件问题
11、单评审和确认 5) 测试报告的审核和批准,三、软件测试管理,8、软件测试成本管理 1)测试实施成本包括: 预运行启动成本; 执行成本; 后运行成本。 2)测试维护成本 3)测试件开发成本,三、软件测试管理,预运行启动成本关注的是使时间总量,劳动力总量,尤其是使从事各类关键工作所需的熟练劳动力的总量最小化关键性工作包括:硬件配置、软件配置、测试环境的建立以及测试的确定。,三、软件测试管理,执行成本是使总的执行时间和所需的专用设备尽可能地减少。执行时间包括:值班管理时间和非值班管理时间 完全重复测试:将所有测试全部重新运行一遍; 部分重复测试:有选择性地重新运行部分测试。,三、软件测试管理,后运行
12、成本是进行测试结果地分析和文档编制、测试环境的拆除以及原有环境的恢复,使所需时间和熟练劳动力的总量减少到最低限度。测试的效益查找错误的有效性。,三、软件测试管理,降低测试实施成本的建议: 使用测试工具; 将自动化集成到测试用例本身; 执行过程中需要的手动互动; 测试结果的检验。,三、软件测试管理,测试维护工作包括: 对于报告并经确认的每一个问题都增加一项测试; 添加累进测试以测试新的变化; 定期检查所有的测试用例,以获得效果的连续性。,三、软件测试管理,降低测试维护成本的建议: 不要为了使测试某程序更容易而修改该程序,除非是永久性修改; 如果测试用例必须涉及产品的某一内部项目,侧应尽可能使该项
13、目从开发起就成为永久性的项目。,三、软件测试管理,测试件是一系列主要的测试工作产品。 主要包括:测试用例、测试数据以及支持文件(测试计划、测试规格说明、测试步骤和测试报告) 测试件的主要目标是使测试产量极大化,测试的次数最小化。,三、软件测试管理,降低测试件开发成本的建议: 测试件开发要工程化; 只要可能应该对测试件进行重用; 只要有货,就购买测试件; 以文本文件的形式作为数据记录编写并存储。,三、软件测试管理,9、风险管理 必须要问的几个关键问题是: 谁将使用产品? 用它干什么? 如果它出问题危险是什么? 它的工作结果是什么? 经济上有损失吗? 会失去用户的满意吗?会丢命吗?,三、软件测试管
14、理,对每一个产品,必须做效益最高的测试,保证产品足够的可靠,足够的安全,并能满足用户/客户的需求。只是意味着不可能有足够的时间对每一件事情进行全面测试。,三、软件测试管理,当以风险作为测试选择的基础时,我们做的就是要选择系统中将产生最严重后果的部分,并集中注意力对它们进行测试; 当选择测试重点的基础是使用频率,如果系统中的某部分被经常使用,但其中有错,那么该部分的频率使用将使得出现失效的可能性大大提高。 集中测试那些系统或程序中最可能出错的部分。,三、软件测试管理,风险不仅是决定测试管理的基础,同时也是决定日常测试活动的基础。风险分析常常是基本交流中的一件事。,三、软件测试管理,降低风险的方法
15、: 软件开发过程中的每个开发阶段都有自己的产品,对它们进行测试可了解该阶段工作的成败,减少风险; 开发周期和测试周期相结合; 提高测试的有效性;,三、软件测试管理,10、软件测试的度量 时间测量 查错修改周期时间 积累测试时间,三、软件测试管理,测试覆盖度量 代码覆盖断覆盖、调用对覆盖 需求覆盖用户界面、计算准确性与 精度、性能、数据存储 测试覆盖 系统覆盖 功能覆盖,三、软件测试管理,质量度量 缺陷改正百分比 每个基线报告的缺陷 缺陷检测效率 故障密度 测试趋势分析 测试有效性,三、软件测试管理,测试进度度量 测试程序执行状态 错误发现率 缺陷老化,四、测试组管理,1、组建测试小组 测试组组
16、织模式和规模 测试人员的技能 测试环境、设备和工具,四、测试组管理,测试组织结构设计因素: 高耸还是平缓在首席行政长官和工人之间设 立多层还是少层; 市场还是产品是面向不同市场还是不同产品; 集中还是分散将组织分级还是以分散; 专业人员还是工作人员应拥有一定比例的专 业人员和工作人员; 功能还是项目面向功能或项目。,四、测试组管理,测试组规模是根据任务或测试人员与开发人员的比例来决定测试小组的规模。基于技能的测试组织为管理者提供了很大的灵活性 基于项目的专业测试组织为项目管理者提供方便,四、测试组管理,测试小组的管理人员必须具备: 理解并评价软件测试过程、标准、策略、工具培训和度量的能力; 维
17、护一个测试组织的能力,该组织必须坚强有力、独立自主、办事正规且没有偏见; 招收并留住杰出的测试专业人才的能力; 领导、交流、支持及控制的能力; 关照测试小组的时间。,四、测试组管理,2、测试组建立质量体系 依据标准:BG/T 152812000检测和校准实验室能力的通用要求 业务范围:从事产品检测业务,四、测试组管理,GB/T 154812000的内容: 管理要求组织质量体系要求、标书和合同的评审检测和校准的分包服务和供应品的采购服务客户,四、测试组管理,管理要求 抱怨不符合检测和(或)校准工作的控制纠正措施预防措施记录的控制内部审核管理审核,四、测试组管理,技术要求总则人员设施和环境条件检测
18、和校准方法及方法的确认设备,四、测试组管理,技术要求测量溯源性抽样检测和校准物品的处置检测和校准结果质量死亡保证结果报告,四、测试组管理,3、软件开发过程中的各类测试组的管理 烟囱测试组为完成某项目临时组成的测试组 集中测试组由集中软件测试部门组成测试组 IV&V测试组仅为完成软件应用的验收测试组 成的测试组 系统方法及测试组传授测试技术的责任分配给一个独立的小组称为系统法及测试组(SMT)与项目独立,四、测试组管理,四类测试组比较 成功测试组的10大因素 业务知识 技术知识 任务划分 资源管理 与开发组的关系,四、测试组管理,成功测试组的10大因素 生命周期早期介入 确定测试方法 灵活性/适应性 度量 过程改进,五、软件测试成熟度模型,测试成熟度模型(TMM) (Software Testing Maturity Model) 第一级 初级阶段(Initial) 第二级 定义阶段(Phase Definition) 第三级 集成(Integration) 第四级 管理与测量(Management and Measurment) 第五级 最佳化、缺陷预防与质量管理(Optimization/Defect Prevention and Quality Control),