鹤啸九天 自律更自由,平凡不平庸 Less is More

大模型应用: 代码辅助

2025-02-25
鹤啸九天
阅读量275

Notes(温馨提示):

  1. ★ 首次阅读建议浏览:导航指南, 或划到本页末尾, 或直接点击跳转, 查看全站导航图
  2. 右上角工具条搜索文章,右下角二维码关注微信公众号(鹤啸九天),底栏分享、赞赏、评论
  3. ★ 转载请注明文章来源,知识点积累起来不容易,水滴石穿,绳锯木断,谢谢理解
  4. ★ 如有疑问,邮件讨论,欢迎贡献优质资料


大模型应用: 代码辅助

总结

【2024-9-6】 第三方观点 常见编码助手:阿里通义灵码,商汤小浣熊,智谱codegeex,讯飞iflycoder

  • 反响最好是通义灵码…

【2025-2-25】 最强代码模型 Claude 3.7, Grok 3

代码辅助工具

AI Shell

AI Shell 将自然语言转换为Shell命令的CLI工具。受 GitHub Copilot X CLI 启发,但AI Shell是开源的,为所有人提供服务。

用户只需安装 AI Shell 并从OpenAI获取API密钥,便可使用该工具。

Cursor

【2024-11-16】10几个人如何构建20多亿的cursor,Lex 对 Cursor 团队访谈

AI coding 是模型推理能力增加之后的下一个竞争高地。

  • Github Copilot 是第一个 LLM-driven 的消费级应用

除了模型厂商、AI Labs 之外,这个领域的参与者也有着 Cursor 这样的初创团队

作为一个 LLM-first IDE,Cursor 在今年迅速出圈

  • 一方面: 底层模型 Claude Sonnet 3.5 模型 coding 能力提升带来的体验升级
  • 另一方面: 团队在 AI Coding UI/UX 上的持续投入。

技术选型

  • 刚开始用 Vim 做代码编辑。当时还没有 Neovim,只有 Vim 和一个终端。
  • 2021 年 Copilot 发布时,由于 Copilot 只能在 VS Code 上使用,所以 Cursor 转用 VS Code 了。
  • Copilot 和 VS Code 组合使用体验特别好,所以即便很喜欢 Vim,还是转向了 VS Code。
  • 开发 Cursor 之前,VS Code 都是默认编辑器。

Cursor 是怎么做预测的?Cursor 延迟很低, Tab 健能做下一步动作预测(next action prediction)

背后的技术细节

  • 训练了专门MoE小模型: 这些模型很依赖 pre-fill tokens
    • 这些模型面对的是非常长的 prompt,需要处理很多代码行,但是实际生成的 token 并不多。这种情况下使用稀疏模型(Sparse Model)就很合适,一种 MoE 模型。这个突破显著提高了模型处理长上下文时的性能。
  • 基于推测解码(Speculative Decoding)构建了推测编辑(Speculative Edits)。

这两个因素是 Cursor 生成质量高、速度快的关键。

没有哪个模型能在所有方面的表现都比其他模型更好,包括速度、代码编辑能力、处理大量代码的能力、上下文长度和代码能力等等。不过,整体上表现最好的模型是 Sonnet,这也是共识。

大量和 prompt 相关的信息,包括文档、添加的文件和对话历史等。

问题:在 context window 有限的情况下,该如何筛选和组织这些信息?

  • Cursor Priompt 渲染器把内容合理地排布在页面上,只需要告诉它想要什么,它就会帮你实现。
  • 开发了 Priompt 内部系统, 借鉴现代网页开发的最佳实践。和固定版式的杂志排版不同,网站开发中会涉及到的一个情况是,不同设备的中信息的展示多少、格式等是动态变化的,而用户到底在哪里查看网站开发者事前并不知道,但无论终端怎么变,都要保证网站信息在不同设备上正常显示。AI 提示词工程也是类似,我们要做到无论 input 内容多大、怎么变,output 的格式都能正确展示。

团队创始成员 Aman Sanger (CEO)、Arvid Lunnemark(CTO)、Sualeh Asif(COO)和 Michael Truell(设计主管)详细分享了 Cursor 产品体验、infra、模型训练、数据安全等细节,以及对于 AI coding、AI Agent 的思考,通过这些分享也能了解 Cursor UI/UX 背后的理念。

  • o1 不会干掉 Cursor,AI Coding 领域才刚刚开始;
  • • 围绕代码预测、补齐等各类任务 Cursor 还训练了一系列专门的小模型;
  • • Cursor 正在试验一个叫做 Shadow Space 的产品概念,后台运行一个隐藏窗口让 AI 在不影响到开发者的操作的情况下进行 coding 任务;
  • • 团队在 code base indexing 上投入了大量精力,这个 indexing 系统会成为接下来其他代码任务可以展开的基础;
  • • 未来编程会是自然语言和代码将共存,根据具体任务选择最有效的交互;
  • AI 正在重塑编程体验,提高效率的同时保持程序员的创造力和控制力;
  • • Cursor 认为 Claude 3.5 Sonnet 综合实力更强,Sonnet 最强的地方在于能够很好地理解开发者表述并不清晰的目标,预测程序员接下来的操作、给出适当建议;
  • • 即便是 SOTA 模型, 也不擅长找 bug,这会是 Cursor 的机会;
  • • 当前代码任务基准测试并不能准确反映模型的真实能力,因为现实中的代码任务更加复杂多样,并且充满了模糊性和上下文依赖。Cursor 团队更倾向于通过真实用户的使用反馈来评估模型的性能;
  • • 目前还没有人能很好地解决 models routing 问题,底座模型和自有模型之间可以初步实现模型切换,但如果是 GPT-4o、Claude sonnet 和 o1 之间的切换可能要更加复杂。

