计算机软考软件测评师考试小结(19)
白盒测试方法-静态测试
1. 代码检查法
(1) 目的:通过桌面检查,代码审查和走查方式,对以下内容进行检查
l 检查代码和设计的一致性
l 代码对标准的遵循、可读性
l 代码逻辑表达的正确性
l 代码结构的合理性
l 程序编写与编写标准的符合性
l 程序中不安全、不明确和模糊的部分
l 编程风格问题等
(2) 代码检查方式
方式名称 |
执行人员 |
检查内容 |
检查过程 |
桌面检查 |
程序员 |
对源程序代码进行分析、检验,并补充相关的文档,发现程序中的错误 | |
代码审查 |
程序员和测试员组成的审查小组 |
通过阅读、讨论和争议,以程序进行静态分析的过程 |
第一步:小组成员提前阅读设计规格书、程序文本等相关文档 第二步:召开程序审查会,开发人员读程序,审查小组讨论、发现、解决问题 |
走查 |
程序员和测试员组成的审查小组 |
通过逻辑运行程序,发现问题 |
第一步:小组成员提前阅读设计规格书、程序文本等相关文档 第二步:利用测试用例,使程序逻辑运行,记录程序的踪迹,发现、讨论、解决问题 |
(3) 代码检查项目(采用分析技术)
l 检查变量的交叉引用表:检查未说明的变量和违反了类型规定的变量,变量的引用和使用情况
l 检查标号的交叉引用表:验证所有标号的正确性
l 检查子程序、宏、函数:验证每次调用与所调用位置是否正确,调用的子程序、宏、函数是否存在,参数是否一致
l 等价性检查:检查全部等价变量的类型的一致性
l 常量检查:确认常量的取值和数制、数据类型
l 标准检查:检查程序中是否违反标准的问题
l 风格检查:检查程序的设计风格
l 比较控制流:比较设计控制流图和实际程序生成的控制流图的差异
l 选择、激活路径:在设计控制流图中选择某条路径,到实际的程序中激活这条路径,如果不能激活,则程序可能有错
l 对照程序的规格说明,详细阅读源代码,比较实际的代码,从差异中发现程序的问题和错误
l 补充文档
根据以上检查项目,可以编制代码规则,规范和检查表等作为测试用例
(4) 编码规范
程序编写过程中必须遵守的规则,规定代码的语法格式、语法规则,如排版、注释、标识符命名、可读性、变量、函数、过程、可测性、程序效率、质量保证、代码编辑、编译、审查、代码测试、维护、宏等各方面的编码要求
(5) 代码检查规则:对程序逻辑结构检查时,所规定的规则,形成
(6) 缺陷检查表:主要包括一些容易出错的地方和在以往工作中遇到的典型错误,形成表格形式
|
重要性 |
审查项 |
结论 |
文件结构 |
重要 |
头文件和定义文件的名称是否合理 |
|
2. 静态结构分析法
在静态结构分析中,测试者通过使用测试工具分析程序源代码的系统结构、数据结构、数据接口、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图等各种图形图表,清晰地标识整个软件的组成结构,便于理解,通过分析这些图表,检查软件有没有存在缺陷或错误;包括控制流分析、数据据流分析、接口分析、表达式分析
(1) 函数调用关系图:通过应用程序各函数之间的调用关系展示了系统的结构。列出所有函数,用连线表示调用关系,作用:
l 可以检查函数的调用关系是否正确
l 是否存在孤立的函数而没有被调用
l 明确函数被调用的频繁度,对调用频繁的函数可以重点检查
(2) 模块控制流图:由许多结点和连接结点的边组成的图形,其中每个结点代表一条或多条语句,边表示控制流向,可以直观地反映出一个函数的内部结构。
3. 静态质量度量法
(1) 软件质量:根据ISO/IEC9126 国际标准,包括以下六个方面:功能性(functionality)可靠性(reliability)可用性(usability)有效性(efficiency)可维护性(maintainability)轻便性(portability)
(2) 质量度量模型(从上到下)
l 质量因素(Factors):与分类标准的计算方式相似,依据各分类标准取值组合权重方法来计算,依据结果将软件质量分为四个等级,与分类标准等级内容相同
l 分类标准(criteria):对某一软件质量分为不同的分类标准,每个分类标准由一系列度量规则组成,每个规则分配一个权重,每个分类标准的取值由规则的取值与权重值计算得出,依据结果将软件质量分为四个等级:
v 优秀(excellent):符合本模型框加中的所有规则(可以接受)
v 良好(good):未大量偏离模型框架中的规则(可以接受)
v 一般(fair):违背了模型框架中的大量规则(可以接受)
v 较差(poor):无法保障正常的软件可维护性(不可以接受)
度量规则(Metrics):使用代码行数、注释频度等参数度量软件各种行为属性