需求文档一键转测试用例!新一代AI智能体测试人必须知道!

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


AI智能体(AI Agent)近年来发展迅猛,展现出广阔的应用前景和巨大的商业潜力。不少优秀企业也都推出了自己的AI智能平台,每一家都各具特色,今天我们就给大家推荐一款自动化需求解析与测试用例生成的提效“黑科技”--AutoGen只要点点点,便可实现一键生成测试用例?!真有这么神奇吗?今天带大家一起来看看!

阅读本文你将收获:

  • Autogen 是什么?

  • Autogen智能生成测试用例的原理;

  • Streamlit + AutoGen + DeepSeek的环境部署与案例实战。

01 Autogen 是什么?

AutoGen 是由微软推出的一个强大框架,专注于多智能体协作,旨在自动化复杂的流程,如代码生成、任务拆解、决策优化等。

其核心优势在于智能体之间的协作能力,这使得它特别适用于处理那些涉及多个步骤、跨领域合作和需要实时调整的任务。AutoGen 不仅能够自动执行任务,还能够让不同的智能体之间进行高效协同,甚至允许人类参与其中进行必要的调整或干预,从而保证任务的高效完成。

这个工具有三个绝招: 

  1. 需求解析:支持上传需求文档或者手动输入需求内容。你只需要把需求丢进系统,剩下的事情交给AI就行了。

  2. 数据库管理:需求存储、查询、更新,一个系统全搞定,再也不用担心我的需求文档找不到了!

  3. 测试用例生成:这才是它的杀手锏!直接从数据库中选取需求,系统就能自动生成覆盖功能验证、边界条件和异常处理的测试用例。

你只需要点点鼠标就能得到一份高质量的测试用例,简直不要太爽!而且生成的测试用例还能导出为Excel、Markdown或JSON格式,满足各种场景需求。无论你是喜欢表格党还是代码流,它都能满足你的需求。

02 Autogen智能生成测试用例的原理

AutoGen 智能生成测试用例的核心原理通过多智能体协作框架结合大语言模型(LLM)的推理能力,实现对代码逻辑的深度分析和测试场景的自动化构建

以下是其技术原理的详细分解:多智能体分工协作:

AutoGen 通过多个智能体(Agents)分阶段处理测试生成任务,每个智能体专注特定环节

image.png

协作流程示例

image.png

以电商优惠券函数为例

def apply_discount(price: float, user_level: int, is_new: bool) -> float:
    if is_new and price > 100:
        return price * 0.8
    elif user_level >= 5:
        return price * 0.9
    return price

AutoGen 处理过程

1.代码分析

识别参数

  • price(float), user_level(int), is_new(bool)

  • 提取分支

    is_new and price > 100

    user_level >= 5

2.测试生成:

  • 边界值

    price=100.0/100.01, user_level=4/5

  • 组合测试:

  • [(True, 100.01, 3), (False, 200.0, 5), (True, 50.0, 1)]
  • 异常输入

    price=-1.0, user_level=None

3.输出用例:​​​​​​​

@pytest.mark.parametrize("is_new,price,user_level,expected", [
    (True, 100.01, 3, 80.008),  # 新用户折扣
    (False, 200.0, 5, 180.0),   # 高等级用户
    (True, 50.0, 1, 50.0)       # 无折扣
])

03 Streamlit + AutoGen + DeepSeek的环境部署与案例实战

工具组合的核心价值

Streamlit

  • 快速构建交互式 Web 应用,支持上传 PDF 文件、输入 PRD 内容、选择导出格式等功能。

  • 实时展示生成的测试用例,提供友好的用户界面。

AutoGen:

  • 通过多智能体协作,模拟测试团队的分工与协作(如需求分析、测试设计、用例评审)。

  • 支持自定义角色,提升复杂需求的解析能力。

DeepSeek

  • 深度理解 PRD 内容,提取关键需求点并生成高覆盖率的测试用例。

  • 支持多种格式导出,满足不同团队的需求。

环境准备及操作步骤

第1步:环境准备‌

Python环境要求‌

确保Python ≥3.8,推荐使用虚拟环境:​​​​​​​

conda create -n autogen-demo python=3.10
conda activate autogen-demo

安装核心库

