1、静态分析
静态分析不要求实际运行被测试的对象,通常和软件代码或者系统架构有关,静态分析是静态测试的重要组成部分。静态分析通常通过工具支持来完成,例如各种IDEA中的拼写检查工具,可以发现测试对象文档中的拼写错误,静态分析指的就是这类检查,其并没有运行测试对象。 静态测试与评审紧密联系,如果在评审前进行了静态分析,可以减少评审过程中需要检查的地方。由于静态分析通常由工具支持,因此工作量会比评审少很多
静态分析一般包括控制流分析、 数据流分析、 接口分析、 表达式分析。
### (1)控制流分析 控制流分析是使用控制流程图系统地检査被测程序的控制结构的工作。控制流按照结构化程序规则和程序结构的基本要求进行程序结构检査。这些要求是被测程序不应包含:
a) 转向并不存在的语句标号;
b) 没有使用的语句标号;
c) 没有使用的子程序定义;
d) 调用并不存在的子程序;
e) 从程序入口进入后无法达到的语句;
f) 不能达到停止语句的语句。
控制流程图是一种简化的程序流程图, 控制流程图由 “节点” 和 “弧” 两种图形符号构成。
(2)数据流分析
数据流分析是用控制流程图来分析数据发生的异常情况, 这些异常包括被初始化、 被赋值或被引用过程中行为序列的异常。数据流分析也作为数据流测试的预处理过程 。
数据流分析首先建立控制流程图, 然后在控制流程图中标注某个数据对象的操作序列, 通历控制流程图, 形成这个数据对象的数据流模型, 并给出这个数据对象的初始状态, 利用数据流异常状态图分析数据对象可能的异常。
数据流分析可以査出引用未定义变量、对以前未使用的变量再次赋值等程序错误或异常情况。
(3)接口分析
接口分析主要用在程序静态分析和设计分析,接口一致性的设计分析涉及模块之间接口的一致性以及模块与外部数据库之间的一致性,程序的接口分析涉及子程序以及函数之间的接口一致性, 包括检査形参与实参的类型、数量、维数、顺序以及使用的一致性。
(4)表达式分析
表达式错误主要有以下几种: 括号使用不正确, 数组引用错误, 作为除数的变量可能为零, 作为开平方的变量可能为负, 作为正切值的变量可能为π/2 , 浮点数变量比较时产生的错误。
此外, 静态分析还可以完成下述工作: a) 提供问接涉及程序缺陷的信息:
1) 每一类型语句出现的次数;
2) 所有变量和常量的交叉引用表;
3) 标识符的使用方式;
4) 过程的调用层次;
5) 违背编码规则;
6) 程序结构图和程序流程图;
7) 子程序规模、调用/被调用关系、扇入/扇出数。
b) 进行语法/语义分析, 提出语义或结构要点, 供进一步分析。
c) 进行符号求值。
d) 为动态测试选择测试用例进行预处理。
静态分析常需要使用软件工具进行,例如C++Test、Jtest、TestBed等单元测试工具,静态分析是在程序编译通过之后, 其它静态测试之前进行的,一般静态分析测试报告中会描述违反编码规则数、扇入扇出数大于X的个数等。
2、文档审查
一、软件文档的类型
软件测试员通常不限于进测试软件,而要负责组成整个软件产品的各个部分。保证文档的正确性也在职责范围之内。
文档测试:保证该文档包含应有的额所有材料,全部内容从技术角度讲准确无误,还要进行拼写检查和磁盘病毒扫描(为了得到好的评价)。
以下是可以归类于文档的软件组成部分:
- 包装文字和图形 。包括盒子、纸箱和包装纸。文档可能包含软件的屏幕抓图、功能列表、系统要求和版权信息。
- 市场宣传材料、广告以及其他插页。是指用于促进相关软件销售的重要工具,同时提供补充内容和服务联系方式等。
- 授权/注册登记表。这是客户注册时填写并寄回的卡片,也可以作为软件的一部分,显示在屏幕上让用户阅读、认可,并完成联机注册。
- EULA。代表最终用户许可协议。这是要客户同意条款的法律文书,其中要求用户同意不得复制软件,如果受到软件缺陷的侵害,也不得向生产厂商起诉。
- 标签和不干胶条。可能出现在媒体上、包装盒或者打印材料上。它们还包括序列号不干胶条和EULA信封的标签。
- 安装和设置指导 。有时信息直接打印咋磁盘上,也可以印在CD袋或者查到超薄型CD盒中,对于复杂软件,还可以是完整的手册。
- 现在大多数软件附带简明的“入门”类小手册。而详细信息变成了联机形式。两级手册可以发布在软件媒体、网站或者两者都有。
- 联机帮助。联机帮助一般可以和用户手册互换使用,有时甚至取代用户手册。联机帮助有索引和搜索功能,用户查找多所需信息更加容易。
- 指南、向导和CBT(计算机基础训练)。这些工具讲编程代码和书写文档融合在一起。它们一般是内容和类似宏的高级编程的混合体,通常混绑在联机帮助系统中。用户可以提出问题,然后由软件一步步引导完成任务。
- 样例、示例和模板 。
- 错误提示信息 。
二、文档测试的重要性
好的软件文档以下述3种方式确保产品的整体质量: 1、提高易用性。 2、提高可靠性。可靠性是指软件稳定和坚固的程度。 3、降低支持费用。用户有麻烦或者遇到意外情况就会请示公司的帮助。这是很贵的。好的文档可以通过恰当的解释和引导用户解决困难来预防这种情况。
三、审查文档时要找什么
注意:仔细阅读、按照每个步骤操作,检查每个图像,尝试每个示例。如果有简单的代码,测试代码是否按照描述的方式运行。 以下是构建文档测试用例基础的简化检查清单:
1、通用部分:听众、术语、内容和主题。
2、正确性:是否紧扣事实,逐步进行。
3、检查的内容:图表和屏幕抓图、样例和示例、拼写和语法。