等价类划分的基本方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通常从三个方面考虑程序的输入:正常输入,边界输入,非法输入。

正常输入:例如字符串的Trim函数,
功能是将字符串前后的空格去除,
那么正常的输入可以有四类:
前面有空格;后面有空格;前后均有空格;
前后均无空格。

边界输入:上例中空字符串可以看作是边界输入,
如果输入是一个指针的话,空指针也算是边界输入。
再如一个表示年龄的参数,它的有效范围是0-100,
那么边界输入有两个:0和100。

非法输入:非法输入是正常取值范围以外的数据,
或使代码不能完成正常功能的输入,
如上例中表示年龄的参数,
小于0或大于100都是非法输入,
再如一个进行文件操作的函数,非法输入可能有:
文件不存在;目录不存在;
文件正在被其他程序打开;权限错误。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

考虑:有哪些正常输入?有哪些边界输入?
有哪些非法输入?就可以找出大多数等价类,
例如,一个函数,功能是把小写金额转换成大写,
输入是小写数字,输出是大写金额,
那么:

正常输入有:只有整数,只有小数,既有整数又有小数
边界输入有:整数部分很大,0.0,小数位数超过两位
非法输入有:空串,非数字,负数

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

"等价类"这个词是从测试的角度来说的,从开发的角度来看,
"等价类"与"功能点"具有对应关系,例如,字符串的Trim函数,
功能点有:

如果只有左边有空格,返回删除左边空格后的结果(等价类:左边有空格);
如果只有右边有空格,返回删除右边空格后的结果(等价类:右边有空格);
如果两边都有空格,返回删除两边空格后的结果(等价类:两边有空格);
如果两边都没有空格,返回原串(等价类:两边无空格);
如果是空串,直接返回(等价类:空串);
如果是空指针,直接返回(等价类:空指针);
"等价类"对应程序的一个"功能点",
如果程序的所有功能点都正确实现了,
那么这个程序的功能就肯定没问题。
程序员在写代码时肯定要想清楚程序的主要功能点,
否则代码无从写起,因此,如果程序员边编码边测试的话,
大部分等价类都是现成的。如果由测试部门做单元测试,
测试部门只能依据设计文档来测试,设计文档也会规定程

序的功能,
要不然就无从测起,同样可以说大部分等价类是现成的

相关文档
最新文档