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