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.pswp.cn/bicheng/93566.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/93566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习日志35 python

1 Python 列表切片一、切片完整语法列表切片的基本格式: 列表[start:end:step]start:起始索引(包含该位置元素,可省略)end:结束索引(不包含该位置元素,可省略)step&#…

Linux -- 文件【下】

目录 一、EXT2文件系统 1、宏观认识 2、块组内部构成 2.1 Data Block 2.2 i节点表(Inode Table) 2.3 块位图(Block Bitmap) 2.4 inode位图(Inode Bitmap) 2.5 GDT(Group Descriptor Table) 2.6 超…

谷歌手机刷机和面具ROOT保姆级别教程

#比较常用的谷歌输入root面具教程,逆向工程师必修课程# 所需工具与材料清单 真机设备 推荐使用 Google Pixel 4 或其他兼容设备,确保硬件支持刷机操作。 ADB 环境配置 通过安装 Android Studio 自动配置 ADB 和 Fastboot 工具。安装完成后,需在系统环境…

平衡二叉搜索树 - 红黑树详解

文章目录一、红黑树概念引申问题二、红黑树操作一、红黑树概念 红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位用来表示节点颜色(红色或者黑色),红黑树通过约束颜色,可以保证最长路径不超过最短路径的两倍,因而近似平衡…

从0开始跟小甲鱼C语言视频使用linux一步步学习C语言(持续更新)8.14

第十六天 第五十二,五十三,五十四,五十五和五十六集 第五十二集 文件包含 一个include命令只能指定一个被包含文件 文件允许嵌套,就是一个被包含的文件可以包含另一个文件。 文件名可以用尖括号或者双引号括起来 但是两种的查找方…

B+树索引分析:单表最大存储记录数

在现代数据库设计中,随着数据量的增加,如何有效地管理和优化数据库成为了一个关键问题。根据阿里巴巴开发手册的标准,当一张表预计在三年内的数据量超过500万条或者2GB时,就应该考虑实施分库分表策略 Mysql B树索引介绍 及 页内储…

三、memblock 内存分配器

两个问题: 1、系统是怎么知道物理内存的?linux内存管理学习(1):物理内存探测 2、在内存管理真正初始化之前,内核的代码执行需要分配内存该怎么处理? 在Linux内核启动初期,完整的内存…

Python 桌面应用形态后台管理系统的技术选型与方案报告

下面是一份面向“Python 桌面应用形态的后台管理系统”的技术选型与方案报告。我把假设前提→总体架构→客户端技术选型→服务端与数据层→基础设施与安全→交付与运维→质量保障→里程碑计划→风险与对策→最小可行栈逐层给出。 一、前置假设 & 非功能目标 业务假设 典型…

Winsows系统去除右键文件显示的快捷列表

前言:今天重做了电脑系统,安装的是纯净版的系统。然后手动指定D盘安装了下列软件。(QQ,迅雷,百度网盘,搜狗输入法,驱动精灵)然后我右键点击桌面的软件快捷方式,出现了一排…

【Go】Gin 超时中间件的坑:fatal error: concurrent map writes

Gin 社区超时中间件的坑:导致线上 Pod 异常重启 在最近的项目中,我们遇到了因为 Gin 超时中间件(timeout) 引发的生产事故:Pod 异常退出并重启。 问题现场 pod无故重启,抓取标准输出日志,问题…

数据结构:用数组实现队列(Implementing Queue Using Array)

目录 第1步:设计蓝图 (The Struct) 第2步:队列的诞生 (创建与初始化) 第3步:状态检查 (判满与判空) 第4步:核心操作 (入队与出队) 入队 (Enqueue) 出队 (Dequeue) 第5步:善后工作 (销毁队列) 现在,我…

Boost库核心组件与应用

一、BOOST 库简介:C 开发者的 “扩展工具集” 在 C 编程领域,除了标准库(STL)外,BOOST 库是最具影响力的第三方库之一。它由全球数百位开发者共同维护,包含超过 160 个高质量的组件,覆盖从基础…

机器学习 [白板推导](十二)[卡曼滤波、粒子滤波]

15. 线性动态系统(卡曼滤波,Kalman Filter) 15.1. 概述 15.1.1. 背景介绍 变量随时间变化的系统叫做动态系统,其中隐变量取值离散的是隐马尔可夫模型(HMM),而隐变量取值连续的分为线性动态系统…

RH134 访问网络附加存储知识点

1. NFS 的主要功能是什么?答:NFS是一种分布式文件系统协议,主要功能包括:允许远程计算机通过网络访问共享文件。 实现文件系统在客户端和服务器之间的透明访问。支持文件的共享、读取和写入,使得多个 …

组合模式及优化

组合模式是一种结构型设计模式,其核心思想是将对象组合成树形结构,以表示“部分-整体”的层次关系,使得用户对单个对象和组合对象的使用具有一致性。 一、介绍 核心角色 组合模式包含以下3个关键角色: 抽象组件(Compon…

【wmi异常】关于taskkill命令提示“错误:找不到” 以及无法正常获取设备机器码的处理办法

记录一下我的解决方案。 我先查阅了这篇博客:https://blog.csdn.net/qq_45698181/article/details/138957277 发现他写的批处理不知怎么执行不了,后来问了ai又可以执行了,估计是csdn防盗版格式问题 这里写一下我跟ai的对话,大家可…

制造装配、仓储搬运、快递装卸皆适配!MinkTec 弯曲形变传感器助力,让人体工学改变劳动生活

【导语】Minktec 最新实验显示:将Minktec 柔性弯曲形变传感器FlexTail 贴于受试者背部,记录 1 分钟内从洗碗机取餐具的动作,结合配套的flexlib -专用Python库分析,不仅量化出 “越低越伤腰” 的结论,更为制造装配、物流…

Nginx蜘蛛请求智能分流:精准识别爬虫并转发SEO渲染服务

> 一招解决搜索引擎爬虫无法解析现代前端框架的痛点,提升网站收录率与SEO排名! **痛点场景**:你的网站采用Vue/React等前端框架构建,页面内容依赖JavaScript动态渲染。搜索引擎爬虫访问时,只能抓取到空HTML骨架,无法获取真实内容,导致网站收录率低、SEO效果差。 --…

链表。。。

目录 5.1 链表的结点 5.2 插入 5.3 链表长度 5.4 查找 5.5 指定位置删除 5.6 代码 5.1 链表的结点 一个结点包括:值和指向下一个结点的指针。 package com.qcby.链表;public class Node {int value;Node next;public Node(int val){valueval;}Overridepublic…

私人AI搜索新突破:3步本地部署Dify+Ollama+QwQ,搜索能力MAX

1.安装Docker容器 本地部署Dify要先安装Docker桌面版,跟Ollama一样简单,也是去官网下载对应版本文件,直接安装就OK。 2:安装Dify 安装 Dify 简单的方式就是git clone,复制其github地址github.com/langgenius/dify&am…