【Ai大模型生成测试用例】deepseek+豆包+千问 实战落地运用

  • 本篇会详细介绍ai大模型对于测试工程师的使用与思考,结合实际运用来实现ai对于测试工程师提效的方式方法
  • 在年后deepseek横空出世,实际去使用后发现deepseek-R1真的很厉害,那么具体在工作内,我们应该怎么去实际运用就值得思考一番
  • 在了解ai基本原理与对话沟通过程中,发现还是能做很多东西的,那么对于测试工程师来说测试用例是一个绕不开的话题,怎么能在工作中去实际结合ai来进行落地

1.流程介绍

传统工作中,我们会根据需求文档来编写测试用例
在这里插入图片描述
对于ai辅助生成测试用例,主要会在人员编写的环节增加了整体ai流程,后面会讲到模型训练与调整
在这里插入图片描述

2.依赖安装

2.1python版本

需要明确一点就是python的版本一定要是3.8或3.8以上,查了很多ai三方sdk只支持python3.8以上的版本

2.2接入openAi

pip install openai 先安装openai的三方库
在实际开发中,发现deepseek/腾讯混元/阿里千问都支持openAi模块进行调用,字节的豆包需要下载Ark模块来进行请求
from openai import OpenAI
from volcenginesdkarkruntime import Ark
from common.logJournal import logger