MarsCode

【2024-6-27】探索豆包 MarsCode:字节跳动的AI编程助手

字节跳动推出的革命性工具——豆包 MarsCode ,免费的AI编程助手,旨在提升开发者的编码体验。

MarsCode不仅仅是一个编程工具,它是一个全方位的AI助手,集成了代码补全、生成、解释、优化、注释生成、单元测试生成、智能问答和问题修复等强大功能。它支持多种编程语言,并且可以无缝集成到Visual Studio Code和JetBrains等主流IDE中。

主要功能

  • AI助手:提供代码补全、生成、优化、注释生成和解释。
  • 智能问答: 唤起对话框后,你可以在输入框中输入你的问题,然后点击 发送 按钮或敲击回车键,豆包 MarsCode 编程助手将回答你的问题。你可以进行多轮问答,不断补充细节,从而使插件的回答更加准确。

cline

Cline是一款功能强大且完全免费的AI编程工具,能够显著提高开发效率。

代码编程插件 Cline

VSCode中安装Cline插件:

  • 打开VSCode
  • 点击插件图标
  • 搜索”Cline”并安装
  • 安装完成后,左侧会出现小机器人图标

Cline支持配置多种API key,包括Open Router、Open AI和Ollama等。

  • 也可使用 deepseek api

创建一个登录页面非常简单:

  • 在Cline中输入任务描述:”写一个好看的登录页面,使用HTML、JS、CSS”
  • Cline会自动分析需求,并逐步生成HTML、CSS和JavaScript代码
  • 最终生成的页面美观实用,完全符合预期

【2025-1-21】实践

任务:

生成一段html,js代码,实现功能:逐项卡片展示数组a里的项目,布局要求:第一行加粗展示“RedNote Slangs for TiktokRefugee”,其次再展示卡片,每行3个卡片,超过后另起一行,每个卡片浅蓝色背景,卡片是云朵颜色,3个字段字体颜色依次是红色、绿色、紫色,点击卡片后自动放大,要求简洁、美观、立体效果、配色好看;数据:国内常用网络用语,每个短语包含字段:中文短语、英文短语、英文解释;以 javascript list 输出, 示例 [[‘a’, ‘a’, ‘a’]];注意:只输出代码,不要解释

报错

Command failed with exit code 1: powershell (Get-CimInstance -ClassName Win32_OperatingSystem).caption ‘powershell’

提交问题官方 issue

Trae

【2025-1-20】字节全新AI编程软件:Trae!免费无限量使用Claude

Trae 是字节跳动推出的免费中文 AI IDE,通过 AI 技术提升开发效率。

  • 支持原生中文,集成了 Claude 3.5 和 GPT-4o 等主流 AI 模型,完全免费使用。

Trae 主要功能: Builder 模式和 Chat 模式

  • Builder 模式可帮助开发者从开始构建项目
  • Chat 模式支持对代码库或编程问题进行提问和优化。

Chat 模式

  • 快捷键:使用 Cmd + i 或 Cmd + u 调用 Chat 功能。
  • 交互方式:在对话框中输入问题或代码需求,Trae 会基于 AI 模型生成代码建议或解答。
  • 代码更新:Trae 会显示原始代码和优化后的代码对比,开发者可以选择接受或拒绝。

Builder 模式

  • 项目生成:通过简单描述(如“生成一个图片压缩工具”),Trae 可以自动生成项目代码。
  • 交互执行:在生成过程中,Trae 可能会征求用户意见(如是否执行命令),需要手动确认。
  • 代码预览与调试:Trae 提供 Webview 功能,可以直接在 IDE 内预览 Web 页面,方便前端开发。如果遇到错误,可以通过点击命令行中的“Add To Chat”按钮,将错误信息复制到 Chat 中,让 AI 帮助解决。
  • 上下文引用:在 Chat 中可以引用代码块、文件、文件夹或整个项目。
  • 命令行工具:支持在本地终端安装 Trae 的命令行工具。

注意事项:

  • Trae 的 AI 功能目前不支持直接读取外网链接。
  • 使用 Builder 生成项目时,建议提前手动创建虚拟环境(如 Python 的 venv 或 Conda),避免环境变量问题。

