软件测试的组织和管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试的组织和管理
山东省软件评测中心 韩庆良
目标
• 与软件企业项目管理人员、测试管理人员 对测试管理进行交流。 • 提高对测试工作、测试管理的重要性的认 识,以改进我们的测试过程。 • 从理论角度来认识软件测试和测试管理。
主要内容
• 团队建设(组织结构、人员组成、规模、 人员培训) • 过程规划(软件过程、测试过程、测试的 阶段、规划自己的过程) • 测试过程实施(计划、设计、实施、执行、 评估、缺陷跟踪) • 过程改进(成熟度模型、改进) • 测试工具
测试组规模-确定方法(一)
• 开发比例法:根据开发人员数量按照一定比例来确 定测试工程师的数量。开发人员指进行设计、开发、 编译以及进行单元测试的人员。
开发类型 商业产品(大型市场) 商业产品(小型市场) 单个客户端的应用开发 政府部门应用开发(内部) 公司应用开发(内部) 开发人员 30人 30人 30人 30人 30人 比例 3:2 3:1 6:1 4:1 5:1 4:1 测试组规模 20 10 5 7 6 7
• 技术技能:测试工具\测试自动化编程\编程语言\操作系统\ 网络、数据库\测试生存周期 (1-2年) • 测试过程:评审、制订和改进过程,指导初级工程师工作, 了解业务领域。 (3-4年) • 测试组工作:任务安排、跟踪和报告,监管测试工程师, 掌握测试周期支持工具。(4-6年) • 项目管理:管理项目,与客户交流,管理测试人员。(612年) • 产品管理:项目或产品研发指导、促进产品销售、确定业 务机会、承担盈亏责任。(12年以上)
(二)测试过程规划
• • • • 软件过程 测试过程 测试的阶段 规划测试过程
软件过程-定义
• 目的:测试过程是软件过程的组成部分,明确自 己的软件过程,才能明确自己的测试过程。 • 软件生存周期指软件从出现一个构思之日起,直 到最后决定停止使 用之时止。包括可行性与计划 研究、需求分析、设计 、实现 、测试、运行与维 护等阶段。 • 软件过程是指开发和维护软件及相关产品(如项 目计划、文档、代码、手册等)的一套行为、方 法、实践及变换过程。软件过程是软件生存周期 的框架。
制订测试计划-步骤(一)
• 确定测试需求:确定测试对象以及测试工 作的范围和内容。测试需求应是可核实的。 测试需求可来源于软件需求列表、用例、 用例模型、用例实现、补充规约、设计需 求、商业理由、法规、标准、最终用户访 谈以及对现有系统的复审。 • 被确定的测试需求项必须是可核实的。即, 它们必须有一个可观察、可评测的结果。 无法核实的需求不是测试需求。
• 适用的就是最好的。
组织形式-常见测试组组织结构
• • • • • 烟囱测试组(小型) 烟囱测试组(大型) 集中测试组 IV&V(独立验证与确认)测试组 SMT(系统方法与测试)组
组织形式-烟囱测试组
• 测试人员由临时人员组成,通常有2-5人组 成,直接向项目经理负责。大型的组可以 划分为几个小组,设测试经理。项目经理 负责制定测试计划文档。企业没有正规的 方法将测试程序、方法、相关的知识经验 传递下去,测试质量难以保证。优点是成 本低,不需要对测试人员提供培训、生活 保障等服务。
计算因子
6.16 6.16
人小时
5300 6900
完成周期
9个月 12个月
测试组 规模
3.4 3.3
测试组规模-确定方法(四)
• 任务计划法:根据历史记录中类似项目工作量,比 较新项目同历史项目的工作量,历史项目乘以相应 的因子。 • 步骤:先将任务分解,根据历史记录乘以一个因子, 计算出新项目的所以任务工作量。再根据该工作量 和完成周期计算测试组规模。
7.生存周期组织过程 管理视图 7.1 管理过程
启动和范围定义 执行和控制 评审和评价 规划 结束
7.2 基础设施过程 7.3 改进过程
过程建立
7.4 培训过程
过程评估
过程改进
各项活动的位置顺序并不意味时间顺序。 开发过程中的活动名称并不是开发阶段的名称。
软件过程-常见软件过程与模型(二)
• 敏捷方法中的测试:在极限编程中提出测试驱动 开发。提倡在开发前,先考虑测试,先完成测试 用来和代码。 • 统一过程中的测试:测试是其核心工作流程之一 • GB/T 8566-2001标准中的测试(如下图):
组织形式-SMT组
• 通常作为企业的内部顾问组的方式存在。 主要负责方法及标准的知识交流、编制开 发和测试指南、开发测试方法、测试工具 评估与培训,其同不同的项目组进行协作, 对其进行指导。通常不负责具体测试工作 的执行。由软件专家组成。
组织形式-企业或项目组织结构样例
• 微软的项目组织
产品组经理
6.生存周期支持过程
6.1 文档编制过程
6.2 配置管理
5.2 供应过程
启动 准备 投标 签定 合同 编制 计划 实施和 控制 评审和 评价 交付和 完成
质量管理视图 6.3 质量保证过程
工程视图 5.3 开发过程
过程 实施 软件 安装 软件验 收支持
运作视图 5.4 运作过程
过程 实施 系统 运行 运行 测试 用户 支持
组织形式-集中测试组
• 企业成立专职、独立的测试部门,通常由 10-30人组成。集中测试组为每个项目配 备几个全职的测试人员。部分企业中可能 还负责执行项目中软件质量管理和性能规 范制定的工作。可以将相关的知识、经验 传递下去。
IV&V组-组织形式
• 通常由软件开发组织之外的人员或其中的 独立人员组成,如转包商。其参与检查、 验证是否遵循标准、进行软件文档的质量 保证检测,主要完成系统测试。可以将其 看作一个最苛求的用户。
软件过程-常见软件过程与模型(一)
• 瀑布模型、原型模型、演化模型、增量模 型、螺旋模型、喷泉模型等等。 • 敏捷方法(如XP、功能驱动等) • 统一过程(RUP) • 《GB/T 8566-2001 信息技术 软件生存周 期过程》 • 过程裁减
5.生存周期基本过程 合同视图 5.1 获取过程
启动 招标准备 合同准备和 修订 监督供方 验收和完成
(三)测试过程实施
• • • • • • 制订测试计划 设计测试 测试准备 执行测试 评估测试结果 缺陷跟踪
制订测试计划-定义
• 什么是测试计划:测试计划包含项目范围 内的测试目的和测试目标的有关信息。此 外,测试计划还将确定实施和执行测试时 所使用的策略以及所需资源。测试计划包 括测试主计划和阶段计划。 • 项目开始时制订测试主计划。根据开发的 迭代过程和测试主计划对测试计划进行细 化,制订各个阶段的测试计划。
测试过程-活动
• • • • • • 计划 设计 准备 执行 评估 缺陷跟踪
测试过程-与开发过程的关系
• • • • 都是软件过程的有机组成部分。 与开发过程同步进行。 与开发过程相互依赖,又相互独立。‘ 开发过程、测试过程、项目管理过程以及 其他支撑过程相互交织共同组成了软件过 程。
测试阶段-V模型
单个客户端开发并与系统集成 50人
政府部门应用开发(内部) 公司应用开发(内部)
50人 50人
11% 14%
5 7
测试组规模-确定方法(三)
• 测试程序法:根据测试程序数量,以及每个程序可 能的执行时间,计算出人小时,再根据完成周期计 算测试组规模。
测试过 程数目
历史记录 860 新项目评估 1120
单个客户端开发并与系统集成 30人
测试组规模-确定方法(二)
• 百分比法:根据测试人员应该占到项目组中人员的 百分比数量。
开发类型 商业产品(大型市场) 项目人 员数量 50人 测试组规 模比例 27% 13 测试组规模
商业产品(小型市场)
单个客户端的应用开发
50人
50人
16%
10% 14%
8
5 7Leabharlann Baidu
项目经理
开发经理
质量保证经理
流程经理
设计经理
开发工程师
测试人员
组织形式-企业或项目组织结构样例
• 一种常见的组织
软件开发组织
客户服务
项目管理
质量管理
开发
测试
规范、CMM、质量保证
组织形式-企业或项目组织结构样例
• 又一
软件开发组织
客户服务
项目管理
测试
质量管理
规范、CMM、质量保证 开发
人员组成-成功测试组的10大因素
6.4 验证过程
6.5 确认过程
系统需 求分析
系统结 构设计
系统 集成
系统鉴 定测试
6.6 联合评审过程 5.5 维护过程
过程 实施 修改 实施 移植 问题和修 改分析 维护评审 /验收 软件退役
软件需 求分析
软件结 构设计
软件详 细设计
软件 集成
软件鉴 定测试
6.7 审核过程
软件编码和测试
6.8 问题解决过程
测试阶段-四个阶段
• 清晰直观 • 阶段划分
– 单元测试 – 集成测试 – 系统测试 – 验收测试
• 同开发的对应关系
测试阶段-甄别
• 开发和测试并不是线性关系。 • 测试工作不是开始于代码完成之后。 • 测试具有阶段性,但各阶段之间没有鸿沟。 尤其是单元测试和集成测试。
规划测试过程
• 分析项目总体需求(概览) • 分析项目特点(如类型、规模、人员、客 户、风险、进度、成本等等) • 确定自己的软件过程 • 确定自己的开发方法和模型 • 规划测试阶段 • 构建测试过程
(一)团队建设
• • • • 测试部门的组织形式 测试组的人员组成 测试组的规模 测试人员的培训
组织形式-测试人员的位置
• 一个好的组织结构,可以更好的发挥人员的 能动性,使工作更有效率,也使工作的质量 更高。 • 在一个单位内测试人员处于什么位置?属于 那个部门?
–质量管理? –开发组? –测试组?
– 没有单独的测试过程。 – 测试开始于编码。 – 不足以指导测试工作。
测试过程-测试生命周期
开发生命周期
需求定义 应用定义 应用开发 维护
建立
建立 ...
修订
测试生命周期
测试计划
测试设计
测试开发
执行. 执行 ... 评估
执行.
缺陷跟踪
测试过程-几个亮点
• 测试工作开始于需求分析之后。 • 测试经过评估后,达到了结束的标准后才 能结束。 • 测试也是迭代过程。 • 测试需求来自于软件需求。
制订测试计划-内容
• 1. 简介(目的、背景、范围、使用的文档) • 2. 测试需求(确定被测试的对象、内容和范围,来源 于用户需求,包括功能性需求和非功能性需求。) • 3. 测试策略 • 测试的项目、测试的主要方法、完成标准、使用的工 具、特殊事项等) • 4. 资源(人员组成、任务和职责、环境、人员培训等) • 5. 项目进度表(阶段) • 6. 可交付工件(测试模型、测试记录、缺陷报告等等) • 7. 附录 A:项目任务
人员培养-人员要求
• • • • • • • • • • • 适应各种环境的知识背景 学习速度快 组织能力 解决问题的能力 创造性 分析/编程能力 业务领域的知识 交流与协调能力 测试经验 关注细节 书写与语法技能
一个好的测试人员 更难得
人员培养-成长的路径
• 初级测试工程师-测试工程师-高级测试工程师 -测试组负责人-测试负责人-测试经理-产品/ 业务经理。
制订测试计划-步骤(二)
• 评估风险:测试工作需要平衡资源约束和 风险,以确定测试的优先级。从三个方面 分析:
– 影响:失效后将造成的影响或后果 – 原因:失效所导致的非预期结果 – 可能性:用例失效的可能性
• 根据风险分析情况,确定测试执行的优先 级。通常分为高、中、低三种。进而安排 测试的先后顺序。
• 业务知识:测试工程师应具备业务知识,并和用户紧密接 触。 • 技术知识:熟悉所测试的产品用到的技术,并掌握测试工 具、方法等相关技术。 • 任务划分:将业务任务和技术任务相互独立。 • 资源管理:业务资源和技术资源相互结合。 • 与开发组的关系:同开发人员协同工作。 • 生存周期早期介入:测试应在开发周期的早期介入。 • 测试过程:有成熟的测试过程管理规范。 • 灵活性/适应性:能够适应不同的测试项目。 • 度量:掌握度量的方法,以改进工作。 • 过程改进:应致力于工作的不断改进。
人员组成-测试组组成
• 测试经理:负责测试流程、沟通、测试工 具的引入、人员管理、测试计划/设计/开发 及执行。 • 测试组长:沟通、测试工具引入、人员管 理、费用/过程状态报告、测试计划/设计/开 发及执行。 • 测试工程师:执行测试计划,进行设计/开 发及执行。
测试组规模-影响因素
• • • • • • • 企业文化或测试成熟度 测试需求范围 工程师技能水平 测试工具及应用水平 业务知识 组织形式 测试工作介入时间
相关文档
最新文档