软件黑盒测试心得与经验(七)-汇智动力

边界相关的错误

一个边界描述了程序的一个改变点,假定程序在边界的一边以某种方式做所有事,而在边界的另一边,它以不同的方式完成所有事。

边界相对立的两边的典型“东西”就是数据值。存在三种标准边界缺陷:

l  边界情况的处理不当

如果一个程序把任何小于100的两个数相加,不接收任何对于100的数,那么当你恰恰输入100时它会做何反应?它又该怎么做?

l  错误边界

规格说明表示,程序应该把任意两个小于100的数相加,同时不接收大于95的数。

l  边界外情况的错误处理

边界某一边的值是不可能,不可信,不能接收,或是预料之外的,没有为其编写任何处理代码。程序是否成功拒绝了大于100的值?或者是否当它获取了一个大于100的值时就会崩溃?

我们把边界的概念看得更广泛,边界描述了考虑一个程序以及它在其极限周围得行为得方式。存在很多种的极限:最大,最小,最新,最旧,最近,第一个等等。相同类型的缺陷可以伴随其中任何一种极限而产生,我们可以用相同或类似的观点考虑它们。

数值边界

有些数值边界是任意的,如大于100;而有些则要描述自然极限,如三角形的特征和子母的ASCII码等。

与一个边界相等

在一个列表中的所有元素可能相同,也可能不同。如果你试着对任一列表进行排序,会发生什么?如果列表由数字组成,当你尝试计算平均值,标准偏差,对称系数时又会发生什么?(以上是概要统计概念,按算法,对称系数可能会计算为0或引起被0除的错误。)

多种多样的边界

一个输入串可以长达80个字符么?如果你输入79、80或81个字符会如何?程序是否在每种情况下都接收你的输入?一个列表可以只是一个元素么?没有元素可以么?仅含一个数值的标准偏差又是什么呢?

空间中的边界

例如,如果一个绘图程序绘制了一个图形,并在其周围绘制了一个方框,那么该如何处理一个应当在方框外正确显示的点?

时间的边界

假定程序显示了一个提示,停留60秒等待你回应。然后,如果你没有输入内容就显示菜单,如果正当它开始显示菜单时,你开始输入内容,会发生什么?

假定你在计算机仍然在从磁盘中装入程序时按下空格键,发生了什么事?空格键是被发送给操作系统,为正在装载的程序进行了保存,还是仅仅因为预料之外而导致计算机崩溃?

硬件相关边界

如果一台主机可以连接100台终端,那么当你加入99,100,101台时会发生什么?如果你让100台终端同时登陆会怎样?

如果磁盘已经塞满了会如何?如果一个目录能保存1000个文件,当你尝试保存第999、1000、1001个的时候会发生什么?如果打印机有较大的输入缓冲区,当你的数据填满缓冲区,但是却还没有更多数据要传递时,会发生什么?当打印机缺纸或颜料用完了又会发生什么?

计算错误

程序计算一个数据得到了一个错误的结果。发生计算错误通常因为下面三种类型的原因:

l  很差的逻辑:

可能存在一个录入错误,开发人员可能会在编制程序时无意中错误简化了复杂关系地表达式,或者由于拼写错误或笔误导致。另外一种糟糕的情况则是设计错误,开发人员关于代码如何做地概念可能一开始就错了。

l  很差的算法:

如果1+1=1,可以理解为一种特殊逻辑,但是如果把它作为数值运算,恐怕是没有人会同意的。无论何时,一个错误的算法总不会得出正确的结果。

l  不精确计算:

由于使用了舍入的计算方法,很可能在计算时丢失精度。

汇智动力是以发展高、精、尖的创新业务设计和创意咨询为主要业务内容,致力于以高端人才带动整个产业的理念革新和方法进步,从而促进整个产业链的健康循环发展。汇智动力的合作客户包括中软、软通、中国电信、中国兵器、华为、腾讯、晨星、顺丰等行业翘楚,重视软件开发方法和软件质量评审,鼓励创意设计,寻求业务模式创新。

猜你喜欢

转载自blog.csdn.net/cdhuizhidongli/article/details/80538281