标签:新建 超过 输入 补充 运算 逻辑 保存 接下来 意义
在现实生活中,无论做什么,都会有一个“度”的概念。比如,我们知道在NBA总决赛的时候,很多运动员会特意在刚开始比赛不久就增加身体对抗去试探裁判员本场的尺度怎么样;还有MMA比赛的时候,一些有经验的运动员也会有意去吃对手一拳来试探下对手的力度怎么样。生活中有很多这种现象存在,清晰了这些度才能知道自己该如何做,即便是几岁的小朋友也是深谙此道的。而我们测试在对待系统的时候,更是要非常熟悉这些“度”在哪里。假设上篇文章里一样,如果三角形边长可以为无限大,那么我们去测试这个无限大,姑且不论测试方法,是否有意义呢?系统的存在永远是根据现实的需求出现的,而且很多时候,这个度是需要量化出来的,比如你ATM你单笔取钱的最大额度不能大于银行规定的单笔最大额,而不能超过你自己的存款额,这两个就是单笔取钱的度。
接下来进入正题,聊聊系统的度。就如“等价类”中说的,系统主要组成成分是函数,函数的三个关键是输入,逻辑运算和输出。系统的边界,也就由一些列的函数来构成。所以,边界值分析法是对等价类得到的用例的一个补充和细化。
在等价类取了任意值的基础上,再取最大值(max)、max-1、max+1、最小值(min)、min+1、min-1的用例。而且,我们不单单是需要考虑输入的边界,也需要考虑输出的边界。
长度、大小、空间、速度、重量等用数字表示的量
报表的前两行、最后两行
分页的前两页、最后两页
屏幕(边边角角的坐标)
时间,时间上的边界,除了输入输出,还有一个容易忽略的点。比如今天上线,那今天之前的历史数据,和今天之后的新建的数据一般都经过了测试,而一些昨天计算好了存在数据库中,然后上线了之后再去显示的数据就有可能有问题。举个例子说,输入三边,点击一个按钮显示三角形的周长。实现逻辑是,输入三边之后,将计算的结果保存到周长这个字段中,然后点击按钮显示周长的时候直接读取这个值。新需求改成,显示周长的时候都要乘以0.8。那么昨天输入的三边计算好了之后,今天去查看就可能还是原来逻辑的结果。
还有一些空间大小,比如上传功能,在文件为0,或者几个G的时候都需要仔细考虑下。
在实现过程中,定义类型的时候,也需要考虑类型的范围。比如下面这个例子,单独拿出来大家都能马上看出来,这个会出现死循环,但是在一个大的项目过程中,往往不会这么简单。
byte i = 10; while(i < 300){ i += 10; }
标签:新建 超过 输入 补充 运算 逻辑 保存 接下来 意义
原文地址:http://www.cnblogs.com/StephenChen/p/7126278.html