软件测试管理规范_第1页
软件测试管理规范_第2页
软件测试管理规范_第3页
软件测试管理规范_第4页
软件测试管理规范_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 系统集成项目管理控制规范 xxxxxxxxxxx科技有限公司 编写测试计划目的 预算、资源限制和时间进度确定后,你就能声称自己拥有测试计划了吗?-实际上还需要做更为细致的工作才能成功地管理测试项目。 编写测试计划能让我们有机会收集想法、观点和记忆。编写详细的测试计划能够使我们把知识转化为执行任务的具体方法。 编写计划也能增强我们与测试团队、开发团队及经理们进行交流。测试计划的数量 假设你是测试负责人,负责单元测试、集成测试及系统测试阶段,因此你有三个不同的测试子项目需要计划和管理,这时你是编写一个测试计划,还是三个测试计划呢?这些子项目可能在以下这些方面有所区别。 不同的时间阶段 不同的方法

2、学 不同的目标 不同的听众测试计划模板 我们常常要使用制定的测试模版,它不仅是可以让我们在很少的时间内可以制定测试计划的工具,更重要的是它是一个主题的逻辑集合,这些集合正是我们测试工作所需要的。 根据项目的实际需要,我们可以自由地增加或删除主题测试计划模板1 概述 测试计划的概述部分要介绍测试项目,在概述中,要扼要地叙述目标、方法和目的。 也可以阐述被测系统的体系结构,或者说明这个测试工作怎样适应于其他可能已经执行、并发执行或将要执行的测试工作。2 边界 测试计划的边界就是通过讨论要测试的或者不测试的内容、定义重要术语和与计划只想测试相关的简称,以及决定在什么地方和什么背景下进行相关的测试工作

3、。 在测试计划边界中一般包括以下几个方面: 范围-在描述项目测试范围时,要很注意区分在项目过程中要处理的和不需要处理的事情。 定义-测试术语及短语的定义,在测试计划定义表中可以帮助队测试领域不熟悉的人弄清术语,并且有助于测试组每个人都以同样的定义集合来操作。 部署-描述打算执行测试的地点以及与其它部门之间的协调办法。3 质量风险 如果项目计划中已经定义了质量风险,那么我们可以在测试计划中归纳或引用这些风险。4 里程碑的推荐进度 大多数测试计划中都包含了测试项目中主要里程碑的进度安排,我们可以在项目工作分解结构中提取得到。 里程碑重点放在管理层可以看到的高级里程碑和交付产品上。5 过渡 测试计划

4、的这一部分指名了各个阶段开始和结束的必要标准,通常包括以下几个标准: 进入标准-指允许系统进入到具体测试阶段需要满足的条件。 继续标准-定义了那些在测试过程中高效地继续测试,而必须满足的条件和情况。 退出标准-退出标准解决如何决定什么时候完成测试的问题。 我们可以将每个标准按照典型的“绿”(完全满意)、“黄”(不完全满意,但可能不是问题)、“红”(不满意且造成主要问题)来划分等级,用数据来支持标记为“黄”、“红”的标准。6 测试配置和环境 在测试计划的这个部分中记录用来执行测试的硬件、软件、网络等环境。 测试硬件分配计划通常包括测试目的或方法、需要的系统(包括数量及版本)、基础设施、时间范围、

5、地点,以及特殊测试需要的其他硬件。7 测试开发 测试计划的这部分将确定测试项目中的开发工作,如编写测试用例、开发测试工具、编写自动化测试脚本等。 在这里要描述测试组将如何创建这些对象,如果我们打算手工测试,那怎样编写测试用例;如果使用现有的测试工具,那要描述为什么选择该工具以及打算如何开发测试脚本;如果我们开发定制测试工具,那要描述功能是什么,打算怎样使用它们。 在测试计划中要确定自动化测试及手工测试在各测试阶段所占的比例。8 测试执行 测试计划指出了影响测试执行的重要因素。 如果是资深测试小组测试一个运行良好的项目,那么在计划中一般会把这一块的大部分内容留给测试人员自由决定;如果是初级测试人