Trae 具备友好的交互设计,如代码预览、Webview 功能,以及强大的代码生成能力。

作为一款直接对标 Cursor 和 Windsurf 的全新 AI IDE,Trae 的目标不仅是与这些工具竞争,更是要弥补它们在中文开发者体验上的短板。现在 Trae IDE 的 Claude 3.5 和 GPT-4o 都是限时免费用

代码生成

数据集

BigCodeBench

BigCodeBench: 继 HumanEval 之后的新一代代码生成基准测试

BigCodeBench 包含1140个函数级任务,挑战 LLMs 遵循指令并将来自139个库的多个函数调用作为工具进行组合。

BigCodeBench 为每个任务提供了复杂的、面向用户的指令,包括清晰的功能描述、输入/输出格式、错误处理和已验证的交互示例。我们避免逐步的任务指令,相信有能力的 LLMs 应该能够从用户的角度以开放的方式理解和解决任务。我们通过测试用例验证特定功能。

网站设计

【2025-3-7】Wegic

提示语

设计一个科技公司主页,要求大气
主营业务:软件开发、人工智能、大模型、AIGC等
团队成员:王文,北京航空航天大学;管同学,北京交通大学博士;王小文,中国农业大学计算机硕士
过往项目:① 嵌入式设备开发 ② 视频直播软件开发 ③ 大模型对话助手
联系方式:公众号 廿面体,邮箱 wqw547243068@163.com

哪吒抽取系统

【2025-2-25】 实测: 大模型生成《哪吒2》人物抽签系统

总结(60分及格,低分不计入榜单)

  • 功能完成度:DeepSeek V3>Gemini-2 Flash>豆包 1.5-Pro>OpenAI o3-mini
  • 页面美观度:DeepSeek V3>DeepSeek R1满血版=DeepSeek R1联网版=Gemini-2 Flash>豆包 1.5-Pro
  • 数据准确度:DeepSeek R1满血版=豆包 1.5-Pro>DeepSeek R1联网版=OpenAI o3-mini=Gemini-2 Flash>GPT-4o-mini
  • 自我认知:全部失败,只有DeepSeek能报出模型名(不过是GPT-4)

整体:DeepSeek V3强于DeepSeek R1=openai系列

聊天框

提示词

用前端代码写一个聊天对话页面,布局:第一行是标题 "ChatBot Demo",背景是蓝天, 5朵边缘模糊的白云从左往右慢慢飘动,右上角是太阳,周围发出金光;标题下是 对话框,UI 仿照微信聊天框风格,聊天框居中,占页面 1/2,半透明效果,可滑动,立体效果,Bot/User两种角色分别使用不同logo;支持流式输出;左侧是两个滑动控制条,控制两个参数 temperature 取值范围 [0,1], top_p 取值范围 [0,1]; 对话框下方备注“LLM Web 示例<br>2025-03-01”

NL2Code

【2023-5-30】代码大模型综述:中科院和MSRA调研27个LLMs,并给出5个有趣挑战

  • NL2Code: 将自然语言转换成可执行代码来提高开发人员的工作效率
  • 中科院和微软亚洲研究院在 ACL 2023 国际顶会上发表的一篇综述:调研了 NL2Code 领域中的「27 个大型语言模型以及相关评价指标」,分析了「LLMs 的成功在于模型参数、数据质量和专家调优」,并指出了「NL2Code 领域研究的 5 个机遇挑战」,最后作者建立了一个分享网站来跟踪 LLMs 在 NL2Code 任务上的最新进展。
  • Large Language Models Meet NL2Code: A Survey

代码测试

随着软件系统的复杂性不断增加,软件测试的重要性越来越高,测试活动将影响开发人员的工作效率,产品的可靠性、稳定性和合规性,以及最终产品的运营效率。

智能测试

智能测试发展阶段

  • 大模型出现之前,软件测试领域一直在探索“智能测试”,例如精准测试、通过各种传统算法生成用例、UI自动化测试等。
  • 大模型出现后,智能测试层次不断提升,真正进入了“智能测试”新时代。

《大模型应用跟踪月报(2024年10月)》,从场景上看

  • 相较于2024年上半年常见的知识助手、编码助手、智能客服等场景
  • 大模型在销售赋能、软件测试、智能运维等场景的应用上升明显。

软件测试领域,自动化测试脚本成为继测试用例生成外又一个显著赋能企业质量和测试活动的重要场景。

从测试端到端工作量分布来看,测试自动化工作量占比较大,随着测试业务量的持续增大,对测试自动化的及时性自动化率提出了更高要求,同时测试自动化程度高也会降低测试执行部分的工作量。

大模型能力

优势

