当前位置: 首页 > 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.lryc.cn/news/622702.html

相关文章:

  • Jenkins常见问题及解决方法
  • STM32 延时函数详解
  • 343整数拆分
  • 后量子密码算法ML-DSA介绍及开源代码实现
  • 【Qt开发】常用控件(四)
  • 算法提升之树上问题-(tarjan求LCA)
  • 基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
  • MySQL 配置性能优化赛技术文章
  • Win10、Win11电脑之间无法Ping通解决办法
  • 设计模式之【快速通道模式】,享受VIP的待遇
  • Python - 100天从新手到大师:第十一天常用数据结构之字符串
  • OpenCV Python——图像拼接(一)(图像拼接原理、基础知识、单应性矩阵 + 图像变换 + 拼接)
  • redis基本类型之哈希
  • 爬机 验证服务器是否拒绝请求
  • 衡石使用指南嵌入式场景实践之仪表盘嵌入
  • 【Docker项目实战】使用Docker部署Notepad轻量级记事本
  • 《吃透 C++ 类和对象(中):const 成员函数与取地址运算符重载解析》
  • js原生实现手写签名与使用signature_pad库实现手写签名
  • 【Java Web 快速入门】十一、Spring Boot 原理
  • Flutter开发 网络请求
  • Flutter InheritedWidget 详解:从生命周期到数据流动的完整解析
  • Flutter Provider 模式实现:基于 InheritedWidget 的状态管理实现
  • SQL183 近三个月未完成试卷数为0的用户完成情况
  • 力扣(LeetCode) ——142. 环形链表 II(C语言)
  • JavaWeb 30 天入门:第十一天 ——Java 反射机制详解
  • 【环境变量与程序地址空间详解】
  • vue3动态的控制表格列的展示简单例子
  • 从希格斯玻色子到 QPU:C++ 的跨维度征服
  • KingbaseES高可用架构深度解析——从读写分离到异地灾备的全方位守护
  • 【C++】异常详解(万字解读)