从这一节开始即将总结白盒测试的常用经典技术。前面详细总结了黑盒测试和一些常用的黑盒测试技术,但是都没有打开软件的代码进行测试,黑盒测试的概念就是针对白盒测试技术命名的,那么什么是白盒测试呢?白盒测试也称结构测试,白盒测试是针对被测单元内部是如何工作进行的测试,深入程序代码细节,它根据程序的控制结构设计测试用例,主要用于软件程序验证。
白盒测试又分为静态白盒测试和动态白盒测试。其中静态测试主要涉及代码走查和审查,就不在这里总结了,动态测试包括逻辑覆盖测试、路径覆盖测试和边界值测试等,当然分法还有好多,这里主要总结逻辑覆盖测试和路径覆盖测试。覆盖测试要以程序图和流程图辅助工具,所以在学习覆盖测试前要熟练掌握程序图和流程图的画法。
本节主要介绍流程图和流程图到程序图之间的转化。程序流程图是描述和分析软件控制流向的通用工具,利用程序流程图设计测试用例有助于分离程序的路径,进行覆盖统计,程序流程图的主要符号:
顺序:
条件判断:
先判断后循环:
先执行后判断循环:
下面看一段程序的代码,并分析画出其流程图:
#include <iostream.h>
void main()
{
inti,a[5]; //定义循环变量i,数列项n
longsum=0; //定义数列的和及临时变量
cout<<"请输入5个数,作为数列每项的值:"<<endl;
for(i=1;i<=5;i++)
{
cout<<"请输入第"<<i<<"个值:";
cin>>a[i];
}
for(i=1;i<=5;i++)
{
sum+=a[i];
}
cout<<a[1]<<"+"<<a[2]<<"+...+"<<a[5]<<"="<<sum<<endl;
}
流程图:
程序图:
由于程序流程图的知识很简单,所以本节就介绍这么一个非常简单的实例,图都可以对比画出来的,程序流程图在逻辑覆盖测试中非常重要,所以以后章节的总结中也会渗透程序流程图的实例。