6、员,特别是管理混乱的项目,在计划阶段了解得越深入,越能提前预料和解决可能出现的问题。 测试计划中的执行包括以下方面: 关键参与者 测试用例和缺陷跟踪 错误隔离和分类 发布管理 测试循环 测试时间9 风险参数和不测事件 在这部分,说明在测试计划中可能存在使测试计划很难或者不可能执行的潜在的事件。例如,如果发现的bug数量超常就需要开发人员的支持。 严格地说,好的开发过程大多数主张对风险管理实行全局管理方法,如果我们当前的项目拥有一个风险管理计划,那么可以在风险管理计划中提供,此处可省略。10 变更历史 这部分记录到此为止测试计划的变更和修订。11 参考文档 一般来说,测试计划会参考其它文档,比如

7、设计规格说明、需求、测试包、任何质量风险分析文档,以及其他相关信息。12 常见问题 在新手作为测试工程师和测试技术员的项目中,常见问题部分很有用。其中很多问题都描述了逐步升级过程的重要性 测试规范流程与测试管理测试过程模式一第一部分(项目组中的测试) 这一部分中是将测试过程作为项目组内部的活动 测试工作以过程的形式组织起来,这种测试框架由以下几个测试过程组成:1 测试策略2 测试计划3 测试设计4 测试执行及缺陷管理5 缺陷度量分析1 测试策略 项目中的测试策略包含以下任务: 明确测试因素 明确测试范围 明确并选择自动化测试工具 明确项目的测试目标 评审并制定测试策略2 测试计划 测试计划由以

8、下几个过程构成: 单元测试计划 集成测试计划 系统测试计划 验收测试计划 回归测试策略(适用的)3 测试设计 测试设计由以下任务构成: 测试场景/测试用例设计 测试数据设计4 测试执行及缺陷管理 测试执行及缺陷管理过程由以下任务构成: 配置测试环境 测试执行 缺陷修改及回归测试 测试总结报告5缺陷度量分析 缺陷度量分析是每个项目的重要组成部分,它在早期阶段预防缺陷起着非常重要的作用。 这个过程非常重要,并且应该在每个测试执行后都应该进行。 缺陷度量分析由以下任务构成: 缺陷数据统计 缺陷预防二第二部分(独立测试团队中的测试) 这部分是独立的测试团队执行一系列的测试过程任务,这依赖于测试团队与项

9、目团队之间的交流。 各个任务将会以过程的形式组织,独立测试团队只负责进行系统测试阶段的测试,单元测试和集成测试是由项目团队负责进行的。 测试工作框架由以下的测试过程组成:1 测试需求管理2 测试策略3 测试计划4 测试设计5 测试执行及缺陷管理6 缺陷度量分析1 测试需求管理 测试需求管理有以下几个重要的任务: 明确团队的职责 收集测试需求2测试策略测试策略过程包含以下主要的任务: 明确测试因素 明确测试范围 决定并且选择自动化测试工具 明确测试目标 评审并制定测试策略独立的测试团队参与测试策略的制定,但测试策略主要还是项目团队制定3测试计划 测试计划过程有以下几个主要任务 单元测试计划 集成

10、测试计划 系统测试计划 验收测试计划 回顾测试策略单元测试和集成测试由项目团队负责,验收测试由项目团队与客户一起进行,单元测试、集成测试计划见“第一部分” 。独立的测试团队只负责编写系统测试阶段的测试计划。4测试设计 测试设计过程包括以下几个主要任务: 测试场景/测试用例的设计 测试数据设计 测试设计是所有测试阶段的统一命名,但单元测试和集成测试设计都是由项目团队负责,独立的测试团队负责进行系统测试阶段的设计工作。5测试执行及缺陷管理主要包括以下几个主要任务: 搭建测试环境 进行可测性评估 测试执行 缺陷统计及回归测试 测试总结报告6缺陷度量分析 缺陷度量分析包括: 缺陷数据统计 缺陷预防让软