核心优势

  • 自然语言理解能力
    • 非结构化需求文档中提取测试需求和关键场景。
    • 自动识别需求中的模糊或矛盾之处,优化测试设计。
  • 知识学习推理能力
    • 大模型的上下文推理能力强,复杂场景下生成高质量测试用例。
    • 基于现有知识,预测潜在缺陷位置,提升测试效率。
  • 多语言多平台支持
    • 支持多种语言的测试脚本生成和转换(如将 Java 转为 Python 测试代码)。
    • 跨平台测试(如 Web 和移动端)中提供一致性支持。
  • 数据生成分析能力
    • 生成多样化测试数据,包括:边界值、随机值和异常值。
    • 高效分析测试结果并自动生成测试报告。

参考:

不足

大模型存在的问题

  • 模型的准确性与上下文理解
    • 特定领域的专业知识可能不足,需结合领域数据进行微调。
  • 生成代码的可维护性
    • 自动化生成的代码质量不稳定,可能需要人工优化,RAG知识库等手段来提升质量。
  • 测试流程集成
    • 将大模型能力高效集成到现有测试工具链中仍需探索。
  • 数据隐私与安全
    • 生成测试数据或分析日志时,需确保敏感信息的脱敏处理。

参考:

自动化场景

大模型为自动化测试脚本生成带来新方案

  • 大模型可以编写自动化测试脚本,用于单元APIUI功能性和非功能性检查及评估,但是可能需要其他平台或工具执行自动化测试脚本。

范围

  • 测试用例生成
  • 自动化脚本生成
  • 缺陷预测
  • 测试数据生成
  • 等任务

(1) 测试用例生成

通过解析需求文档,大模型可以生成覆盖不同场景和边界条件的测试用例

基本流程一致

  • 收集全部产品需求和研发设计文档,输入到大模型,生成自动测试用例

区别

  • 方案1:原文整体输入大模型
  • 方案2:原文摘要后再给大模型
  • 方案3:原文存入向量数据库,通过搜索相似内容,自动生成部分测试用例

3种方案使用场景不同,优缺点也可互补

方案 文档处理方式 优点 缺点 适用场景
方案1 原文整体 用例内容相对准确 不支持特大文档,容易超出token限制 普通规模需求及设计
方案2 原文摘要 摘要后无需担心token问题 用例内容不准确,大部分都概况 特大规模的需求及设计
方案3 RAG 用例内容更聚焦,无需担心token问题 部分用例 仅对需求及设计中部分生成用例

参考

streamlit

代码 AITester

LangChain

Langchain 测试用例生成方案

用户登录模块

需求:

  • 测试用户登录模块,包括正常登录、错误密码、账号锁定等场景。

代码示例

from wenxin_api import TextGeneration
# 初始化大模型
model = TextGeneration(api_key="your_api_key")

# 输入需求描述
requirement = """
用户登录模块需要支持以下场景:
1. 正确的用户名和密码可以成功登录。
2. 错误的密码会提示登录失败。
3. 连续三次错误登录后,账号会被锁定。
"""

# 生成测试用例
response = model.generate_text(prompt=f"根据以下需求生成测试用例:\n{requirement}")
print(response["result"])

输出测试用例示例:

  • 正确用户名 “test_user”,密码 “password123”,预期结果:登录成功。
  • 用户名 “test_user”,密码 “wrong_password”,预期结果:提示登录失败。
  • 连续输入错误密码三次后,预期结果:账号锁定。

解析:

  • 通过模型生成的测试用例,涵盖了功能测试的核心场景,并能快速扩展至异常处理和边界条件测试。

GPT-4 生成测试用例示例:

依赖

pip install openai
pip install pytest
pip install requests

代码

import openai

# 设置API密钥
openai.api_key = "YOUR_API_KEY"

def generate_test_cases(prompt):
    response = openai.Completion.create(
        engine="text-davinci-003",
        prompt=prompt,
        max_tokens=500
    )
    return response.choices[0].text.strip()

# 定义测试用例生成的提示
prompt = """
Generate test cases for an e-commerce platform with the following features:
1. User Registration
2. User Login
3. Product Search
4. Add to Cart
5. Place Order
6. Payment

Please provide detailed test cases including steps, expected results, and any necessary data.
"""

# 生成测试用例
test_cases = generate_test_cases(prompt)
print(test_cases)

(2) 测试数据生成

大模型能够根据场景需求,快速生成多样化的测试数据,包括边界值、异常值和随机值。

生成银行账户系统的测试数据

目标:

  • 为账户余额字段生成不同类型的测试数据。
data_requirement = """
生成用于测试银行账户系统的数据,包括:
1. 正常值:0 到 100 万之间的金额。
2. 边界值:负值、0、最大值。
3. 异常值:空值、非数字字符。
"""

response = model.generate_text(prompt=f"根据以下需求生成测试数据:\n{data_requirement}")
print(response["result"])

输出结果:

正常值:500, 10000, 999999
边界值:-1, 0, 1000000
异常值:None, "abc", 1.5e6

通过模型生成的数据多样性显著提高,能够有效覆盖更多测试场景。

