1、软件测试流程和规范I软件测试的基本流程与测试规范目录前言 .1一、软件测试的流程 .21.测试基本流程图 .22.测试各阶段工作流程 .32.1 需求分析阶段 .32.2 计划与设计阶段 .42.3 测试实施阶段 .42.4 测试结束 .52.5 测试验收和归档 .7二、软件测试规范 .81.测试阶段所基于的文档(包括但不限于) .81.1 软件需求规格说明书 .81.2 软件设计说明(概要设计或详细设计) .81.3 软件设计原型(demo ) .91.4 接口文档 .92.测试的种类(按阶段划分) .92.1 单元测试 .92.2 集成测试 .112.3 冒烟测试(非必须) .122.4
2、系统测试 .122.5 随机测试(非必须) .132.6 验收测试(非必须) .133.测试的类型(按测试内容划分) .143.1 功能测试 .143.2 界面测试(UI 测试) .193.3 接口测试 .20软件测试流程和规范II3.4 性能测试 .203.5 兼容性测试 .223.6 安全测试 .223.7 安装测试 .244.缺陷管理 .254.1 缺陷提交规范 .254.2 缺陷生命周期 .274.3 缺陷等级划分 .28软件测试流程和规范第 1 页前言此文档就项目中测试部分的工作流程进行了一个梳理,参考了不同的资料,提炼整理的内容为业内已经成型、被大多数项目采用和认可的。因此,该流程
3、并不针对某一个具体的企业或者项目,运用到某一个项目中时,可进行必要的增减和修改。另外,文章中测试规范部分,也是查阅了网上很多的资料、参考了其他项目文档,并结合本人经验整理而成,可以覆盖到项目开发过程中会遇到的绝大部分的测试面,针对不同的测试内容,该规范也能够起到一定的指导和参考作用。但是在实际的工作中,放到具体的项目里,也需要根据具体情况和要求进行适当的调整。软件测试流程和规范第 2 页一、软件测试的流程1.测试基本流程图需求分析评审 、 沟通编写测试计划评审 、 完善提取测试需求设计测试用例评审 、 完善搭建测试环境冒烟测试执行测试用例缺陷跟踪处理测试 / 缺陷报告输出测试归档完善测试用例否
4、是否是否是软件测试流程和规范第 3 页2.测试各阶段工作流程2.1 需求分析阶段测试需求是整个测试过程的基础;确定测试对象以及测试工作的范围和作用。用来确定整个测试工作(如安排时间表、测试设计等)并作为测试覆盖的基础,测试需求是计算测试覆盖的分母,没有测试需求就无法有效地进行测试覆盖。开始分析和提取测试需求的时候,整个项目一定至少已经进入设计阶段,一定要有需求文档、设计说明文档或者原型作为依据。而且被确定的测试需求项必须是可核实的、可测的,不能有模棱两可的概念,比如:大概、约、或者;也不能为无法量化、主观性的概念,比如:处理速度快、设计页面好看。它们必须有一个可观察、可评测的结果。无法核实的需
5、求不是测试需求。测试需求是制订测试计划的基本依据,确定了测试需求能够为测试计划提供客观依据; 测试需求是设计测试用例的指导,确定了要测什么、测哪些方面后才能有针对性的确定测试方案,设计测试用例。过程要点 详细说明输入条件项目进入软件设计阶段,至少需要有需求文档、软件设计说明书或者软件原型(demo)工作内容测试人员根据相关文档梳理、提取测试需求,确定测试内容(功能、性能、兼容性等)、使用的测试方法(手工测试、自动化测试),已保证此次需要测试的内容覆盖完整。退出标准 提取完整的测试需求点输出内容 明确测试策略,列出具体的功能列表(非必须项)软件测试流程和规范第 4 页2.2 计划与设计阶段2.2
6、.1 测试计划阶段当项目进入到实现阶段,测试经理就应该和整个项目的开发人员、需求设计人员研究讨论,并对本次测试的交接时间、投入的人力、拟定测试的轮次、各轮次持续的时间、测试的内容和深度进行规模预估,并制定出测试计划。过程要点 详细说明输入条件项目进入到实现阶段(编码),需求规格说明书、软件设计说明书(概要设计或详细设计)、原型(demo)已输出。工作内容和整个项目组讨论并确认此次项目测试阶段的人力、时间投入,测试轮次预估,测试的交接和验收时间退出标准 明确测试内容、时间、人力安排输出内容 测试人员提交评审后的测试计划2.2.2 测试设计阶段在项目进入实现阶段的同时,测试人员还需要根据基线版的软
7、件需求规格说明书和产品设计说明书编写测试用例。根据每一个测试需求点和功能点,运用不同的用例设计方法编写用例,针对不同的测试内容,可能会涉及到的用例包括:功能测试用例、性能测试用例、接口测试用例和自动化测试用例。过程要点 详细说明输入条件 测试需求明确,测试计划明确,已有基线需求和测试计划工作内容 根据每一步测试计划编写全部的测试用例退出标准 测试用例需要覆盖所有的测试需求输出内容测试人员提交评审后的测试用例,测试脚本(性能、自动化)2.3 测试实施阶段测试实施阶段是测试人员在整个项目中需要投入最多工作量的阶段,也是最主要,最重要的一个阶段。在这个阶段中,测试人员需要根据前期的测试计软件测试流程
8、和规范第 5 页划、测试策略来执行测试用例,根据设计的测试用例来执行测试,并使用测试管理工具记录、提交、跟踪测试中发现的缺陷,并配合、督促开发人员复现、定位、修复缺陷,然后验证和关闭缺陷。过程要点 详细说明输入条件 测试用例工作内容根据测试计划中分配给自己的测试任务,在测试计划的时间段内,执行相应的全部测试用例,并将测试结果记录到测试管理工具中。如有需求和设计上的变更,需要不断完善测试用例。退出标准 执行完毕所有测试用例,结果被记录输出内容 测试结果(输出到测试管理工具中)2.4 测试结束约定的测试周期完成后,测试人员需要总结此次测试的结果,并编写报告。2.4.1 缺陷报告提交测试结束后,根据
9、项目组的要求和具体情况,可能会要求提交缺陷报告(非必须),统计此次测试过程中出现的缺陷数量、分布情况、各功能模块发现的缺陷占比、严重等级和修复情况等。缺陷报告的内容侧重对于缺陷的统计和分析。2.4.2 测试报告提交测试报告是在一个测试阶段结束后,或者项目的全部测试工作结束后需要提交的,所以报告又分为阶段性测试报告,和总结性测试报告。报告需要对此次或此阶段测试的情况进行统计,汇总,分析,以供整个项目组了解软件开发的质量、开发的进度及软件修复的情况,对项目经理决定上线与否,上线时间,项目是否会延期等相关决策提供一个重要的参考依据。过程要点 详细说明软件测试流程和规范第 6 页输入条件测试人员完成了
10、预定周期的测试任务(一个阶段或整个项目)工作内容(阶段性报告)测试人员根据此轮测试的结果,编写阶段性测试报告,主要应包含以下内容: 测试报告的版本 测试的人员和时间 测试所覆盖的缺陷测试组在这轮测试中所有处理的缺陷情况 上一版本活动缺陷的数量(未关闭的缺陷) 经过此轮测试,所有活动缺陷的数量及其状态分类 测试评估写明在这一版本中,哪些功能被实现了,哪些还没有实现,这里只需写明和上一版本不同之处即可。 急待解决的问题写明当前项目组中面临的优先级最高的问题(非必须项)工作内容(总结性报告)当整个项目的测试工作全部结束后,测试人员应就该项目的测试情况编写总结性测试报告,测试报告必须包含以下内容: 测
11、试资源概述多少人、多长时间 测试结果摘要分别描述各个测试需求的测试结果,产品实现了哪些功能点,哪些没有实现,以及没有实现的原因。 缺陷分析按照缺陷的属性分类分析,比如:缺陷总数、各模块的缺陷分布、不同严重等级的缺陷、缺陷的修复情况、未修复的缺陷及未修复的原因、对项目整体的影响等等(也可单独写一份缺陷报告) 测试评估从总体对项目质量进行评估 测试组建议从测试组的角度为项目组提出工作建议退出标准 本次测试中所有的相关测试数据统计完毕,完成统计分析软件测试流程和规范第 7 页输出内容缺陷报告(非必须)、测试报告(根据实际的项目规模可细分为阶段性的和总结性的)2.5 测试验收和归档2.5.1 测试验收
12、当上述所有工作完成后,测试人员应对测试的过程、效果进行验收,宣布测试的所有工作完成(根据实际项目的规模来定,非必须)过程要点 详细说明输入条件 测试实施工作结束,所有测试文档已编写完毕工作内容测试验收工作由测试经理进行,验收内容报告: 测试效果验收测试是否达到预期目标 测试文档验收测试过程中文档是否齐全,是否符合标准 测试评估从总体对测试的质量进行评估 测试建议对本次测试工作指出不足,并对以后的工作提出改进、优化建议 宣布测试结束测试组成员签字宣布本次测试结束退出标准 签发测试验收报告输出内容 所有测试人员测试验收报告2.5.2 测试归档测试归档是在测试验收结束宣布测试有效,结束测试后,对测试
13、过程中涉及到各种标准文档进行归档。过程要点 详细说明输入条件 测试验收通过工作内容归档测试过程中所有文档,主要包括以下文档(必须) 测试计划 测试用例 测试报告软件测试流程和规范第 8 页退出标准 全部文档归档完毕输出内容 归档清单二、软件测试规范测试代码和项目开发代码应该利用配置管理工具(如 SVN)分开管理。测试代码编写完成后,存放在配置库中。开发过程中,可根据需要对自己编写代码进行测试。并且测试环境和开发环境应分隔开来,以免相互影响,便于缺陷的复现和定位,在条件允许的情况下,性能测试环境应和功能测试环境分开,以免在性能测试过程中对功能测试造成影响。1.测试阶段所基于的文档(包括但不限于)
14、测试规范形成的前提是需要有有章可循的依据,这些依据需要基于标准的项目文档,常见的文档包括下面几种:1.1 软件需求规格说明书软件需求说明书是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解, 使之成为整个项目组开展工作的基础。包含硬件、功能、性能、输入输出、接口需求、警示信息、保密安全、数据与数据库、文档和法规的要求等等。软件需求说明书的作用在于便于用户、开发人员进行理解和交流,反映出用户问题的结构,可以作为软件开发工作的基础和依据,并作为确认测试和验收的依据。1.2 软件设计说明(概要设计或详细设计)软件设计又划分为概要设计和详细设计。概要设计是在用户提出的需求和软件的设计实现之间架起桥梁,是将用户提出的目标和需求转换成具体界面设计解决方案的重要阶段。概设的主要任务是把需求分析得到的系统扩展用例图转换为软件结构和数据结构。设计软件结