D6-07 8–10 分钟 重要程度:高

软件安全测试类型

软件安全测试题常考代码审查、静态测试、动态测试、模糊测试、突变测试、接口测试和误用例测试的边界。

一、必须记住

  • Code review 或 Peer review 由其他开发人员检查代码缺陷。
  • Fagan inspection 是正式代码审查流程,包括规划、概述、准备、审查、返工和追查。
  • Static testing 不运行软件,通过源码或编译产物分析安全性。
  • Dynamic testing 在运行环境中测试软件,生产环境要谨慎。
  • Fuzz testing 是动态测试,向程序提供无效、随机或特殊构造输入。
  • Mutation fuzzing 修改真实输入;Generational fuzzing 基于数据模型生成输入。
  • Mutation testing 修改程序本身,用来评估测试用例是否能发现变化。
  • Misuse case testing 关注组织不希望发生的行为。

二、核心概念

代码审查与静态测试

代码审查是人工同行评审,最正式形式是 Fagan inspection。静态测试不执行程序,可分析源码或编译后的应用,适合早期发现缺陷。

动态测试与模糊测试

动态测试在程序运行时观察行为。Fuzz testing 向输入接口投放异常资料以触发崩溃、边界错误或未处理例外,但通常无法完全覆盖复杂业务逻辑。

其他测试

Interface testing 检查 API、UI 和物理接口。Misuse case testing 从攻击者或错误使用者角度描述不希望发生的行为。Mutation testing 修改程序来验证测试套件是否能捕捉行为变化。

三、CISSP 判断规则

  • 问“不运行程序分析代码”,选 Static testing。
  • 问“运行程序观察行为”,选 Dynamic testing。
  • 问“无效、随机或特殊构造输入”,选 Fuzz testing。
  • 问“修改程序本身以评估测试质量”,选 Mutation testing。
  • 问“正式同行代码审查六步骤”,选 Fagan inspection。

四、常见陷阱

  • Fuzz testing 是动态测试的一种,不是静态分析。
  • Mutation testing 修改的是程序,不是只修改输入;Mutation fuzzing 才是从真实输入变异。
  • 误用例测试关注不希望发生的行为,不是普通用例测试。

五、英文关键字

Code review (代码评审) Peer review Fagan inspection (Fagan 检查) Static testing (静态测试) Dynamic testing (动态测试) Fuzz testing (模糊测试) Mutation fuzzing Generational fuzzing Mutation testing (变异测试) Interface testing Misuse case testing (误用案例测试) API testing

小测验

1. 不运行应用程序,只分析源码或编译后的应用以找安全问题,属于?

静态测试不执行软件;动态测试才是在运行环境中观察行为。

2. 向程序输入随机或特殊构造的无效资料以发现崩溃和边界错误,属于?

Fuzz testing 是动态测试技术,通过异常输入发现未处理缺陷。

3. 小幅修改程序,然后查看测试是否失败,用来评估测试套件质量,称为?

Mutation testing 修改程序本身;Mutation fuzzing 是从既有输入变异产生模糊输入。

本节进度

完成后会保存在当前浏览器。线上版可保存;不同手机、平板之间暂不自动同步。

尚未完成