(3) 自动化脚本生成

大模型通过自然语言理解,将需求描述转化为可执行代码,极大地提高了测试脚本的开发效率。

功能测试

用测试用例编写自动化测试脚本。

用pytest框架进行功能测试

import requests

# 基础URL
BASE_URL = "http://example.com/api"

def test_user_registration():
    url = f"{BASE_URL}/register"
    data = {
        "username": "testuser",
        "email": "testuser@example.com",
        "password": "password123"
    }
    response = requests.post(url, json=data)
    assert response.status_code == 201
    assert response.json()["message"] == "User registered successfully."

def test_user_login():
    url = f"{BASE_URL}/login"
    data = {
        "email": "testuser@example.com",
        "password": "password123"
    }
    response = requests.post(url, json=data)
    assert response.status_code == 200
    assert "token" in response.json()

def test_product_search():
    url = f"{BASE_URL}/search"
    params = {"query": "laptop"}
    response = requests.get(url, params=params)
    assert response.status_code == 200
    assert len(response.json()["products"]) > 0

def test_add_to_cart():
    # 假设我们已经有一个有效的用户token
    token = "VALID_USER_TOKEN"
    url = f"{BASE_URL}/cart"
    headers = {"Authorization": f"Bearer {token}"}
    data = {"product_id": 1, "quantity": 1}
    response = requests.post(url, json=data, headers=headers)
    assert response.status_code == 200
    assert response.json()["message"] == "Product added to cart."

def test_place_order():
    # 假设我们已经有一个有效的用户token
    token = "VALID_USER_TOKEN"
    url = f"{BASE_URL}/order"
    headers = {"Authorization": f"Bearer {token}"}
    data = {"cart_id": 1, "payment_method": "credit_card"}
    response = requests.post(url, json=data, headers=headers)
    assert response.status_code == 200
    assert response.json()["message"] == "Order placed successfully."

性能测试

大模型生成高并发用户请求,进行负载测试。

import threading
import time

def perform_load_test(url, headers, data, num_requests):
    def send_request():
        response = requests.post(url, json=data, headers=headers)
        print(response.status_code, response.json())

    threads = []
    for _ in range(num_requests):
        thread = threading.Thread(target=send_request)
        threads.append(thread)
        thread.start()

    for thread in threads:
        thread.join()

# 示例负载测试
url = f"{BASE_URL}/order"
headers = {"Authorization": "Bearer VALID_USER_TOKEN"}
data = {"cart_id": 1, "payment_method": "credit_card"}

# 模拟100个并发请求
perform_load_test(url, headers, data, num_requests=100)

UI 测试

“操控”浏览器进行自动化测试

大模型可直接将需求描述测试用例转化为具体的执行动作

  • Selenium 或 Appium 自动化测试脚本。
  • Browser Use
Selenium

登录功能的 Selenium 测试脚本生成

需求:

  • 对登录页面进行自动化测试,包括验证输入框和按钮的基本功能。

生成测试脚本

from wenxin_api import TextGeneration
 
# 输入测试需求
requirement = """
测试目标:验证登录页面基本功能。
1. 页面应包含用户名输入框、密码输入框和登录按钮。
2. 输入正确的用户名和密码后,应成功跳转到首页。
"""

# 生成 Selenium 脚本
response = model.generate_text(prompt=f"根据以下需求生成 Selenium 测试脚本:\n{requirement}")
print(response["result"])

输出:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
 
# 初始化 WebDriver
driver = webdriver.Chrome()
 
# 打开登录页面
driver.get("http://example.com/login")
 
# 验证页面元素
assert driver.find_element(By.ID, "username")
assert driver.find_element(By.ID, "password")
assert driver.find_element(By.ID, "loginButton")
 
# 输入用户名和密码
driver.find_element(By.ID, "username").send_keys("test_user")
driver.find_element(By.ID, "password").send_keys("password123")
 
# 点击登录按钮
driver.find_element(By.ID, "loginButton").click()
 
# 验证跳转到首页
assert "Homepage" in driver.title
 
driver.quit()
Playwright

Playwright 为现代 Web 应用提供可靠的端到端测试。

Playwright 是微软开发的 Web应用 的 自动化测试框架

selenium 相对于 Playwright 慢很多,因为

  • Playwright 是异步实现,但 selenium 同步,后一个操作必须等待前一个操作。
  • selenium 由相应厂商提驱动,python+驱动执行相当自动化操作,缺点:如果浏览器驱动和浏览器版本不对应,selenium就会报错,而且时刻关注版本问题。
  • Playwright 基于 Node.js 语言开发,不需要再重新下载一个浏览器驱动,相当于已经写好了,仅仅需要安装这个库即可

原文链接:https://blog.csdn.net/ak_bingbing/article/details/135852038

