测试方法------白盒测试简介

来源:互联网 发布:python keybd_event 编辑:程序博客网 时间:2024/06/05 06:05

定义:白盒测试需要深入到软件的内部,去查看源代码,去分析程序的内部结构,如数据类型、算法、异常处理等。

应用领域:

a.设计某些方法以尽可能覆盖源代码所有分支,提高测试的覆盖率。

b.通过白盒测试找内存泄露。

c.对源代码进行静态分析找出某种极端情况下才会出现的问题。

分类:

a.静态分析:只是静态地分析程序的代码是否符合相应的编码规范或是检查程序里的逻辑错误。分为代码走查、

代码审查及技术评审(测试参与)。运用白盒测试工具(C++testLogiscope)来自动检测。

b.动态测试:实际运行被测软件来测试

边界值测试

1)数据类型的边界值:注意数据类型的边界值

eg:DOS平台C语言中各种数据类型的边界值

短整型:-32768~32767

整型:-32768~32767

长整型:-2147485648~2147483647

字符型:256

单精度型:-2147485648~2147483647

双精度型:-1.7*10308次方~1.7*10308次方

2)数组的边界值:注意数组类型的边界值,放止产生数组越界

内存溢出问题:

Eg:int a[5];

      for(i=0;i<=5;i++)

    scanf("%d",&a[i]);

     for(i=1;i<5;i++)

    printf("%d",a[i]);

第一个for循环事先在内存中只给a[5]分配了5个整型元素所占的空间,而在scanf输入时却要输入6个元素,那么多输入的元素存在哪?只能存在与数组a[5]相邻的内存空间,而这一空间是没有提前分配的,其中不一定存储什么样的数据,因此就比较危险,可能引起内存溢出的错误。

第二个for循环显然把a[0]这一数组元素漏掉了。

3)分支判断语句的边界值:注意边界等于值

逻辑驱动覆盖技术:

*程序的三种结构:顺序、分支和循环结构

a.语句覆盖测试:

b.分支覆盖测试:

c.条件覆盖测试:

d.分支-条件覆盖测试:

e.条件组合覆盖测试:

f:路径覆盖测试:

循环语句测试:

a.简单循环的测试重点

(1).循环变量的初值是否正确

(2).循环变量的最大值是否正确

(3).循环变量的增量是否正确

(4).何时退出循环

b.串接循环

c.嵌套循环

(1).当外循环变量为最小值,内层循环也为最小值时,运算的结果

(2).当外循环变量为最小值,内层循环为最大值时,运算的结果

(3).当外层循环为最大值,内层循环为最小值时,运算的结果

(4).当外层循环为最大值,内层循环为最大值时,运算的结果

(5).循环变量的增量是否正确

(6).何时退出内循环

(7).何时退出外循环

 

0 0
原创粉丝点击