51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3891|回复: 4
打印 上一主题 下一主题

等价类划分的基本方法

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-1-16 17:46:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通常从三个方面考虑程序的输入:正常输入,边界输入,非法输入。  
    正常输入:例如字符串的Trim函数,功能是将字符串前后的空格去除,那么正常的输入可以有四类:前面有空格;后面有空格;前后均有空格;前后均无空格。
    边界输入:上例中空字符串可以看作是边界输入,如果输入是一个指针的话,空指针也算是边界输入。再如一个表示年龄的参数,它的有效范围是0-100,那么边界输入有两个:0和100。
    非法输入:非法输入是正常取值范围以外的数据,或使代码不能完成正常功能的输入,如上例中表示年龄的参数,小于0或大于100都是非法输入,再如一个进行文件操作的函数,非法输入可能有:文件不存在;目录不存在;文件正在被其他程序打开;权限错误。
    一般情况下,只要考虑:有哪些正常输入?有哪些边界输入?有哪些非法输入?就可以找出大多数等价类,例如,一个函数,功能是把小写金额转换成大写,输入是小写数字,输出是大写金额,那么:
    正常输入有:只有整数,只有小数,既有整数又有小数
    边界输入有:整数部分很大,0.0,小数位数超过两位
    非法输入有:空串,非数字,负数
    "等价类"这个词是从测试的角度来说的,从开发的角度来看,"等价类"与"功能点"具有对应关系,例如,字符串的Trim函数,功能点有:
    如果只有左边有空格,返回删除左边空格后的结果(等价类:左边有空格);
    如果只有右边有空格,返回删除右边空格后的结果(等价类:右边有空格);
    如果两边都有空格,返回删除两边空格后的结果(等价类:两边有空格);
    如果两边都没有空格,返回原串(等价类:两边无空格);
    如果是空串,直接返回(等价类:空串);
    如果是空指针,直接返回(等价类:空指针);
    ……
    一个"等价类"对应程序的一个"功能点",如果程序的所有功能点都正确实现了,那么这个程序的功能就肯定没问题。程序员在写代码时肯定要想清楚程序的主要功能点,否则代码无从写起,因此,如果程序员边编码边测试的话,大部分等价类都是现成的。如果由测试部门做单元测试,测试部门只能依据设计文档来测试,设计文档也会规定程序的功能,要不然就无从测起,同样可以说大部分等价类是现成的。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-3-18 07:16:01 | 只看该作者
等价类用例的设计从功能元素的组合入手,看哪些组合是可以合并的归类的。你描述的实际上更象边界值测试和逆向用例的设计方法。用输入检测举例等价类划分用例设计,感觉不是很典型。

[ 本帖最后由 dawu 于 2008-3-18 07:18 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-3-25 17:24:46 | 只看该作者
有时候等价类与边界值在一些项目中,还是有相似之处的。至少这个对我有帮助。谢了,支持!!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-4-24 19:40:54 | 只看该作者
等价类不是有无效等价类和有效等价类;其中考虑输入的:数字,字母,中文,特殊字符,数学字符,文本字符,保留字7种么???等价类和边界值可以合并来减少用例的!~
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-4-25 12:03:34 | 只看该作者
不是很明白呀
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-7 05:34 , Processed in 0.077476 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表