ChatGPT是2023年最熱門的話題之一,是OpenAI訓(xùn)練的語言模型。它能夠理解和生成自然語言文本,并接受過大量數(shù)據(jù)的訓(xùn)練,包括用各種編程語言編寫的許多開源項目的源代碼。
軟件開發(fā)人員可以利用大量的知識庫來協(xié)助他們的工作,因為它具有對源代碼的語義理解的能力。開發(fā)人員可以使用 ChatGPT 根據(jù)正確的提示生成有用的代碼。
編寫代碼是 ChatGPT 在軟件開發(fā)中的一種應(yīng)用,當(dāng)然它在很多其他領(lǐng)域有應(yīng)用。本文的重點是 ChatGPT 生成用于專業(yè)軟件開發(fā)環(huán)境的代碼。
市面上已經(jīng)有可用的編碼插件,例如 Github Copilot,它使用與 ChatGPT 相同的技術(shù)來幫助軟件開發(fā)人員。這些插件可以分析開發(fā)人員正在編寫的代碼并生成供考慮的建議。
通過訪問廣泛的代碼庫,ChatGPT 可以編寫準確的代碼并提供有用的代碼建議,從而使開發(fā)過程更快、更高效。
ChatGPT 和代碼生成
ChatGPT 和人工智能代碼生成的前景是光明的,但也存在一些缺陷。讓我們來看看優(yōu)點和缺點。
ChatGPT 編寫代碼的優(yōu)點
盡管使用ChatGPT生成代碼還處于早期使用階段,但專業(yè)的程序員已經(jīng)意識到利用 ChatGPT 生成代碼的優(yōu)勢。
支持多種編程語言。 盡管 ChatGPT 很難準確回答它接受了多少種語言的訓(xùn)練,但當(dāng)今使用的最流行的編程語言,它基本都支持。
通過生成代碼提高生產(chǎn)力,并提供更多功能,例如單元測試、自動化腳本、架構(gòu)規(guī)劃和功能實現(xiàn)的建議。
與傳統(tǒng)人工智能和機器學(xué)習(xí) (ML) 工具相比,對源代碼有更深入的語義理解。 ChatGPT 已經(jīng)表明,通過正確的提示,它可以理解代碼的功能和行為。它通過分析檢查代碼的邏輯可以識別潛在的邊緣情況、邊界條件和在表面上可能不明顯的依賴關(guān)系。傳統(tǒng)的人工智能工具僅限于較小的訓(xùn)練集和有限的輸出。
幫助不熟悉編程語言或目標(biāo)環(huán)境的開發(fā)人員。ChatGPT 可以幫助剛接觸項目的開發(fā)人員快速了解所使用的環(huán)境和語言。盡管存在一些不是很完美的地方,但這是一個學(xué)習(xí)代碼的好機會。
ChatGPT 編寫代碼的缺點
使用 ChatGPT 編寫代碼有一些缺點,因為這個技術(shù)是新技術(shù),并且生成的代碼的來源尚不清楚。以下是在軟件開發(fā)中使用 ChatGPT 的一些缺點。
使用專有代碼和提示信息時發(fā)生 IP 泄露。 用作 ChatGPT 提示的代碼將成為訓(xùn)練集的一部分,并且可能可供其他用戶使用。三星員工最近在向 ChatGPT 泄露專有代碼時發(fā)現(xiàn)了這些風(fēng)險。Copilot 等商業(yè)解決方案允許用戶關(guān)閉使用其專有代碼進行培訓(xùn)的選項。
生成代碼的出處。 ChatGPT 的訓(xùn)練數(shù)據(jù)是否包括專有代碼或未經(jīng)許可的開源代碼?生成的代碼是否需要歸屬或許可?目前還不清楚 ChatGPT 生成的代碼來自哪里,因為它是基于從互聯(lián)網(wǎng)上獲取的內(nèi)容。盡管訓(xùn)練數(shù)據(jù)主要是開源代碼,但仍然需要了解許可要求。
對編碼提示的回答缺乏一致性。 根據(jù)設(shè)計,每次使用相同的提示時,每個答案都可能而且很可能會有所不同。
質(zhì)量和安全性令人擔(dān)憂。因為訓(xùn)練中使用的開源數(shù)據(jù)中的錯誤和編寫不當(dāng)?shù)拇a可能會泄漏到 ChatGPT 的輸出中,或者生成式 AI 模型可能會犯錯誤。ChatGPT 不會審查其答案的安全性或性能,它生成的代碼甚至可能無法編譯。
開發(fā)人員可以接受其中存在不明顯問題的代碼。由于代碼返回時格式整齊并有文檔記錄,因此很容易認為這是可以接受的。對生成的代碼應(yīng)用良好的代碼質(zhì)量流程(例如代碼審查、靜態(tài)分析和單元測試)以確保其按預(yù)期工作比以往任何時候都更加重要。
ChatGPT 的好壞取決于它的訓(xùn)練數(shù)據(jù)。當(dāng)行業(yè)中的標(biāo)準開發(fā)實踐發(fā)生變化時(例如庫 API),某些 ChatGPT 響應(yīng)可能會包含過時的信息。
利用 Parasoft 的技術(shù)克服 ChatGPT 的代碼編寫限制
Parasoft 目前正在積極研究協(xié)同效應(yīng),通過將 ChatGPT 等生成式 AI 模型的先進功能與 Parasoft 解決方案當(dāng)前提供的深度軟件測試自動化功能相結(jié)合,可以使客戶受益。該研究主要集中在兩個領(lǐng)域:
如何在自動化軟件測試平臺中利用 ChatGPT
如何使用該平臺驗證 ChatGPT 生成的代碼
在 Parasoft 的自動化軟件測試平臺中利用 ChatGPT
ChatGPT 和 Parasoft 現(xiàn)有的軟件測試自動化功能之間存在巨大的協(xié)同潛力。我們可以利用對基于 GPT 的模型中包含的代碼的深入語義理解來增強 Parasoft 平臺中已包含的測試產(chǎn)品,包括測試生成、靜態(tài)分析和報告功能。具體來說,我們重點改進以下方面:
生成針對靜態(tài)分析違規(guī)的代碼修復(fù)。Parasoft 已經(jīng)擁有大量有關(guān)編碼標(biāo)準和靜態(tài)分析違規(guī)的信息。我們應(yīng)該能夠使用該信息提示 ChatGPT 自動生成針對發(fā)現(xiàn)的代碼違規(guī)的修復(fù)程序。
生成智能的、語義感知的單元測試。 Parasoft 當(dāng)前的單元測試生成功能經(jīng)過優(yōu)化,可覆蓋盡可能多的代碼路徑,而無需創(chuàng)建冗余測試。我們希望能夠?qū)⑵渑c ChatGPT 對代碼的語義理解相結(jié)合,生成具有更好名稱和一組輸入值的測試,從而實現(xiàn)良好的代碼覆蓋率并包括真實情況的邊界條件值。
生成正向、負向和安全 API 測試場景。 Parasoft SOAtest 中的API 測試生成器在根據(jù)記錄的流量創(chuàng)建功能 API 測試場景方面做得非常出色。但它的能力受到限制,只能針對其所看到的流量創(chuàng)建場景。通過利用 ChatGPT,我們希望生成 API 測試場景,以各種不同的方式(包括預(yù)期的和意外的)運行 OpenAPI 定義中包含的端點。
ChatGPT 和軟件測試自動化的優(yōu)勢
驗證并確認生成的代碼。團隊必須使用軟件測試自動化工具通過靜態(tài)分析來分析ChatGPT生成的代碼,并使用測試工具進行測試。生成的代碼應(yīng)該像任何其他開發(fā)的代碼一樣對待,甚至更仔細,以確保它滿足項目的質(zhì)量和安全目標(biāo)。
遵守編碼標(biāo)準。Parasoft 靜態(tài)分析等解決方案可以確保 ChatGPT 生成的代碼符合編碼標(biāo)準和最佳實踐。他們可以根據(jù)預(yù)定義的規(guī)則和指南檢查代碼并標(biāo)記任何違規(guī)行為。
提高安全性。ChatGPT 生成的代碼的安全性未知,并且漏洞和相關(guān)的軟件缺陷可能隱藏在格式良好的輸出中。像對待第三方或開源代碼一樣對待所有生成的代碼。在集成到您的應(yīng)用程序之前應(yīng)該對其進行審查。
提高生產(chǎn)率。 人工智能代碼生成很可能成為一項重要的創(chuàng)新,有可能大幅提高生產(chǎn)力。例如,Parasoft 的單元測試生成技術(shù)具有高度可擴展性,可用于批量創(chuàng)建測試用例。此外,利用生成式人工智能的軟件測試工具功能的改進帶來了更多好處。這才是真正的雙贏。
總結(jié)
團隊可以通過使用由生成式人工智能技術(shù)增強的軟件測試自動化解決方案來提高測試質(zhì)量,并最大限度地減少設(shè)計和運行測試所涉及的手動工作。在不久的將來,Parasoft 預(yù)計將發(fā)布其平臺的增強功能,使用 ChatGPT 來幫助用戶提高靜態(tài)分析、單元測試和 API 測試的精度和有效性,這最終將更好地驗證 ChatGPT 生成的和人工編寫的代碼。
為了最大化ChatGPT帶來的好處,驗證 ChatGPT 生成的代碼并將其視為新開發(fā)的代碼非常重要。Parasoft 等軟件測試自動化工具可以幫助 ChatGPT 成為更加有用的開發(fā)工具,同時降低風(fēng)險并提高生產(chǎn)力。
審核編輯 黃宇
-
Parasoft
+關(guān)注
關(guān)注
0文章
5瀏覽量
5805 -
OpenAI
+關(guān)注
關(guān)注
9文章
1154瀏覽量
6743 -
ChatGPT
+關(guān)注
關(guān)注
29文章
1570瀏覽量
8105
發(fā)布評論請先 登錄
相關(guān)推薦
小車怎樣設(shè)計將輪式和履帶式相結(jié)合
如何將嵌入式軟件和硬件相結(jié)合
科技大廠競逐AIGC,中國的ChatGPT在哪?
動靜態(tài)相結(jié)合LED顯示【C語言版】
如何將IoT與互聯(lián)網(wǎng)技術(shù)相結(jié)合
![如何<b class='flag-5'>將</b>IoT與互聯(lián)網(wǎng)技術(shù)<b class='flag-5'>相結(jié)合</b>](https://file.elecfans.com/web1/M00/94/FB/o4YBAFz2F4yASqTpAAOt-TqoCek666.png)
5G網(wǎng)絡(luò)和其他技術(shù)相結(jié)合將改變我們的生活
將電池儲能與風(fēng)力發(fā)電相結(jié)合的優(yōu)勢與好處
物聯(lián)網(wǎng)與教育行業(yè)相結(jié)合會擦出怎樣的火花
PARASOFT 37周年特輯 專訪 Parasoft CEO Elizabeth Kolawa
![<b class='flag-5'>PARASOFT</b> 37周年特輯 專訪 <b class='flag-5'>Parasoft</b> CEO Elizabeth Kolawa](https://file1.elecfans.com/web2/M00/04/31/wKgaombB_dmAcaxCAAHL2QWLY8M968.png)
評論