11、件测试走向规范化 建立测试管理体系 测试规划 测试设计 测试实施 配置管理 测试管理 测试管理工具软件测试测试-基本概念一、基本概念1什么是测试 测试是为了发现程序中的缺陷而执行程序的过程; (缺陷是一种泛指,可以是功能错误,也可以是性能低下、易用性差等错误); 测试也称调试,它包括模块测试(单调)、集成系统测试(分调)、系统测试(联调); 测试是假定程序中存在错误,因而想通过测试来发现尽可能多的错误。2测试的目标 是为了尽可能多的发现程序中的缺陷。3测试的真理 测试只能证明缺陷存在,而不能证明缺陷不存在; 成功的测试用例是发现了至今为止尚未发现的错误; “彻底测试”只是一种理想,在实践中测试

12、要考虑时间、费用等限制,不会允许无休止地测试; 软件的高质量是设计出来的,而不是靠测试修补出来的。4测试 公司内部对产品的测试,需要开发人员与独立的测试小组共同参与。5 测试 软件产品正式发行前,在公司外部邀请一些用户对产品进行测试; 一般地,软件公司与测试人员之间有一种互利的协议。即测试人员无偿地为软件公司作测试,定期递交测试报告,提出批评与建议。而软件公司将向测试人员免费赠送或者以很大的优惠价格发行软件的正式版本。6测试的原则开发人员不应测试自己开发的程序; 设计测试用例时,不仅有确定的输入数据,还有确定的输出数据; 测试用例不仅有合理的,也要有非合理的; 除了检查程序是否做完了它应该做的

13、事,还要检查它是否做了不应该做的事; 保留全部测试用例,作为测试积累; 程序中存在错误的概率与在该段程序中已发现的错误数成正比。7 测试的意义 测试是一种活动,用来对工作产品进行验证。 测试尚未形成完整的知识体系程序程序目标8测试的目的1测试是程序的执行过程,目的在于发现错误; 2一个好的测试用例在于能发现至今未发现的错误; 3一个成功的测试是发现了至今未发现的错误的测试。-the art of software testing-grenford j myers9测试的作用1)测试是为了要找出缺陷,但同时,也可以通过对缺陷的度量和统计,分析缺陷产生的原因和缺陷的分布特征,分析产品的质量、工作效

14、率、诊断开发过程中的问题,并通过改进各个开发过程提高过程能力, 最终降低缺陷数量和缺陷密度。2)没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。测试是不完全的( 测试不完全) 测试具有免疫性( 软件缺陷免疫性)10测试的意义 迄今为止,软件质量仍然主要靠软件测试来验证和确认,而且由于测试工作特别耗费资源,在软件开发的总成本中,用在测试上的开销要占30%到50%。在极端的情况下,例如在关系到人的生命安全的软件中(如飞机控制或核反应监控等软件),测试费用可能相当软件生存周期所有其它阶段费用总和的三到五倍。此外,据美国工业界的统计,对商品化的程序来说,测试在时间和费用两方面的花费

15、都要占整个软件开发周期总开销的50%左右。 但软件测试并不是质量保证的“安全网”。因此,我们应该从两个方面来保证和提高软件质量:首先,应尽量在开发期间减少错误,通过软件过程来建立软件质量;次之,应通过分析和测试来发现和修复软件产品中残存的错误。测试工程师的职责二、测试人员的职责 测试软件产品 评估软件质量 度量质量等级 协助项目经理完成项目任务测试人员的素质要求三、对于测试人员的职业素质要求: 1)责任感 坚持原则、不放弃 有问题及时汇报2)沟通能力 与用户、项目组的沟通3)独立的判断和自学习能力 坚持观点,不随声附和 喜欢探寻、钻牛角尖不一定是坏事情4)耐心、自我督促5)团队精神 与开发组整

16、体为一个目标开展活动,有时需要妥协对测试人员的要求四、测试人员的技术要求 业务流程 体系框架 分析模式 设计模式 代码规范 丰富的经验 出人意料的想法 怀疑一切的精神测试人员与其他成员的关系五、测试人员的角色 测试人员是程序员与客户的联系者 测试人员是程序员的建议者 测试人员是程序员的帮助者 测试人员不是程序员的对手 测试人员不是程序员的上司测试的误区六、测试的误区 误区一: 忽视对正常输入的测试。 误区二: 忽视设计阶段的参与与评估 误区三: 忽视测试计划与测试文档的建立及维护。 误区四: 忽视缺陷的分析, 报告及跟踪。 误区五: 错误的测试目标及测试终止条件。 误区六: 不懂得合理调配使用

