软件测试设计

本文探讨了软件测试中的等价类划分方法,包括有效和无效等价类的定义、划分步骤以及测试用例设计。同时,提到了边界值方法和场景设计法在测试中的应用,强调了场景法中基本流和备选流的识别原则及其设计步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试用例设计方法

如何全面系统地组织测试

  • 等价类是建立在这种思想之上——即我们不可能进行穷举测试,那么我们就 必须对输入进行分类,而这种分类是建立在我们知道计算机程序设计原理和 计算机处理单元的工作原理基础之上的,程序是通过数据结构和算法来实现 的,计算机是按照算法来运行程序的,这种运行是稳定的,不会因为我们的 输入而导致计算机处理不稳定,即我们输入某种组合,即使输入成千上万次, 也是得到同一结果。输入用同一数据结构表示的数据是稳定的,在某值域范 围内,程序处理方法相同的。如果输入不在同一值域,则不能称为同一类。 实践证明,这种假设是成立的,所以等价类划分方法也是有效的方法。

测试过程中遇到的问题

• 不知道是否较全面的测试了所有内容
• 测试的覆盖率无法衡量
• 对新版本的重复测试很难实施
• 存在大量冗余测试影响测试效率

等价类划分{发现问题、分析问题、解决问题}

  • 有效等价类:

是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集 合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

  • 等价类

是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中 的错误都是等效的。

  • 无效等价类:
    标注与有效等价类的概念正好相反。
    划分的步骤

设计测试用例
在这里插入图片描述

• (1)首先为等价类表中的每一个等价类分别规定一个唯一的编号
• (2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤, 直到所有的有效等价类均被测试用例所覆盖。
•(3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。重复这一步骤, 直到所有的无效等价类均被测试用例所覆盖。

特点
• 两块划成一块(等价类划分过粗),结果?
• 一块划成两块(等价类划分过细),结果?

注意
考虑无效等价类
仔细划分

依据
(1)按照区间划分 在输入条件规定了取值范围或值的个数的情况下,可以确定一 个有效等价类和两个无效等价类
(2)按照数值划分 在规定了一组输入数据(假设包括 n个 输入值),并且程序要 对每一个输入值分别进行处理的情况下,可确定 n 个有效等价类(每个值确定一个有 效等价类)和一个无效等价类(所有不允许的输入值的集合)。
(3)按照数值集合划分 在输入条件规定了输入值的集合或规定了“必须如何”的条 件下,可以确定一个有效等价类和一个无效等价类(该集合有效值之外)。
(4)按照限制条件或规则划分 在规定了输入数据必须遵守的规则或限制条件的情况 下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规 则)
(5)细分等价类 在确知已划分的等价类中各元素在程序中的处理方式不同的情况下, 则应再将该等价类进一步划分为更小的等价类,并建立等价类表

测试用例

等价类划分法测试
• (1)首先为等价类表中的每一个等价类分别规定一个唯一的编号
• (2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤, 直到所有的有效等价类均被测试用例所覆盖。 • (
(3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。重复这一步骤, 直到所有的无效等价类均被测试用例所覆盖。

边界值方法

边界值分析法
	边界点
		• 关于边界点,可以分为上点、内点和离点
		上点:就是边界上的点,不管它是开区间还 是闭区间,就是说,如果该点是封闭的,那 上点就在值域范围内,如果该点是开放的, 那上点就不在值域范围外
		• 内点:就是在值域范围内的任意一个点
		• 离点:就是离上点最近的一个点,如果边界 是封闭的,那离点就是值域范围外离上点最 近的点,如果边界是开放的,那离点就是域 范围内离上点最近的点
	举例,常见的边界值
		对16-bit 的整数而言 32767 和 -32768 是边界 •
		 • 屏幕上光标在最左上、最右下位置 
		• 数组元素的第一个和最后一个 
		 • 循环的第 0 次、第 1 次和倒数第 2 次、最后一次
	利用边界值作为测试数据的原则
		• 如果输入(输出)条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个 数多一的数作为测试数据;如超市打折,买3件相同商品打7折,则2件、3件、4件商品做为边界条 件值。
		如果输入(输出)规定了值的范围,则应该以该范围的边界值及边界附近的值作为测试数据;如 一个文本输入区域允许输入1个到255个字符,那么输入0个、1个、255个字符和256个字符做为边 界条件值。
		• 将规则1和2应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值;
		如果需求规格说明书中提到的输入或输出是一个有序的集合,应该注意选取有序集合的第一个和 最后一个元素作为测试数据;如下拉列表中可以对5个行政区域进行选择,可以选择第一个和最后 一个。
		如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试数据; 如对16-bit 的整数而言 32767 和 -32768 是边界
		分析规格说明,找出其它可能的边界条件。
	内部边界值分析
		在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以 从软件的规格说明或常识中得到,也是最终用户可以很容易发现问题的。然而,在测 试用例设计过程中,某些边界值条件是不需要呈现给用户的,或者说用户是很难注意 到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。
		条件
			数值的边界值检验
				计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范 围限制。
			字符的边界值检验
				在计算机软件中,字符也是很重要的表示元素,其中ASCII和Unicode是常 见的编码方式。下表中列出了一些常用字符对应的ASCII码值。
			其它边界值检验

在这里插入图片描述

场景设计法

• 现在的软件几乎都是用事件触发来控制流程的
• 用户一系列的操作事件触发时的情景形成了场景
• 而同一事件不同的触发顺序和处理结果就形成了事件流
设计方法

  • 通过运用场景来对系统的功能点或业务流程的描述,从 而提高测试效果。
    场景法一般包含基本流和备用流,从一个流程开始,通 过描述经过的路径来确定的过程,经过遍历所有的基本 流和备用流来完成整个场景。

  • 基本流(直黑线表示):
    是经过用例的最简单 的路径,软件功能按照正确的事件流实现的一 条正确流程

  • 备选流或异常流(彩线表示):
    出现故障或缺 陷的过程,一个备选流可能从基本流开始,在 某个特定条件下执行,然后重新加入基本流中 (如备选流1和3);也可能起源于另一个备选 流(如备选流2),或者终止用例而不再重新加 入到某个流(如备选流2和4)

基本流和备选流的识别原则
1、 一个业务只存在一个基本流
2、基本流只有一个起点,一个终点
3、基本流是主流程,备选流是分支流程
4、备选流的终点,可以是一个流程的出口,也可以回到基本流,还可以汇入其它的备选流
5、备选流汇合时,谁汇合到谁,取决于该流程出现的可能性大小,小的汇入大的
6、如果在流程图中出现了两个不相上下的基本流,一般需要分成两个两个业务看待

在这里插入图片描述

场景法的设计步骤及应用场合

设计步骤
1、根据需求说明,描述出程序的基本流及各条备选流
2、根据基本流和备选流生成不同的场景
3、重新复审一遍所有测试用例,去掉部分多余的以及实际业务当中不太可能发生的,测 试用例确定后,对每一个测试用例确定测试数据值
4、对每个场景生产相应的测试用例
应用场合

  • 基于场景的测试一般是在SIT/UAT阶段,在功能测试之后进行。测试场景是基于用户需 求分析设计得出的,站在用户角度描述用户与系统的各种交互;所以功能测试关注的 重点是系统功能特征(各种正常和异常分支),场景测试关注的是业务流程、业务场 景或事务,关注的重点不同,分析设计的方法也有差异
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抓月亮的渔民

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值