当前位置: 首页 > news >正文

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

文章目录

  • 前言
  • 一、文档审查
  • 二、软件静态分析
    • 1.编码规范检查
    • 2.软件质量度量
  • 三、代码审查与代码走查
    • 1.代码审查
    • 2.代码走查
  • 总结


前言

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


一、文档审查

代码编写之前或初期,审查软件的架构和设计文档,检查文档编写是否符合相关行业的模板要求(如军工行业的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、代码走查不是简单的读程序和对照审查单进行检查,而是让走查人员“充当”计算机,设想出各种测试用例,并假想运行一遍,结合实际用例展开讨论、质疑。


总结

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

http://www.lryc.cn/news/399411.html

相关文章:

  • 搭建一个高并发的Web商品推荐系统,如何涉及软件架构?
  • 今日科技圈最新时事新闻(2024年7月12日
  • jenkins系列-09.jpom构建java docker harbor
  • 构造+贪心,CF 432E,Square Tiling
  • 【Linux】任务管理
  • 计算机网络——常见问题汇总
  • Linux的世界 -- 初次接触和一些常见的基本指令
  • [AI 大模型] Meta LLaMA-2
  • Python3.6.6 OpenCV 将视频中人物标记或者打马赛克或加图片并保存为不同格式
  • Readiris PDF Corporate / Business v23 解锁版安装教程 (PDF管理软件)
  • .NET MAUI开源架构_2.什么是 .NET MAUI?
  • 认知偏差知识手册
  • SpringBoot后端代码基本逻辑
  • Python学生信息管理系统的设计与实现
  • 最优雅的PHP框架 Laravel
  • log4j2的日志框架(详细,springboot和异步日志的实现)
  • taocms 3.0.1 本地文件泄露漏洞(CVE-2021-44983)
  • SpringBoot实战:处理全局异常
  • pdf只要前几页,pdf中只要前几页怎么处理
  • 实变函数精解【4】
  • 【BUG】Python3|COPY 指令合并 ts 文件为 mp4 文件时长不对(含三种可执行源代码和解决方法)
  • AI克隆声音,基于函数计算部署GPT-Sovits语音生成模型
  • DP讨论——建造者模式
  • 【JavaScript】解决 JavaScript 语言报错:Uncaught SyntaxError: Unexpected token
  • oracle数据库的plsql免安装版安装
  • stm32使用通用定时器生成pwm
  • 老物件线上3D回忆展拓宽了艺术作品的展示空间和时间-深圳华锐视点
  • 对于多个表多个字段进行查询、F12查看网页的返回数据帮助开发、数据库的各种查询方式(多对多、多表查询、子查询等)。
  • 护网HW面试常问——组件中间件框架漏洞(包含流量特征)
  • 招投标数据采集:为企业决策提供数据支持