广义单元测试方法

来源:互联网 发布:医药行业erp软件 编辑:程序博客网 时间:2024/05/16 01:00

 

        从测试的主体来说,单元测试可以分为两类,一是自动,靠工具自动完成;一是人工(人工介入测试过程)。

        从测试的方法来说,单元测试可以分为两类,一是静态(分析代码),一是动态(执行代码)。

        这样我们可以组合出四种测试的方法:

        人工静态分析:通过人工阅读代码来查找错误,一般是交叉阅读,即代码走查。

        自动静态分析:用工具自动扫描代码中的某些语法特征。只能发现语法特征错误,因为工具只能根据某些预设的语法特征进行扫描,通常会有大量的漏报或误报。

        自动动态测试:自动生成用例并执行,捕捉某些行为特征,例如异常、崩溃、超时。只能发现行为特征错误,因为工具再先进也不可能自动了解代码的功能。

        人工动态测试:人工设定程序的输入和预期的正确输出,执行程序,并判断实际输出是否符合预期。“人工”,是指用例的输入输出由人工设定,其他工作可以自动化。

       

       下面用一个简单的例子来介绍一下四种测试方法:

int Add(int a,int b)
{
   
return
a-b;
};

        这是一个加法函数,错误是把“+”号写成“-”。人工静态分析可能发现这个错误。自动静态分析没有效果,因为这里没有什么语法特征。自动动态测试也没有效果,因为它不会产生崩溃,超时之类的可以捕获的行为特征。人工动态测试,输入两个1,执行代码看输出是否为2,不为2的话就让工具自动报错,这样可以马上发现这个错误。

从前面的比较可以看出,只有人工动态测试才能发现代码中的大多数错误,而且,从发现代码错误的角度来说,其他三种方法与人工动态测试不具有互补性,因此,单元测试主要是指人工动态测试,后面所述的单元测试,就是指人工动态测试,而不再把其他三种方法视为单元测试的范畴。