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

相关文章:

  • 守护品质安全,防伪溯源系统打造全链路信任体系
  • MySQL异步连接池的学习(五)
  • 海康机器人3D相机的应用
  • Docker目录的迁移
  • OpenCV Python——图像拼接(一)(图像拼接原理、基础知识、单应性矩阵 + 图像变换 + 拼接)
  • Python爬虫实战:研究Scrapy Spiders ,构建豆瓣网电影数据分析处理系统
  • CSV 生成 Gantt 甘特图
  • aws(学习笔记第五十一课) ECS集中练习(3)
  • 初识c语言————宏定义和调用
  • Trae中`settings.json`文件的Java配置项功能详解(一)
  • 云原生俱乐部-RH124知识点总结(1)
  • 安卓11 12系统修改定制化_____列举与安卓 9、10 系统在定制化方面的差异与权限不同
  • 【科普向-第一篇】数字钥匙生态全景:手机厂商、车厂与协议之争
  • Flutter Provider 模式实现:基于 InheritedWidget 的状态管理实现
  • 矩阵链相乘的最少乘法次数(动态规划解法)
  • 开源 Arkts 鸿蒙应用 开发(十七)通讯--http多文件下载
  • bilibili视频总结
  • RK3568 NPU RKNN(一):概念理清
  • 【P14 3-6 】OpenCV Python——视频加载、摄像头调用、视频基本信息获取(宽、高、帧率、总帧数)
  • 10-verilog的EEPROM驱动-单字节读写
  • 罗技MX Anywhere 2S鼠标修复记录
  • 多机编队——(6)解决机器人跟踪过程中mpc控制转圈问题
  • AT89C52单片机介绍
  • CVE-2024-28752漏洞复现
  • mysql一启动就挂的解决
  • Javar如何用RabbitMQ订单超时处理
  • Docker部署 Neo4j Community【拒绝国内镜像拉取异常】
  • Vue组件生命周期钩子:深入理解组件的生命周期阶段
  • 论文学习24:Boundary-Sensitive Segmentation of SmallLiver Lesions
  • 服务器可以ping通,但部署的网站打不开