過去兩周,,國內(nèi)chatGPT概念股很瘋狂,不只是百度,、訊飛,,有些默默無聞且業(yè)績虧損的公司股價大漲,有1-2個公司連續(xù)7個漲停板,,不可思議,!
上周,因為微軟Bing發(fā)布新版,,chatGPT熱度大增,。世界不斷被ChatGPT及其應(yīng)用所震驚,每天都有很多人在他們各自的行業(yè)發(fā)布ChatGPT的應(yīng)用程序,,從營銷,、文案、銷售,、運營等等,。
當(dāng)我們考慮將ChatGPT用于軟件測試時,大家的意見很不一樣,。
我們并不懷疑它對軟件測試社區(qū)的好處,,同時,我們也意識到盲目接受像chatGPT這樣機器人的每一個輸出,,也會相當(dāng)危險,。在最樂觀的情況下,它是一個很好的啟發(fā)式工具,,雖然從本質(zhì)上看,,啟發(fā)式不是基于規(guī)則的邏輯推理來輸出結(jié)果,其結(jié)果是不可靠的,。由于ChatGPT的輸出嚴重依賴于提示(prompts),,它在很大程度上依賴于軟件測試人員給出提示的技巧。
經(jīng)過幾天研究,,并和其他專家交流,,ChatGPT在軟件測試中的應(yīng)用,概括起來有七種不同方式。
1. 測試想法生成器
ChatGPT技術(shù)歸為AIGC(人工智能產(chǎn)生內(nèi)容),,所以我們首先想到 ChatGPT在我們的提示下,,生成我們需要的測試想法,幫助我們擴展或優(yōu)化測試思路,、測試場景,、測試數(shù)據(jù)等。如果ChatGPT可以根據(jù)我們的提示給出一組初始的測試想法,,也可以檢查我們準備的測試想法(如測試項,、場景)清單,這不是很好嗎?是的,,它能做到,。
例如 在 與機器人chatGPT聊聊軟件測試的熱門話題 就有這樣一個例子:
這里,讓我們在機票預(yù)訂網(wǎng)站上針對 “預(yù)訂往返機票” 功能測試嘗試一下,。
在我們詢問ChatGPT之前,,有幾個簡單的想法:
在From 和To 中均有效的城市
自動完成/自動建議
機場代碼和拼寫的驗證
搜索結(jié)果的驗證(計數(shù)、準確性,、速度,、排序顯示、分頁……)
允許多種組合 (同一日期-不同日期,、旅客人數(shù)和艙位,、票價類型等)
與API匹配,跨平臺一致性
錯誤消息(我在輸入下一個句子后添加了這個)
現(xiàn)在,,讓我們向ChatGPT詢問帶有盡可能詳細提示的測試思路
?。ㄔ儐朿hatGPT如何測試這個功能)
根據(jù)輸出,它似乎更專注于這個想法——允許多種組合 (相同的日期-不同的日期,,乘客類型和數(shù)量,、艙位級別、票價類型等組合),。
讓我們使用在線的 Pair-wise組合測試工具(https://pairwise.teremokgames.com/)來生成組合,,并排除一些選項,如
成人不能攜帶2名兒童旅行
成人不能攜帶2名嬰兒旅行
但由于工具的局限性,,我們無法排除下列這個選項:
成人不得攜帶一名兒童及一名嬰兒旅行
Pairwise工具的輸出總共是21個測試用例,我們按照上面的說法排除用例#4,。
現(xiàn)在,,誰做得更好? ChatGPT的輸出是測試想法的一個很好的起點,然后我們可以使用另一種工具進行改進,。
我們也可以用有針對性的提示來深入研究每個測試想法,,以得到更好的回答。
例如,當(dāng)我們要求ChatGPT為錯誤消息生成想法時,,輸出結(jié)果并不令人失望,。
其中一些情況超出了當(dāng)前關(guān)注的特征變量的范圍(例如:資金不足、無效的卡詳細信息……)
我們明白:這是一個很好的起點,,前提是我們知道如何操作,,而且必須批判性地分析輸出,挑出有用的點進行測試,,拋棄沒價值的信息,。
2. 分析需求的關(guān)鍵語句
想象一下需求文檔中的一個句子,如果ChatGPT可以分析這個句子并為我們提供短語的多種解釋,,會怎樣呢?
讓我們試一下,。我們將使用Google Meet中的示例:對于擁有Google Meet個人賬號的用戶:會議最多支持100人。
我覺得3,、4,、5表達的意思是一樣的,但用詞不同,。我會使用ChatGPT所給出的不同解釋來審視我自己的理解和解釋,。
3.創(chuàng)建學(xué)習(xí)指南
人們可以使用它來啟動對一個主題的學(xué)習(xí)(kickstart their learning ),并在輸出的基礎(chǔ)上進行系統(tǒng)學(xué)習(xí)的構(gòu)建,。之前,,我曾給過例子:
例如,如果我們還想了解如何測試多媒體,,我們可以向ChatGPT請教一些基本的方法,。
然后,我將提煉更多,,提出更深刻的問題,。
有一些音頻和視頻問題
影響音頻/視頻的參數(shù)
測試音頻/視頻的工具
與音頻/視頻測試相關(guān)的術(shù)語
現(xiàn)在,這是完美的答案嗎?我不知道,。但chatGPT給了我們足夠的指南來開始測試之旅,。我現(xiàn)在可以閱讀更多關(guān)于編碼、解碼器,、以及與多媒體的關(guān)系,。
4. 生成代碼片段
它能否生成可以構(gòu)建在其上的代碼片段? 這點似乎沒問題,因為我們在自媒體上看到了很多關(guān)于ChatGPT如何用不同編程語言生成代碼的例子,。
示例: 用Python編寫代碼來讀取文件的內(nèi)容,,并列出重復(fù)元素的數(shù)量,并根據(jù)每個元素中的字符數(shù)量按降序排序
ChatGPT達到目標了嗎?
5. 總結(jié)一份文件或視頻
到目前為止,,ChatGPT還不能創(chuàng)建圖像或觀看視頻,,但可以提供一個15分鐘的視頻的文字記錄,,例如,基于這個視頻 (Become the CEO of your testing” by B. Ajay | testing scope | TestFlix2022 | Testing tips and tricks:https://www.youtube.com/watch?v=dkWxyvhZdog )可以生成一個視頻的摘要,。
你也可以使用像YouTube Summary with ChatGPT這樣的插件來獲得摘要,。
6. 課題寫作大綱
我想了一會兒博客主題(如“軟件測試”),然后讓ChatGPT為這類文章創(chuàng)建一個寫作大綱:
其結(jié)果是一個結(jié)構(gòu)良好的大綱,,節(jié)省了大量的時間,。
ChatGPT會取代一些人的工作嗎? 沒那么快。它只是一個很好的助手,,需要有技能的人來充分發(fā)揮它的潛力,。
7. 頭腦風(fēng)暴的伴侶
想法可以隨時出現(xiàn),如果我們想就不同的軟件測試主題進行頭腦風(fēng)暴,,獲得不同的視角,、比較或?qū)Ρ龋踔劣幸粋€助手來幫助我們進行研究,,ChatGPT可以是一個很好的選擇,。
結(jié)論
到目前為止,通過分析ChatGPT給出的不同測試用例或回答,,我們可以得出以下結(jié)論:
ChatGPT是一個很好的起點,,需要熟練的測試人員在交互的基礎(chǔ)上進行構(gòu)建;
它是一種語言模型,,使用適當(dāng)?shù)膶W(xué)習(xí)技術(shù),,輸出的質(zhì)量將會提高;
把回答當(dāng)作一種啟發(fā),,而不是一種規(guī)則,;
了解ChatGPT的功能并充分利用它;
繼續(xù)使用ChatGPT進行實驗,,并選擇正確的響應(yīng)來實現(xiàn),。
敬請關(guān)注電子技術(shù)應(yīng)用2023年2月22日==>>商業(yè)航天研討會<<