在我们的项目中,测试重点不只是单纯验证模型是否返回结果,而是验证整个调用链路是否稳定可靠。我们设计了一套完整的chat接口测试用例方案。

本轮测试的核心链路如下:
自然语言输入 → 路由 → 参数解析 → 任务调用 → 结果组织 → 解释返回
重点关注以下几点:
聊天功能是否正常,知识问答是否正确触发,RNA任务是否正确识别,多任务是否正确拆解,多序列是否正确解析,错误输入是否合理处理,回归问题是否再次出现。

测试用例的设计如下:

一、CHAT-NORMAL(普通聊天测试)用例
测试目的:验证系统在非RNA分析场景下是否能够正常作为聊天助手工作。

用例编号 测试点 请求示例 预期结果
CHAT-NORMAL-001 普通问候 输入 "你好" 返回自然聊天回复,不触发RNA分析任务
CHAT-NORMAL-002 系统能力询问 输入 "你能做什么" 系统返回功能介绍,不实际执行任务
CHAT-NORMAL-003 无关问题 输入 "帮我解释什么是深度学习" 系统正常回答,不调用RNA任务

核心验证点

验证项 预期
task_type general_chat
need_sequence false
task_result
reply 正常自然语言

二、CHAT-KNOW(知识问答测试)用例
测试目的:验证系统是否能够正确区分知识问答和模型预测

CHAT-KNOW-001 RNA专业知识问答 输入 "lncRNA 可以调控 miRNA 吗?" 返回专业解释,触发知识检索
CHAT-KNOW-002 RNA修饰知识问答 输入 "m6A 修饰在 RNA 中通常有什么生物学意义? 返回解释,不执行预测任务
CHAT-KNOW-003 motif概念问答 输入 "RNA motif 是什么?" 返回概念解释,不调用motif任务
CHAT-KNOW-004 冷门知识 输入 "ABCXYZ RNA 修饰有什么作用?" 系统提示不确定或无结果

核心验证点

need_knowledge_retrieval true
task_result
knowledge_result 有内容
reply 专业解释

三、CHAT-SINGLE(单序列单任务)用例
测试目的:验证一个序列+一个任务能否正确完成。

CHAT-SINGLE-001 单序列 family 分类 输入 "请判断这条 RNA 属于什么家族:[序列]" 返回 family 分类结果
CHAT-SINGLE-002 单序列修饰预测 输入 "请分析这条 RNA 是否存在修饰:[序列]" 返回修饰预测结果
CHAT-SINGLE-003 单序列二级结构预测 输入 "请预测这条 RNA 的二级结构:[序列]" 返回 dot-bracket、配对信息
CHAT-SINGLE-004 单序列 motif 分析 输入 "请分析这条 RNA 中可能存在的 motif:[序列]" 返回 motif 命中结果

核心验证点

sequence 正确提取
task_type 正确
task_id 存在
result 存在

四、CHAT-MULTISEQ(多序列单任务)用例
测试目的:验证系统能否正确解析多个序列。

CHAT-MULTISEQ-001 多序列 family 分类 输入两条序列进行 family 分类 返回两条序列的 family 结果
CHAT-MULTISEQ-002 多序列修饰预测 输入两条序列进行修饰预测 返回两条序列各自修饰结果
CHAT-MULTISEQ-003 多序列二级结构预测 输入两条序列预测二级结构 返回两条结构预测结果
CHAT-MULTISEQ-004 多序列 motif 分析 输入两条序列分析 motif 返回两条 motif 结果

核心验证点

sequences数量 正确
items数量 一致
sequence_id 不混淆

五、CHAT-MULTITASK(单序列多任务)用例
测试目的:验证任务拆解能力。

CHAT-MULTITASK-001 单序列 family + modification 输入一条序列请求 family 和 modification 返回两个任务结果
CHAT-MULTITASK-002 单序列 family + structure 输入一条序列请求 family 和 structure 返回两个任务结果
CHAT-MULTITASK-003 单序列 modification + motif 输入一条序列请求 modification 和 motif 返回两个任务结果
CHAT-MULTITASK-004 单序列四任务综合分析 输入一条序列请求 family+modification+structure+motif 返回四个任务结果

核心验证点

tasks数量 正确
task_id 全部存在
status 独立
result 独立

六、CHAT-MULTI-BOTH(多序列多任务)用例
测试目的:验证系统最复杂的场景。

