黑盒测试用例的设计及方法
等价类划分法_方法
方法5: 在规定了输入数据必须遵守的规则的情况下,可确立一个有 效等价类(符合规则)和若干个无效等价类(从不同角度违反 规则)。 例如:规定必须输入非0的正整数 这种例子应充分考虑规则是否可以拆分为具有单一的子规则, 然后得到从不同角度违反规则的无效等价类 该例子起码可拆分为非0、数字、正数、整数4个子规则,至 少每个规则对应一个无效等价类,即0、字符串、负数、小 数、甚至可挖出输入为空的隐含等价类
四、场景法
定义:用例场景用来描述流经用例的路径,从用例开始到结 束遍历这条路径上所有基本流和备选流 为什么引入用例场景? 1)现在的软件几乎都是用事件触发来控制流程的,事件触发时 的情景便形成了场景,而同一事件不同的触发顺序和处理结 果就形成事件流。 2)这种在软件设计方面的思想也可引入到软件测试中,可以比 较生动地描绘出事件触发时的情景,有利于测试设计者设计 测试用例,同时使测试用例更容易理解和执行。 3)提出这种测试思想的是Rational 公司,并在RUP2000 中文 版当中有其详尽的解释和应用。
(3)设计一个新的测试用例,使其只覆盖一个无效等价类。重
复这一步使所有无效等价类均被覆盖。
等价类划分法_优缺点
优点: 等价类划分法的优点是考虑了单个输入域的各类情况,避 免了盲目或随机选取输入数据的不完整性和覆盖的不稳定性 缺点: 等价类划分法虽然简单易用,但是没有对组合情况进行充 分的考虑,需要结合其他测试用例设计的方法进行补充。
测试用例是软件测试的核心
如何以最少的人力、资源投入,在最短的时间内完成测试,
发现软件系统的缺陷,保证软件的优良品质,则是软件公司 探索和追求的目标。 测试用例是测试工作的指导,是软件测试的必须遵守的准则。 更是软件测试质量稳定的根本保障。
黑盒测试用例的设计方法
具体的黑盒测试用例设计方法包括等价类划分法、边界值分
等价类划分法_方法
方法1: 在输入条件规定了取值范围或值的个数的情况下,则可以确 立一个有效等价类和两个无效等价类。 例如:成年人每分钟的心跳60-100之间为正常。 有效等价类:60-100 无效等价类:<60 和 >100 方法2: 在输入条件规定了输入值的集合或者规定了“必须如何”的 条件的情况下,可以确立一个有效等价类和一个无效等价类。 例如:用户连续输入错误密码的次数最多为3次 有效等价类:<=3 无效等价类:>3次很明显的软件缺陷来源是当软件要求输入时(比如在文本 框中),不是没有输入正确的信息,而是根本没有输入任何内容,单单按 了Enter键。这种情况在产品说明书中常常忽视,程序员也可能经常遗 忘,但是在实际使用中却时有发生。程序员总会习惯性的认为用户要么
输入信息,不管是看起来合法的或非法的信息,要不就会选择Cancel键
建立等价类表
在确立了等价类之后,建立等价类表,列出所有划分出的
等价类:
输入条件 有效等价类 无效等价类
… …
… …
… …
等价类测试用例设计原则
根据等价类表,然后从划分出的等价类中按以下三个原则设 计测试用例:
(1)为每个等价类规定一个唯一的编号; (2)设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的 有效等价类。重复这一步,最后使得所有有效等价类均被测 试用例所覆盖;
在开始实施测试之前设计好测试用例,可以避免盲目测试并 提高测试效率。
测试用例的使用令软件测试的实施重点突出、目的明确。
在软件版本更新后只需修正少部分的测试用例便可展开测试
工作,降低工作强度、缩短项目周期。
功能模块的通用化和复用化使软件易于开发,而相对于功能 模块的测试用例的通用化和复用化则会使软件测试易于开展, 并随着测试用例的不断精化其效率也不断攀升。
析法、场景法、错误推测法、因果图法、判定表驱动法、正 交试验设计法、功能图法等。
这些方法是比较实用的,但采用什么方法,在使用时自然要 针对开发项目的特点对方法加以适当的选择。
一、等价类划分法
等价类划分是一种典型的黑盒测试方法,也是一种重要、常 用的黑盒测试用例设计方法。用这一方法设计测试用例完全 不考虑程序的内部结构,只根据对程序的需求和说明,即需 求规格说明书。
放弃输入,如果没有对空值进行好的处理的话,恐怕程序员自己都不知 道程序会引向何方。
正确的软件通常应该将输入内容默认为合法边界内的最小值或者合法区
间内某个合理值,否则返回错误提示信息。
因为这些值通常在软件中进行特殊处理,所以不要把它们与合法情况和
非法情况混在一起,而要建立单独的等价区间。
三、错误推测法
等价类划分法_方法
方法3: 在输入条件是一个布尔量的情况下,可确定一个有效等价类 和一个无效等价类。 例如:单选的选中和不选中 ○男生 ●女生 方法4: 在规定了输入数据的一组值(假定n个),并且程序要对每一 个输入值分别处理的情况下,可确立n个有效等价类和一个 无效等价类。 例如:输入数据位省份的选择 当输入‘青海’、‘福建’、‘浙江’这些都是有效值 当输入‘福州’就是无效值
等价类划分法:把所有可能的输入数据,即程序的输入域划 分成若干部分(子集),选择适当的数据子集来代表整个数 据集,通过降低测试的数目,实现“合理的”覆盖,覆盖了 更多的可能数据,以发现更多的软件缺陷。
等价类划分法_分类
等价类是某个输入域的集合,在这个集合中每个输入条件都 是等效的,如果其中一个的输入不能导致问题发生,那么集 合中其他输入条件进行测试也不可能发生错误 等价类分为有效等价类和无效等价类 有效等价类: 就是由哪些对程序的规格说明有意义、合理的输入数据所 构成的集合,利用有效等价类可检验程序是否实现了规格说 明中所规定的功能和性能。 无效等价类: 就是那些对程序的规格说明不合理的或无意义的输入数据 所构成的集合。
等价类划分法_方法
方法6:
在确知已划分的等价类中各元素在程序处理中的方式不同的
情况下,则应再将该等价类进一步地划分为更小的等价类。
例如:核对日期的有效性,初步有效等价类是 1<=Month<=12,1<=Day<=31 可是考虑到2月以及闰年、闰月、长月、短月等,需要进一 步细分,当然其中还涉及到了年月日组合的问题
等价类划分法_实例
输入条件 有效等价类 (A>0), (B>0), (C>0), (A+B>C), (B+C>A), (A+C>B), (A=B), (B=C), (C=A), (1) (2) (3) (4) (5) (6) (13) (14) (15) 无效等价类 (A≤0), (B≤0), (C≤0), (A+B≤C), (B+C≤A), (A+C≤B), (7) (8) (9) (10) (11) (12)
9 10
11 12 13 14 15
【3,4,4】 【3,4,3】
【3,4,5】 【3,3,3】 【3,4,4】 【3,4,3】 【3,3,4】
(1),(2),(3),(4),(5),(6),(14) (1),(2),(3),(4),(5),(6),(15)
(1),(2),(3),(4),(5),(6),(16) (1),(2),(3),(4),(5),(6),(17) (1),(2),(3),(4),(5),(6),(14),(18) (1),(2),(3),(4),(5),(6),(15),(19) (1),(2),(3),(4),(5),(6),(13),(20)
是否三角形的三条边
是否等腰三角形
(A≠B)and(B≠C)and (C≠A) (16) (A≠B), (B≠C), (C≠A), (18) (19) (20)
是否等边三角形
(A=B)and(B=C)and(C=A) (17)
等价类划分法_实例
序号 【A,B,C】 覆盖等价类 输出
1
2 3 4 5 6 7 8
边界值分析法_原则
对边界值设计测试用例,应遵循以下几条原则:
1.
如果输入条件规定了值的范围,则应取刚达到这个范围的
边界的值,以及刚刚超越这个范围边界的值作为测试输入
数据。
2.如果输入条件规定了值的个数,则用最大个数、最小个数、 比最小个数少一、比最大个数多一的数作为测试数据。
边界值分析法_原则
修改完成于下一个测试版本内,软件测试工程师取得新的测
试版本后,必须利用同一个用例来测试这个问题,确保该问 题已修改完成。
什么是测试用例?
因为我们不可能进行穷举测试,为了节省时间和资源、提高 测试效率,必须要从数量极大的可用测试数据中精心挑选出 具有代表性或特殊性的测试数据来进行测试。
使用测试用例的好处主要体现在以下几个方面:
等价类划分法_实例
一个程序读入3个整数,把这三个数值看作一个三角形的3条 边的长度值。这个程序要打印出信息,说明这个三角形是不 等边的、是等腰的、还是等边的。
分析:
我们可以设三角形的3条边分别为A,B,C。如果它们能够构
成三角形的3条边,必须满足:
A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B。 如果是等腰的,还要判断A=B,或B=C,或A=C。 如果是等边的,则需判断是否A=B,且B=C,且A=C。
3.根据规格说明的每个输出条件,使用前面的原则1。
4.根据规格说明的每个输出条件,应用前面的原则2。
例如:成年人每分钟的心跳60-100之间为正常。
边界值分析法_原则
5.如果程序的规格说明给出的输入域或输出域是有序集合,则
应选取集合的第一个元素和最后一个元素作为测试用例。 6.如果程序中使用了一个内部数据结构,则应当选择这个内部 数据结构的边界上的值作为测试用例。 7.分析规格说明,找出其他可能的边界条件。