软件测试方法——静态测试与动态测试 动态测试和静态测试

从测试方法的角度可以分为手工测试和自动化测试。

1、静态测试

所谓静态测试(statictesting)就是不实际运行被测软件,而只是静态地检查程序代码界面或文档中可能存在的错误的过程。

从概念中我们可以知道,其包括对代码测试、界面测试和文档测试三个方面:

对于代码测试,主要测试代码是否符合相应的标准和规范。

对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。

对于文档测试,主要测试用户手册和需求说明是否符合用户的实际需求。

其中后两者的测试容易一些,只要测试人员对用户需求很熟悉,并比较细心就很容易发现界面和文档中的缺陷。而对程序代码的静态测试要复杂得多,需要我们按照相应的代码规范模板来逐行检查程序代码。那么我们从哪里获得这个规范模板呢?其实没有一个统一的标准,每个公司内部一般都有自己的编码规范,比如《c/c++编码规范》,你只需要按照上面的条目逐条测试就可以了。当然很白盒测试工具中就自动集成了各种语言的编码规范,比如parasoft公司的C++Test就集成了C/C++的编码规范,我们只要点击一个按钮,这些工具就会自动帮助我们检测代码中不符合语法规范的地方,非常方便。

下面我们举一个实际的例子。

C语言程序的静态分析和动态分析

#include<stdio.h>

Max(float x, float y)

{

float z;

z=x>y?x:y;

return(z);

}

Main()

{

float a, b;

int c;

scanf(“%f,%f”&a,&b);

c=max(a,b);

printf(“Max is %dn”,c);

}

这段C语言编写的小程序,比较简单,实现的功能为:在主函数里输入两个单精度的数a和b,然后调用max子函数来求a和b中的大数,最后将大数输出。

我们现在就对代码进行静态分析,主要根据一些C语言的基础知识来检查。

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

必须修改的问题有三个:

(1)程序没有注释。注释是程序中非常重要的组成部分,一般占到总行书的1/4左右。程序开发出来不仅是给程序员看得,其他程序员和测试人员也要看得。有了注释,别人就能很快地了解程序实现的功能。注释应该包含作者,版本号、创建日期等,以及主要功能模块的含义

(2)子函数max没有返回值的类型。由于类型为单精度,我们可以在max()前面加一个float类型声明。

(3)精度丢失问题。大家注意“c=max(a,b)”语句,我们知道c的类型为整型int,而max(a,b)的返回值z为单精度float, 将单精度的数赋值给一个整型的数,c语言的编译器会自动地进行类型转换,将小数部分去掉,比如z=2.5,赋给c则为2,最后输出的结果就不是a和b中的大数,而是大数的整数部分。

建议修改的问题也有三个;

(1)Main函数没有返回值类型和参数列表。虽然main函数没有返回值和参数,但是我们组后将其改为void main(void),来表明main函数的返回值和参数都为空,因为在有的白盒测试工具的编码规范中,如果不写void会认为是个错误。

(2)一行代码只定义一个变量。

(3)程序适当加些空行。空行不占内存,会使程序看起来更清晰。

程序修改如下:

#include<stdio.h>

float max(float x, floaty)//返回两个单精度数中的大数

{

float z;

z=x>y?x:y;

return(z);

}

main()

{

float a;

float b;

软件测试方法——静态测试与动态测试 动态测试和静态测试

int c;

scanf(“%f,%f”&a,&b);

c=max(a,b);

printf(“Max is %dn”,c);

}

根据上面的分析,我们来编写一个简单的C语言代码规范

规范编号

规范内容

是否通过

1

一行代码只做一件事情

2

代码行的最大长度控制在70-80字,否则不便于阅读和打印

3

函数和函数之间,定义语句和执行语句之间加空行

4

在程序开头加注释,说明程序的基本信息;在重要的函数模快处加注释,说明函数的功能

5

低层次的语句比高层次的缩进一个tab(4个空格)

6

不要漏掉函数的参数和返回值,如果没有,用void表示

2.动态测试

动态测试(dynamictesting),指的是实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以判断一个测试属于动态测试还是静态的,唯一的标准就是看是否运行程序。

我们还是以刚才的那段代码为例,实际运行修改后的程序,输入1.2和3.5两个实数,按回车,得到结果3.500000,与我们预期的相符合。

这是一个动态测试的过程。可能有的读者会问,以上过程不也是黑盒测试的过程马?黑盒白盒、动态静态,它们之间有什么关系呢?

它们只是测试的不同角度而已,同一个测试,既有可能是黑盒测试,也有可能是动态测试;既有可能是静态测试,也有可能是白盒测试。

黑盒测试有可能是动态测试(运行程序,看输入输出),也有可能是静态测试(不运行,只看界面)

白盒测试有可能是动态测试(运行程序并分析代码结构),也有可能是静态测试(不运行程序,只静态察看代码)

动态测试有可能是黑盒测试(运行,只看输入输出),也有可能是白盒测试 (运行并分析代码结构)

静态测试有可能是黑盒测试(不运行,只察看界面),也有可能是白盒测试(不运行,只察看代码)

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/58279.html

更多阅读

如何通过软件测试妳的内存卡 内存卡测试软件

如何通过软件测试妳的内存卡——简介最近很多人说自己买的便宜的内存卡,用着用着就不能存东西了,或者甚至就不能再读了,也就是所谓的卡烧了,所以结合本人的经验特分享一下。本人以常见的4GB、8GB和16GB的内存卡为例为各位简单介绍一下。

台达plc编程软件使用方法 精 台达plc编程实例

台达plc编程软件使用方法 精——简介 PLC,Programmable Logic Controller,可编程逻辑控制器,可以通过数字或模拟式输入、输出控制各种类型的机械或生产过程。下面我们就简单的共同探讨一下台达的PLC编程软件的使用方法。台达plc编程软

Nero刻录软件使用方法 免费的光盘刻录软件

Nero刻录软件使用方法——简介Nero刻录软件主要用来刻录数据光盘或者音乐光盘,下面分别演示一下这两种光盘刻录方法。Nero刻录软件使用方法——工具/原料一张CD光盘或者DVD光盘Nero刻录软件Nero刻录软件使用方法——刻录数据光盘

从哪些角度进行手机软件测试? 苹果手机测角度软件

?对于当前背景下的手机软件测试来说,要做好手机软件测试,主要从以下几个角度进行测试:UI测试,功能模块测试,交叉事件测试,容量性测试,用户手册测试等。UI测试用户界面测试指测试用户界面的风格是否满足客户要求,文字是否正确,页

电子相册制作软件使用方法 如何用ppt制作电子相册

随着互联网的广泛运用,越来越多人都喜欢找各种相册制作软件制作电子相册,以让自己珍贵的相片能完美展示,但在茫茫的互联网世界里,很多时候辛辛苦苦找来了一款电子相册软件,下载下来,要不就是操作太复杂令人望而却步,要不就是相册效果太简单

声明:《软件测试方法——静态测试与动态测试 动态测试和静态测试》为网友无二八怪小青年分享!如侵犯到您的合法权益请联系我们删除