任何浏览器 • 任何平台 • 一个 API

  • 跨浏览器。 Playwright 支持所有现代渲染引擎,包括 Chromium、WebKit 和 Firefox。
  • 跨平台。 在 Windows、Linux 和 macOS 上进行本地或 CI 测试,无头或有头。
  • 跨语言。 在 TypeScript、JavaScript、Python、.NET、Java 中使用 Playwright API。
  • 测试移动网络。 适用于 Android 的 Google Chrome 和 Mobile Safari 的原生移动模拟。 相同的渲染引擎可以在桌面和云端运行。

(4) 静态代码分析

缺陷预测与静态代码分析

大模型通过学习历史代码和缺陷数据,能够预测可能的缺陷位置,并给出优化建议。

基于代码的缺陷预测

目标:

  • 分析一段 Python 代码,预测可能存在的安全漏洞。

示例

code_snippet = """
def login(username, password):
    query = "SELECT * FROM users WHERE username = '{}' AND password = '{}'".format(username, password)
    execute_query(query)
"""
 
# 使用大模型分析代码
response = model.generate_text(prompt=f"分析以下代码并指出潜在的安全问题:\n{code_snippet}")
print(response["result"])

输出结果:

- 问题:代码存在 SQL 注入漏洞。
- 优化建议:使用参数化查询代替字符串拼接。

大模型结合知识库和推理能力,可以高效发现代码中的常见漏洞,提升代码质量。

(5) 测试报告

测试报告自动化生成

大模型可根据测试结果生成详细的测试报告,包括: 问题统计覆盖率分析改进建议

自动生成测试报告

目标:

  • 对测试结果进行分析,并生成适合管理层的测试总结。
def analyze_test_results(results):
    prompt = f"""
Analyze the following test results and provide a summary report including the number of successful tests, failures, and any recommendations for improvement:

{results}
"""
    response = openai.Completion.create(
        engine="text-davinci-003",
        prompt=prompt,
        max_tokens=500
    )
    return response.choices[0].text.strip()

# 示例测试结果
test_results = """
Test User Registration: Success
Test User Login: Success
Test Product Search: Success
Test Add to Cart: Failure (Product not found)
Test Place Order: Success
"""
test_results = """
通过的测试用例:90
失败的测试用例:10
覆盖率:85%
"""

# 分析测试结果
report = analyze_test_results(test_results)
print(report)

输出示例:

总测试用例数:100
通过率:90%
覆盖率分析:当前覆盖率为 85%,建议增加边界条件测试以提高覆盖率。
改进建议:关注失败用例涉及的模块,特别是登录和支付功能。

(6) 系统集成

问题

  • 如何将上述代码整合到一个持续集成(CI)/持续交付(CD)管道中
  • 如何处理和报告测试结果

确保测试过程高效、自动化,并且易于维护。

详见

测试工具

Shortest

Shortest 一款开源 AI 测试框架,彻底改变了开发者端到端测试的方式。

开发者用简单易懂的纯英语编写测试用例。Shortest 将这些指令转换成可执行的测试代码。

Shortest 用 Anthropic 的 Claude API 进行准确的解释和执行。

该框架与 GitHub 无缝集成,并利用 Playwright 强大的测试引擎。

Shortest 提供更快、更直观的测试流程,减少了对大量编码知识的需求。

关键特性:

  • 自然语言处理:Shortest 接受用日常英语书写的测试指令。无需学习复杂的测试语法或API。
  • LLM驱动的测试执行:Anthropic Claude API 能够解释自然语言输入,并转换为可靠的可执行测试代码。
  • Playwright 基础:Shortest 建立在 Playwright强大的测试引擎之上,确保测试执行的稳定性和可靠性。
  • GitHub 集成:Shortest 与 GitHub无缝集成,方便管理测试套件和开发者之间的协作。
  • 快速创建测试:开发者可以专注于描述测试场景,Shortest负责将其转换为可执行代码,从而加快测试开发速度。

Browser Use

网页应用的功能越来越丰富,交互性越来越强。从简单的信息展示页面到复杂的在线办公系统电商平台,网页应用的测试难度呈指数级增长

传统自动化测试工具在复杂应用面前,显得力不从心。

Browser Use 打破了传统测试工具的局限性,能够快速、准确地模拟用户在浏览器中的各种操作,对网页应用进行全面、深入的测试

Browser Use 运用了一系列先进的浏览器自动化技术来实现对浏览器的操控。

  • 通过调用浏览器的开发者工具接口,能够模拟用户的各种操作,如点击、输入、滚动等。
  • 同时,它还可以监控浏览器的各种事件,如页面加载完成、元素出现或消失等。

信息

Browser Use

  • 将用户测试需求转化为语言模型能够理解的格式,发送给LLM进行处理。
  • LLM 生成相应的测试步骤操作指令
  • 再将指令转化为实际的浏览器操作

例如,测试一个复杂的在线表单填写功能

  • 用户输入“填写所有必填字段并提交表单”
  • LLM 分析表单中各个字段,并生成相应的填写内容和操作步骤
  • Browser Use 则按照这些步骤,在浏览器中模拟用户的填写和提交操作。