class OpenAi:

    def __init__(self, typeOf):
        if typeOf == 1:
            self.client = OpenAI(api_key=api_key, base_url="https://api.deepseek.com")
            self.model = "deepseek-chat"
        elif typeOf == 2:
            self.client = Ark(api_key=api_key)
            self.model = "ep-20250205144141-zbd8k"
        elif typeOf == 3: #
            self.client = OpenAI(api_key=api_key, base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")
            self.model = "qwen-plus"
        elif typeOf == 4: #
            self.client = OpenAI(api_key=api_key, base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")
            self.model = "qwen-max"
        else:
            logger.error(f'OpenAi __init__ Exception  typeOf error',error=traceback.format_exc())

在__init__内进行初始化
获得self.client与self.model,其中model为你的模型名称,在每个ai的api文档内都能查到具体不同的模型对应的功能以及思考力度

3.生产用例

生产测试用例需要使用非流式响应来获取全文stream=False
一般网上会告诉大家用input输入文案后去获取ai的流式结果,但是我们如果用写case的话,其实可以省略掉这个步骤,直接告诉ai我需要做什么,也不用去进行多轮对话
    def run(self, text):
        # 获取完整响应内容 (非流式响应)
        attempts = 0
        while attempts < 10:
            try:
            	messages = [{"role": "system", "content": text}]
            	messages.append({"role": "user", "content": "输入需要产出的用例格式/具体内容/标题规范等"})
                response = self.client.chat.completions.create(
                    model= self.model,
                    messages=messages,
                    max_tokens =8000,
                    stream=False
                )
                # 格式化数据
                content = response.choices[0].message.content
                json_data = self.json_text(content)
                return json_data
            except Exception as e:
                attempts += 1
                logger.error(f'OpenAi run Exception 尝试 {attempts} 失败', error=traceback.format_exc())
                time.sleep(1)  # 等待1秒后重试
        return False  # 所有尝试都失败后返回False

对于用例返回的内容,我们也可以在content内增加ai模型返回的定义

"1.TestTitle 类型:String 内容:测试用例标题+测试目标"
"2.Preconditions 类型:String 内容:前置条件"
"3.TestCase 类型:String 内容:测试步骤"
"4.ExpectedResults 类型:String 内容:预期结果"
"5.Problem 类型:string 内容:你在分析过程中遇到的问题"
"6.ImportantLevel 类型 string 内容:测试用例优先级 主流程用例为P1,其他默认P2"

同时我们也对返回的json做了数据格式处理

json_data = self.json_text(content)

4.用例输出

生产出的测试用例通过格式转换,我们可以去写成接口,返回在response内
在这里插入图片描述

4.1用例颗粒度

因为tokens的问题,所以用例颗粒度会较低,并且会有幻觉与场景丢失情况,解决的办法就是,我们可以通过模块化区分,针对模块来生产出测试用例,例如caseTitle内为模块标题,下方的case则为模块内用例,从而变相增加用例的颗粒度
产出的case可以通过结果生成页面,提供给测试同学进行修改补充与完善

4.2用例产出

用例产出可以分为多种模式,如果有三方用例管理平台,可以通过api方式直接上传我们的测试用例,如果没有,也可以通过python的xmind库进行一键导出用例

5.用例调整

我们把ai返回的用例转换成json后去做格式处理,然后封装成接口并且把模块的测试用例保存到数据库内
并且做成前端可视化页面,可以提供给测试同学去手动修改ai产出的测试用例
在这里插入图片描述

我们还支持了一上传用例到三方平台并且可以针对测试计划创建进行的一键添加在这里插入图片描述

6.数据落库

6.1背景

数据落库主要分为两点

  • 第一就是我们可以做出前端页面,针对历史用例可以去进行复用,提升编写用例效率,例如增加通用场景的case进行一键添加
  • 第二就是为了方便我们后续对ai进行训练微调

6.2数据区分

我们数据落库的时候需要记录一些内容的明细

  • 需求名称
  • 模块名称
  • 需求文档内容
  • ai生产用例
  • 人工验收后用例
    下面会讲为什么要记录这些内容,而不是只记录修改后的用例就行
    在这里插入图片描述

7.模型调优

当我们的测试用例数据有一定量级时,我们就可以对模型进行调优,让ai模型更适合测试用例生产
举例:千问ai
在这里插入图片描述
在千问的api文档内,有明确的告诉大家sft与dpo模型调优的区别,目前来看,其实第二种更适合我们
在这里插入图片描述
我们来看调优DPO的时候需要的数据准备就能发现,我们需要举正反例子,那么我们在数据落库的时候,修改前与修改后的用例则派到了用场,只不过需要注意的是,token的输入对于测试用例的调优来说,确实有点高,不过如果不训练,实际上现有的模型解析思考已经能满足我们日常用例的生成了。

编写不易,分享请注明作者与地址~

<think>好的,我现在需要帮助用户寻找与DeepSeek相关的测试用例或示例。首先,我应该先理解用户的具体需求。用户提到“deepseek testing examples or test cases”,可能是在寻找关于DeepSeek模型或其产品的测试案例,或者是如何使用测试框架来测试基于DeepSeek开发的应用程序。 接下来,我需要查看用户提供的引用内容。引用[3]中提到DeepSeek的模型评估,包括不同版本的模型如DeepSeek-V2-0506DeepSeek-V2.5-0905,并与LLaMA、Claude、GPT-4o等进行了比较。这可能说明DeepSeek测试用例可能涉及模型性能评估、与其他模型的对比测试等。但用户提供的引用中没有具体的测试用例示例,更多的是关于测试方法或评估配置的信息。 引用[1]提到了Go语言中的测试文件命名规则测试函数的结构,这可能与用户的题无关,除非DeepSeek有使用Go语言的测试框架。引用[2]讨论了好的测试用例的标准,强调测试应获取信息并验证功能,这可能对用户构建测试用例有帮助,但未直接提供DeepSeek的示例。引用[4]提到神经网络的作业参数调整,可能与模型训练相关,但同样不直接涉及测试用例。 因此,用户可能需要寻找的是如何为DeepSeek模型设计测试用例,或者DeepSeek官方是否提供了测试示例。由于引用中没有具体的测试案例,我应该建议用户参考官方文档、GitHub仓库或社区资源。例如,可以查看DeepSeek的GitHub是否有测试代码,或者其文档中是否有关于模型评估的示例,如性能基准测试、输入输出验证等。 另外,根据引用[3],DeepSeek的评估涉及不同模型版本的对比,用户可能需要设计类似的功能测试、性能测试或兼容性测试用例。例如,测试模型在不同输入下的响应准确性,或者处理边界情况的能力。同时,引用[2]中提到合法数据验证功能,用户在设计测试用例时应确保覆盖正常异常场景。 总结来说,用户需要具体的测试用例示例,但现有引用中缺乏直接的信息。因此,回答应指导用户查阅官方资源,并基于测试原则提供设计测试用例的建议,如功能测试、性能测试、边界测试等。同时,可以建议参考类似模型(如GPT)的测试方法,或使用公开的基准测试数据集来评估DeepSeek模型。</think>关于寻找与DeepSeek相关的测试用例或示例,以下是分步说明资源建议: ### 1. 官方文档优先检索 建议首先访DeepSeek的: - **开发者文档**(如[DeepSeek API文档](https://platform.deepseek.com/api)) - **GitHub官方仓库**(搜索`deepseek-ai`组织) - **技术博客**(查看模型评估方法章节) 这些平台通常会提供: - API接口的单元测试样例 - 模型输入输出的验证案例 - 性能基准测试配置示例 ### 2. 测试用例设计维度 基于引用[3]的模型评估方法,可设计以下测试类型: #### (1)**功能验证测试** ```python # 示例:对话连贯性测试 def test_conversation_continuity(): response1 = model.chat("量子力学的基本原理是什么?") response2 = model.chat("刚才说的原理如何应用于量子计算?") assert "叠加态" in response2 # 验证上下文关联性 ``` #### (2)**边界测试** ```python # 示例:超长输入测试 long_text = "AI" * 5000 # 生成10,000字符输入 response = model.process(long_text) assert len(response) > 0 # 验证处理能力边界 ``` #### (3)**对比测试** ```python # 示例:多模型结果一致性验证 def test_result_consistency(): deepseek_res = deepseek_model("解释相对论") baseline_res = baseline_model("解释相对论") assert similarity_score(deepseek_res, baseline_res) > 0.7 ``` ### 3. 性能测试配置 根据引用[3]的评估方法,建议关注: ```markdown - 压力测试:`并发请求量 >= 1000次/秒` - 时延测试:`P99响应时间 < 2秒` - 资源消耗:`GPU内存占用率变化曲线监测` ``` ### 4. 测试用例参考模式 虽然未找到直接公开的测试套件,但可参考: 1. 使用**公开基准测试集**(如MMLU/C-Eval) $$ \text{准确率} = \frac{\sum_{i=1}^{N}I(\text{预测}_i = \text{标签}_i)}{N} $$ 2. 构建**领域特定测试集**(如法律/医疗垂类答) 3. 实施**对抗测试**(包含误导性题的测试案例) ### 5. 实施建议 1. 使用`pytest`框架组织测试用例 2. 结合`deepseek-python` SDK编写自动化测试 3. 采用`tox`工具管理多环境测试矩阵 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值