版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,2010-2011,天津城市建设学院 电子与信息工程系 唐国峰,软件测试技术与质量保证,第二部分 软件测试技术 第六节 单元测试,6.1 测试用例的定义 测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例是执行的最小实体。 6.2 测试用例的特征 1、最有可能抓住错误的; 2、不是重复的、多余的; 3、一组相似测试用例中最有效的; 4、既不是太简单,也不是太复杂。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.3 测试用例组成元素 1、用例ID; 2、用例名称; 3、测试目的; 4、测试级别; 5、参考信息; 6、测试环境;
2、7、前提条件; 8、测试步骤; 9、预期结果; 10、设计人员。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.4 测试用例设计原则 1、测试用例的代表性:能够代表并覆盖各种合理的和不合理的、合法的和 非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。 2、测试结果的可判定性:即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。 3、测试结果的可再现性:即对同样的测试用例,系统的执行结果应当是相同的。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.4 测试用例设计原则 1、测试用例的
3、代表性:能够代表并覆盖各种合理的和不合理的、合法的和 非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。 2、测试结果的可判定性:即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。 3、测试结果的可再现性:即对同样的测试用例,系统的执行结果应当是相同的。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.4 测试用例设计原则 白盒测试方法 语句覆盖 分支覆盖 条件覆盖 等 黑盒测试方法 功能分解 等价类划分 边界值分析 因果图法,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.5 等价类
4、划分方法 1、定义 把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。 2、划分等价类: 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。,2010年11月26日 天津城市建设学院电子与信息工
5、程系 唐国峰,第六节 单元测试,6.5 等价类划分方法 1)有效等价类 是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。 2)无效等价类 与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。 设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.5
6、等价类划分方法 3.划分等价类的标准: 1)完备测试、避免冗余; 2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集, 而子集的并是整个集合; 3)并是整个集合:完备性; 4)子集互不相交:保证一种形式的无冗余性; 5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相 同,相同处理映射到相同的执行路径。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.5 等价类划分方法 4.划分等价类的方法 1)在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。 2)在输入条件规定了输入值的集合或者规定了必须如何的
7、条件的情况下,可确立一个有效等价类和一个无效等价类; 3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.5 等价类划分方法 4.划分等价类的方法 4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。 例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。 5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合
8、规则)和若干个无效等价类(从不同角度违反规则); 6)在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.5 等价类划分方法 5.设计测试用例 在确立了等价类后,可建立等价类表,列出所有划分出的等价类输入条件:有效等价类、无效等价类,然后从划分出的等价类中按以下三个原则设计测试用例: 1)为每一个等价类规定一个唯一的编号; 2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止; 3)设计一个新的
9、测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。 此处给一个典型的例子供大家参考,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.6 编写有效的测试用例 使用模板 编写测试用例更方便 提高测试用例的组织性 提供了标准 格式统一美观 有助于测试人员寻找信息 能够包括很多有关测试过程的选项 此处给大家一个模板的范例,供大家参考,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.6 编写有效的测试用例 测试用例依赖关系的利弊 具有依赖关系的测试用例是一些需要依靠先前的测试用例执
10、行的结果来执行的用例 考虑是否真的需要其他的测试的结果作为数据输入,如果是,那么测试必需是累积的。应尽量避免这种情况 保持测试用例依赖关系的正确性和一致性 以一种合理的顺序来安排测试用例的顺序,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.7 测试用例的评估 评估测试用例是否符合编写依据 准确性 简洁性 可重用性 适用性 可跟踪性 纯净性,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.8 什么是单元测试 单元测试(Unit Testing)是对软件基本组成单元进行的测试,这里的单元并不一定是一个函数或者一个类,
11、而是具有某些基本的属性,比如:明确的功能、规格定义,与其他部分明确的接口定义等。 * “单元”往往是指可以清晰地与同一程序的其他单元划分开来的部分。尤其特别需要注意的是,在某些场合,“单元”也可能是对应于多个程序文件中的一组函数。 在传统的结构化编程语言中,比如C,单元往往是指函数或者子过程。而在C+中,单元则一般是指类或者类的方法。 单元测试又称模块测试,属于白盒测试,是最小单位的测试。模块分为程序模块和功能模块。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.9 对于单元测试的一些错误认识 1、太浪费时间了,现在要赶进度,时间上根本不允许,或者随便
12、做做应付领导。 2、我是一个很棒的程序员,我写的代码肯定是没有问题的。 3、做单元测试太烦了,直接集成,到时有问题在集成测试时肯定能发现的,实在不行在系统测试总该能发现吧。 4、它仅仅是证明这些代码做了什么。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.10 单元测试的目的 回顾: 1、软件测试的目的在于发现错误,一个好的测试用例在于发现至今为止尚未发现的错误。一个成功的测试时发现了至今为止尚未发现的错误。 2、从软件工程学来讲,在讨论质量的时候,我们知道软件的质量是从过程上进行保证的。 如果说在进行编码前已经能很大程度上保证了详细设计的质量,那么单
13、元测试就不仅仅是验证代码的正确性,同时也要兼顾详细设计,验证代码编写是否是根据详细设计进行的。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.10 单元测试的目的 单元测试的目的: 1、验证代码是与设计相符合的。 2、跟踪需求和设计的实现。 3、发现设计和需求中存在的错误。 4、发现在编码过程中引入的错误。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.11 单元测试的重要性 单元测试是软件测试的基础,主要目的是验证你的应用程序能够很好的工作,以及尽早的发现错误。 时间方面测试效果测试成本,2010年11月26
14、日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.12 单元测试具有的优点 它是一种验证行为。 它是一种设计行为。 它是一种编写文档的行为。 它具有回归性。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.13 单元测试的内容 单元测试的对象是软件设计的最小单位模块或函数,单元测试的依据是详细设计描述。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.13 单元测试的内容 模块接口 调用所测模块的输入参数与模块的形式参数在个数、属性、顺序上是否匹配; 所测模块调用子模块时,它输入子模块的参数与子模
15、块的形式参数在个数、属性、顺序上是否匹配; 是否修改了只做输入用的形式参数; 输出给标准函数的参数在个数、属性、顺序上是否匹配; 全局变量的定义在各模块中是否一致; 限制是否通过形式参数来传送。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.13 单元测试的内容 局部数据结构测试 检查不正确或不一致的数据类型说明; 使用尚未赋值或尚未初始化的变量; 错误的初始值或错误的默认值; 变量名拼写错误或书写错误;,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.13 单元测试的内容 路径测试 常见的不正确的计算有: 运算
16、的优先次序不正确或误解了运算的优先次序; 运算的方式错误(运算的对象彼此在类型上不相容); 算法错误; 初始化不正确; 运算精度不够; 表达式的符号表示不正确等。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.13 单元测试的内容 路径测试 常见的比较和控制流错误有: 不同数据类型的比较; 不正确的逻辑运算符或优先次序; 因浮点运算精度问题而造成的两值比较不等; 关系表达式中不正确的变量和比较符; “差1错”,即不正确地多循环或少循环一次; 错误的或不可能的循环终止条件; 当遇到发散的迭代时不能终止循环; 不适当地修改了循环变量等。,2010年11月2
17、6日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.13 单元测试的内容 错误处理测试 出错的描述难以理解; 出错的描述不足以对错误定位和确定出错的原因; 显示的错误与实际的错误不符; 对错误条件的处理不正确; 在对错误进行处理之前,错误条件已经引起系统的干预; 如果出错情况不予考虑,那么检查恢复正常后模块可否正常工作,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.13 单元测试的内容 边界测试 常见的边界情况例举 1)对16-bit 的整数而言 32767 和 -32768 是边界 2)屏幕上光标在最左上、最右下位置 3)报表的第一
18、行和最后一行 4)数组元素的第一个和最后一个 5)循环的第 0 次、第 1 次和倒数第 2 次、最后一次,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.14 单元测试的环境构成 在单元测试时,如果模块不是独立的程序,需要辅助测试模块,有两种辅助模块:驱动模块(Driver)、桩模块(Stub)。因为单元测试的测试对象本身是单元,还不是一个完整的独立的程序,此时一个完整的可运行的软件系统还没有构成,所以必须为每个单元测试开发驱动模块和庄模块。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.14 单元测试的环境构成
19、,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.14 单元测试的环境构成 什么是驱动模块? 驱动模块只是一个接收测试数据,并把数据传送给(要测试的)模块的模块。 驱动模块主要完成功能: 1、接受测试输入; 2、对输入进行判断; 3、将输入传给被测单元,驱动被测单元执行; 4、接受被测单元执行结果,并对结果进行判断; 5、将判断结果作为用例执行结果输出测试报告。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.14 单元测试的环境构成 什么是桩模块? 桩模块的功能是替代那些隶属于被测试模块的模块。对于大规模的项目,
20、可测性是可想而知的,不见得是设计的问题,因为事物本身是互相纠缠的,代码间的大量耦合无法避免,打桩是解耦合的常用手段。另外,并行开发也通常因相关代码未实现而需打桩。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,例如: int main() /初始化 int ret = Max(); /判断结果是否符合预期 int Max() int a = fun1(); /需要打桩 int b = fun2(); /需要打桩 if (ab) return a; else return b; ,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元
21、测试,桩代码大概是这样子的: int fun1()return 0; int fun2()return 0; 主要功能是让链接能够通过。 *失真 *隔离,6.14 单元测试的环境构成 打桩是很简单的技术,如果用手工方法的话,大致过程是这样的: 1)编译链接源文件,编译错误通常跟打桩无关的,要先解决. 2)编译过了后,如果产生未定义的外部符号之类的链接错误,通常就是缺少符号定义,可能是函数,也可能是非局部全量. 3)根据缺少的函数或变量的声明,编写函数实现或变量定义.,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.15 单元测试策略 1、由顶向下的单元测
22、试策略 2、由底到上的单元测试策略 3、孤立测试,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.15 单元测试策略 1、由顶向下的单元测试策略 方法:该方法先对最顶层的单元进行测试,把顶层所调用的模块做成桩模块,然后再对下一层作测试,依照此顺序,直至最底层测试完毕后结束。 优点:1、可以省去驱动模块。 2、可以同详细设计、编码阶段结合,相互重叠,缩短单元测 试的时间。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.15 单元测试策略 2、由底到上的单元测试策略 方法:该方法先对层次图中的最底层的单元进行测试,把
23、调用被测试单元的部分做成驱动模块,测试完毕后再对上一层作测试,依照此顺序,直至最上层单元测试完毕后结束。 优点:1、可以省去桩模块。 缺点:2、不可以同详细设计、编码阶段结合重叠,单元测试的时间较长。因为往往要在最底层的编码结束后才能开始,而最底层的单元的设计一般是最后一个设计的。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.15 单元测试策略 前两种方法共有的缺点: 缺点:1、随着测试的进行,后期的测试将逐渐变得复杂庞大,很难 保证覆盖率。 2、测试成本非常高。 3、对单元修改将导致干路的所有测试均需重新进行。 4、开发时间很长。 5、并行性很差。
24、,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.15 单元测试策略 3、孤立测试 方法:不考虑模块之间的层次关系,为每个模块均打桩、编写驱动,使每个模块独立的进行测试。 优点:1、该方法是最简单,最容易操作的。 2、单元之间不存在依赖性、因此测试可以并行进行,可以很 大的缩短开发周期。 缺点:1、需要理解结构设计信息,以编写桩模块和驱动模块。 2、往往需要编写大量的桩模块和驱动模块、额外成本较高。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.16 单元测试用例设计思路 1、为系统运行设计用例 2、为正向测试设
25、计用例 3、为逆向测试设计用例 4、为满足特殊需求设计用例 5、为代码覆盖设计用例 6、为覆盖率指标完成设计用例,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.17 单元测试过程 一个好的测试需要经过计划、设计、执行到报告总结多个过程。根据ANSI/IEEE Std 1008-1987的标准,单元测试过程划分为三个阶段、8个活动。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.17 单元测试过程 一:完成测试计划 1. 计划总的方法、资源和进度 2. 确定被测特性 3. 优化总的计划 二:获取测试集 1. 设计
26、测试集 2. 完成改进的计划和设计 三:度量测试单元 1. 执行测试规程 2. 检查结束条件 3. 评价测试工作和单元,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.18 测试过程中各种人员的作用 1、系统分析设计人员 进行需求跟踪,确保系统需求的实现和更新。进行软件单元可测性分析,确定单元测试的对象、范围和方法。 2、软件开发人员 负责编码和单元测试过程,完成单元测试计划、方案和报告。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.18 测试过程中各种人员的作用 3、软件测试人员 参与单元测试计划、方案和报告
27、的评审,对单元测试的计划、设计和执行质量进行监控。根据实际情况,可选择参与由开发人员负责的代码检视、单元测试等活动。 4、配置管理人员 对代码及单元测试文档进行配置管理。 5、质量保证(QA)人员 参与编码与单元测试评审,对编码和单元测试过程进行审计。,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.19 单元测试的输入和输出 输入: 1、软件需求规格说明书 2、软件详细设计说明书 3、软件编码与单元测试工作任务书 4、软件集成测试计划 5、软件集成测试方案 6、 用户其他文档,2010年11月26日 天津城市建设学院电子与信息工程系 唐国峰,第六节 单元测试,6.19 单元测试的输入和输出 输出: 1、单元测试计划 2、单元测试方案 3、需求跟踪说明书或需求跟踪记录 4、代码静态检查记录 5、正规检视报告 6、问题记录表 7、问题跟踪和解决记录表 8、软件代码开发版本 9、单元测试报告 10、软件编码与单元测试任务总结报告,2010年11月26日 天津城市建设学院电子与信息工程系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 改善心态提升生活质量指南
- 进出口重大员工持股协议
- 保险基础劳务派遣合同
- 通信国内授信合同
- 2026年金融科技创新服务深度分析报告
- 铝卷表面处理加工项目技术方案
- 铝卷表面处理加工项目运营管理方案
- 船用造水机系统调试报告
- 施工现场交叉作业协调方案
- 2026年生育保险服务行业发展趋势报告
- 绿化养护工人安全培训资料
- T/CACM 1056.92-2019中药材种子种苗天南星种子
- JJF(陕) 104-2023 裂隙灯显微镜校准规范
- 竞聘静脉治疗专科护士
- 2024年管道燃气客服员(中级)技能鉴定考试复习题库(含答案)
- (新版)铁路机车车辆制动钳工(中级)职业鉴定考试题库(含答案)
- 伦理审查表(一式三份)
- 人体艺术欣赏
- 化工节能原理与技术课件-XXXX09
- 大学生仓库管理员暑期社会实践报告
- 续新三国志英杰传攻略
评论
0/150
提交评论