什么是白盒测试中的静态测试?其包含哪些过程和方法?


前言

软件白盒测试中的静态测试是指不运行被测软件,仅通过分析或检查等手段达到检测的目的。在软件白盒测试中,静态测试常通过人工审查软件的详细设计、代码及相关文档,或通过成熟的静态分析软件(依据相应的编码规范或标准)来检测代码,从而达到识别软件潜在的问题和缺陷的目的。
静态测试一般包括:文档审查、软件静态分析(包括编码规范检测、软件质量度量)、代码审查、代码走查等。


一、文档审查

代码编写之前或初期,审查软件的架构和设计文档,检查文档编写是否符合相关行业的模板要求(如军工行业的GJB 438C,或各公司内部体系要求的模板),确保它们的逻辑清晰、可维护且满足软件需求。这有助于在软件开发早期发现并解决潜在的问题。

二、软件静态分析

软件静态分析通常是利用自动化工具来扫描代码,识别常见的编程错误、潜在的安全漏洞、代码复杂度问题等。这些工具可以提供详细的报告和改进建议,帮助开发人员快速定位和解决问题。这其中又可以细分为:编码规范/标准检查、软件质量度量。

1.编码规范检查

编码规范/标准检查,是一种软件工程中常用的技术和方法,它通过工具自动化检查的方法来判断软件代码是否满足某些编码规范/标准。常用的编码规范/标准包括:MISRA C/C++、GJB 8114、AUTOSAR C++等,相关介绍如下:
在这里插入图片描述
以Testbed软件为例,进行编码规范/标准检查可参考我之前写的文章《LDRA Testbed软件静态分析_操作指南》;
以C++Test软件为例,进行编码规范/标准检查可参考我之前写的文章《Parasoft C++Test软件静态分析操作指南_编码规范/标准检查》。

2.软件质量度量

软件质量度量是评估软件质量的过程,通常也是通过工具对代码进行自动化检查,涉及一系列指标和量化标准,以确保软件满足其预定的功能、性能、安全性和可靠性要求。常用的软件质量度量项包括:代码注释率、圈复杂度、扇入数、扇出数、调用层级数等。
以Testbed软件为例,进行软件质量度量可参考我之前写的文章《LDRA Testbed软件静态分析_软件质量度量》;
以C++Test软件为例,进行软件质量度量可参考我之前写的文章《Parasoft C++Test软件静态分析操作指南_软件质量度量》。

三、代码审查与代码走查

不管是代码审查还是代码走查,一般都需要一张代码审查/走查单,检查单上会列举一系列的检查项,以便审查/走查工作的开展。以下是一个代码审查单示例:
在这里插入图片描述

1.代码审查

代码审查的参与者主要是开发人员(也可以邀请部分测试人员),他们通过对代码的阅读、讲解、讨论,对程序进行静态审查。其基本流程如下:
在这里插入图片描述

2.代码走查

代码走查与代码审查类似,区别在于:1、代码走查的参与者不只是开发人员,一般还包括测试人员、系统工程师、项目经理等;2、代码走查不是简单的读程序和对照审查单进行检查,而是让走查人员“充当”计算机,设想出各种测试用例,并假想运行一遍,结合实际用例展开讨论、质疑。


总结

软件白盒测试中的静态测试是一种重要的软件测试方法,它通过对软件设计、体系结构和代码的详细审查,来发现潜在的错误和缺陷。静态测试的优势在于能够早期发现问题、提高代码质量和促进技术交流。在软件开发过程中,将静态测试与动态测试相结合,可以更全面地保障软件质量。

相关推荐

  1. 测试测试总结

    2024-07-14 01:08:03       37 阅读
  2. 软件测试

    2024-07-14 01:08:03       59 阅读
  3. 软件测试之黑测试测试

    2024-07-14 01:08:03       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 01:08:03       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 01:08:03       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 01:08:03       62 阅读
  4. Python语言-面向对象

    2024-07-14 01:08:03       72 阅读

热门阅读

  1. 什么是计算机数据结构的字典

    2024-07-14 01:08:03       23 阅读
  2. 7.13扣...

    2024-07-14 01:08:03       22 阅读
  3. COMX-P2020、COMX-P1022板卡

    2024-07-14 01:08:03       20 阅读
  4. C# Winform中ToolStripButton控件实战应用

    2024-07-14 01:08:03       25 阅读
  5. 【DDD】领域驱动设计概念深入探索

    2024-07-14 01:08:03       24 阅读
  6. MATLAB——运算符

    2024-07-14 01:08:03       20 阅读