当前位置: 首页 > news >正文

Dify实战应用指南(上传需求稿生成测试用例)

一、Dify平台简介

Dify是一款开源的大语言模型(LLM)应用开发平台,融合了“Define(定义)+ Modify(修改)”的设计理念,通过低代码/无代码的可视化界面降低技术门槛。其核心价值在于帮助开发者和非技术人员快速构建、部署和管理基于LLM的AI应用,支持后端即服务(BaaS)和LLMOps全流程开发。平台提供画布式节点拖拽连接功能,简化大模型应用开发流程。

二、五大应用类型差异与适用场景

Dify支持五种核心应用类型,其交互方式与典型景如下:

类型交互方式是否多轮记忆典型场景
聊天助手对话式FAQ 机器人、闲聊
文本生成表单→一次性结果批量生成商品文案、翻译、摘要
Agent对话 + 工具调用订票助手、自动写周报(查邮件→总结)
Chatflow对话 + 流程编排复杂业务引导、客服 SOP、本例测试用例
Workflow表单→流程→结果定时跑批、合同审批、数据报表

关键差异说明

  • 交互模式:聊天助手为纯对话型,Agent强调自主行动,工作流与ChatFlow侧重流程自动化,文本生成聚焦内容创作。
  • 复杂度:Agent与工作流适用于多步骤复杂任务,ChatFlow在对话中嵌入流程,平衡交互性与自动化。

三、ChatFlow实践案例:上传需求稿生成测试用例

第一步:新建应用,选择 ChatFlow 类型
打开 Dify 控制台,点击【工作室】按钮。
选择应用类型为:ChatFlow,然后点击【创建空白应用】
补充:如果没有搭建本地dify的话,参考这个在Mac上搭建本地AI工作流:Dify与DeepSeek的完美结合
在这里插入图片描述
第二步:填写 Chatflow 信息

  • 应用名称:测试用例生成器
  • 应用描述:上传需求稿生成测试用例
  • 点击:创建
    在这里插入图片描述
    第三步:自定义编排工作流
  • 在开始后面加个条件分支判断,选择文件不为空就继续下一个节点到列表操作,否则去知识检索
    在这里插入图片描述
  • 在当文件不为空时增加一个列表操作的节点,用来识别对话的时候是否上传了文件,设置变量为文件,开启过滤条件,属性为文档
    在这里插入图片描述
  • 继续在列表操作节点后面添加一个文档提取器,把上传的文档数据识别出来,输出变量选择了列表操作
    在这里插入图片描述
  • 接着更新LLM设置,上下文选择我们文档提取器,等于把文档提取器识别的信息丢给DeepSeek
    在这里插入图片描述
    在系统提示词写转成测试用例的提示词内容如下:
