




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编号:编号:CMMI-TEST-02CMMI-TEST-02 软件测试用例设计指南软件测试用例设计指南 V1.0V1.0 修订页修订页 编号编号章节名称章节名称修订内容简述修订内容简述修订日期修订日期 修订后修订后 版本号版本号 修订人修订人 目目 录录 1 1引言引言.1 1.11.1编写目的编写目的.1 1.21.2适用范围适用范围.1 1.31.3预期读者预期读者.1 1.41.4参考文档参考文档.1 1.51.5相关模版相关模版.1 2 2测试用例概述测试用例概述.1 2.12.1测试用例是什么测试用例是什么.1 2.22.2测试用例的重要性测试用例的重要性.2 2.32.3测试用例设
2、计基本步骤测试用例设计基本步骤.3 3 3测试用例设计方法测试用例设计方法.4 3.13.1黑盒测试方法黑盒测试方法.4 3.1.13.1.1等价类划分法等价类划分法.4 3.1.23.1.2边界值分析法边界值分析法.7 3.1.33.1.3错误推测法错误推测法.8 3.1.43.1.4组合分析法组合分析法.8 3.23.2白盒测试方法白盒测试方法.8 3.2.13.2.1基本路径法基本路径法.8 3.2.23.2.2逻辑覆盖逻辑覆盖.12 3.2.33.2.3程序插装程序插装.12 4 4测试用例编写原则测试用例编写原则.12 4.14.1全面性全面性.12 4.1.14.1.1数据库程序基
3、本的增、删、改功能数据库程序基本的增、删、改功能.13 4.1.24.1.2对于无输入的操作对于无输入的操作.13 4.1.34.1.3应考虑存在跨年、跨月的数据应考虑存在跨年、跨月的数据.13 4.24.2正确性正确性.13 4.34.3符合正常业务惯例符合正常业务惯例.13 4.44.4仿真性仿真性.14 4.54.5可操作性可操作性.14 4.64.6可复用性可复用性.14 1 1引言引言 1.11.1编写目的编写目的 设计好的测试用例是测试质量的关键。本文档目的是指导开发人员、测试人员等在项 目过程中设计测试用例所遵循的原则以及如何进行测试用例的设计,以有效、顺利地去实 施、开展单元测
4、试、集成测试、系统测试、性能(压力)测试、UAT 测试等活动。 1.21.2适用范围适用范围 本文档适用于 XX 公司所有软件项目的测试工作。 1.31.3预期读者预期读者 测试经理、测试工程师、质量经理、质量工程师、开发工程师、业务测试人员等。 1.41.4参考文档参考文档 软件测试规范实施指南 1.51.5相关模版相关模版 无 2 2测试用例概述测试用例概述 软件测试发展到今天,测试工作已从简单的测试演变为包括:编制测试计划、编写测 试用例、准备测试数据、编写测试脚本、实施测试、测试评估等多项内容的正规测试。测 试方式也由单纯的手工测试发展为手工、自动化兼之。测试用例设计的好坏将直接影响到
5、 软件产品的质量。 2.12.1测试用例是什么测试用例是什么 测试用例也叫测试案例(Test case) ,也就是说为达到最佳的测试效果或高效的揭露 隐藏的错误而精心设计的少量测试数据。比较通常的说法是:指对软件产品一项特定的业 务功能进行测试任务的描述,体现测试方案、方法、技术和策略,其内容包括测试目标、 测试环境、输入数据、测试步骤、预期结果、测试脚本等。测试用例的管理是通过 QC 集 中管理,分布实施。 我们不可能进行穷举测试,为了节省时间和资源、提高测试效率,必须要从数量极大 的可用测试数据中精心挑选出具有代表性或特殊性的测试数据来进行测试,一个好的测试 用例是在于它能发现至今未发现的
6、错误。 2.22.2测试用例的重要性测试用例的重要性 软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内 完成测试,发现软件系统的缺陷,保证软件的产品质量,则是每个公司探索和追求的目标。 每个软件产品或软件开发项目都需要有一套优秀的测试方案和测试方法,而测试用例的设 计一直是软件测试工作的重点和难点。 测试用例之所以很重要,原因有以下几方面。 测试用例构成了设计和制定测试过程的基础。在开始实施测试之前设计好测试用 例,可以避免盲目测试并提高测试效率,令软件测试的实施重点突出、目的明确。 测试的“深度”与测试用例的数量成比例。由于每个测试用例反映不同的场景、条 件或经由产
7、品的事件流,因而,随着测试用例数量的增加,您对产品质量和测试 流程也就越有信心。 判断测试是否完全的一个主要评测方法是基于需求的覆盖,而这又是以确定、实 施或执行的测试用例的数量为依据的。类似下面这样的说明:“95 % 的关键测试 用例已得以执行和验证”,远比“我们已完成 95 % 的测试”更有意义。 测试工作量与测试用例的数量成比例。根据全面且细化的测试用例,可以更准确 地估计测试周期各连续阶段的时间安排。 在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低工作强度、 缩短项目周期。 在发生人员变更的情况下,有了测试用例及自动化测试,无论是谁来执行,参照 测试用例及测试脚本实施,
8、都能保障测试的质量,可以把人为因素的影响减少到 最小。 2.32.3测试用例设计基本步骤测试用例设计基本步骤 测试用例设计步骤基本包括如下几个方面: 各类技术文档作为测试用例设计的依据;分析被测对象的规格;分析测试要素;分析 测试要素取值;构建初始测试用例;通过评审或其他方式确认测试用例;在测试实现和执 行的过程中修正测试用例。具体流程如下所示: 分析被测对象的 规格 技术文档 技术文档 分析被测对象的 测试要素 构建初始测试用 例集 分析各个测试要 素的取值 评审/与其他人 讨论 通过 N 测试实现 和执行 是否需要 修正 Y 确定测试 用例集 Y N 3 3测试用例设计方法测试用例设计方法
9、 3.13.1黑盒测试方法黑盒测试方法 黑盒测试是从用户观点出发的测试,它又称功能测试、数据驱动测试或基于规格说明 书或用户手册的测试。它所依据的是程序的外部特性。黑盒测试是目前业界最流行的测试 方法, 黑盒测试方法主要包括等价类划分法、边界值分析法、错误猜测法、因果图方法、判 定表驱动分析方法等。 这里主要介绍一下常用的等价类划分法、边界值分析法和错误猜测法。 3.1.13.1.1 等价类划分法等价类划分法 3.1.1.13.1.1.1划分等价类划分等价类 等价类划分的办法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代 表性数据当作测试用例。每一类的代表性数据在测试中的作用等价于
10、这一类中的其他值, 也就是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能出现同样 的错误。使用这一方法设计测试用例,首先必须在认真分析需求规格说明书的基础上划分 等价类,列出等价类表。 等价类也指一组输入条件的有效和无效状态,分为有效等价类和无效等价类;有效等 价类是指对程序的需求规格说明是有意义的、合理的输入数据所构成的集合;无效等价类 是指对产品的需求规格说明书是不合理的或无意义的输入数据所构成的集合。每类中的一 个典型值在测试中的作用与这一类中所有其它值的作用相同,可以从每个等价类中只取一 组数据作为测试数据。一些划分等价类的指导原则如下: 1、如果规定了输入值的范围且
11、输入值为数值型,则可划分出一个有效的等价类(输入 值在此范围内) 、两个无效等价类(输入小于最小值或大于最大值) ; 2、如果规定了输入数据的个数,则类似地也可以划分出一个有效的等价类和两个无效 的等价类(如分别以最大、最小个数和稍小于最小、稍大于最大个数作为测试用例); 3、在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类; 4、如果规定输入数据为一组确定的值,而且程序对不同输入值做不同处理,则每个允 许的输入值是一个有效的等价类,此外还有一个无效的等价类(即任何一个不允许输入的 值) ; 5、如果规定了输入数据必须遵循的规则,则可以划分出一个遵循规则的有效等价类和 若干
12、个不遵循规则的无效等价类; 6、如果规定了输入数据为整型,则可以划分出正整数、零和负整数等三类等价类; 7、在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等 价类进一步的划分为更小的等价类; 8、等价类划分时应充分考虑边界条件、次边界条件、空值和无效数据。 项目中实际操作时,首先我们要对一个功能点的所有输入项进行分析,根据控制条件和结 果筛选出对执行结果有影响的输入项(一般只考虑对本功能点结果有影响) 。对于每个输入 项的类型一般有两种:一般输入项和下拉选择项,我们根据以上指导原则就可以对这些输 入项进行等价类划分。 3.1.1.23.1.1.2生成测试要素取值列表生成
13、测试要素取值列表 按照测试要素顺序把对应的等价类填入测试要素取值列表,每个取值对应一个等价类。 列表模板如下所示: 功能点名称:XXX 功能点编号:XXXXXX 前置条件: XXXXXX 优先级:高/中/低 注:XXXXXX 序号要素名L1L2L3 1 要素 1 值 1值 2值 3 2 要素 2 值 1值 2 3 要素 3 值 1值 2 3.1.1.33.1.1.3形成测试要素矩阵,设计测试用例形成测试要素矩阵,设计测试用例 完成测试要素取值列表后,我们就可以根据以下原则生成测试要素分析矩阵。 通过设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这 一步,直到所有的有效等价
14、类都被覆盖为止; 通过设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步, 直到所有的无效等价类都被覆盖为止。 测试要素分析矩阵的模板如下: 序号要素 1要素 2要素 3 1值 1值 1值 1 2值 1值 1值 2 3值 2值 1值 1 4值 3值 2值 1 这里每个要素的取值仍是等价类,把每个等价类取值明确后,再添加上没有考虑进来 的测试要素的取值后,表中的每一行就自然地转换成了一个测试用例。 3.1.1.43.1.1.4举例:柜员登陆举例:柜员登陆 输入项:机构名(不输默认为总行) ,柜员(分为经办和复核) ,用户名,密码(6 位) ; 首先对以上四个输入项进行划分等价
15、类,列表如下: 序号要素名L1L2L3 1机构名存在空不存在 2柜员经办复核 3用户名存在不存在 4密码等于 6 位小于 6 位大于 6 位 由以上列表可看出:共有 6 个有效等价类和 4 个无效等价类。 根据正交矩阵编写原则,可用 2 个测试例覆盖 6 个有效等价类,4 个测试例覆盖 4 个 无效等价类,只需 6 个测试例就覆盖了所有的测试条件。具体矩阵如下表: 序号机构号柜员用户名密码 1存在经办存在等于 6 位 2空复核存在等于 6 位 3存在经办存在小于 6 位 4存在经办存在大于 6 位 5存在经办不存在- 6不存在- 3.1.23.1.2 边界值分析法边界值分析法 边界值分析方法是
16、对等价类划分方法的补充。 3.1.2.13.1.2.1边界值分析方法的考虑边界值分析方法的考虑 长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不 是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误。 使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边 界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测 试数据,而不是选取等价类中的典型值或任意值作为测试数据。 3.1.2.23.1.2.2基于边界值分析方法选择测试用例的原则基于边界值分析方法选择测试用例的原则 1、如果输入条件规定了值
17、的范围,则应取刚达到这个范围的边界的值,以及刚刚超越 这个范围边界的值作为测试输入数据。例如,输入值的范围是 -1.01.0,则可选取- 1.0、1.0、-1.001 和 1.001 作为输入数据。 2、如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最 大个数多一的数作为测试数据。例如,某个文件有 1255 个记录,则可选取 1 个记录、 255 个记录、0 个记录和 256 个记录的输入文件作为输入数据。 3、根据规格说明的每个输出条件,使用前面的原则 1。 4、根据规格说明的每个输出条件,应用前面的原则 2。 5、如果程序的规格说明给出的输入域或输出域是有序集合,则
18、应选取集合的第一个元 素和最后一个元素作为测试用例。 6、如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值 作为测试用例。例如,在程序中定义的数组下界为 0,上界为 100,则应选取 0 和 100 作为 测试用例。 7、分析规格说明,找出其它可能的边界条件。 3.1.33.1.3 错误推测法错误推测法 错误推测法是一种基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对 性的设计测试用例的方法。 错误推测方法的基本思想是列举出程序中所有可能有的错误和容易发生错误的特殊情 况,根据他们选择测试用例。例如,在单元测试时曾列出的许多在模块中常见的错误。以 前产品测试中
19、曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为 0 的情况。输入表格为空格或输入表格只有一行。这些都是容易发生错误的情况。可选择这 些情况下的例子作为测试用例。 3.1.43.1.4 组合分析法组合分析法 组合分析法是一种基于每对参数组合的测试技术,考虑参数之间的影响是主要的错误 来源,并且大多数的错误起源于简单的参数组合。组合分析法的优点是低成本实现,低成 本维护,易于自动化,易于用较少的测试案例发现更多的错误和用户可以自定义限制;缺 点是需要专家领域知识,不能测试所有可能的组合,不能测试复杂的交互。 3.23.2白盒测试方法白盒测试方法 白盒测试又称结构测试、逻辑驱动测试
20、或基于程序的测试,一般多发生在单元测试阶 段。白盒测试方法主要包括逻辑覆盖法,基本路径法,程序插装等。 这里重点介绍一下常用的基本路径法,对于逻辑覆盖简单介绍一下覆盖准则。 3.2.13.2.1 基本路径法基本路径法 在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出独立路径集合,从而 设计测试用例,设计出的测试用例要保证在测试中程序的每一个可执行语句至少执行一次。 在介绍基本路径测试方法(又称独立路径测试)之前,先介绍流图符号: 图 1 如图 1 所示,每一个圆,称为流图的节点,代表一个或多个语句,流程图中的处理方 框序列和菱形决策框可映射为一个节点,流图中的箭头,称为边或连接,代表
21、控制流,类 似于流程图中的箭头。一条边必须终止于一个节点,即使该节点并不代表任何语句,例如, 图 2 中两个处理方框交汇处是一个节点,边和节点限定的范围称为区域。 图 2 任何过程设计表示法都可被翻译成流图,下面显示了一段流程图以及相应的流图。 注意,程序设计中遇到复合条件时(逻辑 or, and, nor 等) ,生成的流图变得更为复杂, 如(c)流图所示。此时必须为语句 IF a OR b 中的每一个 a 和 b 创建一个独立的节点。 (c)流图 独立路径是指程序中至少引进一个新的处理语句集合,采用流图的术语,即独立路径 必须至少包含一条在定义路径之前不曾用到的边。例如图(b)中所示流图的
22、一个独立路径集 合为: 路径 1:1-11 路径 2:1-2-3-4-5-10-1-11 路径 3:1-2-3-6-8-9-10-1-11 路径 4:1-2-3-6-7-9-10-1-11 上面定义的路径 1,2,3 和 4 包含了(b)流图的一个基本集,如果能将测试设计为强 迫运行这些路径, 那么程序中的每一条语句将至少被执行一次,每一个条件执行时都将分 别取 true 和 false(分支覆盖) 。应该注意到基本集并不唯一,实际上,给定的过程设计可 派生出任意数量的不同基本集。如何才能知道需要寻找多少条路径呢?可以通过如下三种 方法之一来计算独立路径的上界: 1. V=E-N+2,E 是流
23、图中边的数量,N 是流图节点数量。 2. V=P+1,P 是流图中判定节点的数量 3. V=R,R 是流图中区域的数量 例如,(b)流图可以采用上述任意一种算法来计算独立路径的数量 1. V=11 条边-9 个节点+2=4 2. V=3 个判定节点+1=4 3. 流图有 4 个区域,所以 V=4 由此为了覆盖所有程序语句,必须设计至少 4 个测试用例使程序运行于这 4 条路径。 在采用基本路径测试方法中,获取测试用例可参考以下方式: 通过非路径分析得到的测试用例; 找到尚未测试过的路径并生成相应的测试用例; 指定特定路径生成相应的测试用例。 对程序中的循环作了执行了零次和一次的限制,这样程序路
24、径的数目就是有限的。 如果程序的数目有限,就可采用枚举法得到所有的路径。 完成若干测试用例后,就可以知道所测路径是哪些,尚有哪些待测路径。 在指出要测试的路径以后,可以自动生成相应的测试用例。 3.2.23.2.2 逻辑覆盖逻辑覆盖 语句覆盖:在测试时,设计若干测试用例,运行被测程序,使程序中的每个可执 行语句至少执行一次。 分支覆盖:在测试时,设计若干测试用例,运行被测程序,使程序中的每个判断 真假的分支至少遍历一次。 条件覆盖:在测试时,设计若干测试用例,运行被测程序,使程序中的每个条件 的可能取值至少满足一次。 条件分支覆盖:在测试时,设计足够的测试用例,使得判断中每个条件的所有可 能取
25、值至少出现一次,并且每个判断本身的判定结果也至少出现一次。 3.2.33.2.3 程序插装程序插装 程序插装是一种基本的测试手段。它是在程序特定部位插入“探针”,以便把程序执行 过程中发生的一些重要历史事件记录下来(如语句执行次数、某些变量值的变化情况等) , 只有借助于插装技术,才能了解程序执行时的语句覆盖、分支覆盖及路径覆盖等结构覆盖 情况。在被测程序中插入的操作(语句)称为“探测器”或“探针”。 4 4测试用例编写原则测试用例编写原则 4.14.1全面性全面性 指编写的测试用例应该覆盖所依据设计文档描述的功能。 4.1.14.1.1 数据库程序基本的增、删、改功能数据库程序基本的增、删、改功能 增、改测试用例重点在于数据合法性、正确性的检验和提示信息的正确性的检验.输入 的数据可能有无限种组合,此时可以采用等价类划分和边界值法。 删除的测试用例比较简单,只有操作没有数据的输入,但是应该在备注中注明,删除 的限制条件,以及数据库中应该删除的表的情况。有条件限制时,测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光伏承揽合同标准文本
- 个人与公司买车合同标准文本
- 入股股东转让合同范例
- 保温设备租用合同标准文本
- 关于保姆雇佣合同标准文本
- 做工合同标准文本
- 公司税贷合同样本
- it设备分期合同标准文本
- 中介电子合同范例
- 代理钻床销售企业合同标准文本
- 机床电气控制技术(齐占庆)第一章-答案
- 动物检疫员防疫员考试题库与答案(新版)
- 牙体解剖-牙体形态及生理意义(口腔解剖生理学课件)
- 五年级口算题卡每天100题带答案
- GB/T 22517.2-2024体育场地使用要求及检验方法第2部分:游泳场地
- 2024年项目投资居间服务协议合同
- 2024至2030年中国植保无人机行业深度调研及投资前景预测报告(上下卷)
- 高中二年级下学期英语《选择性必修一第三单元语法》教学设计
- 《工程经济学》题集
- 部编版二年级下册语文1-8单元基础过关训练
- 《直播运营实务》 课件 5.3直播间场景搭建
评论
0/150
提交评论