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