Must know something of everything and everything of something!
等价类划分的基本方法
上一篇 /
下一篇 2007-04-27 16:17:25
/ 个人分类:Testing
等价类划分的基本方法
m!nTD~M2mT |V-}0B4?%v#S5E1Qb3N(`0 通常从三个方面考虑程序的输入:正常输入,边界输入,非法输入。
2r&j2bR-?!k)g4F6WR0 正常输入:例如字符串的Trim函数,功能是将字符串前后的空格去除,那么正常的输入可以有四类:前面有空格;后面有空格;前后均有空格;前后均无空格。51Testing软件测试网n3oj*N5Z
Cu7|{
边界输入:上例中空字符串可以看作是边界输入,如果输入是一个指针的话,空指针也算是边界输入。再如一个表示年龄的参数,它的有效范围是0-100,那么边界输入有两个:0和100。51Testing软件测试网 Q!w1{T#[
h(PY
非法输入:非法输入是正常取值范围以外的数据,或使代码不能完成正常功能的输入,如上例中表示年龄的参数,小于0或大于100都是非法输入,再如一个进行文件操作的函数,非法输入可能有:文件不存在;目录不存在;文件正在被其他程序打开;权限错误。51Testing软件测试网@;ud8n!m;f Z8s4r?
一般情况下,只要考虑:有哪些正常输入?有哪些边界输入?有哪些非法输入?就可以找出大多数等价类,例如,一个函数,功能是把小写金额转换成大写,输入是小写数字,输出是大写金额,那么:51Testing软件测试网(E5u`/_ zH o
正常输入有:只有整数,只有小数,既有整数又有小数51Testing软件测试网4zn(c/X"I^kF(j]
边界输入有:整数部分很大,0.0,小数位数超过两位
p'G3H3rcH4{$C0 非法输入有:空串,非数字,负数51Testing软件测试网%G
_&ep1FGK(j
"等价类"这个词是从测试的角度来说的,从开发的角度来看,"等价类"与"功能点"具有对应关系,例如,字符串的Trim函数,功能点有:
.M@2?XRcl0s0m0 如果只有左边有空格,返回删除左边空格后的结果(等价类:左边有空格);51Testing软件测试网g-lV3T]
如果只有右边有空格,返回删除右边空格后的结果(等价类:右边有空格);51Testing软件测试网P(vm)yS0ML)h&nX
如果两边都有空格,返回删除两边空格后的结果(等价类:两边有空格);51Testing软件测试网$`yVu}D:a)V-`
如果两边都没有空格,返回原串(等价类:两边无空格);
Ih`H*f%WH4C{N0 如果是空串,直接返回(等价类:空串);
\5Tr~ F_
t0 如果是空指针,直接返回(等价类:空指针);
0S7V8VC2Is7ZW0 ……51Testing软件测试网*}tF:C8R'b'i'S
一个"等价类"对应程序的一个"功能点",如果程序的所有功能点都正确实现了,那么这个程序的功能就肯定没问题。程序员在写代码时肯定要想清楚程序的主要功能点,否则代码无从写起,因此,如果程序员边编码边测试的话,大部分等价类都是现成的。如果由测试部门做单元测试,测试部门只能依据设计文档来测试,设计文档也会规定程序的功能,要不然就无从测起,同样可以说大部分等价类是现成的。51Testing软件测试网T1RW
d*J
相关阅读:
- Basic Definitions About Software Testing (overn, 2007-3-23)
- 软件测试:V模型,还是X模型? (overn, 2007-4-16)
- 软件测试过程模型:V模型 W模型 H模型 (overn, 2007-4-16)
- for与foreach 执行效率测试结果(转) (overn, 2007-4-16)
- 软件开发过程模型 (overn, 2007-4-16)
- 软件复杂度概述 (overn, 2007-4-19)
- 控制流图及圈复杂度计算 (overn, 2007-4-19)
- Formal Technical Reviews (overn, 2007-4-19)
- Goals of Formal Technical Reviews (overn, 2007-4-19)
- 代码覆盖率分析 (overn, 2007-4-24)
收藏
举报
TAG:
等价类划分
Testing