Prompt 示例: 演示案例见 走进Browser Use:领略AI赋能UI自动化测试的魔法魅力

  • 用谷歌邮箱给我爸爸写一封信,感谢他所做的一切,并将文档保存为PDF
  • 阅读我的简历并找到ML工作,将其保存到文件中,然后在新选项卡中开始申请,如果您需要帮助,请咨询我。
  • 在kayak.com上查找 2024年12月25日至2025年2月2日从苏黎世飞往北京的航班。
  • 查找具有cc-by-sa-4.0 license的模型,并按照在Hugging Face上的最多点赞数进行排序,将前5名保存到文件中。

代码

from langchain_openai import ChatOpenAI
from browser_use import Agent
import asyncio

llm = ChatOpenAI(model="gpt-4o")

async def main():
    agent = Agent(
        task="帮我查找2025年1月12日从巴厘岛飞往阿曼的单程航班,并返回最便宜的选项。",
        llm=llm,
    )
    result = await agent.run()
    print(result)

asyncio.run(main())

AutoMouser

【2025-1-17】AutoMouser:AI Chrome扩展程序,实时跟踪用户的浏览器操作,自动生成自动化操作脚本

  • GitHub 仓库:AutoMouser
  • 功能:实时跟踪用户交互行为,自动生成Selenium测试代码。
  • 技术:基于OpenAI的GPT模型,支持多种XPath生成策略。
  • 应用:适用于自动化测试脚本生成和用户交互行为记录。

AutoMouser是一款Chrome扩展程序,能够智能地跟踪用户的浏览器操作,如点击、拖动、悬停等,并将这些操作转化为结构清晰、易于维护的Python Selenium脚本。通过记录用户的交互行为,AutoMouser简化了自动化测试的创建过程,提高了测试效率。

AutoMouser 核心功能是借助OpenAI的GPT模型,将用户的浏览器操作自动转化为Selenium测试代码。这使得开发者和测试工程师能够快速生成自动化测试脚本,减少了手动编写测试脚本的时间和复杂性。

AutoMouser 主要功能

  • 实时交互跟踪:能实时捕捉用户的浏览器操作,包括点击、输入、滚动等,精准地记录下用户在网页上的各种交互行为。
  • 自动代码生成:借助OpenAI的GPT模型,将记录下来的用户操作自动转化为Selenium测试代码,生成Python Selenium脚本。
  • 智能输入整合:对用户的输入操作进行智能整合,优化代码结构,使生成的测试脚本更加简洁、高效。
  • 窗口大小变化检测:能检测浏览器窗口的大小变化,确保生成的测试代码能够适应不同的窗口尺寸。
  • JSON动作日志导出:支持将用户的交互数据导出为JSON格式的动作日志文件,方便用户对原始数据进行查看、分析和进一步处理。
  • 多种XPath生成策略:采用多种XPath生成策略,能更准确地定位网页元素,提高测试的准确性和可靠性。
  • 代码结构优化:输出的Selenium测试代码结构清晰、整洁,易于阅读和理解,方便开发人员进行后续的开发和维护工作。

自动化测试应用

【2024-11-04】 大模型在自动化测试的突破:蚂蚁、华为等头部企业应用实践

蚂蚁集团、中国邮储银行、科大讯飞、华为等4家企业自动化测试领域大模型应用实践

案例1:支付宝小程序基于AI大模型的自动化测试实践

支付宝小程序在质量检测中挑战

  • 传统监控无法有效识别业务问题。

蚂蚁集团利用AI大模型技术,开发智能异常检测链路测试算法,实现自动化测试。

通过自然语言处理和多模态大模型提升识别业务异常和深度链路问题的准确性。

该实践不仅提高了检测效率,还通过智能动线预测模块,增强了用户体验。

完整内容:

案例2:中国邮储银行基于大模型的自动化测试脚本智能生成

传统自动化测试脚本编写需要测试人员具备一定编程能力,且耗时耗力,导致脚本编写人力成本大,质量参差不齐。

邮储银行金牛座自动化测试系统引入大模型技术,结合知识库、录制、报文解析、图像识别等技术,针对不同场景提供脚本智能生成功能:

  • 单接口脚本批量生成:主要用于单接口测试,提供了单接口脚本批量生成功能,有效解决了单接口测试脚本编写量级较大的问题;
  • 多接口组合场景脚本智能生成:主要用于测试业务流程,针对组合场景脚本,采用 录制+智能分析+辅助编写 方案智能生成脚本;
  • UI测试脚本智能生成:借助大模型技术,可以根据简单的用例描述,直接自动生成测试脚本。

案例3:科大讯飞基于大模型的自动化测试实践

