您的智能測試助理來了!螞蟻TestAgent開源,快來體驗(yàn)!
什么是TestAgent?
TestAgent 旨在構(gòu)建測試領(lǐng)域的“智能體”,融合大模型和質(zhì)量領(lǐng)域工程化技術(shù),促進(jìn)質(zhì)量技術(shù)代系升級。我們期望和社區(qū)成員一起合作,打造創(chuàng)新的測試領(lǐng)域解決方案,構(gòu)建24小時(shí)在線的測試助理服務(wù),讓測試如絲般順滑。
很高興地宣布,我們在國內(nèi)首次開源了測試行業(yè)大模型及工具——TestAgent。本次版本包含了性能最強(qiáng)的7B測試領(lǐng)域大模型,以及配套的本地模型快速發(fā)布和體驗(yàn)工程化框架,歡迎體驗(yàn)和關(guān)注!
項(xiàng)目地址:
https://github.com/codefuse-ai/Test-Agent
本地Mac M1體驗(yàn)效果

魔搭體驗(yàn)效果
體驗(yàn)地址:https://modelscope.cn/studios/codefuse-ai/TestGPT-7B-demo/summary

本期特性
? 模型:本期我們開源了測試領(lǐng)域模型TestGPT-7B。模型以CodeLlama-7B為基座,進(jìn)行了相關(guān)下游任務(wù)的微調(diào):
? 多語言測試用例生成(Java/Python/Javascript) 一直以來都是學(xué)術(shù)界和工業(yè)界非常關(guān)注的領(lǐng)域,近年來不斷有新產(chǎn)品或工具孵化出來,如EvoSuite、Randoop、SmartUnit等。然而傳統(tǒng)的用例生成存在其難以解決的痛點(diǎn)問題,基于大模型的測試用例生成在測試用例可讀性、測試場景完整度、多語言支持方面都優(yōu)于傳統(tǒng)用例生成工具。本次重點(diǎn)支持了多語言測試用例生成,在我們本次開源的版本中首先包含了Java、Python、Javascript的測試用例生成能力,下一版本中逐步開放Go、C++等語言。
? 測試用例Assert補(bǔ)全 對當(dāng)前測試用例現(xiàn)狀的分析與探查時(shí),我們發(fā)現(xiàn)代碼倉庫中存在一定比例的存量測試用例中未包含Assert。沒有Assert的測試用例雖然能夠在回歸過程中執(zhí)行通過,卻無法發(fā)現(xiàn)問題。因此我們拓展了測試用例Assert自動補(bǔ)全這一場景。通過該模型能力,結(jié)合一定的工程化配套,可以實(shí)現(xiàn)對全庫測試用例的批量自動補(bǔ)全,智能提升項(xiàng)目質(zhì)量水位。
? 工程框架:本地模型快速發(fā)布和體驗(yàn)工程化框架。
? ChatBot頁面
? 模型快速啟動
? 私有化部署,本地化的GPT大模型與您的數(shù)據(jù)和環(huán)境進(jìn)行交互,無數(shù)據(jù)泄露風(fēng)險(xiǎn),100%安全
后續(xù)我們會持續(xù)迭代模型和工程化能力:
? 不斷加入更多令人激動的測試域應(yīng)用場景,如領(lǐng)域知識問答、測試場景分析等
? 支撐面向測試場景的copilot 工程框架開放,如測試領(lǐng)域知識智能embedding、測試通用工具API體系、智能測試Agent等,敬請期待!
? 以7B為基礎(chǔ),逐步擴(kuò)展至13B、34B模型。歡迎關(guān)注!
性能最強(qiáng)的7B測試領(lǐng)域大模型
目前在TestAgent中,我們默認(rèn)使用了TestGPT-7B模型。與當(dāng)前已有開源模型相比,TestGPT-7B模型在用例執(zhí)行通過率(pass@1)、用例場景覆蓋(平均測試場景數(shù))上都處于業(yè)界領(lǐng)先水平。
TestGPT-7B模型核心能力的評測結(jié)果如下:
多語言測試用例生成
針對模型支持的三種語言:Java、Python、Javascript,Pass@1評測結(jié)果如下:

測試用例Assert補(bǔ)全
目前模型支持Java用例的Assert補(bǔ)全,Pass@1評測結(jié)果如下:

