一、测试方案设计
根据具体prd内容针对测试(ai功能、测试集等)是否符合pm需求,从而设计case包括编写范围、编写方向、编写角度、鲁棒性等。
1. 编写范围
1.1 功能测试设计
目标:验证模型是否按预期执行任务。
1.1.1 等价类划分
目标:通过将输入划分为等价类,每个类代表一组具有相似特性的输入,从每个类中选择代表性用例进行测试。
1.1.2 边界值分析
目标:测试输入边界值及其附近的情况,确保模型在这些临界值上表现稳定。
1.1.3 决策表测试
目标:通过列出所有可能的条件组合,确保模型在各种条件下的表现。
1.1.4 错误猜测
目标:基于经验和直觉,设计可能导致模型错误的输入情况。
1.1.5 探索性测试
目标:在没有预定义测试用例的情况下,通过随机或有目的的探索,发现潜在的问题。
1.2 性能测试
目标:测试模型在不同条件下的响应速度和处理能力。在高并发请求下,测试模型的响应时间和吞吐量。
1.3 异常测试
目标:测试模型对无效或异常输入的处理能力。输入乱码、特殊字符或格式错误的文本,检查模型的鲁棒性。
1.4 可用性测试
目标:确保模型输出内容的准确性,符合用户需求,满足产品功能,在不同场景中表现稳定
1.5 安全性测试
目标:主要目标包括数据隐私、异常情况处理等
1.6 兼容性测试
暂不涉及
2. 编写方向
2.1 正常输入
目标:覆盖常见的、预期的输入情况。输入正常的对话文本,确保模型能正确提取和标注。
2.2 异常输入
目标:涵盖无效、异常或意外的输入情况。例如:输入含有拼写错误、语法错误或特殊字符的文本。
2.3 边界输入
目标:测试输入范围的边界情况。输入极长的文本段落或只有一个词的短文本。
2.4 特殊情况
目标:测试特定场景或稀有情况。输入含有多个情感交织的复杂文本,测试模型的准确性。
3. 编写角度
3.1 用户角度
目标:模拟真实用户的输入和行为。模拟不同用户的语言风格、输入习惯,确保模型能处理多样化的输入。
3.2 开发者角度
目标:覆盖开发过程中可能遗漏的情况。根据模型的实现细节,设计测试用例以覆盖可能的边界条件和异常情况。
3.3 业务需求角度
目标:确保模型满足业务需求和场景。根据业务场景,如客服对话,设计特定情境下的测试用例。
4. 鲁棒性
注:AI模型和软件系统的实际应用至关重要,因为在真实世界中,输入数据往往是不完美的、噪声较多的、并且包含多样性和不确定性的。一个具有高鲁棒性的模型能够在各种不可控和复杂的情况下仍然提供可靠的结果,从而提高用户体验和系统的可靠性。
鲁棒性测试:
输入扰动测试
方法:对输入数据进行扰动,如添加噪声、插入拼写错误、使用不同的语法结构等,测试模型的表现。
- 示例:对文本进行拼写错误注入,观察模型的分类结果是否受到影响。 边界值测试
方法:输入极端值,如最短和最长的文本,检查模型是否能正确处理这些极端输入。
- 示例:输入一个字符的文本和一个包含数千字符的文本,测试模型的处理能力。 噪声测试
方法:在输入数据中添加不同程度的噪声,测试模型的耐受能力。
- 示例:在语音识别系统中,加入不同背景噪声(如音乐、交谈声),测试系统的识别准确率。 多样性测试
方法:使用多样化的数据集,包括不同语言、方言、文化背景的数据,测试模型的普适性。
- 示例:在自然语言处理模型中,输入不同地区的口语表达,观察模型的理解和处理能力。 随机扰动测试
方法:随机选择输入数据的某些部分进行扰动,观察模型输出的变化。
- 示例:在图像识别中,随机遮挡图像的某些部分,测试模型的识别能力。
二、创建高质量的测试数据集
和相关pm、rd沟通后获取相关测试集,并需要关注一下方向提升测试集质量,保证功能效果和测试效果,该数据集应包括多种场景和风格的输入文本:
- 来自真实应用环境的数据,帮助测试模型的实际表现和用户满意度。
- 正常对话、非正式对话、含有拼写错误或语法问题的文本等。
- 包括模棱两可或复杂情境的文本,看看模型是否能正确分类。
- 包含模型在实际场景中会遇到的典型数据,用于衡量模型的准确性和基本功能表现。
- 包含不规则或意外情况的数据,如噪声、拼写错误、不完整信息等,用于验证模型的鲁棒性。
- 包含数据的极端边界情况,如极长或极短的文本输入,用于检测模型的边界性能。
- 包括特定语境或稀有情况的数据,帮助评估模型在复杂或多样情境下的表现。