17、测试人员的知识技能结构。软件缺陷七、软件缺陷 1 软件未达到客户需求的功能和性能; 2 软件超出客户需求的范围; 3 软件出现客户需求不能容忍的错误; 4 软件的使用未能符合客户的习惯和工作环境。测试的步骤八、测试的步骤 单元测试(模块测试) 集成测试 系统测试 调试 系统的转换与交付使用测试-单元测试 单元测试(模块测试) 1单元测试内容 模块接口 局部数据结构 重要的执行通路 出错处理通路 影响上述各方面特性的边界条件(1)模块接口测试要点a参数数目和由调用模块送来的变元的数目是否相等? b参数的属性和变元的属性是否匹配? c参数和变元的单位系统是否匹配? d传送给被调用模块的变元的数目是

18、否等于那个模块的参数的数目? e传送给被调用模块的变元属性和参数的属性是否一致? f传送给被调用模块的变元的单位系统和该模块参数的单位系统是否一致? g传送给内部函数的变元属性、数目和次序是否正确? h是否修改了只做输入用的变元? i全程变量的定义和用法在各个模块中是否一致?(2)输入/输出的测试要点a文件属性是否正确? b打开文件语句是否正确? c格式说明书与输入/输出语句是否一致? d缓冲区大小与记录长度是否匹配? e使用文件之前先打开文件了吗? f文件结束条件处理了吗? g输入/输出错误检查并处理了吗? h输出信息中由文字书写错误吗?(3)局部数据结构的测试要点a错误的或不相容的说明;

19、b使用尚未赋值或尚未初始化的变量; c错误的初始值或不正确的缺省值; d错误的变量名字(拼写错或截短了); e数据类型不相容; f上溢、下溢或地址异常。(4)计算中的常见错误a计算次序不对或误解了运算符的优先次序b混合运算(运算对象的类型彼此不相容) c变量初始值不正确d精度不够e表达式的符号表示错误(5)测试方案中的错误a比较数据类型不同的量b逻辑运算符不正确或优先次序的错误c当由于精度问题两个量不会相等时,程序中却期待着相等条件的出现d“差1”错(即,多循环一次或少循环一次) e错误的或不存在的循环终止条件f当遇到发散的迭代时不能终止循环g错误地修改循环变量(6)评价出错处理时的常见错误a

20、对错误的描述是难于理解的b记下的错误与实际遇到的错误不同c在对错误进行处理之前,错误条件已经引起系统干预。d对错误的处理不正确e描述错误的信息不足以帮助确定造成错误的位置。2测试过程(1)代码审查 人工测试程序可以由编写者本人非正式地进行,也可以由审查小组正式进行。 审查小组最好由四人组成: 组长:有能力的程序员、没有直接参与这项工程。程序的设计者程序的编写者程序的测试者(2)测试软件 为每个模块开发测试驱动软件,它好比一个“主程序,它接收测试数据,把这些数据传送给被测试的模块,并且打印出有关的结果。 集成测试集成测试主要有两种方法:非渐增式测试方法、渐增式测试方法。非渐增式测试方法 先分别测

21、试每个模块,再把所有模块按设计要求放在一起结合成所要的程序。渐增式测试方法 把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。两种测试方法的比较: 1非渐增式测试方法需要编写的软件较多,工作量较大; 渐增式测试方法开销小; 2渐增式测试方法发现模块间接口错误早;而非渐增式测试方法晚; 3非渐增式测试方法发现错误,较难诊断;而使用渐增式测试方法,如果发生错误则往往和最近加进来的那个模块有关; 4渐增式测试方法测试更彻底; 5渐增式测试方法需要较多的机器时间; 6使用非渐增式测试方法,可以并行测试。在实际测试中,应该将两种方法有机集合起来。白盒

