您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件文档写作12-管理文档2
17.3软件测试计划和测试报告软件测试是软件开发完成,投入运行前,对软件需求、设计规格说明和编码的最终复审,软件质量保证的关键步骤,在软件开发的整个过程中,占有极为重要的位置。软件测试文档主要包括:测试规划、测试策略、测试手段和测试结果。由于测试工作的重要性,而人工测试又特别困难,因此,测试过程自动化会是测试技术发展的方向。1.软件测试、软件检查和调试我们已经知道软件测试的目的是尽可能多的发现系统存在的错误。所以,软件测试包括软件检查与软件测试。-软件检查:对系统的各种表达形式,如文档、设计图和程序源代码等进行分析、检查,这一工作应贯穿整个开发过程。-软件测试:使用测试数据对软件的实现进行运行检查,查看系统的输出及运行行为是否符合设计要求。由安博测试空间技术中心提供2下图表示了软件检查和软件测试在软件过程中的位置。软件检查需求描述高层设计形式化描述详细设计程序原型软件测试从图中可以看出,软件检查贯穿整个软件过程,而软件测试仅对原型或软件程序。软件调试是一个对缺陷定位和修改的过程,同时也是一项技巧性很强的工作。软件调试,从软件测试的结果开始。如图所示。测试结果描述测试用例定位错误设计修复修复错误回归测试32.软件测试的成本由于测试不可能穷尽,因此,就有了软件测试的一个致命缺陷,即测试的不完全、不彻底性。因此,对于任何程序只能进行少量的测试。当发现错误,可以说明程序有问题,而未发现错误,却不能声称程序没有错误。根据软件工程的基本原理,当测试标准越高,则将要投入的人力、财力也越高。左图反映了测试成本的变化规律。为在软件质量和投入之间取得需求平衡,可以采用著名的“进度、成本、质量”三角公式。如下右图,即只要确定了其中两项,就可以确定第三项。因此,在编制软件测试计划时,必须考虑三者之间的关系。测试的程度未发现的隐藏错误数不足测试测试成本过度测试最佳测试点进度质量成本43.软件测试的原则测试时,如果成功地实施了测试计划和方案,就能够发现系统中尽量多的错误。测试的一个附带收获是,能够证明软件的功能和性能是与需求说明相符的。要达成上述要求,就需要遵守以下原则:(1)测试规划应包含测试工作的全部内容。即不仅是程序测试,还包括文档(2)测试应贯穿软件开发的整个过程。即坚持各个阶段的评审,杜绝隐患(3)测试用例应包括输入和预期输出。(4)设计测试用例时,输入应包括合理的和不合理的数据。(5)功能测试应由独立第三方完成。但调试仍应由开发者自己完成。(6)充分注意并利用测试中的群集现象。(7)严格执行测试计划,排除测试随意性。计划应明确规定,不随意解释(8)应当对每一个测试结果做全面检查。仔细分析测试结果,防止错误遗漏(9)妥善保存测试计划、测试用例、出错统计和最终分析报告等测试文档。54.软件测试过程从程序测试的角度看,测试分为两个阶段。如图。单元(构件)测试集成(组件)测试软件开发者完成独立测试团队承担程序测试过程的目的是尽可能多的发现并改正错误,提高软件质量。测试过程的每一个阶段也都会对前一阶段有反馈信息。因此,测试过程是一个不断修正和进化的过程。其阶段划分如下图所示。测试计划测试设计测试准备测试执行测试评估修正修正修正修正测试过程需要下面三个基础数据和资料的支持:-软件配置:软件正常运行的环境配置。-测试配置:软件测试运行的环境配置,是软件配置的子集。-测试工具:为提高测试效率、降低测试劳动强度、保证测试质量使用的工具65.测试计划的导出与结构测试计划应该从系统描述和设计中导出。下图是测试计划从系统描述和设计中导出示意图。需求描述系统描述系统设计详细设计单元代码测试验收测试计划系统集成测试计划子系统集成测试计划服务验收测试系统集成测试子系统集成测试内容说明测试过程描述测试过程的主要阶段需求跟踪用户最关心系统能否目要求,测试计划应包含对每项需求的单独测试测试项目软件需求测试的内容都应在此定义测试时间安排给出总的时间安排和相应的资源分配测试记录测试所得到的结果、测试过程、执行情况等必须系统地记录软硬件需求列出测试所要使用的软件工具和测试环境约束需要考虑和预料的影响测试过程的约束测试计划的主要组成部分如右表所示。76.几种常见的测试用图表工具(1)检查表检查表是一张标明了所要检查项目和内容的表格,可以用来突出重点和总结整个过程的关键点。优点是简洁、清晰。典型的检查表如需求检查表、系统结构检查表、代码结构检查表、共性缺陷检查表等。检查表因其重要性,目前已实现了自动化和智能化。如IBMRochester软件开发中的PTF(programtemporaryfix,程序临时修补)检查表。(2)Pareto图一个按下降次序排列的频率竖条图。通常,X轴表示缺陷产生的原因,Y轴表示缺陷数。下图就是一个软件产品缺陷原因的Pareto图。5040302010缺陷数原因数据初始化接口复杂逻辑民族语言地址数据定义8(3)直方图是一种样本或总体的频率计数的图形表示。X轴自左至右按上升序列出某一个参数的单位间隔,Y轴为频率计数。直方图常用来表示某一参数的分布特性。如下图是一个软件产品按不同严重程度的缺陷频率和缺陷报告提交的天数直方图。10080604020总缺陷数的%SEV2SEV1SEV3SEV4严重级别10080604020总缺陷数的%8~141~715~2122~2829~3536+缺陷报告提交的天数9107.设计软件测试(1)缺陷测试设计下图是缺陷测试的一般模型。其中,需要设计测试用例,给出测试预期结果。测试用例是对测试需要的输入和当前测试内容的描述,运行结果需要和测试预期结果比较,以获得测试是否通过的结论。测试用例测试数据测试结果测试报告设计测试用例准备测试数据用测试数据运行程序将结果与测试预期比较理想的测试是使每个可能的程序运行顺序都能无遗漏的得到测试,然而这是不可能的。因此,测试需要基于一个可能的测试用例子集,制定和设计一个测试子集的选择策略。11▲黑盒测试黑盒测试是将系统作为一个黑盒子,只通过系统输入,观察其相应的输出,来确定系统功能是否符合需求规格说明书的定义。因此,黑盒测试又称功能测试或数据驱动测试。黑盒测试的系统模型如下图。正常测试输入数据期望的输出结果暴露缺陷的输出结果导致反常的输入数据系统黑盒测试方法即适合功能构成的系统,也适合对象构成的系统。测试的关键是要设计出有极大可能落在导致系统反常的输入数据集合中的那些输入。使用下表可以组织黑盒测试方法的输入和输出。输入数据预期输出结果运行输出结果结果是否正常期望的非期望的正常测试输入数据1…n导致反常的输入数据1…m12▲等价划分黑盒测试的一种方法。等价划分的测试方法就是把程序的输入域划分成若干不同性质得到的集合,在这些集合中,程序有基本一致的行为表现,然后从每个集合中选取少量有代表性的数据作为测试用例。下图就是等价划分测试的模型。系统无效输入有效输入输出等价划分方法测试用例的设计要经历划分等价类和选取测试用例两步。等价类的划分可以使用等价类表描述。输入条件有效等价类无效等价类………确定测试用例则需要根据等价类表,按以下3个步骤进行:-为每个等价类规定唯一编号-设计一个测试用例,使其尽可能多的覆盖尚未覆盖的有效等价类,重复该步-设计测试用例,逐一覆盖所有无效等价类13▲结构化测试结构化测试是一种根据软件结构知识和实现知识所进行的测试方法。结构化测试也成为白盒测试。结构化测试的过程如下图所示。测试数据测试输出组件代码导出测试结构化测试除了用于单元测试外,一般适合用于相对较小的程序,如一个子程序或对象的一个操作等。结构化测试是通过代码分析来估计需要多少测试用例,以保证测试过程中,程序或组件中所有语句都至少遍历一遍。▲路径测试是结构化测试的一种策略。即在程序控制流程图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。而设计出的测试用例要保证在测试中程序的每一个可执行语句都能至少执行一次。在面向对象的程序开发过程中,路径测试在测试对象中的方法时,常会用到。程序中的路径数量通常与程序的长度成正比。14(2)集成测试设计集成测试开始于系统组件、子系统或完整系统的组装完成时,其目的是发现组件交互中的问题。集成测试的主要困难是在测试过程中对发现的错误的定位。一个好的方法是采用所谓的增量法。即先从一个集成度最小的系统配置开始测试,完成后一个增量一个增量的增加配置,然后逐步完成系统完整配置的测试。下图就是增量化集成测试的例子。ABT1T2T3a.测试序列1ABT1T2T3CT4b.测试序列2ABT1T2T3c.测试序列3CDT4T515▲自顶向下的和自底向上的测试是两种不同的测试策略。在自顶向下的集成中,系统的高层组件在系统设计和实现完成之前进行集成和测试。如下图所示。1级1级2级2级2级测试序列……在自底向上的集成中,低层组件在高层组件开发出来之前进行集成和测试。如下图所示。N级N级N级N级N级N-1级N-1级N-1级测试驱动程序测试驱动程序测试序列16▲接口测试当模块或子系统被集成时,就有一个事先定义的接口供其它组件调用。接口测试的目的就是检测因接口错误或对接口进行的无效假设而造成的系统缺陷。下图就是对接口测试的示意图。测试用例ABC图中,指向方块边界的箭头表示测试用例不是只针对单个组件的,而是对组件构成的整个子系统的。接口错误是对象之间交互的结果,而不是出于单个对象的行为。因此,接口错误是不可能通过对单个对象的测试发现的。这种测试形式非常适合面向对象的系统。▲强度测试系统被完全集成后,就可以进行总体性能测试了。为性能测试所设计的测试用例要保证能够测试到系统的正常负荷。通常,要设计出一系列的测试,使得系统的测试负荷能稳步上升,直到系统达到性能极限。然后,强度测试继续使用测试用例测试,直到系统失败。这类测试有两个作用:检查系统的柔性;可能模拟到正常情况下的不寻常组合,以暴露系统正常情况下不会暴露的缺陷。17(3)面向对象的测试尽管前面介绍的测试方法能够用于面向对象程序的测试,但是面向对象的测试还具有自己的另外一些特点。▲面向对象的单元测试以往单元测试的方法可继续沿用,实际测试类成员函数。对象的完全覆盖测试应包括:-对象中所有操作被单独隔离的测试-对象中所有属性的设置和访问的测试-对象中所有可能状态的测试如果使用了继承,则对类的测试应延伸到所有子类所继承的操作。▲面向对象的集成测试由于面向对象程序中,类相互依赖极其紧密,根本无法在编译不完全的程序上对类进行测试。所以,面向对象的集成测试通常需要在整个程序编译完成后进行。此外,面向对象程序具有动态特性,程序的控制流往往无法确定,因此也只能对整个编译后的程序做基于黑盒的集成测试。面向对象的集成测试能够发现相对独立的单元测试无法检出的那些类相互作用时才会产生的错误。具体设计测试用例,可参考以下步骤:-选定检测的类,列出类的状态、行为、传递的消息,及输入/输出的界定等-利用结构关系图确定待测类的所有关联,确定覆盖标准-根据程序中类的对象构造测试用例,确认输入、服务和期望产生的行为等188.软件测试计划文档测试计划起到测试工作过程框架结构的功能,是好的测试工作的基础。一个测试计划的基本内容包括:基本情况分析、测试需求说明、测试策略和记录、测试资源配置、问题跟踪报告、测试计划的评审等。▲基本情况分析。包括系统运行平台、应用领域、特点和主要功能模块等。分析要点有:测试目的和侧重点、系统适合于测试的内容/操作划分、测试的潜在风险、系统与测试相关的资料说明。▲测试需求说明。列出测试功能项,规定应该测试的具体内容。▲测试策略和记录。描述如何开展测试,规定测试记录的内容。必要时,应给出测试记录文档的模板。▲测试资源配置。针对测试项目的每一个阶段任务,列出所需要的资源,可能的话,给出可能更新需要的空间。▲问题跟踪报告。报告包括问题的发现者和修改者、问题发生的频率、发现问题的测试用例,以及明确问题产生时的测试环境。问题描述应尽可能是定量、分门别类的列举。问题分为:严重问题、一般问题、建议问题。▲测试计
本文标题:软件文档写作12-管理文档2
链接地址:https://www.777doc.com/doc-3433700 .html