案例白盒测试中的边界值测试
白盒测试中需要重点测试哪些边界值呢?总结起来有以下几点:
测试数据类型的边界值,如整型的范围、单精度数的范围等。
测试数组的边界值。
测试分支判断语句的边界值:如if(a>=0)中的a=0。
任何数据类型在内存中都是有一定的存储空间的。例如C语言分为DOS平台和Windows平台。Dos平台下的C语言中各种数据类型的存储范围如下表。
数据类型
长度
范围
短整型(short)
2B
-32768--32767
整型(int)
2B
-32768--32767
长整型(long)
4B
-2147485648--2147483647
字符型(char)
1B
256
单精度型(float)
4B
-2147485648--2147483647
双精度型(double)
8B
-*10308—*10308
Windows平台下的C语言中各种数据类型的存储范围如下表。
数据类型
长度
范围
短整型(short)
2B
-32768--32767
整型(int)
4B
-2147485648--2147483647
长整型(long)
4B
-2147485648--2147483647
字符型(char)
1B
256
单精度型(float)
4B
-2147485648--2147483647
双精度型(double)
8B
-*10308—*10308
如果是在Turbo C(DOS环境)里面定义了一个整型变量,就需要测试这个整型变量的数值是否超出了-32768—32767这个范围;而如果是在VC(Windows环境)里面定义了一个整型变量,就需要测试这个整型变量的数值是否超出了-2147485648—2147483647这个范围。
现看一个数据类型边界值测试的例子:
#incldue <>
void main()
{
int a=32765;
int b=3;
int c;
c=a+b;;
printf(“%d”,c);
}
假设该程序是用DOS环境下的Turbo C开发的,则求得的c值为32768超出了这个范围,当然不能正确打印。
启发:a和b作为两个整形变量,它们没有超出范围,而a和b计算之后的结果却超出了边界值,这也是程序员们经常犯的一个错误,要引起足够的重视。
当测试数组时要重点测试其边界值,防止产生数组越界的问题,请看下面的例子:
#include <>
void main()
{
int a[5];
int i=0;
for(i=0;i<=5;i++)
scanf(“%d”,&a[i]); //输入数组5个元素
for(i=1;i<5;i++)
printf(“%d”,a[i]); //打印数组5个元素
}
上面程序中循环时i的取值有问题。
第一个for循环:for(i=0;i<=5;i++),i值从0到5,赋给a[i]就变成了a[0]到a[5];而数组a[5]的范围却是从a[0]到a[4],没有a[5]这个元素,这就是越界问题。它会有什么后果呢?我
案例 白盒测试中的边界值测试 来自淘豆网www.taodocs.com转载请标明出处.