读取提取器文档信息{{#context#}}的内容,按如下信息生成测试用例。
- Role: 软件测试工程师
- Background: 用户在软件开发过程中,需要根据需求稿或需求描述生成测试用例,以确保软件的功能符合预期,发现潜在的缺陷和问题。用户希望测试用例中包含用例的优先级,以便合理安排测试资源和测试顺序。
- Profile: 你是一位经验丰富的软件测试工程师,对软件测试的理论和实践有着深入的理解,熟悉各种测试方法和技术,能够根据需求文档快速准确地设计出有效的测试用例,并根据测试目标和风险评估确定用例的优先级。
- Skills: 你具备需求分析能力、测试用例设计能力、缺陷识别能力以及良好的逻辑思维能力,能够运用黑盒测试、白盒测试、边界值分析、等价类划分等多种测试方法,并根据功能的重要性和风险程度对测试用例进行优先级排序。
- Goals: 根据需求稿或需求描述,生成全面、有效的测试用例,并为每个测试用例分配合理的优先级,以优化测试流程,确保关键功能的测试优先进行。
- Constrains: 生成的测试用例应具有可操作性、可重复性,覆盖需求中的所有功能点,同时避免冗余和重复。优先级应明确分为高、中、低三个等级。
- OutputFormat: 以表格形式输出测试用例,包括测试编号、测试步骤、预期结果、用例优先级等。
- Workflow:1. 仔细阅读需求稿或需求描述,理解软件的功能和业务逻辑。2. 根据需求中的功能点,运用测试方法设计测试用例,确保每个功能点都有对应的测试用例。3. 对测试用例进行优先级评估,根据功能的重要性和风险程度分配高、中、低优先级。4. 对测试用例进行审核和优化,确保其完整性和有效性。
- Examples:- 例子1:需求描述为“用户登录功能,用户输入用户名和密码,点击登录按钮,系统验证用户名和密码是否正确,正确则跳转到主页,错误则提示错误信息。”测试用例:| 测试编号 | 测试步骤 | 预期结果 | 用例优先级 || --- | --- | --- | --- || TC001 | 输入正确的用户名和密码,点击登录按钮 | 跳转到主页 ||| TC002 | 输入错误的用户名,正确的密码,点击登录按钮 | 提示用户名错误 ||| TC003 | 输入正确的用户名,错误的密码,点击登录按钮 | 提示密码错误 ||| TC004 | 输入空的用户名和密码,点击登录按钮 | 提示用户名和密码不能为空 ||- 例子2:需求描述为“购物车功能,用户可以将商品添加到购物车,购物车显示商品的名称、数量和总价。”测试用例:| 测试编号 | 测试步骤 | 预期结果 | 用例优先级 || --- | --- | --- | --- || TC005 | 将商品A添加到购物车 | 购物车显示商品A的名称、数量1和单价 ||| TC006 | 将商品A添加两次到购物车 | 购物车显示商品A的名称、数量2和总价 ||| TC007 | 将商品A和商品B分别添加到购物车 | 购物车显示商品A和商品B的名称、数量和总价 ||
- Initialization: 在第一次对话中,请直接输出以下:作为软件测试工程师,我将根据需求稿或需求描述为您生成测试用例,并为每个用例分配合理的优先级。请提供需求文档,我会根据需求设计全面的测试用例,并明确用例的优先级。
  • 直接输出,修改为我们文档提取器的内容
    在这里插入图片描述
  • 选择文件为空增加一个节点去知识检索并配置知识库

在这里插入图片描述

  • 设置LLM,上下文优先查询引用的本地知识库,然后下一节点直接回复
    在这里插入图片描述
  • 最后我们来上传一个需求文档,发现已经按文档内容生成了测试用例,截图如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
四、实践效果​

通过该 chatflow 实践例子,用户无需手动编写测试用例,只需上传需求稿并进行简单的确认和调整,就能快速得到符合要求的测试用例,大大提高了测试用例的生成效率,减少了人工操作的误差,同时也降低了对测试人员专业技能的要求,使得测试工作更加便捷高效。

http://www.dtcms.com/a/334934.html

相关文章:

  • C/C++中的内存分区
  • Java8~Java21重要新特性
  • sharding-jdbc读写分离配置
  • “preinstall“: “npx only-allow pnpm“
  • C#多线程并发安全队列ConcurrentQueue
  • 防火墙虚拟系统配置实验
  • 自然语言处理——02 文本预处理(上)
  • B*算法深度解析:动态避障路径规划的革命性方法
  • AI安全增强核心技术:提示词防火墙、置信度过滤与知识蒸馏防御
  • 2-3〔O҉S҉C҉P҉ ◈ 研记〕❘ 漏洞扫描▸AppScan(WEB扫描)
  • XC6SLX45T-2FGG484C Xilinx AMD Spartan-6 FPGA
  • 16-集合的Stream编程
  • 基于STM32的智能书房系统设计与实现
  • BitLocker解密
  • docker compose安装mysql8
  • UE5多人MOBA+GAS 46、制作龙卷风技能
  • C/单片机内存管理,仿真keii
  • 第5问 对于数据分析领域,统计学要学到什么程度?
  • 第6问 数据分析领域主要的岗位有哪些?
  • 《从混乱到有序:AI 如何一步步梳理数据质量难题》文章提纲
  • 基于Python的课程作业管理系统 Python+Django+Vue.js
  • Python-深度学习.pytorch(二)——自动微分、认识深度学习
  • C++STL标准模板库详解
  • 【渗透实战】无下载器环境(curl/wget)下玩转 Metasploit 自动利用
  • ES操作手册
  • 一、内核初始化中与内存管理相关的函数
  • C语言:文件操作详解
  • 微软Wasm学习-创建一个最简单的c#WebAssembly测试工程
  • 【项目实战】利用AI生成式编程生成控制镜头变倍,变焦,光圈的Shell脚本(一)
  • 如何在FastAPI中玩转APScheduler,实现动态定时任务的魔法?