工程架構(gòu)
大模型的號角已經(jīng)吹響,測試領(lǐng)域大模型也在不斷進(jìn)化中,通過預(yù)訓(xùn)練過程中積累的豐富世界知識,在復(fù)雜交互環(huán)境中展現(xiàn)出了非凡的推理與決策能力。
盡管在測試領(lǐng)域中基礎(chǔ)模型取得了顯著的成果,但仍然存在一些局限性,特定領(lǐng)域的測試任務(wù)通常需要專業(yè)化的工具或領(lǐng)域知識來解決。例如,基礎(chǔ)模型可以通過預(yù)訓(xùn)練知識完成單次測試代碼生成和測試文本生成等任務(wù),但處理復(fù)雜的集成用例生成、特定領(lǐng)域用例生成和測試流程pipeline交互等問題時(shí),需要更專業(yè)的工具和領(lǐng)域知識。
因此將專用工具與基礎(chǔ)模型整合在一起,可以充分發(fā)揮它們各自的優(yōu)勢。專用工具可以解決模型時(shí)效性不足、增強(qiáng)專業(yè)知識、提高可解釋性和魯棒性的問題。而基礎(chǔ)模型則具備類人的推理規(guī)劃能力,可以理解復(fù)雜的數(shù)據(jù)和場景,并與現(xiàn)實(shí)世界進(jìn)行交互。
在本期開放模型工程化部署和ChatBot基礎(chǔ)上,我們將繼續(xù)在測試開源領(lǐng)域深耕投入。協(xié)同社區(qū)志趣相投開發(fā)者們,一起打造測試領(lǐng)域最領(lǐng)先的Tools工程體系、智能測試助理和測試開源工程!
快速使用
前置準(zhǔn)備
模型下載
您可在modelscope或huggingface上獲取到模型的詳細(xì)信息并下載模型文件。
https://modelscope.cn/models/codefuse-ai/TestGPT-7B
https://huggingface.co/codefuse-ai/TestGPT-7B
環(huán)境安裝
git clone https://github.com/codefuse-ai/Test-Agent
cd Test-Agent
pip install -r requirements.txt
在開始運(yùn)行TestGPT-7B模型之前,請確保你的執(zhí)行環(huán)境擁有大約14GB的顯存。
啟動服務(wù)
項(xiàng)目提供了網(wǎng)頁端快速搭建UI的能力能夠更直觀的展示模型交互和效果,我們可以使用簡單的幾個(gè)命令把前端頁面喚醒并實(shí)時(shí)調(diào)用模型能力。在項(xiàng)目目錄下,依次啟動以下服務(wù):
1. 啟動controller
python3 -m chat.server.controller
1. 啟動模型worker
python3 -m chat.server.model_worker --model-path models/testgpt --device mps
對于啟動方式,可以按需選擇以下幾種配置選項(xiàng):
?
--device mps用于在Mac電腦上開啟GPU加速的選項(xiàng)(Apple Silicon或AMD GPUs);?
--device xpu用于在Intel XPU上開啟加速的選項(xiàng)(Intel Data Center and Arc A-Series GPUs);? 需安裝Intel Extension for PyTorch:https://intel.github.io/intel-extension-for-pytorch/xpu/latest/tutorials/installation.html
? 設(shè)置OneAPI環(huán)境變量:source /opt/intel/oneapi/setvars.sh
?
--device npu用于在華為AI處理器上開啟加速的選項(xiàng);? 需安裝Ascend PyTorch Adapter:https://github.com/Ascend/pytorch
? 設(shè)置CANN環(huán)境變量:source /usr/local/Ascend/ascend-toolkit/set_env.sh
?
--device cpu單獨(dú)使用CPU運(yùn)行的選項(xiàng),不需要GPU;?
--num-gpus2 指定并發(fā)gpu運(yùn)行的選項(xiàng)。
1. 啟動web服務(wù)
python3 -m chat.server.gradio_testgpt
待服務(wù)準(zhǔn)備就緒后,我們可以打開本地啟動的web服務(wù)地址(http://0.0.0.0:7860),就能看到完整的前端頁面了。
歡迎訪問codefuse官網(wǎng):
https://codefuse.alipay.com/
