如何搭建测验应用
测验应用会展示题目、收集答案、评分,并给出结果。最简单的版本 — 一套固定的测验,在浏览器中评分 — 用一个下午就能完成。而人们真正依赖的版本,无论用于学习、招聘还是竞赛,都需要题库、保存在服务器上的答案、保存的答题记录以及公平的计时。尽早确定你要做的是哪一种,因为这会改变整体架构。
先确定它是哪种测验
“测验”一词涵盖了非常不同的产品:
| 类型 | 例子 | 最重要的是 |
|---|---|---|
| 趣味 / 营销 | “哪款套餐适合你?”或性格测试 | 外观、分享、获取线索;评分很简单 |
| 学习 / 练习 | 班级或课程的复习测验 | 解析、可重复作答、长期进度 |
| 考核 | 员工培训检测、入学测试 | 答案保密、只能作答一次、计时、记录 |
| 直播 / 竞赛 | 酒吧问答、课堂游戏 | 实时计分板,所有人同时答同一题 |
没有风险的性格测试完全可以在浏览器中安全运行。考核则不行。直播测验需要实时更新,这是另一层级的复杂度 — 除非这正是产品的核心,否则第一个版本可以不做。
测验应用需要什么
数据
- 测验 — 标题、描述、设置(时间限制、允许作答次数、是否打乱顺序、及格分数、是否在结束后显示答案?)。
- 题目 — 所属测验、题干、题型、分值、可选的图片,以及作答后显示的解析。
- 选项 — 题目的备选答案,并标明哪些是正确答案。
- 作答记录 — 谁参加了哪套测验、何时开始和提交、得分。
- 答案 — 在某次作答中,对每道题给出的选项(或文本)。
将作答记录和答案分开保存,既能向用户准确展示他们答错了哪些题,也能帮你发现几乎所有人都答错的题目 — 这往往说明题目表述有问题。
页面
- 测验编辑器,供出题人使用:添加题目、调整顺序、标记正确选项、预览。
- 测验开始页,展示规则:题目数量、时间限制、作答次数。
- 答题页,在手机上一次只显示一道题,并显示进度(“第 4 题,共 10 题”)。
- 结果页,显示得分、是否通过,以及在设置允许时每道题的反馈。
- 出题人仪表盘,显示作答次数、平均分和最难的题目。
权限
出题人负责创建和编辑测验,参加者只负责作答。如果测验用于班级或团队,可以添加分组,让人们只看到分配给自己的测验。参见如何为应用添加登录。
需要写明的评分规则
大多数测验的 bug 都出在评分上。请把这些规则写进你的提示词:
- 单选题: 答对得满分,否则得零分。
- 多选题(“选出所有正确项”): 要决定是全对才得分,还是部分得分。如果允许部分得分,选错的选项是否扣分?请写一个示例:“正确选项为 A 和 C。只选 A 得 2 分中的 1 分。选 A、B、C 得 2 分中的 1 分。”
- 未作答的题目得零分,并显示为“未作答”,而不是“错误”。
- 时间限制应由服务器根据开始时间来强制执行。浏览器计时器只是显示用的 — 任何人都可以暂停或修改它。
- 打乱顺序只改变显示顺序,绝不改变哪个选项正确。应按选项的 ID 而不是位置来存储正确选项。
让答案远离浏览器
这是每一个严肃的测验应用都必须做对的一个技术要点。如果页面接收的题目附带正确答案,并由页面自己评分,那么任何人都可以打开浏览器的开发者工具,读取答案。
解决方法很简单:服务器发送不带正确标记的题目,用户提交,服务器对作答进行评分并返回结果。请在提示词中明确说明。对于一个趣味测验,这无关紧要;但对于任何涉及证书、成绩或奖品的测验,这一点非常关键。
一条有效的第一条提示词
搭建一个测验网页应用。出题人登录后,可以创建测验,填写标题、描述、可选的时间限制、允许的作答次数以及及格分数。每套测验包含单选、多选或判断题,每题有分值,并可选填解析。参加者通过链接打开测验,先看到规则,然后每屏只回答一题,并显示进度条。在提交之前,绝不能把正确答案发送到浏览器 — 在服务器上对作答评分,并根据服务器端的开始时间强制执行时间限制。多选题只能全对才得分。提交后,显示得分、是否通过,并且如果出题人允许,逐题显示正确答案和解析。将每次作答和每个答案保存到数据库中。为出题人提供结果页,显示平均分和错误率最高的题目。
分步搭建
- 先做编辑器。 创建一套包含十道混合题型题目的测验。如果出题很麻烦,出题人就不会使用这个应用。
- 参加测验。 在手机上试一遍。检查进度、前进和后退,以及刷新页面后会发生什么。
- 服务器端评分。 在参加测验时打开浏览器的网络面板,确认在提交之前,任何响应中都不包含正确答案。
- 评分测试。 给 AI 五个带有预期得分的示例,包括部分正确的多选答案和未作答的题目。
- 计时器。 开始一套限时测验,等超过时间限制后再提交。它应该被拒绝,或按截止时刻的状态评分 — 需要决定采用哪一种。
- 结果与分析。 用你刻意制造的作答记录,检查错误率最高的题目列表是否正确。
- 扩展功能。 只有到这时,才添加图片、随机抽题的题库、证书或排行榜。
常见错误
- 答案写在页面里。 这是最常见也最严重的缺陷。
- 相信浏览器的时钟。 时间限制必须在服务器上执行。
- 把正确答案存为“选项 2”。 打乱顺序之后,错误的答案就会被标为正确。
- 在人们作答之后仍然修改测验。 修改题目会改变旧成绩的含义。应锁定已有人作答的测验,或为其做版本管理。
- 考核中允许无限次重做。 请确定作答规则,并在服务器上强制执行。
- 排行榜默认显示全名。 允许用户选择显示名称,尤其是学生。
什么时候现成产品更合适
如果你需要快速搭建一个课堂游戏,需要在你已在使用的课程平台内嵌测验,或者只是做一次性的获客测验,那么现有的测验和表单工具更快,而且通常免费。学习管理系统本身就包含带成绩册的测验功能。如果走表单式路线,可参考 Typeform 替代方案和 Google 表单替代方案。
当测验只是更大事物的一部分时 — 例如你出售的课程、招聘流程,或使用你自己规则的培训项目 — 或者当你需要现成工具无法提供的评分、品牌化或数据所有权时,就值得自己搭建。可以搭配闪卡应用用于练习,或者把它放进在线课程平台中。
使用 Mythex 搭建
在 Mythex 中,你在聊天中描述测验应用,并在实时预览中试用,包括手机尺寸的预览。当你要求保存作答记录时,智能体会添加数据库,并与前端一同编写服务器端评分代码。出题人的登录,Mythex 会接入你选择的认证方式,而不是内置的登录产品。如果某次修改破坏了评分,可以回滚到之前的检查点后再重试。发布后会获得一个 mythex.ai 链接;在 Pro 版中可以使用你自己的域名。
常见问题
如何防止人们在浏览器中看到测验答案?
把正确答案保存在服务器上。发送题目时不附带答案,让用户提交,然后在服务器上对提交内容评分。任何发送到浏览器的内容,都可以通过开发者工具读取。
测验应用需要数据库吗?
一个固定的测验,如果不保存成绩,可以完全在浏览器中运行。一旦你想要保存成绩、排行榜、多套测验,或保密答案,就需要数据库和一个小型服务器。
我可以不写代码搭建测验应用吗?
可以。AI 应用构建工具可以根据描述生成题目编辑器、答题界面和评分逻辑。在分享之前,请用几个算好的示例自行检查评分规则。
测验应用应该支持哪些题型?
单选、多选和判断题覆盖了大多数测验,并且很容易自动评分。简答题需要匹配规则或人工批改,可以以后再添加。