📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
利用大模型直接生成测试用例已成为被广泛尝试的方法。然而,这种方法存在一些明显的缺点。
首先,大模型可能生成与实际需求不完全匹配的测试用例,因为它们缺乏对具体业务逻辑和系统细节的深入理解。其次,大模型生成的测试用例可能存在不符合公司内部的测试规范,需要人工进行大量的筛选和补充工作,这增加了测试成本和时间。
为了解决这些问题,本文介绍一种基于知识库增强的测试用例生成方法。该方法通过结合知识库中的领域知识和大模型的生成能力,旨在提高测试用例的准确性和覆盖率,同时减少生成过程中的人工干预。
在传统的检索增强生成(RAG)方法中,系统主要依赖于单次检索与用户查询相关的文档来辅助生成测试用例。然而,这种方法在处理复杂的测试需求时存在很多局限性,如难以处理复杂需求场景、对模糊查询的处理效果不佳、单次查询召回率低等问题。
本系统采用的agentic RAG方法在传统RAG的基础上进行了改进。它不仅能够更智能地处理用户的查询,还能根据测试需求动态调整检索策略,提高检索的准确性和效率。此外,agentic RAG还具备一定的自适应能力,能够根据每次的查询反馈不断优化生成结果,从而更好地满足测试用例生成的需求。
方案介绍
本系统通过LlamaIndex框架构建多源知识库,结合ReAct智能体实现RAG(检索增强生成技术)辅助测试用例生成,核心功能如下:
1.知识库管理:将知识库划分为三类,每个知识库均通过LlamaIndex建立独立向量索引,支持语义检索:
测试知识库:提供标准测试方法论、常见测试场景模版、行业测试规范、通用用例集等测试领域知识。
业务知识库:存储业务流程规则、领域术语字典、用户旅程地图、业务关键性等级定义等业务知识。
项目知识库:包含当前项目的需求文档、技术方案、历史缺陷报告、项目特有约束条件等上下文信息。
2.智能决策引擎:基于ReAct智能体解析用户需求,动态生成RAG查询指令,协调三类知识库的联合检索。
3.用例生成层:融合检索结果与大模型推理能力,生成符合特定项目要求、业务场景以及内部测试规范的测试用例,并输出为CSV和JSON两种格式。
技术原理
本系统的核心功能基于Agentic RAG技术实现。Agentic RAG是一种融合智能代理(Agent)能力的RAG架构。通过动态规划、多步骤推理和自主决策机制,Agentic RAG可以在复杂任务中实现闭环的检索-加工-验证-优化。
相比于传统的朴素RAG方法,Agentic RAG有如下优势:
工作流程
功能展示
1.知识库管理页面
支持上传pdf、docx、txt等多种格式的知识库文档,并对文档进行分类管理。在本页面可对知识库文档进行基本的增删改查。文档上传后会被解析、分块和向量化,并插入RAG持久化索引。
2.测试用例生成页面
用户可输入需求描述并一键生成测试用例。若未勾选“是否参考知识库内容”,则采用最简单的问答模式直接根据需求生成测试用例;若勾选了此选项,则采用智能体模式,由智能体自主决策如何分别查询三类知识库,并用查询到的内容增强测试用例生成过程。
3. 格式化用例输出
支持CSV和JSON格式的用例展示,让生成的结果结构清晰、一目了然:
4. 知识溯源
启用知识库增强后,可展示出测试用例生成中参考的知识库片段,增强了大模型生成结果的可解释性
5. 流程追踪
在运行日志中可查看Agent具体的观察、思考、决策和工具调用过程。
比如,当用户在知识库中分别上传了三类知识库文档,并让大模型生成支付模块的商户端功能的测试用例,智能体将进行如下的思考和行动过程:
1)首先,智能体进行思考:第一步应当查询项目需求文档。于是智能体对项目知识库发起工具调用,查询关键词为“支付模块的商户端功能”
Thought: The current language of the user is: Chinese. I need to use a tool to help me answer the question. According to the instructions, my first step should be to extract specific project requirements from the project knowledge base.
Action: project_docs
Action Input: {'question': '支付模块的商户端功能'}
2)查询完项目知识库后,智能体对查询结果进行了观察和总结:
Observation: 商户端功能主要包括以下几个方面:
1. **支付接口**:
- **统一下单接口**:用于生成预支付订单,获取预支付交易会话标识(`prepay_id`)。
- **回调通知**:支付结果通过指定的`notify_url`异步通知商户服务器,确保商户能够及时了解支付状态。
- **订单查询**:商户可以根据订单号查询订单的状态,包括成功、失败或退款等。
2. **资金管理**:
- **提现与结算**:支持T+1结算模式,即将资金结算到商户的银行账户。
- **费率设置**:根据行业标准配置相应的交易手续费,以适应不同行业的收费需求。
这些功能旨在为商户提供便捷的支付集成和高效的交易管理能力。
3)接下来,智能体基于上一步的结果进行第二步的思考,并查询了业务知识库:
Thought: 从项目知识库中获取到了支付模块商户端的主要功能,包括支付接口(统一下单、回调通知、订单查询)和资金管理(提现与结算、费率设置)。接 下来我需要通过业务知识库来验证这些领域内的业务规则。
Action: business_rules
Action Input: {'question': '支付模块的商户端功能'}
Observation: 支付模块的商户端功能业务主要包括以下几个方面:
1. **交易处理**:商户可以通过支付模块接收用户的支付请求,包括扫码支付、APP支付等多种方式。支付流程通常包括发起、授权、执行、清算和结算五个环。
2. **退款与撤销**:商户可以对未支付成功的订单进行撤销操作,直接关闭交易;对于已支付成功的订单,商户可以发起退款,将资金按原路径退回给用户。
3. **资金管理**:商户需要严格区分虚拟账户(如余额账户)和外部银行实体账户,确保资金不被混用。同时,商户需遵循清算环节中的记账规则,采用复式 记账法管理资金流向。
4. **合规性要求**:商户在处理支付时,需要对交易进行身份核验和合法性审查,防范欺诈和洗钱等行为。跨境支付还需符合外汇管理规则,确保交易的合法 性和合规性。
5. **数据安全与隐私保护**:商户需确保交易数据的安全存储和传输,符合相关法规如《支付卡行业数据安全标准》(PCIDSS)及《通用数据保护条例》(GDPR)的要求。
6. **透明性与选择权**:商户需提供公平的协议条款,保障用户对费用和资金流向的知情权,并在营销活动中避免误导性宣传。
7. **创新支付方式**:商户可以支持新型支付方式,如“先用后付”(如花呗、BNPL)和代扣等,但需明确风险控制规则,如额度管理和信用评估。
4)基于前两步的结果,智能体进行了第三步的思考和查询。这一次查询的是测试知识库:
Thought: 通过业务知识库了解到支付模块商户端功能的详细业务规则,包括交易处理、退款与撤销、资金管理、合规性要求、数据安全与隐私保护、透明性与 选择权以及创新支付方式等。接下来我需要利用测试知识库来确认测试设计规范。
Action: testing_standards
Action Input: {'question': '支付模块的商户端功能'}
Observation: 支付模块的商户端功能通常涉及多个方面,包括但不限于订单管理、支付处理、退款操作以及交易查询等。在设计测试用例时,可以考虑采用场
景法(流程分析法)来模拟不同的用户操作流程,比如支付成功、支付超时、取消支付等分支情况。此外,还可以利用边界值分析法针对特定数值范围进行测试
确保系统能够正确处理各种边缘情况下的支付请求。对于可能存在的逻辑关系复杂的优惠或费用计算规则,则可以通过因果图法来生成相应的测试用例,以验验不同条件组合下系统的响应是否符合预期。
5)最后一步,智能体思考后认为自己已经获得了足够的信息,就可以输出最终的测试用例结果了:
Thought: 从测试知识库中获得了关于支付模块商户端功能的测试设计建议,包括使用场景法、边界值分析法和因果图法来生成测试用例。现在我有了足够的信 息来综合项目特定要求、业务规则以及测试设计规范,从而生成准确可靠的测试用例。
Thought: I can answer without using any more tools. I'll use the user's language to answer
6)侧边栏切换:支持一键切换百炼平台提供的千问系列三种大模型,用户可以按需选择
百炼官方提供的三种模型的能力高低和使用成本由高到低排名依次为:
备注:DeepSeek-R1不支持工具调用,而DeepSeek-V3的工具调用功能不稳定,因此未纳入本版本中。后期会考虑加入更多大模型,敬请期待后续文章。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】