问卷 (Open Source)
在 DefectDojo 中,问卷(Questionnaire)是一组可重复使用的问题,用于从开发人员、团队以及内部和外部利益相关者那里收集信息。它们可用于在工作开始前收集意见、确保个人和团队在工作推进过程中保持一致,并在工作完成后进行回顾性分析。
问卷模板
问卷模板定义了问卷的结构和内容,包括名称、描述以及关联的问题。创建问卷模板并不会自动使其可以接受回复。要收集回复,必须将问卷模板部署为通用问卷(General Questionnaire)或关联问卷(Linked Questionnaire)。
通用问卷与关联问卷
通用问卷与关联问卷在多个方面存在差异,包括分发方式、可回复的对象,以及回复的存储位置。
| 通用问卷 | 关联问卷 |
|---|---|
| 需要发布 | 不需要发布 |
| 需要设置到期日期 | 只要测试活动仍处于活动状态就会保持有效 |
| 允许匿名回复 | 不允许匿名回复 |
| 可在内部和外部共享 | 仅可在内部共享 |
| 不允许更改已提交的回复 | 允许更改回复 |
| 回复只有在到期后才可查看 | 回复可立即查看 |
| 回复显示在"所有问卷"中 | 回复显示在测试活动内 |
| 可以转换为测试活动 | 已经关联到一个测试活动 |
问卷部署生命周期
问卷模板的生命周期会因部署类型不同而有所差异:
通用问卷 模板 → 已发布 → 接受回复 → 到期 → 可选择转换为测试活动
关联问卷 模板 → 关联到测试活动 → 接受回复 → 在测试活动处于活动状态期间保持有效
回复的分离
同一个问卷模板可以同时以通用问卷和关联问卷的形式多次部署。每次部署都会创建各自独立的一组回复。
如果同一个问卷模板既被部署为通用问卷,又被关联到某个测试活动,那么通过每种部署方式提交的回复会被独立存储,不会合并在一起。这样就可以在不同的场景下重复使用同一个问卷模板,同时保持各自的回复集相互独立。
访问问卷和问题
可以通过点击侧边栏中的问卷选项来访问问卷和问题。子菜单提供了对所有问卷和所有问题的访问入口。

需要注意的是,只有具有超级用户(Superuser)权限的用户才能访问"所有问卷"和"所有问题"视图。只有超级用户可以创建问卷模板、创建问题以及部署问卷。不具有超级用户权限的用户仍然可以回复已与其共享的通用问卷,也可以回复其有权访问的测试活动中的关联问卷,但无法创建或管理它们。
问卷
“所有问卷"视图包含两个表格:
- 问卷
- 该部分包含所有已存在的问卷模板。
- 通用问卷
- 该部分包含当前所有开放接受回复的通用问卷。
这两个部分都可以按名称、描述或活动状态进行筛选。
问题
“所有问题"视图包含一个问题表格,列出了当前可添加到问卷中的问题。该表格也可以按每个问题的可选状态、内容或问题类型(例如文本类问题或多选类问题)进行筛选。
管理问卷模板
创建问卷
可以使用"所有问卷"视图中的 Create Questionnaire 按钮创建新问卷。

填写名称和描述后,可以选择创建不包含任何问题的问卷(问题可稍后添加),也可以立即添加问题。
立即向新问卷添加问题
如果选择立即添加问题,请从随后出现的下拉菜单中选择所有适用的问题。您也可以点击下拉菜单右侧的 + 号来创建一个新问题并将其添加到该问卷中。

选定所有适用的问题后,点击 Update Questionnaire Questions 即可将所有选定的问题添加到该问卷中。
向已有问卷添加问题
要向已有问卷添加问题,请在问卷表格中点击该问卷的名称,点击 Edit Questions,从下拉菜单中选择要添加到该问卷的任何新问题,然后点击 Update Questionnaire Questions。
创建问题
可以使用"所有问题"视图中的 Create Question 按钮创建新问题。

此外,在决定要将哪些问题添加到某个问卷时,也可以通过点击下拉菜单右侧的 + 号来创建问题。
问题类型
创建新问题时,可以通过在下拉菜单中选择 Text 或 Choice,将其设置为文本类问题或多选类问题。
允许多个答案和可选答案
多选类问题允许的最大答案数量为六个。勾选 Multichoice 复选框可以允许选择多个答案(仅适用于多选类问题)。问题也可以通过勾选相应的复选框标记为可选(Optional)。
有关如何为多选类问题添加更多答案选项,请参阅 编辑问题 部分。
问题顺序
通过为问题指定一个顺序编号来确定其显示顺序。例如,如果某个问题的 Order 字段值为 1,该问题会显示在 Order 字段值为 2 的问题之上。

编辑问题
问题创建完成后,可以通过进入"所有问题"子菜单并点击要修改的问题来对其进行编辑。问题无法被删除。
需要特别注意,应避免编辑属于活动问卷的问题。如果某个问题的任何部分被更改(例如顺序、可选状态、更正拼写错误、添加新的可选答案等),而该问题属于一个已经收到回复的活动问卷,那么此前所有已提交的回复都将失效,需要重新提交回复。
编辑文本类问题
创建完成后,文本类问题只能修改顺序、可选状态以及问题的措辞。
编辑多选类问题
虽然多选类问题默认可提供的答案数量为六个,但在问卷创建完成后仍可增加该数量。具体操作为:在"所有问题"视图中点击该问题,点击 Choices 下拉菜单右侧的 + 号,添加新的答案,然后点击 Submit。


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

部署问卷
问卷模板成功创建后,即可部署以接受回复。部署流程会因问卷类型不同而略有差异。
通用问卷的部署
要部署通用问卷:
- 进入"所有问卷"视图。
- 点击通用问卷表格右侧的 + 号。
- 选择要部署的问卷。
- 设置到期日期。
- 点击 Add Questionnaire。
共享通用问卷
部署完成后,可以通过点击通用问卷表格 Actions 列中的 Share Questionnaire 来共享该通用问卷。这会生成一个链接,您可以将其分享给预定的接收人,并且在此之前还可以确认该问卷的格式符合预期。

请注意以下几点:
- 通用问卷的任何回复在问卷到期之前都无法查看。
- 问卷一旦发布,就无法更改其到期日期。
- 问卷到期的默认时间为午夜(例如,到期日期设置为 2026 年 12 月 31 日的问卷,只能在当天的 11:59:59 之前查看)。
- 无法设置自定义的到期时间。
有关允许外部用户回复的内容,请参阅下方的 启用匿名回复。
关联问卷的部署
要部署关联问卷:
- 进入将要关联该问卷的测试活动。
- 点击 Additional Features 表格上的下箭头。
- 点击问卷子表格右侧的 + 号。
- 从下拉菜单中选择要关联的问卷。
- 点击 Add Questionnaire 或 Add Questionnaire and Respond。
此时,该关联问卷会对任何有权访问该测试活动的用户生效。
共享关联问卷
要将关联问卷直接与内部 DefectDojo 用户共享,请点击 ⋮ 竖排菜单(kebab menu),并从下拉菜单中选择 Share Questionnaire。此时会出现一个链接,可以将其复制并转发给预定的接收人。

如前所述,关联问卷只能与 DefectDojo 用户共享。
回复问卷
回复流程会因问卷是通用问卷还是关联问卷而略有不同。
回复通用问卷
要回复通用问卷,非超级用户必须由超级用户直接将链接分享给他们,具体方法见此处。
启用匿名回复
默认情况下,通用问卷仅可供 DefectDojo 用户访问。要允许外部人员回复 DefectDojo 问卷,请确保在侧边栏 Configurations 部分下的系统设置中,已启用 Allow Anonymous Survey Responses 选项。


外部回复会显示为匿名,因为该回复没有关联任何 DefectDojo 用户 ID。
如果某个问卷的适用范围同时包括内部和外部用户,请创建一个通用问卷,并在创建时于描述中注明该测试活动的名称,以便对结果进行筛选。


回复关联问卷
要回复关联问卷:
- 进入测试活动视图。
- 展开 Additional Features 表格。
- 展开问卷子表格。
- 点击该关联问卷的 ⋮ 竖排菜单。
- 点击 Answer Questionnaire。

关联问卷不允许外部/匿名回复,因为访问该测试活动本身就需要 DefectDojo 的访问权限。
回复记录
如前所述,问卷模板的每一次部署都会创建各自独立的回复容器。将同一个问卷模板关联到多个测试活动会产生各自独立的回复集,发布通用问卷也不会影响关联问卷的回复集。
通用问卷的回复
通用问卷到期后:
- 将无法再提交新的回复。
- 此前的所有回复都会被保存并变为可查看状态。
- 该问卷会在 DefectDojo 仪表板上列为"未分配的已回复测试活动问卷(Unassigned Answered Engagement Questionnaire)"。
当问卷的回复窗口关闭后,可以执行三种操作:View Responses、Create Engagement 和 Assign User。
查看问卷回复
选择 View Responses 会显示该问卷的所有回复。
根据问卷创建测试活动
问卷到期后,可以通过选择 Create Engagement 操作,借助一个测试活动将该通用问卷与某个资产关联起来。从随后出现的下拉列表中选择一个资产,然后点击 Create Engagement。随后即可创建一个新的测试活动,并为其填写与 DefectDojo 中其他测试活动类似的具体信息,例如 Description、Version、Status、Tags 等。


分配用户
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。此操作会永久删除该问卷模板以及所有部署中与之关联的全部回复。此操作无法撤销。