翻譯|行業(yè)資訊|編輯:胡濤|2023-07-25 11:44:52.680|閱讀 105 次
概述:本文的重點(diǎn)是 ChatGPT 生成用于專業(yè)軟件開(kāi)發(fā)環(huán)境的代碼,歡迎查閱~
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
ChatGPT是2023年最熱門的話題之一,是OpenAI訓(xùn)練的語(yǔ)言模型。它能夠理解和生成自然語(yǔ)言文本,并接受過(guò)大量數(shù)據(jù)的訓(xùn)練,包括用各種編程語(yǔ)言編寫的許多開(kāi)源項(xiàng)目的源代碼。
軟件開(kāi)發(fā)人員可以利用大量的知識(shí)庫(kù)來(lái)協(xié)助他們的工作,因?yàn)樗哂袑?duì)源代碼的語(yǔ)義理解的能力。開(kāi)發(fā)人員可以使用 ChatGPT 根據(jù)正確的提示生成有用的代碼。
編寫代碼是 ChatGPT 在軟件開(kāi)發(fā)中的一種應(yīng)用,當(dāng)然它在很多其他領(lǐng)域有應(yīng)用。本文的重點(diǎn)是 ChatGPT 生成用于專業(yè)軟件開(kāi)發(fā)環(huán)境的代碼。
市面上已經(jīng)有可用的編碼插件,例如 Github Copilot,它使用與 ChatGPT 相同的技術(shù)來(lái)幫助軟件開(kāi)發(fā)人員。這些插件可以分析開(kāi)發(fā)人員正在編寫的代碼并生成供考慮的建議。
通過(guò)訪問(wèn)廣泛的代碼庫(kù),ChatGPT 可以編寫準(zhǔn)確的代碼并提供有用的代碼建議,從而使開(kāi)發(fā)過(guò)程更快、更高效。
ChatGPT 和人工智能代碼生成的前景是光明的,但也存在一些缺陷。讓我們來(lái)看看優(yōu)點(diǎn)和缺點(diǎn)。
ChatGPT 編寫代碼的優(yōu)點(diǎn)
盡管使用ChatGPT生成代碼還處于早期使用階段,但專業(yè)的程序員已經(jīng)意識(shí)到利用 ChatGPT 生成代碼的優(yōu)勢(shì)。
支持多種編程語(yǔ)言。 盡管 ChatGPT 很難準(zhǔn)確回答它接受了多少種語(yǔ)言的訓(xùn)練,但當(dāng)今使用的最流行的編程語(yǔ)言,它基本都支持。
通過(guò)生成代碼提高生產(chǎn)力,并提供更多功能,例如單元測(cè)試、自動(dòng)化腳本、架構(gòu)規(guī)劃和功能實(shí)現(xiàn)的建議。
與傳統(tǒng)人工智能和機(jī)器學(xué)習(xí) (ML) 工具相比,對(duì)源代碼有更深入的語(yǔ)義理解。 ChatGPT 已經(jīng)表明,通過(guò)正確的提示,它可以理解代碼的功能和行為。它通過(guò)分析檢查代碼的邏輯可以識(shí)別潛在的邊緣情況、邊界條件和在表面上可能不明顯的依賴關(guān)系。傳統(tǒng)的人工智能工具僅限于較小的訓(xùn)練集和有限的輸出。
幫助不熟悉編程語(yǔ)言或目標(biāo)環(huán)境的開(kāi)發(fā)人員。ChatGPT 可以幫助剛接觸項(xiàng)目的開(kāi)發(fā)人員快速了解所使用的環(huán)境和語(yǔ)言。盡管存在一些不是很完美的地方,但這是一個(gè)學(xué)習(xí)代碼的好機(jī)會(huì)。
ChatGPT 編寫代碼的缺點(diǎn)
使用 ChatGPT 編寫代碼有一些缺點(diǎn),因為這個(gè)技術(shù)是新技術(shù),并且生成的代碼的來(lái)源尚不清楚。以下是在軟件開(kāi)發(fā)中使用 ChatGPT 的一些缺點(diǎn)。
使用專有代碼和提示信息時(shí)發(fā)生 IP 泄露。 用作 ChatGPT 提示的代碼將成為訓(xùn)練集的一部分,并且可能可供其他用戶使用。三星員工最近在向 ChatGPT 泄露專有代碼時(shí)發(fā)現(xiàn)了這些風(fēng)險(xiǎn)。Copilot 等商業(yè)解決方案允許用戶關(guān)閉使用其專有代碼進(jìn)行培訓(xùn)的選項(xiàng)。
生成代碼的出處。 ChatGPT 的訓(xùn)練數(shù)據(jù)是否包括專有代碼或未經(jīng)許可的開(kāi)源代碼?生成的代碼是否需要?dú)w屬或許可?目前還不清楚 ChatGPT 生成的代碼來(lái)自哪里,因?yàn)樗腔趶幕ヂ?lián)網(wǎng)上獲取的內(nèi)容。盡管訓(xùn)練數(shù)據(jù)主要是開(kāi)源代碼,但仍然需要了解許可要求。
對(duì)編碼提示的回答缺乏一致性。 根據(jù)設(shè)計(jì),每次使用相同的提示時(shí),每個(gè)答案都可能而且很可能會(huì)有所不同。
質(zhì)量和安全性令人擔(dān)憂。因?yàn)橛?xùn)練中使用的開(kāi)源數(shù)據(jù)中的錯(cuò)誤和編寫不當(dāng)?shù)拇a可能會(huì)泄漏到 ChatGPT 的輸出中,或者生成式 AI 模型可能會(huì)犯錯(cuò)誤。ChatGPT 不會(huì)審查其答案的安全性或性能,它生成的代碼甚至可能無(wú)法編譯。
開(kāi)發(fā)人員可以接受其中存在不明顯問(wèn)題的代碼。由于代碼返回時(shí)格式整齊并有文檔記錄,因此很容易認(rèn)為這是可以接受的。對(duì)生成的代碼應(yīng)用良好的代碼質(zhì)量流程(例如代碼審查、靜態(tài)分析和單元測(cè)試)以確保其按預(yù)期工作比以往任何時(shí)候都更加重要。
ChatGPT 的好壞取決于它的訓(xùn)練數(shù)據(jù)。當(dāng)行業(yè)中的標(biāo)準(zhǔn)開(kāi)發(fā)實(shí)踐發(fā)生變化時(shí)(例如庫(kù) API),某些 ChatGPT 響應(yīng)可能會(huì)包含過(guò)時(shí)的信息。
Parasoft 目前正在積極研究協(xié)同效應(yīng),通過(guò)將 ChatGPT 等生成式 AI 模型的先進(jìn)功能與 Parasoft 解決方案當(dāng)前提供的深度軟件測(cè)試自動(dòng)化功能相結(jié)合,可以使客戶受益。該研究主要集中在兩個(gè)領(lǐng)域:
如何在自動(dòng)化軟件測(cè)試平臺(tái)中利用 ChatGPT
如何使用該平臺(tái)驗(yàn)證 ChatGPT 生成的代碼
在 Parasoft 的自動(dòng)化軟件測(cè)試平臺(tái)中利用 ChatGPT
ChatGPT 和 Parasoft 現(xiàn)有的軟件測(cè)試自動(dòng)化功能之間存在巨大的協(xié)同潛力。我們可以利用對(duì)基于 GPT 的模型中包含的代碼的深入語(yǔ)義理解來(lái)增強(qiáng) Parasoft 平臺(tái)中已包含的測(cè)試產(chǎn)品,包括測(cè)試生成、靜態(tài)分析和報(bào)告功能。具體來(lái)說(shuō),我們重點(diǎn)改進(jìn)以下方面:
生成針對(duì)靜態(tài)分析違規(guī)的代碼修復(fù)。Parasoft 已經(jīng)擁有大量有關(guān)編碼標(biāo)準(zhǔn)和靜態(tài)分析違規(guī)的信息。我們應(yīng)該能夠使用該信息提示 ChatGPT 自動(dòng)生成針對(duì)發(fā)現(xiàn)的代碼違規(guī)的修復(fù)程序。
生成智能的、語(yǔ)義感知的單元測(cè)試。 Parasoft 當(dāng)前的單元測(cè)試生成功能經(jīng)過(guò)優(yōu)化,可覆蓋盡可能多的代碼路徑,而無(wú)需創(chuàng)建冗余測(cè)試。我們希望能夠?qū)⑵?與 ChatGPT 對(duì)代碼的語(yǔ)義理解相結(jié)合,生成具有更好名稱和一組輸入值的測(cè)試,從而實(shí)現(xiàn)良好的代碼覆蓋率并包括真實(shí)情況的邊界條件值。
生成正向、負(fù)向和安全 API 測(cè)試場(chǎng)景。 Parasoft SOAtest 中的API 測(cè)試生成器在根據(jù)記錄的流量創(chuàng)建功能 API 測(cè)試場(chǎng)景方面做得非常出色。但它的能力受到限制,只能針對(duì)其所看到的流量創(chuàng)建場(chǎng)景。通過(guò)利用 ChatGPT,我們希望生成 API 測(cè)試場(chǎng)景,以各種不同的方式(包括預(yù)期的和意外的)運(yùn)行 OpenAPI 定義中包含的端點(diǎn)。
驗(yàn)證并確認(rèn)生成的代碼。團(tuán)隊(duì)必須使用軟件測(cè)試自動(dòng)化工具通過(guò)靜態(tài)分析來(lái)分析ChatGPT生成的代碼,并使用測(cè)試工具進(jìn)行測(cè)試。生成的代碼應(yīng)該像任何其他開(kāi)發(fā)的代碼一樣對(duì)待,甚至更仔細(xì),以確保它滿足項(xiàng)目的質(zhì)量和安全目標(biāo)。
遵守編碼標(biāo)準(zhǔn)。Parasoft 靜態(tài)分析等解決方案可以確保 ChatGPT 生成的代碼符合編碼標(biāo)準(zhǔn)和最佳實(shí)踐。他們可以根據(jù)預(yù)定義的規(guī)則和指南檢查代碼并標(biāo)記任何違規(guī)行為。
提高安全性。ChatGPT 生成的代碼的安全性未知,并且漏洞和相關(guān)的軟件缺陷可能隱藏在格式良好的輸出中。像對(duì)待第三方或開(kāi)源代碼一樣對(duì)待所有生成的代碼。在集成到您的應(yīng)用程序之前應(yīng)該對(duì)其進(jìn)行審查。
提高生產(chǎn)率。 人工智能代碼生成很可能成為一項(xiàng)重要的創(chuàng)新,有可能大幅提高生產(chǎn)力。例如,Parasoft 的單元測(cè)試生成技術(shù)具有高度可擴(kuò)展性,可用于批量創(chuàng)建測(cè)試用例。此外,利用生成式人工智能的軟件測(cè)試工具功能的改進(jìn)帶來(lái)了更多好處。這才是真正的雙贏。
團(tuán)隊(duì)可以通過(guò)使用由生成式人工智能技術(shù)增強(qiáng)的軟件測(cè)試自動(dòng)化解決方案來(lái)提高測(cè)試質(zhì)量,并最大限度地減少設(shè)計(jì)和運(yùn)行測(cè)試所涉及的手動(dòng)工作。在不久的將來(lái),Parasoft 預(yù)計(jì)將發(fā)布其平臺(tái)的增強(qiáng)功能,使用 ChatGPT 來(lái)幫助用戶提高靜態(tài)分析、單元測(cè)試和 API 測(cè)試的精度和有效性,這最終將更好地驗(yàn)證 ChatGPT 生成的和人工編寫的代碼。
為了最大化ChatGPT帶來(lái)的好處,驗(yàn)證 ChatGPT 生成的代碼并將其視為新開(kāi)發(fā)的代碼非常重要。Parasoft 等軟件測(cè)試自動(dòng)化工具可以幫助 ChatGPT 成為更加有用的開(kāi)發(fā)工具,同時(shí)降低風(fēng)險(xiǎn)并提高生產(chǎn)力。
了解更多有關(guān)Parasoft產(chǎn)品咨詢,歡迎咨詢
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn