一、引言
軟件測試是軟件開(kāi)發(fā)的一個(gè)重要環(huán)節,旨在識別并修復軟件中的錯誤,保證軟件的質(zhì)量和可靠性。隨著(zhù)金融行業(yè)的飛速發(fā)展,業(yè)務(wù)朝著(zhù)多樣化和復雜化的方向發(fā)展,對軟件測試也提出了更高的要求。然而,傳統的軟件測試流程架構存在人力成本高、測試效率低等問(wèn)題。因此,尋求更加有效的軟件測試方法及提升軟件測試階段能力的工具,成為了一項重要工作。
傳統的軟件測試流程通常包括以下幾個(gè)步驟:需求分析、測試計劃、測試設計、測試環(huán)境設置、測試執行、報告測試結果、缺陷管理。這些流程往往耗費大量的人力、物力和時(shí)間來(lái)完成測試任務(wù),如果出現了較多的問(wèn)題,需要反復執行整個(gè)流程,將對軟件開(kāi)發(fā)上線(xiàn)的過(guò)程造成較大阻礙。
近年來(lái),隨著(zhù)人工智能技術(shù)的不斷發(fā)展,越來(lái)越多的人開(kāi)始關(guān)注如何使用人工智能技術(shù)改善軟件測試流程。其中,OpenAI的ChatGPT模型是當前人工智能的熱門(mén)技術(shù)。ChatGPT是一種預訓練語(yǔ)言生成模型,能夠快速生成自然語(yǔ)言文本。只需準確輸入一些前置條件和期望,就可以讓其自動(dòng)生成測試用例,快速識別軟件錯誤等。這有望提高軟件測試的效率和準確性,推動(dòng)軟件測試行業(yè)的發(fā)展。
二、ChatGPT在軟件測試階段的優(yōu)缺點(diǎn)
(一)需求分析階段
ChatGPT可以為軟件測試需求分析提供一些基本的指導。例如可以為功能需求分析(用戶(hù)故事、用例分析、數據流圖等)、非功能需求分析(性能、可用性、安全性、可維護性等)、測試需求分析(測試計劃規劃、測試用例設計、測試環(huán)境需求等)提供一些基本的策略和方法。使用ChatGPT進(jìn)行測試需求分析的優(yōu)勢可以概括為以下幾點(diǎn)。
一是自然語(yǔ)言理解。ChatGPT自動(dòng)閱讀并理解需求文檔的相關(guān)材料,梳理與總結客戶(hù)的需求,從而幫助測試人員準確把握軟件需求。二是數據分析。ChatGPT分析大量的歷史數據,包括缺陷報告、用戶(hù)反饋等,以發(fā)現重要的需求、關(guān)注點(diǎn)和趨勢,從而提供更好的測試建議。三是需求驗證。ChatGPT可以幫助測試人員驗證需求的完整性、一致性和正確性,從而確保測試的覆蓋率。
然而,需要注意的是,ChatGPT作為一個(gè)通用的自然語(yǔ)言處理模型,對軟件測試需求分析這個(gè)特定領(lǐng)域缺乏深入的模型訓練和研究。因此,對于復雜的軟件測試需求,還需要專(zhuān)業(yè)的軟件測試工程師和領(lǐng)域專(zhuān)家來(lái)進(jìn)行分析和解決。
(二)測試計劃階段
在測試計劃的制定上,ChatGPT可以從測試范圍、測試目標、測試策略、測試資源和風(fēng)險評估方面給出參考。使用ChatGPT生成測試計劃的優(yōu)勢可以概括為以下幾點(diǎn)。
一是整體規劃。ChatGPT本身基于一些項目進(jìn)行過(guò)模型的訓練,如果項目方案成熟,其便可以短時(shí)間內輔助生成整體測試計劃。二是風(fēng)險評估。ChatGPT分析歷史測試數據、缺陷報告和用戶(hù)反饋等,自動(dòng)識別和評估測試風(fēng)險,幫助測試人員制定測試計劃。
但同樣的,在復雜軟件測試的計劃制定、對測試計劃變更和項目保密性等方面,是其所欠缺的。
(三)測試設計階段
在測試設計方面,ChatGPT會(huì )根據測試目的、測試用例設計、測試技術(shù)棧等給出參考。使用ChatGPT做測試設計的優(yōu)勢可以概括為以下幾點(diǎn)。
一是測試用例設計。根據需求文檔、歷史測試數據和測試經(jīng)驗,快速自動(dòng)生成測試用例,并優(yōu)化測試用例的覆蓋率。二是測試用例優(yōu)化。優(yōu)化測試用例的設計和執行順序,以提高測試效率和發(fā)現缺陷的速度。
測試設計的主要工作為測試用例設計,在這部分工作中,ChatGPT會(huì )呈現不錯的效果。但是涉及復雜的需求和業(yè)務(wù)邏輯以及安全性和性能等測試需求時(shí),其理解力可能存在偏差,難以完整地覆蓋測試用例設計。這種情況下,需要具有相關(guān)測試經(jīng)驗的人員進(jìn)行補充和調整,以確保測試用例的覆蓋率和有效性。
(四)測試環(huán)境配置階段
在測試環(huán)境配置方面,ChatGPT會(huì )從硬件和軟件環(huán)境、測試數據管理等方面給出參考。在此階段使用ChatGPT的優(yōu)勢可以概括為以下幾點(diǎn)。
一是測試數據設計。自動(dòng)生成測試數據,并優(yōu)化測試數據的多樣性和覆蓋率。二是測試環(huán)境配置。自動(dòng)分析所需執行的測試用例和測試數據的數量與復雜度,列出所需的測試環(huán)境與配置參數。
在此階段,ChatGPT可以為測試人員提供測試環(huán)境的基本配置和設置,例如硬件設備、操作系統、數據庫、網(wǎng)絡(luò )配置等。然而,由于每個(gè)企業(yè)都有自己的測試環(huán)境,并且不同項目可能需要不同的測試環(huán)境配置,使用ChatGPT智能列出的測試環(huán)境配置可能與實(shí)際需求存在偏差。對此,需要測試人員對ChatGPT提供的測試環(huán)境配置進(jìn)行檢查和調整,并根據實(shí)際情況開(kāi)展測試環(huán)境的配置和準備工作。
(五)測試執行階段
ChatGPT不會(huì )直接執行軟件測試,因為其本身不是一個(gè)軟件開(kāi)發(fā)項目。而且,測試執行通常需要人工參與,尤其是性能測試、用戶(hù)體驗測試等。ChatGPT作為一個(gè)智能助手,未來(lái)可能會(huì )與其他組件集成,在測試執行發(fā)揮作用。例如,ChatGPT可能與自動(dòng)化測試工具或性能測試工具集成,以便協(xié)助測試人員執行測試用例或監控系統的性能。此外,ChatGPT還可以幫助測試人員收集和分析測試數據,從而支持測試過(guò)程的決策,提高測試過(guò)程的質(zhì)量和效率。
(六)報告測試結果階段
在測試報告方面,ChatGPT會(huì )依據測試結果的數據,自動(dòng)生成測試報告,包括測試結果、測試覆蓋率、性能指標和缺陷情況等。使用ChatGPT生成測試報告的優(yōu)勢具體可以概括為以下幾點(diǎn)。
一是測試結果分析。自動(dòng)分析測試結果和缺陷數據,生成詳細的測試結果報告,其中包括缺陷數量、缺陷嚴重程度、修復狀態(tài)等。二是自動(dòng)生成報告。自動(dòng)生成測試結果報告,從而減少測試人員的工作量和時(shí)間,提高測試效率。
該階段ChatGPT自動(dòng)化程度高,可為測試報告提供較多的支持和幫助。但是在測試過(guò)程中,測試結果的審查和測試結論分析仍然需要人工干預,因為測試人員需要在所生成報告的基礎上繼續進(jìn)行更深層次的分析。
(七)測試缺陷管理階段
在缺陷管理階段,ChatGPT有較多的局限性,其僅僅具有缺陷分析的優(yōu)勢,即自動(dòng)分析缺陷,幫助測試人員更快地發(fā)現缺陷,分析出缺陷的嚴重程度,反饋修復狀態(tài)等信息,并提供推薦解決方案。
缺陷管理是軟件測試中一個(gè)非常重要的環(huán)節,包含缺陷識別、缺陷記錄、缺陷跟蹤和缺陷修復等多個(gè)環(huán)節。在這些環(huán)節中,ChatGPT無(wú)法承接大部分功能。因此,在缺陷管理階段,仍然需要人工介入來(lái)輔助完成這些任務(wù)。
三、ChatGPT在軟件測試中的應用
本文以項目過(guò)程中新增的接口信息為例進(jìn)行驗證,其中包含接口的請求方式、URL、校驗參數等信息,將從接口測試用例設計和接口自動(dòng)化測試腳本兩個(gè)方面進(jìn)行分析。接口信息匿名化處理后見(jiàn)表1所列。
表1 接口信息描述
(一)接口測試用例
根據上述的接口信息,調用ChatGPT的API接口,可以得到其生成的接口測試用例如圖1所示。
圖1 接口測試用例
ChatGPT所生成的接口測試用例涵蓋了用例標題、用例描述、操作步驟和預期結果等信息。從結果的展示情況來(lái)看,基本滿(mǎn)足測試用例的編寫(xiě)要求。
(二)接口自動(dòng)化測試腳本
根據上述接口信息,調用ChatGPT的API接口,可以得到其生成的接口自動(dòng)化腳本,如圖2所示。
圖2 接口自動(dòng)化腳本
其中,ChatGPT所生成的接口自動(dòng)化腳本采用了Python語(yǔ)言,調用了依賴(lài)的基本庫、有相應注釋信息的標注。從結果的展示情況來(lái)看,基本滿(mǎn)足自動(dòng)化腳本的編寫(xiě)要求。
四、ChatGPT在軟件測試中的挑戰
(一)數據準確性
ChatGPT是智能化自然語(yǔ)言處理機器人,通過(guò)大量的語(yǔ)料訓練。因此其產(chǎn)生的結果依賴(lài)語(yǔ)料中數據與信息的完整性和準確性。如果訓練語(yǔ)料包含錯誤的信息,那么ChatGPT生成的結果可能不準確。因此,在使用ChatGPT進(jìn)行軟件測試前,需要對語(yǔ)料進(jìn)行嚴格的清洗和驗證,特別是一些特定的金融關(guān)鍵詞,以確保數據的準確性。
(二)誤差問(wèn)題
由于ChatGPT是一種基于概率模型的技術(shù),其生成的結果可能存在一定的誤差。如果不對誤差加以控制和評估,可能導致測試結果不準確,影響軟件的質(zhì)量。因此,在使用ChatGPT進(jìn)行軟件測試時(shí),需要定期評估模型的誤差,并采取措施糾正誤差。
(三)安全和隱私問(wèn)題
由于ChatGPT需要訪(fǎng)問(wèn)和處理大量數據,可能存在數據泄露的風(fēng)險,且ChatGPT的模型參數可能被攻擊者惡意篡改,導致測試結果不準確。因此,在使用ChatGPT進(jìn)行金融軟件測試時(shí),需要采取有效的安全措施和數據保護措施,對數據進(jìn)行脫敏、加密等處理,保護數據的安全和隱私。
(四)人工智能程度化問(wèn)題
雖然人工智能技術(shù)在軟件測試領(lǐng)域中有很大的應用潛力,但其并不能完全取代人來(lái)進(jìn)行軟件測試。尤其是在金融軟件測試行業(yè)中,測試設計、測試執行和缺陷管理等環(huán)節高度依賴(lài)人的操作和經(jīng)驗,具備金融從業(yè)知識的測試人員是至關(guān)重要的。同時(shí),在測試過(guò)程中,測試人員還需要根據具體場(chǎng)景進(jìn)行靈活的調整和優(yōu)化測試策略,從而確保軟件高質(zhì)量的達標與交付。因此,人工智能技術(shù)和測試人員操作與經(jīng)驗的結合使用,是金融軟件測試未來(lái)的一個(gè)重要發(fā)展趨勢。
五、ChatGPT和軟件測試的未來(lái)
隨著(zhù)技術(shù)的不斷發(fā)展,ChatGPT作為一種基于人工智能的軟件測試工具,具有極高的效率和準確性,為軟件測試提供了全新的思路和途徑。同時(shí),ChatGPT能夠完善軟件需求分析和驗證,加速軟件開(kāi)發(fā)的效率。其可以協(xié)助生成一些代碼,或者對代碼進(jìn)行簡(jiǎn)單的語(yǔ)法分析,推進(jìn)軟件開(kāi)發(fā)進(jìn)度。通過(guò)將ChatGPT與現有的軟件測試工具相結合,可以提高開(kāi)發(fā)人員和測試人員測試效率和準確性,并縮短軟件開(kāi)發(fā)周期,減少部分人力投入。此外,ChatGPT還可以自動(dòng)生成測試數據,使測試過(guò)程更全面和有效。因此,ChatGPT有望在未來(lái)成為軟件開(kāi)發(fā)測試領(lǐng)域不可或缺的力量,幫助提高軟件質(zhì)量,降低開(kāi)發(fā)成本和風(fēng)險。
原文轉自:http://www.jrftt.com/dqjx/715