CHAT-MULTI-BOTH-001 两条序列 family + modification 输入两条序列请求 family+modification 返回两类任务,每类两条序列结果
CHAT-MULTI-BOTH-002 两条序列 structure + motif 输入两条序列请求 structure+motif 返回两类任务,每类覆盖两条序列
CHAT-MULTI-BOTH-003 两条序列四任务综合分析 输入两条序列请求 family+modification+structure+motif 返回四个任务,每个任务处理两条序列

核心验证点

task数量 正确
item数量 正确
seq映射 正确
reply 汇总完整

七、CHAT-EXPLAIN(结果解释测试)用例
测试目的:验证系统是否具有:上下文记忆和结果解释能力。

CHAT-EXPLAIN-001 family结果追问 第二轮输入 "为什么它属于这个家族?" 系统解释上一轮 family 预测
CHAT-EXPLAIN-002 修饰预测追问 第二轮输入 "这个修饰结果可信吗?" 系统解释可信度、概率信息
CHAT-EXPLAIN-003 结构预测追问 第二轮输入 "dot-bracket 结果怎么看?" 系统解释括号与点含义
CHAT-EXPLAIN-004 多任务结果追问 第二轮输入 "请综合解释这些结果关系" 系统综合解释多个任务结果

核心验证点

上下文关联 正确
explanation 有内容
reply 基于历史结果

八、CHAT-CORRECT(标准正确输入测试)用例
测试目的:验证主业务流程。

CHAT-CORRECT-001 单任务正确输入 输入单序列二级结构预测 成功返回结构预测
CHAT-CORRECT-002 多任务正确输入 输入单序列 family+modification 成功返回两个任务结果
CHAT-CORRECT-003 多序列正确输入 输入编号两条序列预测二级结构 成功解析两条序列,返回两个结构结果
CHAT-CORRECT-004 中英文混合任务 输入英文任务表达 系统识别对应任务

核心验证点

status success
error
result 正常

九、CHAT-ERROR(异常与边界测试)用例
测试目的:验证系统鲁棒性。

CHAT-ERROR-001 空输入 message为空 返回参数错误提示
CHAT-ERROR-002 缺序列 输入 "请帮我预测 RNA 二级结构" 系统提示需要提供序列
CHAT-ERROR-003 非法字符序列 输入 "AAAAGCXXX123@@@" 系统提示序列非法
CHAT-ERROR-004 过短序列 输入 "AUG" 系统提示长度不足或结果可信度低
CHAT-ERROR-005 DNA序列 输入 "ATGCTTAGCTAGCTTACGATCG" 系统自动转换或提示DNA序列
CHAT-ERROR-006 中文混合符号 输入 "AUGC修饰预测一下!!!GGCA???" 系统提取合法RNA片段或提示格式错误
CHAT-ERROR-007 任务意图冲突 输入 "请不要分析结构,但预测二级结构:[序列]" 系统识别主要意图或提示澄清
CHAT-ERROR-008 知识问答误触发任务 输入 "RNA 二级结构预测通常有哪些方法? 系统返回知识问答
CHAT-ERROR-009 任务请求但序列像文件名 输入 "请分析我刚上传的 test.fasta" 系统提示未启用上传文件
CHAT-ERROR-010 input_mode回归测试 输入小文本修饰预测 parsed_result.input_mode=text
CHAT-ERROR-011 多序列中一条非法 两条序列,一条正常,一条非法 第一条成功,第二条返回错误
CHAT-ERROR-012 多任务中一个失败 四任务中人为让motif失败 其他任务正常,motif失败标记failed

核心验证点

error 正确提示
HTTP状态 正确
服务 不崩溃

十、REG-CHAT(回归测试)用例
测试目的:验证历史Bug不会再次出现。

REG-CHAT-001 小文本任务不识别FASTA 输入短文本修饰预测 解析为text,不返回fasta_file
REG-CHAT-002 parsed_result.input_mode与请求一致 输入短文本二级结构预测 parsed_result.input_mode=text
REG-CHAT-003 多任务 task_id 不为空 输入单序列多任务 tasks每个task有task_id
REG-CHAT-004 知识问答不误调用模型 输入 "m6A 修饰是什么?" 系统识别为知识问答
REG-CHAT-005 任务问法不误判知识问答 输入 "请预测这条 RNA 是否存在 m6A 修饰" 系统执行 modification_prediction
REG-CHAT-006 多序列解析数量正确 输入两条序列预测修饰 parsed_result.sequences=2;items数量=2
REG-CHAT-007 复杂输入不导致 router 异常 输入长文本请求多个任务并带追问 系统拆分任务并触发解释/知识检索

核心验证点

历史Bug 不复现
route_result 正确
task_id 非空
input_mode 正确

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