软件测试词典

首页

A

验收测试 可访问性测试 主动测试 实际结果 临时测试 老化测试 敏捷测试 全对测试 Alpha 测试 API 测试 Arc 弧测试 异常测试 断言测试 审计测试 自动化软件测试

B

向后兼容性测试 基线工件 基础路径测试 基础测试集 调试 行为测试 基准测试 Beta 测试 大爆炸测试 二进制可移植性测试 黑盒测试 自下而上测试 边界测试 分支测试 广度测试 Bug测试 构建验证 业务流程 业务需求

C

能力成熟度模型 捕获/重放工具 因果图 代码覆盖率 代码冻结 代码检查 代码审查 代码演练 基于代码的测试 代码驱动测试 无代码测试 比较测试 兼容性测试 合规性测试 并发性测试 条件覆盖测试 配置测试 一致性测试 上下文驱动测试 控制流路径 转换测试 正确性 覆盖项目 循环复杂度

D

数据完整性测试 数据驱动测试 数据流测试 数据库测试 调试 决策覆盖测试 缺陷 缺陷记录和跟踪 缺陷生命周期 Delta 发布 依赖性测试 深度测试 破坏性测试 开发环境 文档测试 域测试 耐久性测试 动态测试

E

模拟器 端到端测试 耐久性测试 准入标准 等价分区测试 错误 错误猜测 错误植入 详尽测试 退出标准 预期结果 探索性测试

F

故障转移测试 失败 故障 故障注入测试 可行路径 功能测试 功能分解 功能要求 功能测试 模糊测试 前端测试

G

玻璃盒测试 全球化测试 Gorilla 测试 灰盒测试 GUI 测试

H

测试工具 启发式测试 混合集成测试

I

实施测试 增量测试 独立测试 不可行路径 检查 安装/卸载测试 集成测试 接口测试 国际化测试 系统间测试 互操作性测试 隔离测试 问题

K

关键字驱动测试 关键绩效指标 已知问题

L

LCSAJ 测试 负载生成器 负载测试 本地化测试 逻辑覆盖率测试 循环测试

M

可维护性 手动测试 大型机测试 基于模型的测试 修改条件测试 模块化驱动测试 猴子测试 突变测试

N

负面测试 非功能性测试 非破坏性测试

O

操作测试 正交阵列测试

P

配对测试 成对测试 并行测试 部分测试自动化 被动测试 路径测试 同行评审 渗透测试 性能测试 试点测试 可移植性测试 积极测试 后置条件 前提条件 预测结果 优先级 流程周期测试 渐进式测试 原型测试

Q

质量保证 质量控制 质量管理

R

随机测试 恢复测试 回归测试 候选版本 发布说明 可靠性测试 需求测试 基于需求的测试 需求可追溯性矩阵 结果 重新测试 Review 审查 风险测试 风险管理 根本原因

S

安全性测试 健全性测试 可扩展性测试 场景测试 时间表 Scrum 测试 脚本 安全测试 模拟 冒烟测试 浸泡测试 峰值测试 软件需求规范 稳定性测试 状态转换 静态测试 统计测试 存储测试 压力测试 结构测试 结构化演练 存根 符号执行 语法测试 系统集成测试 系统测试 被测系统

T

技术评审 测试方法 测试自动化 测试基础 测试平台 测试用例 测试用例设计技术 测试套件 测试完成标准 测试完成报告 测试完成矩阵 测试数据 测试数据管理 测试驱动开发 测试驱动程序 测试环境 测试执行 测试管理 测试成熟度模型 测试计划 测试步骤 测试策略 测试工具 线程测试 自上而下的集成测试 全面质量管理 可追溯性

U

单元测试 无法访问的代码 可用性测试 用例测试 用户验收测试 用户界面测试

V

V 模型 验证测试 验证测试 虚拟用户 容量测试 漏洞测试

W

Web 应用程序测试 白盒测试 工作流测试

有用的资源

有用的资源 讨论


软件测试 - 模糊测试

软件测试主要侧重于确认软件的质量。模糊测试是一种测试方法,它将不正确、未预料到和临时的数据提供给软件,然后验证异常,即崩溃、可能的内存泄漏等。它于 1999 年由威斯康星大学的 Barton Miller 首次发现。

什么是软件模糊测试?

软件模糊测试主要是一种自动化测试方法,通过遵循非系统性方法来定义系统测试过程。在执行此类测试时,软件可能会遇到与输入数据集相关的多种类型的缺陷或错误。因此,模糊测试的过程包括向软件提供不正确、意外或任意数据,以确定其可能的安全问题和崩溃。

