软件测试系列培训教程(北大青鸟)课件.ppt
第四章,测试计划和单元测试,2,回顾,测试工具是辅助测试整个过程的工具软件。单元测试工具的种类和优势、缺陷。健壮的测试工具的引入应该具有一定的设计原则。介绍Panorama产品内容和运行环境、使用原理、各个工具的简单运用以及缺陷。,3,本章目标,计划测试过程制定单元测试说明书明确测试用例设计技术单元测试的测试手段,4,基本测试过程,基本测试过程原则:尽早测试、经常测试、充分测试。开发过程与测试过程:分析、测试、设计、测试、编码、测试。测试计划应该是按照开发者的要求并用具体例子来描述一个测试计划的层次结构以及各个测试计划相联系的标准模版。,5,测试的五个问题,谁执行了测试?测试什么?什么时候测试?怎样测试?测试应进行到何种程度?,6,测试方案设计,良好的测试设计由以下的若干个方面组成:测试策略测试计划测试说明书测试规范这些方案适用于从单元测试到系统测试等各个级别的测试。测试设计需要根据软件说明书来进行。,7,单元测试 2-1,概况定义:检验程序最小单位有无错误。一般在编码之后,由开发人员完成。单元:软件开发中的最小的独立部分 C语言中的单元:函数或者是子过程 C+语言中的单元:类,8,单元测试 2-2,单元测试目前状况:实施效果非常好,但是实施阻力比较大(主要是人员和管理因素),一般只在关键的程序单元中实施有比较系统的理论和方法,但也依赖于系统的特殊性和开发人员的经验有大量的辅助工具,开发人员也经常自己开发测试代码和测试工具主要使用白盒测试和静态分析,也使用黑盒测试,9,单元测试流程,管理流程主要指动态测试应用流程,针对测试目标,规定测试任务、资源分配、人员角色、进度安排等。,根据测试计划,设计测试用例,包括:测试步骤、测试场景、测试代码、测试数据(包括预期结果)。,根据测试计划,配置测试环境,并手动或者自动执行测试设计。,根据测试计划,忠实地记录测试执行的过程和结果。,分析测试记录,如果发现与预期结果不同,确定并重现缺陷。,检查测试设计是否全部执行完毕,缺陷是否全部关闭。,记录、分发、评估、关闭缺陷报告。,分析测试过程和缺陷报告,评估测试质量和测试效果,给出是否通过测试的建议。,10,测试用例 2-1,测试用例是数据输入和期望结果组成的对。,11,测试用例 2-2,ANSI/IEEE829标准列出了测试用例应该包含在内的重要信息:标识符测试项输入说明输出说明环境要求特殊要求用例依赖性,12,单元测试说明书的组成,单元测试说明书由一系列单元测试用例组成。每个单元测试用例都应该包括四个基本要素(对照ANSI/IEEE标准):单元的初始状态说明单元的输入测试用例实际要测试的内容测试用例的预期结果,13,单元测试说明书(例)测试计划,编号 如:stb-tp0013标题 如:文字排版功能.字间距.MayCourse版本号 如:V1.0执行状态 如:未执行修改记录 如:2003年7月28日;编制/修改;原因测试目标 如:语句覆盖测试人员 如:1负责执行测试用例xxx;2负责执行测试用例xxx测试用例编号(多个)如:stb-fg00021/stb-fg00031/stb-fg00035被测试单元代码位置如:$tag1/layout/MayCourse.cpp,14,单元测试说明书(例)测试用例,编号 如:stb-tp00014标题 如:测试“文字排版功能.字间距.MayCourse”版本号 如:V1.3执行状态 如:已经执行修改记录 如:2003年7月29日;编制/修改;原因测试步骤 如:配置运行环境;输入测试数据;执行X功能/测试代码;观察/记录XX测试场景 如:在联网的环境下测试代码 如:stb-tp00021(位置)/stb-tp00035(位置)测试数据 如:输入数据(输入文件、文字描述);预期结果(性能、图片、文字描述),15,单元测试说明书(例)测试记录,编号 如:stb-tp00015标题 如:记录测试“文字排版功能.字间距.MayCourse”结果填写记录 如:2003年7月30日;填写;原因测试用例编号 如:stb-tp0015输出结果 如:图片、文字描述测试观察 符合/不符合期望结果,16,单元测试说明书(例)缺陷跟踪报告,编号 如:stb-tp00016标题 如:文字排版功能.字间距.MayCourse计算错误版本号 如:V1.3执行状态 如:空白/草稿/提交/审批/分发/正在修改/修改完毕/正在确认/关闭修改记录 如:2003年7月31日;编制/修改;原因测试环境和版本号码、程序编写人员错误严重程度和优先级别错误详细描述重现步骤和方式、对应的测试记录编码附件建议修改方式修改内容、结果及修改人员签字/日期确认内容、结果及确认人员签字/日期,17,单元测试说明书(例)总结报告,编号 如:stb-tp00017标题 如:文字排版功能.字间距.MayCourse单元测试总结报告版本号 如:V1.5执行状态 如:已经提交修改记录 如:2003年8月1日;编制/修改;原因测试计划编号计划执行情况缺陷统计(缺陷总数/未解决数目)及为解决缺陷列表后续处理措施是否通过单元测试,18,制定单元测试说明书步骤,包含一组单独的单元测试用例的单元测试说明书的设计过程:步骤 1 运行简单测试用例步骤 2 正面测试步骤 3 负面测试步骤 4 考虑特殊事项步骤 5 覆盖完成率测试步骤 6 完善说明书,进行相对完整测试,19,测试用例设计技术,测试用例设计技术可以大体分成两个主要类别:黑盒技术使用的是单元的接口和对功能的描述,而无需知道单元内部是如何构建的。白盒技术使用的是有关单元内部如何工作的信息。此外还有其他的技术,它们都不能归入上面的类别中,例如错误猜测。,20,黑盒测试测试手段 2-1,根据说明书进行的测试测试用例是通过通读相关的说明书而设计得到的。每个测试用例都应该测试说明书的一条或多条陈述。等价划分基本做法是将要测试的软件的输入和输出分成若干部分,对于特定部分中的任意值,软件行为都是等价的。,21,黑盒测试测试手段 2-2,边界值分析它使用与等价划分相同的方法分析各个部分。但是,它假定错误最可能出现在各部分之间的边界处。状态变换测试当软件被设计成状态机或者软件实现的是以状态机为模型的需求的时候,状态变换测试特别有用。测试用例通过生成导致转变的事件来测试状态之间的转换。,22,白盒测试测试手段 2-1,分支测试测试用例被设计为检验对单元中的流分支或判定点的控制。通常来说它的目的是要达到目标级别的判定覆盖率。条件测试条件测试的目标是设计测试用例以表明逻辑条件的单个组件和单个组件的组合是正确的。,23,白盒测试测试手段 2-2,数据定义 使用测试它将测试用例设计为对成对的数据定义和使用进行测试。设置数据项的值的地方就是数据定义,读取或使用数据的地方就是数据使用。次边界值测试很多情况下,各部分和它们的边界可以通过单元功能说明书来识别。但是,单元可能会有内部边界值,它只能通过结构说明书来识别。,24,错误猜测,错误猜测主要是凭经验,同时还需要诸如边界值分析等其他技术的一些辅助。凭借经验,测试设计者猜测特定类型的软件中可能出现的错误类型,并设计测试用例来找到它们。由有经验的工程师来进行错误猜测可能是最有效地设计能发现错误的测试的唯一方法。相反,任用不合适的人来进行错误猜测可能会浪费时间。,25,总结,良好的测试设计由若干个防范组成。在单元测试中,测试应设计为检验各个单元是否实现了该单元的设计说明书中的所有设计判定。单元测试说明书由一系列单元测试用例组成。测试用例设计技术可以大体分成黑盒和白盒两个主要类别。错误猜测主要凭借测试设计者的经验。,