pip install pyautogen streamlit  # 核心依赖
pip install python-dotenv        # 环境变量管理

获取DeepSeek API Key‌

访问DeepSeek官网注册账号

在控制台创建API Key并保存为 DEEPSEEK_API_KE ‌

第2步:项目结构‌

创建以下目录与文件:​​​​​​​

testcase-autogen/  
├── .env              # 存储API密钥  
├── config.py         # 全局配置  
├── testcase_agents.py # AutoGen智能体定义  
└── app.py            # Streamlit前端入口

第3步:配置与密钥管理‌

‌编辑 .env 文件

DEEPSEEK_API_KEY=your_api_key_here

编写 config.py‌​​​​​​​

import os
from dotenv import load_dotenv

load_dotenv()

DEEPSEEK_CONFIG = {
    "model": "deepseek-chat",
    "api_key": os.getenv("DEEPSEEK_API_KEY"),
    "base_url": "https://api.deepseek.com/v1", 
    "temperature": 0.3,
    "max_tokens": 2000
}

第4步:定义AutoGen智能体在 testcase_agents.py 中编写:​​​​​​​

import autogen
from config import DEEPSEEK_CONFIG

class TestcaseGenerator:
    def __init__(self):
        # 创建用户代理(需求输入)
        self.user_proxy = autogen.UserProxyAgent(
            name="User",
            code_execution_config=False,
            human_input_mode="NEVER"
        )

        # 创建测试工程师代理(调用DeepSeek)
        self.test_engineer = autogen.AssistantAgent(
            name="TestEngineer",
            llm_config={"config_list": [DEEPSEEK_CONFIG]},
            system_message="你是一名资深测试工程师,擅长根据需求生成边界值、异常流、正向场景的测试用例,用Markdown表格输出。"
        )

    def generate(self, requirement: str) -> str:
        # 启动对话流程
        self.user_proxy.initiate_chat(
            self.test_engineer,
            message=f"需求:{requirement}\n请生成测试用例,包含用例编号、步骤、预期结果、优先级。"
        )
        # 返回最后一条消息(生成的测试用例)
        return self.test_engineer.last_message()["content"]

第5步:构建Streamlit前端‌

在 app.py 中实现交互界面:​​​​​​​

import streamlit as st
from testcase_agents import TestcaseGenerator

# 初始化生成器
@st.cache_resource
def load_generator():
    return TestcaseGenerator()

def main():
    st.title("🚀 AI测试用例生成器")
    st.markdown("输入需求,自动生成完整测试用例表(Powered by DeepSeek)")

    # 输入区域
    requirement = st.text_area("请输入需求描述:", 
        placeholder="示例:用户登录功能,需验证手机号+密码登录,错误三次锁定账户")

    if st.button("生成测试用例"):
        if not requirement.strip():
            st.error("请输入需求描述!")
            return

        with st.spinner("AI正在思考中..."):
            try:
                generator = load_generator()
                test_cases = generator.generate(requirement)
                
                # 显示结果
                st.markdown("### 生成的测试用例")
                st.markdown(test_cases)

                # 添加下载按钮
                st.download_button(
                    label="下载Markdown文件",
                    data=test_cases,
                    file_name="test_cases.md"
                )
            except Exception as e:
                st.error(f"生成失败:{str(e)}")

if __name__ == "__main__":
    main()

第6步:运行与测试‌

‌启动Streamlit

streamlit run app.py

‌操作演示‌

  • 输入需求:“用户登录功能,需验证手机号+密码登录,错误三次锁定账户”

  • 点击生成按钮,等待10-20秒

  • 查看生成的Markdown表格,示例输出:

| 用例编号 | 测试步骤                   | 预期结果               | 优先级 |
|---------|--------------------------|----------------------|-------|
| TC001   | 输入正确手机号和密码        | 登录成功              | P0    |
| TC002   | 输入错误密码(1次)         | 提示密码错误,可重试   | P1    |
| TC003   | 连续输入错误密码3次          | 账户锁定,提示联系客服  | P0    |

第7步:高级优化(可选)‌

增加历史记​​​​​​​

# 在app.py中添加session_state记录
if "history" not in st.session_state:
    st.session_state.history = []