软件模糊测试的主要目标是确定攻击者可以利用的问题,即缓冲区溢出、SQL 注入等。它是软件测试的关键部分,因为它有助于识别在功能或单元测试时可能无法检测到的所有安全问题,例如性能瓶颈、内存泄漏等。这种类型的测试依赖于特定的工具和测试环境,这使得它成为一个昂贵且耗时的过程。此外,分配给模糊测试的测试人员应该经验丰富,并且对软件的架构、设计、协议、数据格式等有深入的了解。

软件模糊测试可以通过以下列出的不同方式执行 −

  • 文件模糊测试 −在这种类型中,无条理或不正确的数据作为输入被传递给文件解析函数,以识别诸如内存损坏、缓冲区溢出等问题。
  • 网络模糊测试 − 在这种类型中,无条理或不正确的数据作为输入被传递给网络协议,以识别诸如拒绝服务、其他安全问题等问题。
  • API 模糊测试 −在这种类型中,无序或不正确的数据作为输入被传递给应用程序接口 (API),以识别问题,如输入验证、其他安全问题等。

软件模糊测试的目标

软件模糊盒测试的目标列在下面 −

  • 模糊测试验证软件中的弱点。
  • 模糊测试确定安全问题和对软件的威胁。
  • 模糊测试在软件开发生命周期 (SDLC) 的早期阶段识别缺陷。

软件模糊测试的阶段

软件模糊测试的阶段列在下面 −

步骤 1 −确定要测试的系统,也称为测试团队的目标系统。

步骤 2 − 确定要输入到软件中以执行模糊测试的临时输入测试用例。

步骤 3 − 借助任意输入创建模糊数据。

步骤 4 − 通过在模糊数据的帮助下运行软件来执行测试用例。

步骤 5 − 使用随机输入执行软件后,评估测试结果以确定软件中是否遇到任何崩溃、内存泄漏等。

步骤 6 − 如果有偏差,则报告为缺陷。一旦修复,就可以确保软件质量更好。

软件模糊测试的类型

下面列出了不同类型的软件模糊测试 −

覆盖率引导模糊测试

在这种类型的模糊测试中,源代码在软件运行时进行评估。主要目的是使程序失败,使其崩溃,并不断添加新的测试用例。崩溃表示潜在错误。在覆盖率引导模糊测试时收集的详细信息可用于复制崩溃,以找到导致崩溃的代码部分。

行为模糊测试

这种类型的模糊测试以独特的方式运行。它还包括其他模糊测试,如变异模糊测试、Web模糊测试、生成模糊测试、智能模糊测试和协议模糊测试。

软件模糊测试期间检测到的缺陷类型

软件模糊测试期间检测到的不同类型的缺陷列于下方 −

  • 文件格式模糊测试
  • 字符模糊测试
  • 数字模糊测试
  • 应用程序模糊测试
  • 协议模糊测试

软件模糊测试的应用

可以使用软件模糊测试的不同应用程序列于下方 −

  • 区块链
  • 操作系统系统
  • API
  • 加密
  • 质量保证

软件模糊测试的优势

软件模糊测试的优势如下 −

  • 软件模糊测试可以自动化,从而可以更快、更有效地验证大量输入。
  • 软件模糊测试包括随机、无效和意外数据,可以检测在进行其他测试方法时可能无法检测到的缺陷。
  • 如果通过自动化执行,软件模糊测试可以具有成本效益。
  • 软件模糊测试从 SDLC 的初始阶段识别错误。
  • 软件模糊测试是一个动态过程,因为它可以用于各种系统和多种类型的输入,即 API、文件格式、网络协议等。

软件模糊测试的缺点

软件模糊测试的缺点如下 −

  • 软件模糊测试可能会产生大量的误报。
  • 模糊测试的范围有限,因为它只关注验证输入,可能无法验证软件中的所有类型的弱点,即并发条件和竞争。
  • 模糊测试没有提供深入了解软件的机会。
  • 模糊测试的范围有限,因为它只关注输入验证问题,可能不会测试其他问题,例如逻辑或安全错误。
  • 模糊测试可能会导致软件崩溃或挂起,之后可能无法继续测试,并且需要手动干预才能封面。

结论

至此,我们对软件模糊测试教程的全面介绍就结束了。我们首先描述了什么是软件模糊测试,软件模糊测试的目标是什么,软件模糊测试的阶段是什么,软件模糊测试有哪些不同类型,软件模糊测试期间检测到的不同类型的缺陷是什么,软件模糊测试可用于哪些不同的应用程序,软件模糊测试的优点是什么,软件模糊测试的缺点是什么。这使您具备了软件模糊测试的深入知识。明智的做法是继续实践您学到的知识并探索与软件测试相关的其他知识,以加深您的理解并拓展您的视野。