软件测试(二)-经典测试技术-静态测试

 

1. 静态测试 


在软件测试技术之中,静态测试是经典的测试技术一类。这里,我们先概 
要解释和说明一下静态测试技术。 
 静态测试不以测试数据的执行而是对测试对象的分析过程。 
 静态测试存在于软件生命周期的各级测试。如,需求分析、概要设计、 详细设计及组件测试、集成测试和系统测试的阶段或层级。 
 静态测试的方法,主要有人工(手工)评审静态分析(人工或机器自 动检测)两大类。通常可分别采用一种方法或混合使用两种方法。 
 静态测试中的评审(或审查)的基本思想和目标是对软件缺陷或错误的 一种预防措施。因而软件技术文档的审查是静态测试的主要任务之一。 
 静态测试的技术方法构成和说明。

如下图 1 所示。 

软件测试(二)-经典测试技术-静态测试_第1张图片

                                                  图 1 静态测试技术方法的构成 

-针对需求分析和概要设计进行的评审。评审在需求分析概要分析阶段 建立的评审基础上开展,有人工评审静态技术分析两个过程。 
-人工评审分为正式评审非正式评审。正式评审是执行对被测对象(文档或程序)检查的活动及过程(也称为技术评审);非正式评审主要采用对文档或程序的走查活动及过程。如,对某一个具体程序的走查。走查通常采用单独或集体审阅的方式进行。 

2. 静态测试内容及过程 静态测试内容及过程 


(1)静态测试内容 
静态测试的内容包含:测试需求分析、测试概要分析、测试详细设计、测试执行与测试结果分析 
(2)静态测试过程 

  • 进行测试需求分析:这是静态测试过程的首个阶段,将确定测试的需求,建立起测试基础与评审基础。 
  • 进行测试概要设计:在测试需求分析基础上,完成对测试方案的制定。如,测试内容、测试目标、测试策略、测试方法等。 
  • 进行测试详细设计:这个阶段主要完成测试进程中,各项具体任务安排和实施的细节考虑。如,测试用例设计等。 
  • 测试执行与结果分析:根据静态测试的计划进行静态测试执行的过程,各项测试任务的完成,并提交测试工作交付物。 

3. 静态测试的实施与执行 

(1) 静态测试的实施 

静态测试通常采用两种策略:人工静态分析借用工具静态分析。 
人工静态分析发挥人的智力和具有的逻辑思维优势,在分析过程中也常借助专用的静态测试分析工具来辅助。目前,实际工作中基本都是采用两种方法的混合模式,既充分发挥了发挥人的智慧,又运用了机器(工具)分析的高效便捷。
(2) 静态分析的过程有别于编译过程 
编译的功能是不能替代测试的。虽然编译系统也能检查软件(程序)中的错 误,但其主要的作用是检查程序的语法等错误。这是因为编译系统并不具备软件测试的功能,并无针对性的去寻找特定的软件测试对象中的缺陷、错误的功效。
而测试通常是要通过执行测试用例来实现的。同时,编译是无法检测到程序的逻辑错误或缺陷的。 
(3) 代码检查 
代码检查的内容主要包括:代码走查桌面检查代码审查等活动及过程。
代码检查其功效是能快速找到软件缺陷或错误。测试业界实践表明,通过代码(通常是源代码)的走查过程,可检查到程序中 30-45%的程序逻辑设计及编码中的缺陷或者错误。代码检查在实际软件开发过程中被普遍采用,特别是针对组件(即
单元)测试。 


4.静态测试的结构分析方法 

(1)以图形方式表现程序内部结构 
静态结构分析主要以图形的方式来表达程序内部的结构关系。如,函数调用关系图,函数内部控制流图等。函数调用关系图是以直观的图形方式描述一个程序中各个函数的调用和被调用的关系; 函数内部控制流图以有向图来表达函数内部的程序控制逻辑。 

(2) 以程序的控制流图显示程序函数的逻辑结构 
程序的控制流图由多个节点和连接的边所构成。一个节点代表一条语句或数条语句,连接结点叫作边,边表示节点之间的控制流向。图 2 所示是一个控制流图的实例。 

软件测试(二)-经典测试技术-静态测试_第2张图片

                                                              图 2 一个程序控制流图 

 (3)检查项 
静态测试的检查项,主要有:代码风格和规则的审核;程序设计和结构的 
审核;业务逻辑的审核。 
(4) 代码的质量度量 
针对软件的可测试性、可读性(可维护性),通常有 3 种不同的代码质量度量 
参数。 
Line(行)复杂度。Line 复杂度是以代码的行数作为计算度量的基准。
Halstead(运算符与运算元)复杂度。Halstead 复杂度是以程序中使用到的运算符与运算元数量作为计数目标(直测指标),据此来计算程序的容量和工作量。 
McCabe(圈)复杂度。它是将程序流程图结构转化为有向图结构(见图 2),以图形(有向图)为基础来衡量软件或程序的复杂度度量。 
代码质量度量常常通过静态测试来获得,所以静态测试方法也称为静态分析,静态测试是对被测程序进行质量特性分析方法的总称。 
(5)检查与规范、标准的一致性 
通过静态测试工具可检查测试对象是否与应用的程序规范、标准的相一致,以检查软件程序是否遵循了大部分的编程规则与标准规范。以工具检查的优势是可快速并准确的帮助开发者与测试人员进行自动化检测过程,以发现被测对象与规范、标准的一致性(其后例举)。 

 

 

 

 

 

 
主要参考文献 
1.《软件测试教程(第 3 版)》,贺平,电子工业出版社,2014 
2. 范根检查法(Fagan inspection) 
* 范根检查法是一种正式的,结构化的评审方法。针对的评审对象包含软件开发生命周期中的需求说、
系统设计、测试样例程序代码等大部分的软件开发中的输出物。 

你可能感兴趣的:(软件测试)