Recap Series
- 第 02 场:使用 Terraform 实现 AWS 合规
- 第 03 场:从新手到构建者:一段精彩的云上之旅
- 第 04 场:团队优先的无服务器工程:Laravel 与 Bref
- 第 05 场:活动开场:AWS Community Day Hong Kong 2025
- 第 06 场:Agent-to-Agent:在 AWS 上构建可互操作的 AI
- 第 07 场:利用另一类遥测数据,借助 AI Agent 更快改进
- 第 08 场:告别氛围编程:使用 Kiro 进行规范驱动开发
- 第 09 场:使用 MCP 与 AI 智能体进行自动化测试
- 第 10 场:电信安全现代化:机器学习驱动的方法
- 第 11 场:重新思考生成式 AI 智能体:RAG 与 MCP
- 第 12 场:使用 TAK 与 AWS 开展灾难与应急响应
- 第 13 场:从测试视角重新思考无服务器应用程序工作流
- 第 14 场:实用 AWS FinOps,助力云上成功
视频
https://www.youtube.com/watch?v=cgoFdt8ybwY&t=1296s
准备与规划
基础:测试数据
- 经常被忽视,但至关重要
- 任务管理系统(例如 Jira):使用 Webhook 将更新存储到 Amazon S3
- Swagger 文档:提供 API 规范和参数
- 历史测试用例:可用于验证并重新测试以往用例
连接数据源
- 传统方法发现关联关系的能力有限
- 引入大语言模型(LLM)来建立关联
- 示例:
- Mariana(在 AWS 从事云计算与 AI 工作)
- Dario(AI 公司 Entropic 的联合创始人)
- Entropic 开发了一系列可通过 Amazon Bedrock 使用的 LLM
执行
AI 驱动的测试工作流
- 利用 AI 实现测试流程自动化并提升测试能力
- 深入探讨 AI 如何与现有测试框架集成
报告
综合报告
- 根据自动化测试生成富有洞察的报告
- 利用 AI 提供可执行的洞察和建议
- 强调使用 AI 改造传统测试工作流
- 邀请大家就所介绍的构想提供反馈并展开讨论
使用知识图谱理解关联关系
- 知识图谱能够捕捉简单文本搜索无法发现的复杂关系
- 示例:Mariana(在 AWS 从业)与 Entropic(由 Dario 创立的 AI 公司)之间的关系
- 知识图谱可以揭示简单搜索无法发现的隐藏关联
知识图谱在自动化测试中的重要性
- 对自动生成任务和测试用例至关重要
- 从数据源中提取实体,并连接相关项目
- 示例:
- 需求工单
- API 规范
- 历史测试用例
创建知识图谱
- 传统方法(例如 PostgreSQL)操作繁琐,可视性较低
- 无代码解决方案(例如 DynamoDB)效率不高
- 图数据库(例如 Amazon Neptune、Neo4j)效果更好,但需要学习节点、边和属性等新概念
解决方案:Amazon Neptune Analytics
- 将图数据库能力与基础模型和 Amazon Bedrock 相结合
- 无需复杂语法即可插入和检索信息
- 提供美观的图视图,用于数据可视化
图检索增强(RA)
- AI 检索参考文档并生成响应的一种技术
- 图 RA 使用知识图谱进行检索,而不是简单的文本搜索
AI 驱动的测试流水线
- 构建在知识图谱基础之上
- 采用行为驱动开发(BDD),并以 Gherkin 格式编写测试用例
- Gherkin 场景使用 Given、When 和 Then 等关键字,指定功能的初始状态、操作和预期结果
- 测试用例示例:根据前置条件和场景检查首页标题
- 知识图谱是实现有效自动化测试的关键
- Amazon Neptune Analytics 简化了图数据库管理和可视化
- 图 RA 增强了 AI 驱动的测试用例生成与执行能力
AI 驱动的测试用例生成
目标
- 使用 AI 智能体提高测试用例覆盖率和一致性
AI 智能体的能力
- 选择最合适的操作来实现测试目标
- 分析业务流程,并从知识图谱中读取需求
示例
订阅管理功能
业务流程分析
- 知识图谱识别出:
- 在 UI 中验证支付方式
- 调用支付 API
冲突检测
- AI 智能体检测需求冲突:
- 旧规则:用户必须先验证电子邮箱,才能访问高级功能
- 新规则:试用用户无需验证电子邮箱,即可使用高级功能七天
- 相应更新相关测试用例
发现 API 详细信息
- 从图数据库中提取端点、必选/可选参数和错误响应
- 通过记录的数据识别 API 依赖关系(例如订阅创建成功、支付失败)
测试数据生成
- 创建覆盖以下情况的测试数据:
- 正常流程(成功场景)
- 边界情况(边界条件)
- 错误情况(失败场景)
结论
- AI 智能体通过以下方式增强测试用例生成:
- 分析业务流程
- 检测冲突并更新测试用例
- 发现 API 详细信息和依赖关系
- 生成全面的测试数据
完善并执行测试用例
使用业务规则完善测试用例
- 利用业务流程分析和已识别规则中的信息完善场景
- 将完善后的场景转换为基于场景的测试用例
人在回路验证
- AI 可以生成全面的测试用例,但仍需要人类专家进行验证
- 人工验证可确保边界情况和业务背景得到充分覆盖
- Jira 工单系统、API 文档和历史测试用例可能无法覆盖所有场景
使用 Playwright 执行
- Playwright:快速可靠的端到端测试工具
- Playwright 支持 Chromium、WebKit 和 Firefox 等所有现代渲染引擎,并可跨平台运行;能够在本地的 Windows、Linux 和 macOS 上进行测试
- 使用 Playwright 执行测试
- 广为人知的开源自动化测试框架
- 直接与浏览器通信,高效执行测试
- 支持多种语言(Java、Python、C、JavaScript、TypeScript)
- 社区支持强大,在 GitHub 上拥有 78.9K 个 Star
- 原生支持 MCP(Model-Based Continuous Planning),可接收自然语言指令
- 内置功能:
- 并行执行,提高效率
- 全面的跟踪与调试功能
- 自动截屏和视频录制
- 详细记录日志,用于记录测试过程并支持后续验证
结论
- AI 能够增强测试用例生成能力,但人工验证至关重要
- Playwright 能够高效、灵活且功能丰富地执行测试
使用 AI 智能体执行测试用例
任务执行智能体
- 负责执行阶段的 AI 智能体
- 从生成的任务中提取测试参数
- 创建 Playwright 脚本并存入数据库,以供日后参考
- 自动执行测试
使用 Playwright 进行 AI 驱动测试的示例
- 前端和后端测试
- 使用 Playwright MCP 与 Amazon Q Developer CLI 进行实验
- 为一个简单的电子商务网站设计三个测试用例:
- 购买商品、填写配送信息并完成下单流程
- 登录并进入商品页面,不执行后续操作
- 将商品加入购物车,不执行后续操作
执行后验证
- 将测试用例存储在数据库中
- 利用视频录制等功能进行后续验证
- 测试人员可以查看录制的视频,确认实际行为是否符合预期
完整测试执行流程回顾
- 三个 AI 智能体协同工作:
- 测试用例生成器
- 测试用例执行器
- 报告生成器(记录结果并保存录像)
- 模块化方式具备灵活性和可扩展性
利用多个 MCP
- 根据不同测试需求使用多种 MCP:
- 使用 MySQL MCP 生成真实数据
- 使用 Redis MCP 存储最近使用的测试用例
- 简化测试流程
核心信息:测试左移
- 在开发周期早期集成自动化测试
- 优势:
- 提高质量
- 提升效率
- 降低成本
- 减少技术债务
结论
- AI 驱动的自动化测试可节省时间和成本
- 测试人员可专注于验证,而非生成测试用例
