测试活动 (Open Source)

组织 → 资产 → 测试活动 → 测试 → 发现项

概述

在 DefectDojo 的产品层级结构中,测试活动(Engagement)是以时间或流水线为边界的容器,代表特定产品内一组相关测试的集合。如果您安排了一项计划中的测试工作,无论是例行性质还是一次性的,测试活动都能为您提供一个存放所有相关结果的地方。

测试活动的示例包括:

  • 一次性渗透测试
  • 按月或按季度进行的定期扫描
  • 漏洞赏金审查周期
  • CI/CD 流水线运行(适用于将每次流水线运行视为独立测试活动的团队)
  • 代码发布周期(例如“v4.2 版本发布安全审查”)

测试活动类型

DefectDojo 支持两种测试活动类型:交互式(Interactive)CI/CD。这些类型决定了测试通常是如何创建的,以及扫描结果是如何导入的。

交互式测试活动通常由工程师执行。交互式测试活动侧重于在应用程序运行期间对其进行测试,可以使用自动化测试、人工测试人员,或任何与应用程序功能进行“交互”的活动。

CI/CD 测试活动用于与 CI/CD 流水线的自动化集成。CI/CD 测试活动旨在作为自动化操作导入数据,由发布流程中的某个步骤触发。

类别交互式测试活动CI/CD 测试活动
主要用例手动或临时性的安全测试流水线内自动化、定期的安全测试
持续时间有时间限制,持续时间有限可能持续时间无限
频率周期性或一次性持续进行或按提交触发
工作流程人工测试人员运行工具 → 手动导入结果流水线运行工具 → 自动将结果推送至 DefectDojo
结果导入方式通过界面或 CLI 手动上传通过自动化方式进行 API 驱动的导入(例如 CLI、连接器、定时任务、流水线脚本)
典型测试类型渗透测试、红队演练、人工评估静态分析、依赖项扫描、容器扫描

测试活动数据

作为组织测试活动的容器,测试活动可以存储或跟踪各种数据:

  • 目标开始和结束日期
  • 描述和范围说明
  • 状态(进行中、计划中、已完成等)
  • 负责人/主导人
  • 关联的测试(例如扫描、渗透测试、人工测试等)
  • 发现项及发现项类型(例如活动、已缓解、风险已接受、重复等)
  • 威胁模型或风险接受信息
  • 标签
  • 文件和备注
  • Jira 项目设置
  • 环境详情(例如预发布环境与生产环境)
  • 构建 ID(如果与 CI/CD 关联)
  • 该测试活动内以往测试的历史数据

访问测试活动

测试活动可通过侧边栏访问。子菜单提供了对活动中的测试活动和所有测试活动的访问入口,同时还可以选择按产品、测试类型和环境来查看测试活动。

image

此外,也可以通过顶部栏中“测试活动”选项的子菜单,访问特定产品内的测试活动。

image

权限

在对象层级结构中,测试活动位于产品之下、测试之上。因此,对某个产品的访问权限会自动授予对该产品内所有测试活动的访问权限。测试活动没有独立的访问控制列表。

使用测试活动

创建测试活动

创建测试活动有多种方式。每种方式都要求您先创建一个产品来容纳该测试活动。

创建产品后,您可以在该产品导航栏的“测试活动”部分添加新的交互式或 CI/CD 测试活动。

image

每个测试活动都必须定义以下字段:

  • 类型(交互式或 CI/CD)
  • 唯一名称
  • 目标开始和结束日期
    • 这将决定该测试活动在日历部分中的显示位置
  • 产品
  • 状态

测试活动状态

测试活动在创建时可以被标记为不同的状态。之后也可以在测试活动的设置中更改该状态。

测试活动可以具有以下任意一种状态:

  • 未开始
  • 已阻塞
  • 已取消
  • 已完成
  • 进行中
  • 已暂停
  • 已排期
  • 等待资源

将测试活动的状态更改为“已完成”意味着大多数写操作(例如添加测试、导入扫描)将变得不可用或被隐藏。其他状态不会对测试活动的功能产生实质性影响,主要仅用于筛选/信息展示目的。

编辑测试活动

