什么是静态测试
静态测试是在不执行代码的情况下对软件应用进行测试的一种软件测试。静态测试的主要目标是通过在软件开发过程的早期阶段发现错误来提高软件应用程序的质量。
静态测试涉及对文档的手动或自动审查。这种审查是在测试的初始阶段进行的,以便在STLC的早期发现缺陷。它检查工作文档并提供重新测试,也称为非执行测试或验证测试。
工作文件示例-
- 需求规格说明
- 设计文档
- 源代码
- 测试计划
- 测试用例
- 测试脚本
- 帮助或用户文档
什么是动态测试?
在动态测试下,执行代码。它检查软件系统、内存/CPU u的功能行为,因此命名“动态” 。
动态测试主要目标是确认软件产品的工作符合业务需求。此测试也称为执行技术或验证测试。
动态测试执行软件并用预期结果验证输出。动态测试在所有级别的测试中执行,它可以是黑盒测试,也可以是白盒测试。
关键差异
- 静态测试是在不执行程序的情况下进行的,而动态测试是通过执行程序进行的。
- 静态测试检查代码、需求文档和设计文档以发现错误,而动态测试检查软件系统的功能行为、内存/CPU使用率和系统的整体性能。
- 静态测试是预防缺陷,而动态测试是关于发现和修复缺陷。
- 静态测试负责验证过程,动态测试负责验证过程。
- 静态测试在编译前进行,动态测试在编译后进行。
- 静态测试技术是结构化和语句复盖,而动态测试技术是边值分析和等价划分。

静态测试技术:
- 非正式评审:不遵循任何过程来查找文档中错误的评审类型。在这种技术下,只需审阅文档并对其进行非正式评论即可。
- 技术评审:由同行组成的团队,负责评审软件产品的技术规范,并检查其是否适合项目。评审主要集中在与软件相关的技术文档上,如测试策略、测试计划和需求规范文档。
- 演练:产品经理向团队解释产品,并记录审查意见
- 检查:主要目的是发现缺陷,会议由训练有素的主持人主持。评审人员有一个检查清单来评审工作成果,记录缺陷并通知参与者纠正这些错误。
- 静态代码审核:在不执行代码的情况下对软件源代码进行系统审核。这也称为白盒测试,这种检查可以在开发过程中的任何时候进行。
动态测试技术:

- 单元测试:在单元测试中,由开发人员测试单个单元或模块,包括由开发人员对源代码进行测试。
- 集成测试:将各个模块分组在一起,由开发人员进行测试。目的是确定哪些模块在集成后可以按预期工作。
- 系统测试:通过检查系统或应用是否符合需求规范文件,对整个系统进行系统测试。
另外,像性能、安全测试这样的非功能测试也属于动态测试的范畴。
静态和动态测试的区别:

静态测试 | 动态测试 |
---|---|
测试是在没有执行程序的情况下完成的 | 测试是通过执行程序来完成的 |
此测试执行验证过程 | 动态测试执行验证过程 |
静态测试是关于预防缺陷的 | 动态测试是关于发现和修复缺陷的 |
静态测试对代码和文档进行评估 | 动态测试会给软件系统带来错误/瓶颈。 |
静态测试涉及检查表和要遵循的流程 | 动态测试涉及用于执行的测试用例 |
此测试可以在编译前执行 | 动态测试在编译后执行 |
静态测试涵盖结构测试和报表复盖测试 | 动态测试技术有边值分析和等价划分。 |
查找缺陷和修复的成本更低 | 查找和修复缺陷的成本很高 |
投资回报将会很高,因为这一过程还处于早期阶段。 | 投资回报将会很低,因为这一过程涉及开发阶段之后 |
强烈推荐更多的评论和评论,以获得高质量 | 强烈建议质量好的缺陷越多越好。 |
需要大量会议讨论 | 相对而言,需要较少的会议 |