51Testing软件测试论坛
标题:
等价类划分的基本方法
[打印本页]
作者:
晓诺
时间:
2008-1-16 17:46
标题:
等价类划分的基本方法
通常从三个方面考虑程序的输入:正常输入,边界输入,非法输入。
正常输入:例如字符串的Trim函数,功能是将字符串前后的空格去除,那么正常的输入可以有四类:前面有空格;后面有空格;前后均有空格;前后均无空格。
边界输入:上例中空字符串可以看作是边界输入,如果输入是一个指针的话,空指针也算是边界输入。再如一个表示年龄的参数,它的有效范围是0-100,那么边界输入有两个:0和100。
非法输入:非法输入是正常取值范围以外的数据,或使代码不能完成正常功能的输入,如上例中表示年龄的参数,小于0或大于100都是非法输入,再如一个进行文件操作的函数,非法输入可能有:文件不存在;目录不存在;文件正在被其他程序打开;权限错误。
一般情况下,只要考虑:有哪些正常输入?有哪些边界输入?有哪些非法输入?就可以找出大多数等价类,例如,一个函数,功能是把小写金额转换成大写,输入是小写数字,输出是大写金额,那么:
正常输入有:只有整数,只有小数,既有整数又有小数
边界输入有:整数部分很大,0.0,小数位数超过两位
非法输入有:空串,非数字,负数
"等价类"这个词是从测试的角度来说的,从开发的角度来看,"等价类"与"功能点"具有对应关系,例如,字符串的Trim函数,功能点有:
如果只有左边有空格,返回删除左边空格后的结果(等价类:左边有空格);
如果只有右边有空格,返回删除右边空格后的结果(等价类:右边有空格);
如果两边都有空格,返回删除两边空格后的结果(等价类:两边有空格);
如果两边都没有空格,返回原串(等价类:两边无空格);
如果是空串,直接返回(等价类:空串);
如果是空指针,直接返回(等价类:空指针);
……
一个"等价类"对应程序的一个"功能点",如果程序的所有功能点都正确实现了,那么这个程序的功能就肯定没问题。程序员在写代码时肯定要想清楚程序的主要功能点,否则代码无从写起,因此,如果程序员边编码边测试的话,大部分等价类都是现成的。如果由测试部门做单元测试,测试部门只能依据设计文档来测试,设计文档也会规定程序的功能,要不然就无从测起,同样可以说大部分等价类是现成的。
作者:
dawu
时间:
2008-3-18 07:16
等价类用例的设计从功能元素的组合入手,看哪些组合是可以合并的归类的。你描述的实际上更象边界值测试和逆向用例的设计方法。用输入检测举例等价类划分用例设计,感觉不是很典型。
[
本帖最后由 dawu 于 2008-3-18 07:18 编辑
]
作者:
翟伟姣
时间:
2008-3-25 17:24
有时候等价类与边界值在一些项目中,还是有相似之处的。至少这个对我有帮助。谢了,支持!!
作者:
19860310
时间:
2008-4-24 19:40
等价类不是有无效等价类和有效等价类;其中考虑输入的:数字,字母,中文,特殊字符,数学字符,文本字符,保留字7种么???等价类和边界值可以合并来减少用例的!~
作者:
821299
时间:
2008-4-25 12:03
不是很明白呀
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2