22、法 “白盒”是指看得见程序的内部结构,测试源程序的逻辑结构以及实现细节,由开发人员执行,“白盒”测试方法主要是对模块的所有代码进行单步跟踪测试; 白盒法需要了解程序的功能与结构,测试用例必须根据程序内部的逻辑来设计。如果想用白盒法发现程序中的所有错误,则至少必须使程序中每种可能的路径都执行一次; 白盒法又称为逻辑覆盖法,目前常用的覆盖法有:(1)语句覆盖 即每个语句至少能执行一次。(2)判定覆盖 判定覆盖又叫分支覆盖,含义是:每个判定的分支至少执行一次。(3)条件覆盖 即一个判断语句中往往包含了若干条件。通过给出测试用例,使判断中的每个条件都获得各种可能的结果。(4)判断/条件覆盖 选取足够多

23、的测试数据,使判断中每个条件都取得各种可能值,并使每个判断表达式也取到各种可能的结果。(5)条件组合覆盖 使得每个判断中条件的各种可能组合都至少出现一次。 系统测试 测试人员使用全面集成的整个系统, 以查找在系统中的各种操作错误,这些测试是站在客户或最终用户的角度来看待系统的。 有时,测试人员要着重测试系统的某个特定方面,客户可能注意不到这些方面,但是,它们对相应的系统却非常重要。设计测试方案设计测试方案是测试阶段的关键技术问题。测试方案包括要测试的功能,应该输入的测试数据和预期的结果。黑盒法 “黑盒”是指看不见程序的内部结构,按照规格说明来测试程序是否符合要求,由独立测试小组执行,测试方法主

24、要是测试模块的接口是否符合要求,它关心程序的外部表现而不是内部的实现细节; 黑盒法可分为下列几种方法(关键在于确定测试数据): (1)等价分类法 等价分类法是将输入数据的可能值分成若干“等价类”,每一类以一个代表性的测试数据进行测试,这个数据就等价于这一类中的其它数据。 该法的关键在于如何将输入数据分类。 例如:输入的数据范围是1999,我们可以划分三类:x<1,1<=x<999,x>=999(2)边缘值分析法 用边缘特殊值测试。 经验表明:程序往往在边缘情况时犯错误,故测试边缘情况比较有效。 例如:输入数据的值的范围是:-10至10,则可选-10,10,-1001,1

25、001等数据作为试数据。(3)因果图法 等价类法与边缘值分析法的缺点是没有检查各种输入条件的组合。 因果图法则着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果这就是“果”。(4)错误推测法 通过经验或直觉推测程序中可能存在的各种错误,从而有针对性设计测试用例。实用测试策略(1)在任何情况下都使用边界值分析的方法。(2)必要时用等价划分法补充测试方案。(3)必要时再用错误推测法补充测试方案。(4)对照程序逻辑,检查已经设计出的测试方案。可以根据对程序可靠性的要求采用不同的逻辑覆盖标准,如果现有测试方案的逻辑覆盖程度没达到要求的覆盖标准,则应再补充一些测试方案。 注意:即

26、使采用综合策略设计方案,仍不能保证测试将发现一切程序错误。测试-调试 调试1基本任务 诊断和改正程序中的错误2调试技术(1)输出存储器内容通常以八进制或十六进制的形式输出存储器的内容。(2)打印语句打印关键输出变量的值(3)自动工具利用程序设计语言的调试功能或者使用专门的软件工具分析程序的动态行为。3调试策略(1)试探法调试人员分析错误征兆,猜想故障的大致位置,然后使用前述的一两种调试技术,获取程序中被怀疑的地方附近的信息; 该策略缓慢而低效。(2)回溯法确定最先发现“症状”的地方,然后人工沿程序的控制流往回追踪源程序代码,直到找出错误根源或确定故障范围为止; 回溯法的另一种形式是正向跟踪,也就是使用输出语句检查一系列中间结果,以确定最先出现错误的地方; 回溯法适用于小程序。(3)对分查找法如果已经知道每个变量在程序内若干个关键点的正确值,则可以用赋值语句或输入语句在程序中间点附近“注入”这些变量的正确值,然后检查程序的输出。如果输出结果是正确的,则故障在程序的前半部分;反之,故障在程序的后半部分。对于程序中有故障的那部分再重复使用这个方法,直到把故障范围缩小到容易诊断的程度为止。(4)归纳法所谓归纳法就是从个别推断一般的方法。从线索(错误征兆)出发,通过分析这些线索之间的关系而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论