在本节中,我们将了解静态测试,它用于在不执行代码的情况下检查应用程序。我们还了解静态测试概念,为什么使用静态测试,如何执行它,静态测试的不同技术,静态测试的优势以及各种静态测试工具。
1. 静态测试简介
静态测试是一个验证过程,用于在不实现应用程序代码的情况下测试应用程序。这是一个具有成本效益的过程。
为了避免错误,我们将在开发的初始阶段执行静态测试,因为它更容易识别错误来源,并且可以轻松修复。
换句话说,我们可以说静态测试可以手动完成,也可以在工具的帮助下完成,通过在开发的早期阶段发现错误来提高应用程序的质量,这也称为验证过程。
在执行静态测试时,我们可以执行以下一些重要活动:
注意:静态测试是在白盒测试阶段执行的,开发人员在将代码交给测试工程师之前检查代码的每一行。 |
静态测试还有助于我们识别动态测试可能无法发现的错误。
2. 为什么我们需要执行静态测试?
我们可以执行静态测试以满足以下几个方面:
- 我们可以使用静态测试来提高开发效率。
-
如果我们对应用程序执行静态测试,我们可以在早期阶段找到检测并轻松修复它们。
-
使用静态测试将降低测试成本、开发时间和时间。
3. 我们可以在静态测试中测试哪些不同的功能?
我们可以测试静态测试中的各种测试活动,具体如下:
- BRD [业务需求文档]
-
功能或系统要求
-
单元用例
-
原型
-
原型规范文档
-
测试数据
-
数据库字段字典电子表格
-
文档/培训指南/用户手册
-
测试用例/测试计划策略文档
-
可追溯性矩阵文档
-
性能测试脚本/自动化
4. 当我们进行静态测试时?
要执行静态测试,我们需要遵循以下步骤:
步骤1:为了全面审查应用程序的设计,我们将执行检查过程。
步骤2:之后,我们将对每个正在审核的文档使用清单,以确保完全涵盖所有审核。
我们还可以在执行静态测试时实现几个活动,下表对此进行了讨论:
5. 为什么我们需要静态测试?
每当我们在测试应用程序或软件遇到以下情况时,我们都需要静态测试:
- 动态测试非常耗时
-
早期阶段的缺陷/错误识别
-
动态测试成本高昂
-
增加软件的大小
动态测试非常耗时
我们需要静态测试来测试应用程序,因为动态测试是一个耗时的过程,即使动态测试识别了错误并提供了有关错误的一些信息。
早期阶段的缺陷/错误识别
当我们开发软件时,我们不能完全依赖动态测试,因为它会在后期发现应用程序/软件的错误或缺陷,因为程序员需要大量的时间和精力来修复错误。
动态测试成本高昂
我们需要对软件产品进行静态测试,因为动态测试比静态测试更昂贵。在动态测试中涉及测试用例的成本很高,因为测试用例是在初始阶段创建的。
我们还需要保留测试用例的实现和验证,这需要测试工程师花费大量时间。
增加软件的大小
每当我们测试软件时,它都会增加软件产品的大小,由于代码覆盖率的生产力降低,我们无法处理。
这就是为什么我们需要静态测试,以便在软件开发生命周期的早期摆脱错误或缺陷。
6. 静态测试的目标
执行静态测试的主要目标如下:
- 静态测试将减少生产中的缺陷。
-
静态测试将尽早识别、预测和修复错误。
-
它用于节省时间和成本。
- 它用于在SDLC的早期阶段识别缺陷,在那里我们可以轻松修复它们。
7. 成功的静态测试过程的一些有用点
以下准则可帮助我们在软件测试中执行成功的静态测试过程。
- 我们可以通过示例培训参与者。
-
如果我们删除测试执行中的主要延迟,测试成本和时间可以减少。
-
我们可以根据项目文化保留正式的流程。
-
我们只能强调重要的事情。
-
众所周知,软件演练和评审通常合并到同行评审中;因此,我们可以明确计划并跟踪审查活动。
-
我们可以解决客户的问题。
8. 静态测试技术
静态测试技术为提高软件开发的质量和效率提供了很好的方法。静态测试技术可以通过两种方式完成,如下所示:
审查
在静态测试中,审查是一种实现的技术或过程,用于查找应用程序中可能的错误。在审查过程中,我们可以轻松识别和消除各种支持文档中的故障和缺陷,例如SRS
[软件需求规范]。
换句话说,我们可以说静态测试中的审查是所有团队成员都将了解项目进度的地方。
在静态测试中,审查可以分为四个不同的部分,如下所示:
让我们一一详细了解它们:
- 非正式审阅, 在非正式审阅中,文档设计者将内容放在查看者面前,每个人都发表自己的观点;因此,在早期阶段会承认错误。
- 演练 ,通常,演练评审用于由技术人员或专家执行,以验证错误。因此,在开发或测试阶段可能没有问题。
- 同行评审, 在同行评审中,我们可以检查彼此的文档以查找和解决错误,这通常是在团队中完成的。
- 检查, 在审查中,检查本质上是由上级机构验证文档,例如,验证SRS [软件需求规范]文档。
静态分析
另一种静态测试技术是静态分析,它用于包含由开发人员建立的代码质量评估。
我们可以使用不同的工具来执行代码的分析和评估。
换句话说,我们可以说开发人员开发的代码是使用一些工具分析的结构错误,这可能会导致缺陷。
静态分析还将帮助我们识别以下错误:
- 无作用程序代码
- 未使用的变量
- 无限循环
- 语法不正确
- 具有未定义值的变量
在静态测试中,静态分析可以进一步分为三个部分,如下所述:
数据流:在静态分析中,数据流连接到流处理。
控制流:通常,控制流用于指定命令或指令的实现方式。
循环复杂度:它是对程序复杂度的度量,主要与程序控制流图中独立路径的数量有关。
9. 用于静态测试的工具
在静态测试中,我们市场上有几种工具,但在这里我们讨论的是最常用的工具,如下所示:
- CheckStyle
-
SourceMeter
-
Soot
CheckStyle
它是一种开发工具,用于帮助开发人员编写遵循编码标准的 Java 代码。CheckStyle
工具可自动执行检查 Java 代码的过程。
它是一个高度配置的工具,几乎可以支持任何编码标准。Google Java Style,Sun代码约定是那些配置文件,CheckStyle支持这些文件。
CheckStyle的功能
以下是 CheckStyle 最常见的功能:
- 它可以检查我们源代码的各种特征。
-
CheckStyle 代码能够验证代码布局和格式问题。
-
它还可以帮助识别方法设计问题、类设计问题。
SourceMeter
它是用于各种编程语言(如C / C++,C#,Java,Python和RPG项目)的特定静态源代码分析的高级工具。
在SourceMeter工具的帮助下,我们可以轻松地从源代码中识别正在开发的系统的薄弱点。
具有SourceMeter部分功能的免费版本可用于所有编程语言。
在SourceMeter中,我们可以使用分析的输出,分析源代码的质量,以定向的方式增强和发展短期和长期。
SourceMeter的特点
SourceMeter工具最常用的功能如下:
- 它提供最精确的编码错误检测。
-
SourceMeter工具将提供深入的静态代码分析。
-
它在第三方集成的帮助下改进了用户界面。
-
它将提供独立于平台的命令行工具。
Soot
它是一个Java优化框架,这意味着它是一个用于分析和转换Java和Android应用程序的框架,我们可以在其中测试以下方面:
- 命名模块和模块化 jar 文件。
- 自动模块,这意味着模块是从模块路径中的 jar 重复创建的。
- 分解模块
- 解析Soot中的模块
Soot还可以生成各种输出格式的可能转换的代码,例如Android字节码,Java字节码Jasmin和Jimple。
10. 静态测试的优势
静态测试的优点如下:
- 提高产品质量,
静态测试将提高产品质量,因为它可以在软件开发的初始阶段识别缺陷或错误。
- 提高了动态测试的效率, 使用静态测试将提高动态测试的效率,因为执行静态测试后代码会变得更干净、更好。
正如我们上面所理解的,静态测试需要一些努力和时间来生成和保持高质量的测试用例。
- 降低 SDLC 成本, 静态测试降低了 SDLC 成本,因为它在软件开发生命周期的早期阶段识别了错误。因此,更改产品并修复它们需要更少的辛勤工作和时间。
- 即时评估和反馈, 静态测试为我们在开发软件产品的每个阶段提供软件的即时评估和反馈。
- 跟踪错误的确切位置,当我们执行静态测试时,与动态测试相比,我们可以轻松识别错误的确切位置。
11. 概述
在静态测试部分,我们学习了以下主题:
- 静态测试用于在软件开发周期 [SDLC] 的早期阶段识别故障。
-
我们已经了解到静态测试不能替代动态测试,因为这两种测试都识别不同的错误类型。
-
我们已经了解了静态测试的目标。
-
在静态测试中,审查是测试应用程序的有效方法,因为审查有助于识别错误并识别设计缺陷、缺失的需求和不可维护的代码等。
-
我们已经了解了几种静态测试工具,这些工具有助于我们提高软件产品的测试性能。
|