您的智能测试助理来了!蚂蚁TestAgent开源,快来体验!

简介: TestAgent 旨在构建测试领域的“智能体”,融合大模型和质量领域工程化技术,促进质量技术代系升级。我们期望和社区成员一起合作,打造创新的测试领域解决方案,构建24小时在线的测试助理服务,让测试如丝般顺滑。很高兴地宣布,我们在国内首次开源了测试行业大模型及工具——TestAgent。本次版本包含了性能最强的7B测试领域大模型,以及配套的本地模型快速发布和体验工程化框架,欢迎体验和关注!

1698034378561-507c237a-1273-41bc-817b-c8247e078e16.png

什么是TestAgent?

TestAgent 旨在构建测试领域的“智能体”,融合大模型和质量领域工程化技术,促进质量技术代系升级。我们期望和社区成员一起合作,打造创新的测试领域解决方案,构建24小时在线的测试助理服务,让测试如丝般顺滑。
很高兴地宣布,我们在国内首次开源了测试行业大模型及工具——TestAgent。本次版本包含了性能最强的7B测试领域大模型,以及配套的本地模型快速发布和体验工程化框架,欢迎体验和关注!

项目地址:
https://github.com/codefuse-ai/Test-Agent

本地Mac M1体验效果

v2-3c4162c3074fbca364cec9a922d36d3b_1440w.gif

魔搭体验效果

体验地址:
https://modelscope.cn/studios/codefuse-ai/TestGPT-7B-demo/summary

本期特性

模型:本期我们开源了测试领域模型TestGPT-7B。模型以CodeLlama-7B为基座,进行了相关下游任务的微调:
多语言测试用例生成(Java/Python/Javascript)一直以来都是学术界和工业界非常关注的领域,近年来不断有新产品或工具孵化出来,如EvoSuite、Randoop、SmartUnit等。然而传统的用例生成存在其难以解决的痛点问题,基于大模型的测试用例生成在测试用例可读性、测试场景完整度、多语言支持方面都优于传统用例生成工具。本次重点支持了多语言测试用例生成,在我们本次开源的版本中首先包含了Java、Python、Javascript的测试用例生成能力,下一版本中逐步开放Go、C++等语言。
测试用例Assert补全 对当前测试用例现状的分析与探查时,我们发现代码仓库中存在一定比例的存量测试用例中未包含Assert。没有Assert的测试用例虽然能够在回归过程中执行通过,却无法发现问题。因此我们拓展了测试用例Assert自动补全这一场景。通过该模型能力,结合一定的工程化配套,可以实现对全库测试用例的批量自动补全,智能提升项目质量水位。
工程框架:本地模型快速发布和体验工程化框架。
○ ChatBot页面
○ 模型快速启动
○ 私有化部署,本地化的GPT大模型与您的数据和环境进行交互,无数据泄露风险,100%安全

后续我们会持续迭代模型和工程化能力:
● 不断加入更多令人激动的测试域应用场景,如领域知识问答、测试场景分析等
● 支撑面向测试场景的copilot 工程框架开放,如测试领域知识智能embedding、测试通用工具API体系、智能测试Agent等,敬请期待!
● 以7B为基础,逐步扩展至13B、34B模型。欢迎关注!

性能最强的7B测试领域大模型

目前在TestAgent中,我们默认使用了TestGPT-7B模型。与当前已有开源模型相比,TestGPT-7B模型在用例执行通过率(pass@1)、用例场景覆盖(平均测试场景数)上都处于业界领先水平。
TestGPT-7B模型核心能力的评测结果如下:
● 多语言测试用例生成
针对模型支持的三种语言:Java、Python、Javascript,Pass@1评测结果如下:
截屏2023-10-24 15.15.52.png

● 测试用例Assert补全
目前模型支持Java用例的Assert补全,Pass@1评测结果如下:
截屏2023-10-24 15.16.47.png

工程架构

1698053825572-e55c1b35-4bae-437c-8a35-42bfee470019.png

大模型的号角已经吹响,测试领域大模型也在不断进化中,通过预训练过程中积累的丰富世界知识,在复杂交互环境中展现出了非凡的推理与决策能力。

尽管在测试领域中基础模型取得了显著的成果,但仍然存在一些局限性,特定领域的测试任务通常需要专业化的工具或领域知识来解决。例如,基础模型可以通过预训练知识完成单次测试代码生成和测试文本生成等任务,但处理复杂的集成用例生成、特定领域用例生成和测试流程pipeline交互等问题时,需要更专业的工具和领域知识。

因此将专用工具与基础模型整合在一起,可以充分发挥它们各自的优势。专用工具可以解决模型时效性不足、增强专业知识、提高可解释性和鲁棒性的问题。而基础模型则具备类人的推理规划能力,可以理解复杂的数据和场景,并与现实世界进行交互。

在本期开放模型工程化部署和ChatBot基础上,我们将继续在测试开源领域深耕投入。协同社区志趣相投开发者们,一起打造测试领域最领先的Tools工程体系、智能测试助理和测试开源工程!

快速使用

前置准备

模型下载
您可在modelscope或huggingface上获取到模型的详细信息并下载模型文件。
环境安装

