Test-Agent: 您的智能测试助手
本地Mac M1体验效果
魔搭体验效果
魔搭模型访问链接:ModelScope TestGPT-7B
什么是Test Agent?(简介)
Test Agent 旨在构建测试领域的"智能体",融合大模型和质量领域工程化技术,促进质量技术体系升级。我们期望与社区成员一起合作,打造创新的测试领域解决方案,构建24小时在线的测试助理服务,让测试如丝般顺滑。
本期特性
-
模型 本期我们开源了测试领域模型TestGPT-7B。该模型以CodeLlama-7B为基础,进行了相关下游任务的微调:
- 多语言测试用例生成(Java/Python/Javascript) 一直以来都是学术界和工业界非常关注的领域,近年来不断有新产品或工具孵化出来,如EvoSuite、Randoop、SmartUnit等。然而传统的用例生成存在其难以解决的痛点问题,基于大模型的测试用例生成在测试用例可读性、测试场景完整度、多语言支持方面都优于传统用例生成工具。本次重点支持了多语言测试用例生成,在我们本次开源的版本中首先包含了Java、Python、Javascript的测试用例生成能力,下一版本中将逐步开放Go、C++等语言。
- 测试用例断言补全 在对当前测试用例现状进行分析与探查时,我们发现代码仓库中存在一定比例的存量测试用例中未包含断言。没有断言的测试用例虽然能够在回归过程中执行通过,却无法发现问题。因此我们拓展了测试用例断言自动补全这一场景。通过该模型能力,结合一定的工程化配套,可以实现对全库测试用例的批量自动补全,智能提升项目质量水平。
-
工程框架 本地模型快速发布和体验工程化框架
- ChatBot页面
- 模型快速启动
- 私有化部署,本地化的GPT大模型与您的数据和环境进行交互,无数据泄露风险,100%安全
后续我们会持续迭代模型和工程化能力:
- 不断加入更多令人激动的测试领域应用场景,如领域知识问答、测试场景分析等
- 支持面向测试场景的copilot工程框架开放,如测试领域知识智能嵌入、测试通用工具API体系、智能测试Agent等,敬请期待!
- 以7B为基础,逐步扩展至13B、34B模型。欢迎关注!
性能最强的7B测试领域大模型
目前在TestAgent中,我们默认使用了TestGPT-7B模型。与当前已有开源模型相比,TestGPT-7B模型在用例执行通过率(pass@1)、用例场景覆盖(平均测试场景数)上都处于业界领先水平。 TestGPT-7B模型核心能力的评测结果如下:
- 多语言测试用例生成 针对模型支持的三种语言:Java、Python、Javascript,Pass@1评测结果如下:
模型 | Java pass@1 | Java平均测试场景数 | Python pass@1 | Python平均测试场景数 | Javascript pass@1 | Javascript平均测试场景数 |
---|---|---|---|---|---|---|
TestGPT-7B | 48.6% | 4.37 | 35.67% | 3.56 | 36% | 2.76 |
CodeLlama-13B-Instruct | 40.54% | 1.08 | 30.57% | 1.65 | 31.7% | 3.13 |
Qwen-14B-Chat | 10.81% | 2.78 | 15.9% | 1.32 | 9.15% | 4.22 |
Baichuan2-13B-Chat | 13.5% | 2.24 | 12.7% | 2.12 | 6.1% | 3.31 |
- 测试用例断言补全 目前模型支持Java用例的断言补全,Pass@1评测结果如下:
模型 | pass@1 | 强验证百分比 |
---|---|---|
Codefuse-TestGPT-7B | 71.1% | 100% |
工程架构
大模型的号角已经吹响,测试领域大模型也在不断进化中。通过预训练过程中积累的丰富世界知识,在复杂交互环境中展现出了非凡的推理与决策能力。
尽管在测试领域中基础模型取得了显著的成果,但仍然存在一些局限性,特定领域的测试任务通常需要专业化的工具或领域知识来解决。例如,基础模型可以通过预训练知识完成单次测试代码生成和测试文本生成等任务,但处理复杂的集成用例生成、特定领域用例生成和测试流程pipeline交互等问题时,需要更专业的工具和领域知识。因此将专用工具与基础模型整合在一起,可以充分发挥它们各自的优势。专用工具可以解决模型时效性不足、增强专业知识、提高可解释性和鲁棒性的问题。而基础模型则具备类人的推理规划能力,可以理解复杂的数据和场景,并与现实世界进行交互。
在本期开放模型工程化部署和ChatBot基础上,我们将继续在测试开源领域深耕投入。协同社区志同道合的开发者们,一起打造测试领域最领先的工具工程体系、智能测试助理和测试开源工程!
快速使用
前置准备
模型下载
You can obtain detailed information about the model and download the model files from modelscope or huggingface.
Please note:
- If you download the model through modelscope, you can refer to: Download Instructions for the download method;
- If you download the model through huggingface, please ensure that you can access huggingface normally.
Environment Installation
- python>=3.8
- transformers==4.33.2
git clone https://github.com/codefuse-ai/Test-Agent
cd Test-Agent
pip install -r requirements.txt
Before running the TestGPT-7B model, please ensure that your execution environment has about 14GB of video memory.
Start the Service
The project provides the ability to quickly set up a UI on the web page to more intuitively demonstrate model interaction and effects. We can use a few simple commands to wake up the front-end page and call the model's capabilities in real-time. In the project directory, start the following services in order:
1.Start the controller python3 -m chat.server.controller
2.Start the model worker python3 -m chat.server.model_worker --model-path models/TestGPT-7B --device mps
(models/TestGPT-7B is the actual model file path)
For the startup method, you can choose from the following configuration options as needed:
- --device mps is used to enable GPU acceleration on Mac computers (Apple Silicon or AMD GPUs);
- --device xpu is used to enable acceleration on Intel XPU (Intel Data Center and Arc A-Series GPUs);
- Need to install Intel Extension for PyTorch
- Set OneAPI environment variables: source /opt/intel/oneapi/setvars.sh
- --device npu is used to enable acceleration on Huawei AI processors;
- Need to install Ascend PyTorch Adapter
- Set CANN environment variables: source /usr/local/Ascend/ascend-toolkit/set_env.sh
- --device cpu is the option to run using CPU alone, without GPU;
- --num-gpus 2 specifies the option for concurrent GPU running.
- Start the web service python3 -m chat.server.gradio_testgpt Once the service is ready, we can open the locally launched web service address http://0.0.0.0:7860 to see the complete front-end page. At the bottom of the page, there are two examples of "Unit Test Generation" and "Assert Completion". Clicking the button will automatically generate a sample text in the input box. Clicking the Send button will trigger the model to run, and after waiting patiently for a while (running time depends on the performance of your machine), you can see the complete answer.
🤗 Acknowledgments
This project is built based on FastChat. We deeply appreciate their open-source contributions!