静态测试与动态测试

测试简介

软件测试是一种确定实际软件产品是否满足指定要求并确保其无缺陷的技术。这样做是为了检查软件的质量。它需要使用手动或自动方法通过执行软件/系统组件来评估一个或多个感兴趣的属性。与实际需求相反,软件测试的目标是发现错误、差距和缺失的需求。软件测试有时被称为白盒和黑盒测试。简单地说,软件测试是验证被测应用程序 (AUT) 的过程。

静态测试

静态测试是一种软件测试,其中在不执行任何代码的情况下测试应用程序。为了发现错误,对代码、需求文件和文档设计进行手动或自动审查。静态测试的主要目标是通过在开发过程的早期检测缺陷来提高软件程序的质量。

静态测试需要手动或自动的文档评估。该评估在第一轮测试中进行,以便在 STLC 过程中及早发现缺陷。它查看工作文档并提供反馈。非执行测试有时也称为验证测试。

下面给出了工作文件的例子 -

  • 需求规格

  • 设计文件

  • 源代码

  • 测试计划

  • 测试用例

  • 测试脚本

  • 帮助或用户文档

  • 网页内容

以下是静态测试的主要目标 -

  • 静态测试将有助于减少制造缺陷。

  • 静态测试将尽快检测、预测和纠正问题。

  • 它被用来节省时间和金钱。

  • 它用于在 SDLC 过程的早期发现故障,当它们更容易修复时。

静态测试的优势

  • 产品质量有所提高。静态测试将通过在软件开发过程的早期识别故障或问题来提高产品质量。

  • 在静态测试之后,动态测试将变得更加高效。静态测试将提高动态测试的性能,因为当静态测试完成后,代码会变得更清晰、更好。静态测试需要大量的精力和时间来构建和维护高质量的测试用例。

  • SDLC 成本较低。由于它在软件开发生命周期的早期阶段识别缺陷,静态测试降低了 SDLC 成本。因此,更换和维修产品需要更少的精力和时间。

动态测试

在动态测试期间执行代码。它检查软件系统的功能、内存/CPU 使用和整体系统性能。结果,创造了术语“动态”。

此测试的主要目标是确保软件产品满足业务需求。这种类型的测试也称为执行技术或验证测试。

动态测试运行软件并将结果与预测结果进行比较。动态测试在所有级别的测试中进行,可以用黑盒或白盒来完成。

以下是动态测试的一些好处 -

  • 它验证软件应用程序的功能。

  • 动态测试的使用保证了软件产品的可靠性和一致性。

  • 它可以通过使用工具实现自动化,这些工具可以发现静态分析无法覆盖的测试过程中的麻烦和复杂的缺陷。

  • 它帮助测试团队识别运行时环境的弱点。

  • 与静态测试相比,动态测试最显着的优势是可以发现更多的错误。

主要区别

  • 静态测试是在没有执行程序的情况下进行的,而动态测试是在执行程序的情况下进行的。

  • 静态测试查找代码、需求文档和设计文档中的错误,而动态测试查看系统的功能行为、内存/CPU 消耗和系统的整体性能。

  • 静态测试侧重于缺陷预防,而动态测试侧重于错误检测和纠正。

  • 验证过程通过静态测试进行,而验证阶段通过动态测试进行。

  • 编译前进行静态测试,编译后进行动态测试。

  • 结构和语句覆盖是静态测试方法,而边界值分析和等价划分是动态测试技术。

技术基础上的差异

以下是静态测试技术的示例 -

  • 检查- 这里的主要目标是发现问题。版主引导代码演练。这是一种正式审查,其中创建检查清单以检查工作文档。

  • 演练- 演练是作者主持会议以解释产品的方法。参与者将有机会提问,并指定一名抄写员做笔记。

  • 技术审查- 以这种静态测试形式进行技术审查,以查看代码是否根据技术规范和标准编写。本节回顾了测试计划、测试策略和测试脚本。

  • 非正式审查- 非正式审查是一种静态测试,其中对文档进行非正式审查并提供非正式反馈。

  • 静态代码审查- 这是一种系统地审查软件源代码而不运行它的方法。它检查代码的语法、编码标准和优化等。白盒测试是另一种说法。这种审查可以在开发过程中的任何时间进行。

动态测试技术如下 -

  • 单元测试- 作为单元测试的一部分,开发人员测试单个单元或模块。它包括开发人员的源代码检查。

  • 集成测试- 在集成测试期间,开发人员将各个模块捆绑在一起并进行测试。目标是找出哪些模块在集成后按预期执行。

  • 系统测试- 系统测试检查整个系统以查看它是否符合需求规范文档中指定的要求。

静态测试动态测试
Static testing is a type of white box testing that is performed early in the development life cycle.另一方面,动态测试发生在开发过程的后期。
It is less expensive它更贵
Static testing covers more statements in less time than dynamic testing.动态测试中的语句阶段较少,因为它只覆盖了一小部分代码
It is completed prior to the deployment of the code.部署完代码就完成了。
It is carried out at the Verification Stage.它在验证阶段进行。
This method of testing doesn't involve running any code.代码的执行用于这种形式的执行。
Static testing evaluates both the code and the documentation动态测试识别软件系统瓶颈。
A checklist is generated for the testing procedure in Static Testing Methods测试用例是使用动态测试方法进行的。
In Static testing,Walkthroughs and code reviews are types of methods功能测试和非功能测试都是动态测试的一部分。

为了说明静态和动态测试之间的区别,以下是示例 -

静态测试技术 -

  • 首先,审查需求文件和设计文件。

  • 检查应用程序的图形用户界面

  • 检查应用程序的数据库结构。

动态测试技术 -

  • 测试各种页面的功能。

  • 检查结帐程序和可用的付款选项。

  • 正在测试不同页面之间的交互。