# 生成成功后保存记录
st.session_state.history.append({
    "time": datetime.now().strftime("%Y-%m-%d %H:%M"),
    "requirement": requirement,
    "test_cases": test_cases
})

参数调节面板​​​​​​​

with st.sidebar:
    st.header("高级设置")
    temperature = st.slider("生成温度", 0.0, 1.0, 0.3)
    max_tokens = st.number_input("最大长度", 500, 3000, 2000)

多模型切换​​​​​​​

LLM_PROVIDER = os.getenv("LLM_PROVIDER", "deepseek")  # 可设置为openai/deepseek

if LLM_PROVIDER == "deepseek":
    CONFIG = DEEPSEEK_CONFIG
else:
    CONFIG = OPENAI_CONFIG

好了,今天的分享就都这里了~

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​

### 软件测试智能体工具与框架概述 软件测试智能体(AI Agent for Software Testing)是一种结合人工智能技术的自动化测试工具或框架,旨在提高测效率、减少工干预并优化测流程。以下是关于软件测试智能体的相关信息、工具和框架: #### 1. Testsigma - 完整的敏捷与 DevOps 测自动化解决方案 Testsigma 是一款基于人工智能自动化测试工具,提供从规划到报告的全流程支持[^1]。其核心功能包括: - **低维护测**:通过机器学习算法自动识别应用程序元素的变化,从而减少测脚本的维护成本。 - **简化调**:在复杂场景下,Testsigma 提供强大的问题诊断能力,帮助用户快速定位错误。 - **团队协作**:支持项目成员共享测试用例和数据源,促进跨部门合作。 ```python # 示例代码:使用 Testsigma 创建一个简单的测试用例 from testsigma import TestSigma def create_test_case(): ts = TestSigma() ts.create_test("Login Test", "Verify user login functionality") ts.add_step("Enter username", "input_text", "username_field", "test_user") ts.add_step("Enter password", "input_text", "password_field", "secure_password") ts.add_step("Submit form", "click", "login_button") return ts.run_test() create_test_case() ``` #### 2. LangChain - 智能体开发框架用于生成测试用例 LangChain 是一种流行的 AI 智能体开发框架,可以用于生成测试用例[^2]。它通过分析需求文档和设计文档,自动生成测点和测试用例。具体实现步骤如下: - **输入解析**:将需求文档或设计文档换为结构化数据。 - **测点生成**:利用自然语言处理技术提取关键测点。 - **输出格式化**:将生成的测试用例导出为思维导图、Excel 或其他常用格式。 ```python # 示例代码:使用 LangChain 生成测试用例 from langchain.agents import initialize_agent from langchain.llms import OpenAI def generate_test_cases(requirements_document): llm = OpenAI(temperature=0) agent = initialize_agent(llm, tools=["test_case_generator"]) return agent.run(f"Generate test cases from: {requirements_document}") generate_test_cases("User should be able to log in with valid credentials.") ``` #### 3. MetaGPT - 开源 AI 智能体框架 MetaGPT 是一种模仿传统软件公司结构的开源 AI 智能体框架[^3]。它可以分配不同的角色(如产品经理、项目经理和工程师)来协作完成复杂的任务。在软件测试领域,MetaGPT 可以用于以下场景: - **需求分析**:智能体根据用户需求生成详细的测计划。 - **测执行**:模拟测工程师的行为,自动运行测试用例。 - **结果分析**:对测结果进行智能化分析,并提出改进建议。 ```python # 示例代码:使用 MetaGPT 分配测任务 from metagpt import MetaGPT def assign_test_tasks(user_requirements): gpt = MetaGPT() gpt.assign_role("Product Manager", "Analyze user requirements and define test scope.") gpt.assign_role("Test Engineer", "Create and execute test cases based on the defined scope.") return gpt.run_project(user_requirements) assign_test_tasks("Develop a mobile app with user authentication features.") ``` ### 实现软件测试智能体的关键技术 为了实现高效的软件测试智能体,需要综合运用以下技术: - **自然语言处理(NLP)**:用于解析需求文档和生成测试用例。 - **机器学习(ML)**:用于预测测结果和优化测策略。 - **持续集成/持续交付(CI/CD)**:确保测流程与开发流程无缝集成。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值