软件测试的组织和管理-51Testing

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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

1 / 59
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功