问卷 (Open Source)

在 DefectDojo 中,问卷(Questionnaire)是一组可重复使用的问题,用于从开发人员、团队以及内部和外部利益相关者那里收集信息。它们可用于在工作开始前收集意见、确保个人和团队在工作推进过程中保持一致,并在工作完成后进行回顾性分析。

问卷模板

问卷模板定义了问卷的结构和内容,包括名称、描述以及关联的问题。创建问卷模板并不会自动使其可以接受回复。要收集回复,必须将问卷模板部署为通用问卷(General Questionnaire)关联问卷(Linked Questionnaire)

通用问卷与关联问卷

通用问卷与关联问卷在多个方面存在差异,包括分发方式、可回复的对象,以及回复的存储位置。

通用问卷关联问卷
需要发布不需要发布
需要设置到期日期只要测试活动仍处于活动状态就会保持有效
允许匿名回复不允许匿名回复
可在内部和外部共享仅可在内部共享
不允许更改已提交的回复允许更改回复
回复只有在到期后才可查看回复可立即查看
回复显示在"所有问卷"中回复显示在测试活动内
可以转换为测试活动已经关联到一个测试活动

问卷部署生命周期

问卷模板的生命周期会因部署类型不同而有所差异:

通用问卷 模板 → 已发布 → 接受回复 → 到期 → 可选择转换为测试活动

关联问卷 模板 → 关联到测试活动 → 接受回复 → 在测试活动处于活动状态期间保持有效

回复的分离

同一个问卷模板可以同时以通用问卷和关联问卷的形式多次部署。每次部署都会创建各自独立的一组回复。

如果同一个问卷模板既被部署为通用问卷,又被关联到某个测试活动,那么通过每种部署方式提交的回复会被独立存储,不会合并在一起。这样就可以在不同的场景下重复使用同一个问卷模板,同时保持各自的回复集相互独立。

访问问卷和问题

可以通过点击侧边栏中的问卷选项来访问问卷和问题。子菜单提供了对所有问卷所有问题的访问入口。

image

需要注意的是,只有具有超级用户(Superuser)权限的用户才能访问"所有问卷"和"所有问题"视图。只有超级用户可以创建问卷模板、创建问题以及部署问卷。不具有超级用户权限的用户仍然可以回复已与其共享的通用问卷,也可以回复其有权访问的测试活动中的关联问卷,但无法创建或管理它们。

问卷

“所有问卷"视图包含两个表格:

  • 问卷
    • 该部分包含所有已存在的问卷模板。
  • 通用问卷
    • 该部分包含当前所有开放接受回复的通用问卷。

这两个部分都可以按名称、描述或活动状态进行筛选。

问题

“所有问题"视图包含一个问题表格,列出了当前可添加到问卷中的问题。该表格也可以按每个问题的可选状态、内容或问题类型(例如文本类问题或多选类问题)进行筛选。

管理问卷模板

创建问卷

可以使用"所有问卷"视图中的 Create Questionnaire 按钮创建新问卷。

image

填写名称和描述后,可以选择创建不包含任何问题的问卷(问题可稍后添加),也可以立即添加问题。

立即向新问卷添加问题

如果选择立即添加问题,请从随后出现的下拉菜单中选择所有适用的问题。您也可以点击下拉菜单右侧的 + 号来创建一个新问题并将其添加到该问卷中。

image

选定所有适用的问题后,点击 Update Questionnaire Questions 即可将所有选定的问题添加到该问卷中。

向已有问卷添加问题

要向已有问卷添加问题,请在问卷表格中点击该问卷的名称,点击 Edit Questions,从下拉菜单中选择要添加到该问卷的任何新问题,然后点击 Update Questionnaire Questions

创建问题

可以使用"所有问题"视图中的 Create Question 按钮创建新问题。

image

此外,在决定要将哪些问题添加到某个问卷时,也可以通过点击下拉菜单右侧的 + 号来创建问题。

问题类型

创建新问题时,可以通过在下拉菜单中选择 TextChoice,将其设置为文本类问题或多选类问题。

允许多个答案和可选答案

多选类问题允许的最大答案数量为六个。勾选 Multichoice 复选框可以允许选择多个答案(仅适用于多选类问题)。问题也可以通过勾选相应的复选框标记为可选(Optional)

有关如何为多选类问题添加更多答案选项,请参阅 编辑问题 部分。

问题顺序

通过为问题指定一个顺序编号来确定其显示顺序。例如,如果某个问题的 Order 字段值为 1,该问题会显示在 Order 字段值为 2 的问题之上。

image

编辑问题

问题创建完成后,可以通过进入"所有问题"子菜单并点击要修改的问题来对其进行编辑。问题无法被删除。

需要特别注意,应避免编辑属于活动问卷的问题。如果某个问题的任何部分被更改(例如顺序、可选状态、更正拼写错误、添加新的可选答案等),而该问题属于一个已经收到回复的活动问卷,那么此前所有已提交的回复都将失效,需要重新提交回复。

编辑文本类问题

创建完成后,文本类问题只能修改顺序、可选状态以及问题的措辞。

编辑多选类问题

虽然多选类问题默认可提供的答案数量为六个,但在问卷创建完成后仍可增加该数量。具体操作为:在"所有问题"视图中点击该问题,点击 Choices 下拉菜单右侧的 + 号,添加新的答案,然后点击 Submit

image

image

新创建的选项不会自动添加到问卷中。要添加它,请点击 Choices 下拉菜单并选择新添加的选项。选项旁边会出现一个勾选标记,表明它现已被纳入该问卷的可选答案之中。

image

部署问卷

问卷模板成功创建后,即可部署以接受回复。部署流程会因问卷类型不同而略有差异。

通用问卷的部署