cd Test-Agent
pip install -r requirements.txt

在开始运行TestGPT-7B模型之前,请确保你的执行环境拥有大约14GB的显存。

启动服务

项目提供了网页端快速搭建UI的能力能够更直观的展示模型交互和效果,我们可以使用简单的几个命令把前端页面唤醒并实时调用模型能力。在项目目录下,依次启动以下服务:
1. 启动controller
python3 -m chat.server.controller
1697709137850-9b1e1b35-79bd-41c1-822e-498477c63a8b.png

2. 启动模型worker
python3 -m chat.server.model_worker --model-path models/testgpt --device mps
1697709202635-98e451ac-edf8-44bc-805e-9082f3851f59.png

对于启动方式,可以按需选择以下几种配置选项:
● --device mps 用于在Mac电脑上开启GPU加速的选项(Apple Silicon或AMD GPUs);
● --device xpu 用于在Intel XPU上开启加速的选项(Intel Data Center and Arc A-Series GPUs);
○ 需安装Intel Extension for PyTorch
○ 设置OneAPI环境变量:source /opt/intel/oneapi/setvars.sh
● --device npu 用于在华为AI处理器上开启加速的选项;
○ 需安装Ascend PyTorch Adapter
○ 设置CANN环境变量:source /usr/local/Ascend/ascend-toolkit/set_env.sh
● --device cpu 单独使用CPU运行的选项,不需要GPU;
● --num-gpus 2 指定并发gpu运行的选项。

3. 启动web服务
python3 -m chat.server.gradio_testgpt
1697709254307-0a52818b-f811-4312-8949-8a23a22f479b.png

待服务准备就绪后,我们可以打开本地启动的web服务地址(http: //0.0.0.0:7860) ,就能看到完整的前端页面了。

1698033539554-07a556be-5f6f-44d6-bff0-5546d8fa3993.png

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
1月前
|
编解码 人工智能 自然语言处理
迈向多语言医疗大模型:大规模预训练语料、开源模型与全面基准测试
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据,无需标准化。其核心创新包括任意分辨率编码和动态压缩器模块,适用于从微小图标到长时间视频的多种应用场景。Oryx 在长上下文检索和空间感知数据方面表现出色,并且已开源,为多模态研究提供了强大工具。然而,选择合适的分辨率和压缩率仍需谨慎,以平衡处理效率和识别精度。论文地址:https://www.nature.com/articles/s41467-024-52417-z
44 2
|
16天前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
25天前
|
NoSQL 测试技术 Go
自动化测试在 Go 开源库中的应用与实践
本文介绍了 Go 语言的自动化测试及其在 `go mongox` 库中的实践。Go 语言通过 `testing` 库和 `go test` 命令提供了简洁高效的测试框架,支持单元测试、集成测试和基准测试。`go mongox` 库通过单元测试和集成测试确保与 MongoDB 交互的正确性和稳定性,使用 Docker Compose 快速搭建测试环境。文章还探讨了表驱动测试、覆盖率检查和 Mock 工具的使用,强调了自动化测试在开源库中的重要性。
|
4月前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
126 1
|
4月前
|
运维 Kubernetes 监控
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试的未来之路:自动化与智能化的融合之旅
随着技术的飞速发展,软件测试领域正经历着一场革命。传统的手动测试方法逐渐让位于更加高效、智能的自动化测试策略。本文将探讨自动化测试工具的演进,以及人工智能如何赋能未来的软件测试实践,提升测试效率和准确性。我们将通过实例分析,了解自动化测试工具的现状,探索AI技术在测试中的应用,并展望未来软件测试的趋势。
58 2
|
4月前
|
机器学习/深度学习 边缘计算 人工智能
软件测试的演化之路:从手动到智能化
【8月更文挑战第6天】在数字化浪潮不断推进的今天,软件测试作为保障软件质量的重要环节,经历了从原始的手动测试到现在的智能化测试的转变。本文将探讨这一演变过程,分析其背后的驱动力和未来趋势,以及这些变化给软件产业带来的深远影响。
|
4月前
|
测试技术
一款功能完善的智能匹配1V1视频聊天App应该通过的测试CASE
文章列举了一系列针对1V1视频聊天App的测试用例,包括UI样式、权限请求、登录流程、匹配逻辑、消息处理、充值功能等多个方面的测试点,并标注了每个测试用例的执行状态,如通过(PASS)、失败(FAIL)或需要进一步处理(延期修改、待定、方案再定等)。
67 0
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
软件测试的未来:自动化与智能化的融合
随着科技的发展,软件测试领域正在经历一场革命。传统的手动测试方法正逐渐被自动化和智能化技术所取代。本文将探讨这一趋势如何影响软件测试的未来,以及它为提高软件质量和开发效率带来的机遇。
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
探索软件测试的未来:自动化与智能化的交汇点
随着技术的迅猛发展,软件测试领域正站在一个崭新的十字路口。本文将深入探讨自动化测试和人工智能(AI)如何共同塑造软件测试的未来,提升测试效率与准确性。通过分析当前趋势和未来预测,我们将揭示这些技术如何影响测试策略、工具选择以及质量保证流程,进而推动软件开发的整体进步。
74 1