首页 理论教育 静态测试与动态测试是什么?

静态测试与动态测试是什么?

时间:2023-06-27 理论教育 版权反馈
【摘要】:软件测试领域中另外两个术语是静态测试和动态测试。静态测试,是指不运行待测试的软件,而仅检查和审核待测试软件的代码、界面、文档等。案例1:Java程序的静态测试和动态测试。那么,白盒测试、黑盒测试、静态测试、动态测试这4种测试技术的关系如何?白盒测试可能是动态测试,也有可能是静态测试。

静态测试与动态测试是什么?

软件测试领域中另外两个术语是静态测试(static testing)和动态测试(dynamic testing)。

静态测试,是指不运行待测试的软件,而仅检查和审核待测试软件的代码、界面、文档等。代码测试,主要测试代码是否符合代码规范;界面测试,主要测试界面的设计是否与需求相符;文档测试,主要测试用户手册和需求说明是否符合用户的真实需求。

相对来说界面测试和文档测试更加容易一些,只需要细心地对照产品说明书就可以发现界面和文档中的缺陷。而代码测试相对复杂一些,需要按照企业内部规定的代码编写规范,逐个对照就以发现存在的缺陷。当然已经有一些很好的第三方软件,能够让测试人员方便地得到代码的静态测试结果。

下面通过案例进行说明。

案例1:Java程序的静态测试和动态测试。

上面的Java程序比较简单,它实现的功能为:在main()方法里传入两个float类型的数a和b,通过调用max()方法来取a和b中较大的那个值,并返回到main()方法。

一般把问题分为两种,一种是必须修改的,另一种是建议修改的。

(1)必须修改的问题有4个:

①程序没有注释。注释在程序中很重要,可以说程序是由代码和注释组成的。一般注释语句最好占代码总行数的1/5左右。之所以强调注释,是因为在软件开发过程中开发人员是需要交流的,程序不仅程序员自己看,也要让其他程序员以及测试人员阅读。如果想让别人很快了解程序实现的功能,就应加注释。合理的注释包括程序的基本信息如作者、版本号、创建日期等,以及主要功能模块的含义。

②max()方法没有返回值的类型。由于z是float类型的,可以在“max(float x,float y)” 前面加一个float类型的声明。

③精度不一致。注意“c=max(a,b);”语句,已知c是int类型,而max(float x,float y)返回的z值是float类型。不论两个类型是否可以强制转换,精度不一致导致的精度丢失问题必定是存在的。

④max()方法需要加static进行修饰。要想在main()方法体内直接调用max()方法,必须添加static进行修饰。

(2)建议修改的问题有2个:

①1行代码建议只定义一个变量。建议将“float a,b”分成两行进行定义,这样会让程序结构更加清晰。

②建议在程序中适当添加一些空行。比如在“b=2.0f;”后,可以添加一行空行,在main()方法和max()方法中间添加一行空行。空行并不占用内存空间,但可以让程序看上去更加清晰。变量定义和方法之间、方法与方法之间都可以添加空行。

基于此,对该程序进行适应的修改,代码如下:

(www.xing528.com)

动态测试,是指实际使用和运行待测试的软件,检查实际的输出结果是否和预期结果一致,所以判断一种测试是动态测试还是静态测试,只需要看是否运行了软件。

实际运行修改后的程序,看单精度的a和单精度的b,经过程序运行是否可以得到结果“Max is:2.0”,在Eclipse里执行该程序,效果如图8-2所示。

图8-2 程序运行结果

以上描述的是一个动态测试的过程。

那么,白盒测试、黑盒测试、静态测试、动态测试这4种测试技术的关系如何?

它们只是角度不同而已,从不同的角度去分类,就可能属于不同的测试技术。为了方便读者更好地理解,这里总结了4句话:

(1)黑盒测试有可能是动态测试,也有可能是静态测试。

(2)白盒测试可能是动态测试,也有可能是静态测试。

(3)静态测试可能是黑盒测试,也有可能是白盒测试。

(4)动态测试可能是黑盒测试,也有可能是白盒测试。

第1句话,当运行程序时只关注输入和输出,这时黑盒测试就是动态测试;当只看程序的界面、文档却不运行程序,这时黑盒测试就是静态测试。

第2句话,当运行程序时,还分析了程序的代码结构,这时白盒测试是动态测试;不运行程序,仅分析程序代码结构,这时白盒测试就是静态测试。

第3句话,只看程序的界面和文档,而不运行程序,静态测试就是黑盒测试;只看程序的代码结构,而不运行程序,静态测试就是白盒测试。

第4句话,运行程序时只关注输入和输出,动态测试就是黑盒测试;运行程序时,分析程序的代码结构,动态测试就是白盒测试。

总结一下,在实际的测试项目中,用到的测试技术包括,黑盒测试、白盒测试、静态测试、动态测试、静态黑盒测试、动态黑盒测试、静态白盒测试、动态白盒测试。具体采用哪种测试技术,应根据具体的项目合理选择。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