要部署通用问卷:

  1. 进入"所有问卷"视图。
  2. 点击通用问卷表格右侧的 + 号。
  3. 选择要部署的问卷。
  4. 设置到期日期。
  5. 点击 Add Questionnaire

共享通用问卷

部署完成后,可以通过点击通用问卷表格 Actions 列中的 Share Questionnaire 来共享该通用问卷。这会生成一个链接,您可以将其分享给预定的接收人,并且在此之前还可以确认该问卷的格式符合预期。

image

请注意以下几点:

  • 通用问卷的任何回复在问卷到期之前都无法查看。
  • 问卷一旦发布,就无法更改其到期日期。
  • 问卷到期的默认时间为午夜(例如,到期日期设置为 2026 年 12 月 31 日的问卷,只能在当天的 11:59:59 之前查看)。
  • 无法设置自定义的到期时间。

有关允许外部用户回复的内容,请参阅下方的 启用匿名回复

关联问卷的部署

要部署关联问卷:

  1. 进入将要关联该问卷的测试活动。
  2. 点击 Additional Features 表格上的下箭头。
  3. 点击问卷子表格右侧的 + 号。
  4. 从下拉菜单中选择要关联的问卷。
  5. 点击 Add QuestionnaireAdd Questionnaire and Respond

此时,该关联问卷会对任何有权访问该测试活动的用户生效。

共享关联问卷

要将关联问卷直接与内部 DefectDojo 用户共享,请点击 ⋮ 竖排菜单(kebab menu),并从下拉菜单中选择 Share Questionnaire。此时会出现一个链接,可以将其复制并转发给预定的接收人。

image

如前所述,关联问卷只能与 DefectDojo 用户共享。

回复问卷

回复流程会因问卷是通用问卷还是关联问卷而略有不同。

回复通用问卷

要回复通用问卷,非超级用户必须由超级用户直接将链接分享给他们,具体方法见此处

启用匿名回复

默认情况下,通用问卷仅可供 DefectDojo 用户访问。要允许外部人员回复 DefectDojo 问卷,请确保在侧边栏 Configurations 部分下的系统设置中,已启用 Allow Anonymous Survey Responses 选项。

image

image

外部回复会显示为匿名,因为该回复没有关联任何 DefectDojo 用户 ID。

如果某个问卷的适用范围同时包括内部和外部用户,请创建一个通用问卷,并在创建时于描述中注明该测试活动的名称,以便对结果进行筛选。

image

image

回复关联问卷

要回复关联问卷:

  1. 进入测试活动视图。
  2. 展开 Additional Features 表格。
  3. 展开问卷子表格。
  4. 点击该关联问卷的 ⋮ 竖排菜单。
  5. 点击 Answer Questionnaire

image

关联问卷不允许外部/匿名回复,因为访问该测试活动本身就需要 DefectDojo 的访问权限。

回复记录

如前所述,问卷模板的每一次部署都会创建各自独立的回复容器。将同一个问卷模板关联到多个测试活动会产生各自独立的回复集,发布通用问卷也不会影响关联问卷的回复集。

通用问卷的回复

通用问卷到期后:

  • 将无法再提交新的回复。
  • 此前的所有回复都会被保存并变为可查看状态。
  • 该问卷会在 DefectDojo 仪表板上列为"未分配的已回复测试活动问卷(Unassigned Answered Engagement Questionnaire)"。

当问卷的回复窗口关闭后,可以执行三种操作:View ResponsesCreate EngagementAssign User

查看问卷回复

选择 View Responses 会显示该问卷的所有回复。

根据问卷创建测试活动

问卷到期后,可以通过选择 Create Engagement 操作,借助一个测试活动将该通用问卷与某个资产关联起来。从随后出现的下拉列表中选择一个资产,然后点击 Create Engagement。随后即可创建一个新的测试活动,并为其填写与 DefectDojo 中其他测试活动类似的具体信息,例如 Description、Version、Status、Tags 等。

image

image

分配用户

Assign User 操作会提示您从可用用户的下拉列表中选择一名用户。从下拉菜单中选择一名用户,然后点击 Assign Questionnaire,即可将其设为该问卷的所有者。

关联问卷的回复

只要相关联的测试活动处于活动状态,关联问卷就会一直可用。因此,其回复可以随时查看。

关联问卷的 ⋮ 竖排菜单包含若干用于管理该问卷及其回复的功能:

  • Answer Questionnaire:如果用户尚未回复该关联问卷,则会显示此选项。回复完成后,会显示 View Responses 和 Edit Responses。
  • View responses:允许用户查看该问卷迄今为止的所有回复。
  • Edit Responses:允许用户各自编辑自己此前提交的回复。
  • Assign User:将该问卷分配给某个用户。
  • Link to a Different Engagement:打开一个下拉菜单,列出可将该问卷关联到的其他测试活动。
  • Share Questionnaire:生成一个链接,用于与内部用户共享该问卷。
  • Delete Questionnaire:会将该问卷与测试活动解除关联,并删除此前收集到的所有回复。

删除问卷

删除通用问卷和关联问卷所产生的后续影响不同,具体取决于删除操作的预期结果。

删除通用问卷

从"所有问卷"部分的通用问卷表格中删除某个通用问卷,会删除该次部署在删除之前所收集到的所有回复。使用相同问卷模板的任何关联问卷都不会被删除。

删除关联问卷

删除关联问卷会将该问卷与测试活动解除关联。该测试活动中此前收集到的所有回复都将丢失。此前使用相同问卷模板部署的通用问卷不会受到影响。

删除问卷模板

要彻底删除一个问卷模板,请在"所有问卷"视图的问卷表格中选中该模板,然后点击 Delete Questionnaire。此操作会永久删除该问卷模板以及所有部署中与之关联的全部回复。此操作无法撤销。