1. 静态测试 

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

如下图 1 所示。

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

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

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

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

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

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

(1) 静态测试的实施

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

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

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

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

图 2 一个程序控制流图

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

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

软件测试(二)-经典测试技术-静态测试相关推荐

  1. 小达同学软件测试第五讲-测试技术与应用(完结)

    关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己.  本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 系统测试 什么是系统测试,系统测试测试的是整个产品系统,进行系 ...

  2. 计算机虚拟仪器技术与测试技术相关的概念,测试技术与虚拟仪器

    测试技术与虚拟仪器 出版时间:2010年版 内容简介 <测试技术与虚拟仪器>介绍了传感与测试系统和基本测试电路,详细讲述了电阻式传感器.电感式传感器.电容式传感器及其他常用传感器工作原理. ...

  3. 【测试技术系列】【转载】软件测试修炼之道

    (原2013年8月18日博客,博客解封后重新发出) 文章出处:http://blog.163.com/tech_qa/blog/static/13017634920101114113413470/ 前 ...

  4. 2020年软件测试需要学什么技术?软件测试人员需要懂代码?软件测试工程师要经常加班吗?--华为十年测试老司机写给迷茫的你

    一:前言:谁的青春不迷茫 一直以来有很多初入测试职场或者想转行如软件测试的人,都会有很多的疑问,例如软件测试需要学什么技术?软件测试人员需要撸代码?软件测试工程师累吗?需要经常加班吗?软件测试一些工具 ...

  5. 【软件测试】8年资深测试,聊一聊测试技术的厚度......

    目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...

  6. [转]web测试技术经典案例

    本文转自:http://www.cnitblog.com/szdlinxie/archive/2006/12/17/20655.html 1. 概述 随着web应用的增多,新的模式解决方案中以web为 ...

  7. 软件测试实战(微软技术专家经验总结)--第五章(测试技术)读书笔记

    测试技术就是运行程序并判断其对错的具体方法.高效的测试要求测试人员根据软件产品和项目环境选择合适的测试技术,并灵活机动的运用.测试人员需要多样化的测试来调查复杂的软件,为了高质量的完成测试任务,测试人 ...

  8. 领测软件测试网42期(北京站)测试技术沙龙圆满成功

    2013年1月12日,元旦刚过,领测软件测试网(http://www.ltesting.net/),在微软亚洲研究院南楼(一号楼)举行了13年首场软件测试技术沙龙. 会议13:30举行,最早的软件测试 ...

  9. 软件测试实战(微软技术专家经验总结)--第四章(测试建模)读书笔记

    测试建模,以测试为目的建立产品模型.实际上,所有的测试都基于模型. 4.1从组合测试看建模的重要性 4.1.1组合测试简介 组合测试是一种测试用例生成方法.测试人员将被测对象抽象为一个受到多个变量影响 ...

最新文章

  1. 公司新来的同事一顿操作把大家整懵了,问了他的经历细思极恐。。。
  2. 51Nod 1242 斐波那契数列的第N项
  3. apache 下实现防盗链
  4. SGM:Sequence Generation Model for Multi-Label Classification(SGM)
  5. collections模块介绍
  6. MySQL删除数据表
  7. 笔记-项目采购管理-复习要点
  8. c语言程序设计实验实训教程公众号,C语言程序设计基础知道答案公众号
  9. 为什么很多设计师都会选择mac?
  10. java收银台打印小票_智慧收银台—小票打印机接入方式
  11. Java Mysql数据库创建视图、索引、备份和恢复
  12. Xocde一次版本升级遇到的问题 (Code Sign Error)
  13. 大文件下载插件webupload插件
  14. UltraEdit 注册机使用激活方法
  15. Python格式化字符串f-string概览
  16. odoo14 | 模块权限在清单加载顺序异常致group_id丢失bug解析
  17. 力扣5713. 字符串中不同整数的数目
  18. Json与List、Map、entity的互相转化
  19. PKM个人知识管理整理(一)
  20. 计算机中丢失storm.d,win10 64位电脑缺少storm.dll怎么办_win10玩暗黑破坏神2缺少storm.dll文件修复方法...

热门文章

  1. 洛谷—— P1785 漂亮的绝杀
  2. 迪赛智慧数——柱状图(极坐标扇图):2022年中国露营消费者会购买的露营装备
  3. mybatis学习五-mybatis的多表联合查询
  4. android 权限清单
  5. 疯狂java讲义第17章网络编程课后习题答案
  6. WPS DCOM组件word转PDF
  7. 欢太科技支招:怎么避免小孩游戏误充值?
  8. Unity结合HTC Vive开发之控制UI始终在视野前方
  9. Java基础之 contains 简单用法
  10. 大型网站软件系统的特点