接口测试脚本生成场景,科大讯飞将融合大模型能力,提供智能用例生成服务,当前平台主要针对HTTP协议进行接口的智能化测试。

  • 智能用例生成: 当新增接口用例或将接口定义导入时,会调用智能用例生成服务自动生成接口自动化用例;
  • UI自动化测试脚本生成: 用例生成脚本模式,通过用例文本输入引导,结合其他输入数据,生成UI自动化脚本。经业务验证,在用例编写规范的情况下,UI自动化脚本生成的采纳率可以达到50%以上。

完整内容:

案例4:华为基于LLM的测试自动化代码生成实践

华为选择大模型辅助测试自动化代码生成作为大模型在智能测试领域应用的突破点

  • 首先, 用SFT调优方案,落地场景为老特性防护网补齐,但存在时间间隔导致无法写新特性;
  • 然后,使用RAG方案实现分钟级新特性编写
  • 再次,进一步实现无需写样例脚本,直接通过 AW 生成。从整个方案迭代方向看,AI自动生成的比例越来越大。

截止2024年6月底,大模型辅助测试自动化代码生成的应用人数为近3k人,覆盖 60+产品,测试自动化生成的代码量 40+万 行。

完整内容:

结束


支付宝打赏 微信打赏

~ 海内存知已,天涯若比邻 ~

Share

Similar Posts

Related Posts

标题:大模型应用: 搜索

摘要:大模型搜索专题

站内可视化导航

文章可视化导读:鼠标划过图形块时,如果出现蓝色光环, 点击即可跳转到对应主题
模型层
模态层
文本生成
图像生成
语音生成
视频生成
扩散模型
NLP任务
对话系统
LLM大模型专题导航
LLM训练流程
分布式训练
GPU
DeepSpeed
RAG
FineTune
RLHF
PEFT
数据准备
模型评估
PyTorch
数据标注
MoE
LLM应用方案
Transformer
GPT-1
BERT
Scaline Law
复杂推理
Function Call
Plugin 插件
小模型
Agent
智能体
LangChain
AutoGen
CoT
Prompt Engineering 
提示工程
APE 
提示词自动化
Prompt Attack 
提示词攻击
多模态
Prompt Learning 
提示学习
Transformers 库
Embedding
分词
预训练语言模型
ChatGPT
NLP模型
ChatGLM
Baichuan
ChatGPT
大语言模型
垂类模型
专题优化
幻觉
PE
推理性能
Prompt优化
Agent框架
模型训练
智能客服
对话管理
文本生成
文本分类
文本匹配
NER
阅读理解
GPT-2
NLP基础知识
聚类
深度学习
机器学习
深度学习
神经网络
神经网络调参
AutoML
强化学习
因果科学
多任务学习
用户模拟器
图神经网络
AGI
脑机接口
AIGC行业
行业知识
AI行业报告
具身智能
ML笔记
应用层
人工智障
大模型时代对话系统
LLM 开发模式
对比学习
计算机视觉
视频理解
推荐系统
文档问答
开放域问答
LLM问题
推理优化
服务部署实验
自动标注
ChatGPT应用
评估方法
目标检测
大模型评测
ChatGPT复现
AI生成
LLM原理
音乐生成
推理加速
LLM端侧部署
OpenAI
AI公司
AIGC 机会
用户画像
大脑原理
回归分析
芯片
在线教育
汽车原理
自动驾驶
异常检测
聚类算法
贝叶斯
元宇宙
新技术
机器人
搜索
可解释性
NAS
元学习
情感计算
知识追踪
互联网金融
房产行业
量化交易
股票
物联网
移动设备
语音生成
模型部署
最优化
排序学习
微积分
知识图谱
博弈论
联邦学习
密码学
流形学习
Python
特征工程
区块链
信息论
概率统计
量子计算
Pandas
Scikit-learn
文本挖掘
神经网络可视化
不均衡问题
精简笔记
文本分类
ML军规
线性代数与矩阵
Go
ML本质
LBS
傅里叶变换
Git
Jupyter
Linux
Shell
Latex
Jekyll
教育
分形几何
SQL
可视化
数据挖掘
vpn
计算机网络
计算机语言
操作系统
图形学
计算机知识脑图
基础算法
算法比赛
Web前端
架构设计
Docker
小程序
测试
面试指南
数学历史
makefile
Linux C
C/C++
设计模式
Tensorflow
Pytorch
Pytorch手册
计算机基础
数学知识
【2025-02-22】
wqw547243068@163.com
图像处理
OCR
智能硬件
传感器
GPT-3
Transformer改进
AIGC
内容检测
端到端对话
LLM发展方向
具身智能
DeepSeek
Encoder模块
(NLU场景)
Decoder模块
(NLG场景)
GPT-3.5
GPT-4
2018年6月

2018年10月
Google
2019年2月
2020年5月
Albert
2019年10月

OpenAI
Agent应用
端侧LLM
训练框架
ME
模型编辑
NL2SQL
推荐系统
LLM推荐系统
机器人
具身智能
模型蒸馏
语音识别
T5
Geimini

Comments

--disqus--