两人同时使用互动答题,怎样核对答题记录没有串号
把每条答案绑定到稳定会话ID、题目ID和一次提交ID,再用两个会话交错提交、重试和结束来核对归属。只看总分相加正确不够:两个人的答案互换后,总分仍可能碰巧相同。
先固定哪些条件
只使用匿名测试会话和虚构题目,不录入真实姓名或联系方式。明确会话从入场、点击开始还是登录产生,结束与过期后如何处理迟到答案;本文只给数据隔离验收,不推荐答题赛制。
按这个顺序取证
-
先固定题库版本与标准答案,建立会话A和B,给每次提交唯一submission_id。记录客户端会话、服务端保存会话、题目、答案、计分和接收时间,不能仅用触点ID或当前位置代替业务会话。
-
按A答Q1、B答Q1、A答Q2、B重试Q1、A结束、B答Q2的顺序执行。加入相同提交ID重复发送与旧会话迟到答案,检查幂等、结束状态及题目版本;重复请求不应重复加分。
-
分别导出A、B明细,以题号和提交ID逐行勾稽,再独立重算分数。UI展示、导出CSV和后台记录应一致;如果采用共享数据库或缓存,验证键是否包含会话标识,不能只按题号覆盖。
合成示例:输入怎样对应结果
合成夹具设Q1正确选B、Q2正确选C,每题10分;A两题都对共20,B先错后对共10,重复提交S3不再加分。附件的本地核对脚本按提交ID去重、按会话累计并断言结果,它不访问数据库,也不能证明服务端已经实现隔离。
| 提交 | 会话/题目 | 答案 | 期望计分 |
|---|---|---|---|
| S1 | A/Q1 | B | A加10 |
| S2 | B/Q1 | A | B加0 |
| S3与重试 | A/Q2 | C | A仅加10一次 |
| S4 | B/Q2 | C | B加10 |
下载后怎样使用
下载合成输入CSV、空白记录CSV、可打印测试协议与完整字段JSON,另有本地只读核验脚本。先用合成输入熟悉字段,再复制空表填写自己的环境、测试时间和证据路径;不要把示例行改成真实项目名称后当作测量结果。协议中已经列出准备条件、顺序、通过条件、失败记录和复核人位置,可按本项目约定填写后打印。
将脚本和synthetic.csv放在同一目录,用 python verify.py 执行;脚本只读取合成输入,断言通过表示该示例的计算与预期一致,不代表现场或产品通过。
失败、误判与下一步
让前端传来的分数直接入库,或以最后操作的用户变量给答案归属,都可能产生串号。发现不一致先冻结测试记录,按提交ID找首次错配点;不要直接修改最终总分,明细不修正会在再次导出时恢复错误。
通过后继续测试会话过期、重开一局和断线重连,分别确认旧答卷是否可追溯且不会进入新一局。
本篇取证范围:已执行合成CSV去重与计分;实际双人操作、后端并发、断线重连和持久化未测。
Quiz公开页提供题型、限时计分和定制入口;本篇双会话交错与幂等用例仍需在指定版本验证,不根据宣传页推断后端已经通过隔离或并发测试。
关联入口与一级出处
基础背景见多人PK与大屏抢答玩法怎么设计?赛制、组网与控场全解。项目上下文可从触摸互动专题进入,需对接工程时看Quiz答题交付与定制。
来源核对日期:2026-10-23。规范支持相应机制,表内输入和数值为本文合成演示;厂商声明仍须在指定版本与配置上验证。
留言讨论
评论发布后会被人工复核,违规内容将被删除。
如果发表没有反应,可以前往联系我们告诉我们。