在测试活动的设置中点击 编辑 按钮即可对其进行编辑。所有可编辑的字段在创建测试活动时同样可用。

复制测试活动

您可以通过导航到某产品内的测试活动列表,并在要复制的测试活动旁边的 ⋮ 三点菜单中点击 复制 按钮,轻松复制测试活动。这将在父产品内创建原测试活动的完全副本,包括其中的元数据、测试和发现项。

image

关闭测试活动

要关闭测试活动,请导航到某产品内的测试活动列表,并在所选测试活动的 ⋮ 三点菜单中点击“关闭”。

image

关闭后,测试活动的状态将变更为“已完成”。尽管如此,大多数写操作(例如添加测试、导入扫描)仍然可用。

关闭测试活动不会改变其所有测试中发现项的状态。发现项会根据自身的生命周期继续保持打开、已缓解或风险已接受的状态,并且仍可用于查看和生成报告。

如果该测试活动已与某个 Jira Epic 关联(参见 Jira 集成:启用测试活动 Epic 映射),关闭该测试活动将触发一个异步任务,在您所连接的 Jira 空间中关闭相关联的 Jira Epic。

重新打开测试活动

如果测试活动已关闭,可以在“已关闭测试活动”表格中,通过其 ⋮ 三点菜单点击 重新打开 来重新激活该测试活动。这将使该测试活动重新变为活动状态,并将其状态恢复为“进行中”。

image

已过期测试活动

测试活动一旦超过其目标结束日期,就会过期。

测试活动过期不会对其功能产生直接影响,主要起到监控/通知机制的作用。

过期后,测试活动的“时长”字段中会出现一条红色的“逾期 X 天”提示,但不会限制该测试活动的任何功能。测试活动的状态仍会显示为“进行中”。

虽然默认未启用,但系统设置中有一个选项,可以在测试活动过期达到一定天数后自动将其关闭。

image

删除测试活动

在测试活动的设置中选择 删除 即可删除该测试活动。此操作无法撤销。

删除测试活动还会删除以下内容:

  • 与该测试活动关联的所有测试
  • 这些测试中的所有发现项
  • 任何已关联的 Jira Epic 映射(Epic 本身仍会保留在 Jira 中,但 DefectDojo 与 Jira 之间的关联将被移除)
  • 与该测试活动关联的所有备注和上传文件

出于审计目的,建议关闭已完成的测试活动,而不是将其删除。

操作结果是否可逆
关闭标记为非活动;数据保留;可重新打开是(可重新打开)
过期仅显示视觉提示;可选自动关闭;发送通知不适用
删除永久删除测试活动、测试、发现项、备注、文件以及任何 Jira Epic 映射(Epic 仍保留在 Jira 中)

Jira 集成

测试活动可以与已连接的 Jira 空间关联,从而将该测试活动内的发现项作为 Issue 推送到 Jira。有关设置 Jira 的完整指南,请参见 将 DefectDojo 连接到 Jira

测试活动 Epic 映射

当在产品的 Jira 设置中勾选 启用测试活动 Epic 映射 时,测试活动会作为 Epic 推送到 Jira。该测试活动内的发现项会作为该 Epic 下的子 Issue 推送,从而在 Jira 的 Epic → Issue 结构中映射出 DefectDojo 的测试活动 → 发现项层级结构。

有关此设置的更多信息,请参见 启用测试活动 Epic 映射

测试活动级 Jira 设置

默认情况下,测试活动的 Jira 设置继承自其父产品。但是,单个测试活动可以覆盖这些设置,以使用不同的 Jira 配置。以下设置可按测试活动进行自定义:

  • Project Key(项目密钥) — 将发现项路由到不同的 Jira 空间
  • Issue Template(Issue 模板) — 为从该测试活动创建的 Issue 使用不同的模板
  • Custom Fields(自定义字段) — 应用不同的自定义字段映射
  • Jira Labels(Jira 标签) — 使用特定于该测试活动的标签标记 Issue
  • Default Assignee(默认负责人) — 将 Issue 分配给不同的团队成员

这些设置可以在 编辑测试活动 页面中访问。有关更多详情,请参见 测试活动级 Jira 设置