黑盒测试方法一(等价类划分)
来源:互联网 发布:少女前线ios数据清空 编辑:程序博客网 时间:2024/05/17 07:09
等价类划分
等价列划分设计方法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少量具有代表性的数据作为测试用例。
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其他值的测试。
等价类划分有两种不同的情况:有效等价类和无效等价类。设计时要同时考虑这两种等价类。
下面给出6条确定等价类的原则:
在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,则可以确立一个有效等价类和一个无效等价类。
在输入条件是一个布尔量的情况下,可以确立一个有效等价类和一个无效等价类。
在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可以确立n个有效等价类和一个无效等价类。
在规定了输入数据必须遵守的规则的情况下,可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
在确立了等价类后,可建立等价类表,列出所有划分出的等价类。然后从划分出的等价类中按以下的3个原则设计测试用例:
为每一个等价类规定一个唯一的编号
设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。
设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
例子:
根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
"一个程序读入3个整数,它们分别代表一个三角形的3个边长。该程序判断所输入的整数是否构成一个三角形,以及该三角形是一般的、等腰的或等边的,并将结果打印出来。"
要求:设三角形的3条边分别为A、B、C,并且
(1) 列出等价类表,格式如下:
(注意:将等价类编号)(注意:将等价类编号)
(2) 设计测试用例,格式如下:
用例n:输入【A,B,C】覆盖等价类……(列出等价类序号),输出结果为……。
答:设三角形的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。
(C≠A), (20)
序号【A,B,C】覆盖等价类输出1【3,4,5】(1),(2),(3),(4),(5),(6)一般三角形2【0,1,2】-7不能构成三角形3【1,0,2】-84【1,2,0】-95【1,2,3】-106【1,3,2】-117【3,1,2】-128【3,3,4】(1),(2),(3),(4),(5),(6),(13)等腰三角形9【3,4,4】(1),(2),(3),(4),(5),(6),(14)10【3,4,3】(1),(2),(3),(4),(5),(6),(15)11【3,4,5】(1),(2),(3),(4),(5),(6),(16)非等腰三角形12【3,3,3】(1),(2),(3),(4),(5),(6),(17)是等边三角形13【3,4,4】(1),(2),(3),(4),(5),(6),(14),(18)非等边三角形14【3,4,3】(1),(2),(3),(4),(5),(6),(15),(19)15【3,3,4】(1),(2),(3),(4),(5),(6),(13),(20)
- 黑盒测试方法(一)等价类划分
- 黑盒测试方法一(等价类划分)
- (转)黑盒测试-等价类划分方法
- 黑盒测试---等价类划分
- 常用黑盒测试设计用例方法一 等价类划分
- 黑盒测试用例设计方法之等价类划分
- 测试之黑盒测试用例设计方法(等价类划分法)
- 黑盒测试之等价类划分
- 黑盒测试之等价类划分法
- 黑盒测试_等价类划分法
- 黑盒测试之----等价类划分
- 读后之感关于黑盒测试的测试用例设计方法-等价类划分
- 3.4 黑盒测试用例的设计方法 之 等价类划分与边界值分析
- 黑盒测试之等价类方法
- 软件测试之黑盒测试(等价类划分,边界值分析,判定表驱动)
- 黑盒测试用例设计模式-等价类划分(上)
- 黑盒测试案例分析之等价类划分
- 黑盒测试--等价类划分、边界值分析
- Java字符的编码解码与乱码问题 Java字符的编码解码与乱码问题
- -bash: make: command not found
- Python-模块和包.深入Celery之子任务及原语组式/链式/回调
- 进程与线程详解
- PHP中file_exists与is_file,is_dir的区别
- 黑盒测试方法一(等价类划分)
- 模块和包.深入Celery之节点管理/任务调度/任务追踪
- 实现Button文字(titleLabel)和图片(imageView)上下排列
- Url参数解析
- 百度BCC挂载 CDS磁盘
- iOS开发系列--通知与消息机制
- Python-模块和包.深入Celery之任务绑定/记录日志/自动重试
- select标签移动端兼容
- [转]OpenCV两张图片的合并