W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在軟件開發(fā)過程中,測試是至關(guān)重要的一環(huán)。然而,在傳統(tǒng)開發(fā)中,測試常常被忽略或草草處理,很多時候并非開發(fā)人員故意為之,而是缺乏相應(yīng)的測試思路和方法,不知道如何設(shè)計測試用例。隨著 AI 技術(shù)的飛速發(fā)展,如今 AI 已經(jīng)能夠輔助我們進(jìn)行單元測試。本文將介紹如何使用通義靈碼來輔助進(jìn)行 PHP 的單元測試,幫助開發(fā)人員更高效地完成測試工作,提升代碼質(zhì)量和項目的穩(wěn)定性。
通義靈碼是由阿里云技術(shù)團(tuán)隊精心打造的智能編碼助手。它基于強(qiáng)大的通義大模型,為開發(fā)人員提供以下實用功能:
通義靈碼官網(wǎng):https://tongyi.aliyun.com/lingma/
通義靈碼支持:JetBrains IDEs、Visual Studio Code、Visual Studio,及遠(yuǎn)程開發(fā)場景(Remote SSH、Docker、WSL、Web IDE),安裝后登錄賬號即可開始使用。
PHP的單元測試一般使用PHPunit進(jìn)行,PHP開發(fā)可以用的工具很多,但本文選擇使用PHPstorm,因為像PHPstorm這種重量級的IDE提供的測試支持會更好點。
本文以 PHPStorm 為例,介紹通義靈碼的安裝方法,因為像 PHPStorm 這種重量級的 IDE 提供的測試支持更為完善。
PHPstorm的插件商店提供了通義靈碼的插件,我們可以直接在插件商店下載:
安裝完成后,重啟 PHPStorm 以完成插件的加載。
PHPstorm 的安裝方式和 IDEA 的是一樣的,可以參考IntelliJ?IDEA?中安裝和使用通義靈碼?AI?編程助手教程。
重啟 PHPstorm 后,在右側(cè)工具欄會看到 通義靈碼 的圖標(biāo)。點擊圖標(biāo)進(jìn)入插件界面。
注意:首次使用時,需要點擊登錄按鈕,瀏覽器會自動打開阿里云登錄頁面,完成登錄后即可返回 PHPStorm 使用通義靈碼。
通義靈碼提供了多個 AI 大模型供調(diào)用,但在單元測試生成方面,qwq-plus 生成的測試用例會更詳細(xì)??梢栽谥悄軉柎疬x項上選擇該模型,后續(xù)的所有功能都會基于該模型進(jìn)行生成。
單元測試是最小的測試單位,通常針對函數(shù)或方法進(jìn)行。使用通義靈碼進(jìn)行單元測試十分簡單,只需選擇已寫好的代碼,右鍵選擇通義靈碼的生成單元測試功能,即可自動生成單元測試代碼。
之所以要選擇使用qwq-plus,是因為該模型生成的測試文檔很詳細(xì),包含了被測函數(shù)的分析
函數(shù)的分支分析
和測試用例的分析
同時提供了mock需求分析,最后并根據(jù)該方案給出了測試代碼
對于開發(fā)者而言,只需要把生成的測試代碼復(fù)制到專門的測試文件中,就可以使用PHPunit開始進(jìn)行測試了(因為PHP的單元測試一般使用PHPunit,代碼生成的剛好也是PHPunit,我們需要的也是PHPunit,這點剛好不需要進(jìn)行調(diào)整,如果是Python那種有多個測試框架可供選擇的,可以在智能問答中讓AI重新生成對應(yīng)測試框架的代碼)。
單元測試也可以對整個類進(jìn)行測試,實際上在測試管理中,一般會按類或者文件進(jìn)行分文件管理,比如在Java中,一個類對應(yīng)一個文件,一個類也對應(yīng)一個測試文件,PHP也可以這么進(jìn)行管理。
與之前單個函數(shù)的單元測試相同,我們選中整個類的代碼,然后右鍵選擇通義靈碼的生成單元測試
這次我們生成的單元測試是針對整個類的了,它會對每個方法進(jìn)行分析并生成對應(yīng)的測試用例。
注意,在項目開發(fā)中,應(yīng)將測試文件單獨存放在一個測試目錄,例如 Laravel 框架生成的項目結(jié)構(gòu)中就有專門用于放置測試文件的 tests 文件夾,可以將整個類的測試代碼存放在這里。
在我們之前的功能介紹中,我們是先寫完代碼,再進(jìn)行測試,但在項目工程管理中有一種開發(fā)方式叫測試驅(qū)動開發(fā),這種開發(fā)方式是先寫單元測試代碼,最后再寫功能。在寫測試代碼的時候應(yīng)該把需求考慮清楚,根據(jù)需求進(jìn)行測試代碼的設(shè)計。
例如,我們想要完成一個樹的先序遍歷功能,我們需要知道函數(shù)的輸入有哪些可能,以這個案例為例,則是有哪些樹的情況,例如下所示
然后根據(jù)輸入情況,判斷會有哪些結(jié)果
我們還需要考慮一些極端條件
最后,根據(jù)這些結(jié)果,寫出對應(yīng)的測試代碼
到此測試設(shè)計部分就完成了,現(xiàn)在開發(fā)部分只需要設(shè)計出能夠通過這些測試的代碼即可!
是的,你可以看到上面給的流程,其實都是AI輔助生成的,我們只需要在智能問答中提出我們需要的函數(shù)的功能,讓AI生成對應(yīng)的測試代碼即可
我們之前提到過,在某個語言存在多個測試框架情況下,可能生成的測試代碼會與我們需要的不同的情況。比如我在這次提問的時候,AI給我的是Junit的單元測試代碼(這是Java的單元測試框架),我們可以通過重新提問,讓AI生成新的更符合我們要求的答案
通義靈碼提供了 AI 程序員功能,可以將其視為一個虛擬的程序員。
在這里,也可以將其作為一個測試程序員使用,直接讓 AI 幫助測試某個類,并生成對應(yīng)的測試文件和測試方案。
通義靈碼作為一款智能編碼助手,為 PHP 單元測試提供了強(qiáng)大的支持。從單個函數(shù)到整個類的單元測試生成,再到智能問答輔助測試驅(qū)動開發(fā),以及 AI 程序員功能,它幾乎涵蓋了測試過程中的各個方面。通過本文的介紹,希望你能更好地理解和使用通義靈碼,提升測試效率和代碼質(zhì)量,確保項目的穩(wěn)定性和可靠性。隨著 AI 技術(shù)的不斷發(fā)展,相信通義靈碼將在未來的軟件開發(fā)測試領(lǐng)域發(fā)揮更加重要的作用。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: