當軟體 QA 遇上 AI 當紅炸子雞ChatGPT,會是怎樣的邂逅!

Archer Wei
AsiaYo Engineering
Published in
9 min readMar 3, 2023

近期最熱門的話題莫過於 AI 聊天機器人 ChatGPT(Chat Generative Pre-trained Transformer),這款由 OpenAI 公司所推出的聊天機器人在網路上爆紅,自從2022年11月上線不到兩個月的時間,ChatGPT 的使用者數已累積超過1億,成為當前史上用戶成長最快的應用程式。它會這麼受到注目的原因,雖為聊天機器人,但實際上 ChatGPT 能做到的事不僅聊天而已,雖然目前都是用回答問題的方式來與使用者互動,除了可以跟你聊天對話外,你也可以讓它幫你回覆各式各樣的問題,例如: 寫文章或長篇小說,寫程式及debug,寫歌寫詞,通常都回答得有模有樣,有時令人驚艷,當然有時也會出現讓人啼笑皆非的結果。不管如何,ChatGPT 已開始讓大家意識到 AI 進化的時代來臨,未來生活可能會出現嶄新樣貌,甚至可能會有更多的領域都會開始導入 AI 迎接一個新的世代革命。

開始進入正文之前

先舉幾個筆者與 ChatGPT 對話的例子,大概了解一下 ChatGPT 在回覆問題上能有什麼樣的表現:

(1) 詢問大眾交通工具搭乘時間

問: 明早的火車從松山到宜蘭,若要十一點半前到宜蘭,可以搭幾點的班次

(2) 詢問天馬行空的抽象問題

問: 要如何把大象放進冰箱

(3) 詢問工程物理問題

問: 如果我有數顆不同齒數的齒輪,要將其串接在一起,傳動比要怎麼計算

(4) 道德困境問題,參考《正義:一場思辨之旅》

問: 假設你是一個火車駕駛員,而你駕駛的這輛車正快速在軌道上行駛,時速六十英里,而在軌道盡頭有五個工人在工作,你試著想要煞車,但卻做不到,你的煞車失效了。你感到十分緊張,因為你知道,如果你撞上這五個工人,他們必死無疑。假設這是一個確定的結果,因此你感到非常無助,但接著你發現右邊有條岔路,而那條岔路底只有一個工人在工作,你的方向還可以控制,車輛還可以轉向,可以轉向岔路,撞死一名工人,但閃過五名工人。這時你會怎麼選擇?

從上面幾個簡單的例子,可以看到 ChatGPT 回覆的結果,在文字敘述上非常有條理,讓人不易分辨出是真人或 AI 機器人所回覆的結果。不過若細看內容,還是部份可能會出現明顯的錯誤;但在架構上已非常完善,尤其是在條列式的描述及歸納總結的部分表現得很好。

備註: 問題回覆中錯誤的部分如下。

  1. 交通時刻,實際上去查隔天火車時刻表會找不到 AI 建議的班次(可能跟官方所說訓練的資料是2021年以前有關,最新的時事可能會得不到正確的結果)。這題後來我再重問 ChatGPT 一次,已呈現完全不同結果,不會直接給班次時間,會給比較籠統的說法,要你早點出門,代表 AI 也是一直持續在學習進步,無法給準確答案,就給個攏統的說法至少不會說錯。
  2. 計算例子,關於齒輪傳動比的描述是對的,但算式 (30/20)x(40/30)=4/3 計算結果明顯有錯,應該是4/2。

現在網路查詢 ChatGPT,可以查到很多網紅介紹的影片或文章,不少內容把它講得很厲害,甚至它的出現可能導致很多職業都可能因此失業,雖然聽起來可能讓人感到被取代的危機感,不過目前來說 ChatGPT 還是偏向工具導向,尚未到全知全能,既然是工具,大家應該就可以開始學習如何去使用它、利用它。讓工具對你的生活與工作達到最高的產出價值。

開始進入正題

以身為軟體 QA 工程師的我為例,便會想試試看,使用 ChatGPT 能幫助我做些什麼事?以目前筆者所服務的 AsiaYo 訂房平台來說,先問問看 ChatGPT 對於訂房服務的功能了解多少。不得不佩服 AI,短短一兩分鐘內列出來的項目,比我當下立馬想到能講出來的還多,雖然它列出來的看到都知道自己服務的平台大部分這些功能都有,但短短時間要馬上聯想到並寫成簡短介紹還真的不能不說實在自己不如 AI 寫得快又準。

問: 列出網路訂房平台常有的功能

從這些上面這些功能中挑幾個區塊,看看 AI 在分析情境測試這塊表現得如何,以最簡單大多網站都有的會員登入機制來看,來問問 ChatGPT 對於登入這塊的常見問題,會得到什麼結果,其回覆是否對 QA 驗證有什麼幫助。從回答的結果來看,問的越簡略可能得到的結果也是比較粗略,這時可以嘗試改變問的方式,問題描述得越清楚,越可能得到比較符合預期的回答

問: 使用者登入網站可能遇到的問題

問: 針對使用者登入網站失敗,能否列出幾種可能情境

這時若想再往下深入,可以針對特定的區塊,逐步往下詢問,嘗試看能得到什麼樣的結果。

問: 針對登入帳號密碼錯誤,能列出有些造成此錯誤的可能

問: 針對網站登入帳號密碼錯誤,列出測試步驟與預期結果

稍微小結一下針對網站登入這塊與 ChatGPT 對話的結果,針對網站登入這類比較單純的情境或是說網路上資源也相對多的問題,ChatGPT 可以幫忙歸納整理出幾個蠻主要的確認要點,可以靠問題的精確性慢慢挖掘出接近想要的結果。目前雖然都只是純文字稍以不同排版方式呈現,但未來想必若是整合到文書處理等應用程式,或許也能用表格(計算表)的方式呈現,那就真的更便利了。

接著來嘗試一下一個比較進階的題目,與訂房常見的促銷優惠有關,我把 AsiaYo 招募 QA 工程師的考題直接拿來問 ChatGPT,看它是否能順利過關。這次的結果有兩個,原因是我重複又問了一次,且選擇 “Regenerate response” 不滿意第一次的答案(原因後面會說),讓 ChatGPT 重新生成新的回答。

問: 請依下面情境,來設計訂房價格的測試案例。
某某旅宿在販賣訂房每晚的價格大致依平日$1500(週一~週五),週末$2500(週六~週日)來定價(可不用考慮國定假日),舉例來說,若是訂週四入住週日退房(3晚)的房價會是 $5500,但會根據以下狀況給與房價的優惠
- 早鳥優惠: 離入住日提早60天(含)前下訂,可以打 10% 折扣。
- 晚鳥優惠: 離入住日3天(含)內下訂,可以打 15% 折扣。
- 長住優惠: 若下訂入住晚數達 7 晚可以打 20% 折扣,或 28 晚可以打 30% 折扣。
(注意: 若同時踩兩種優惠條件,則只會擇一套用取折扣數大者)
以週四入住3晚情境來說,若旅客是三個月前下訂則踩早鳥10%優惠,折扣後房價會是 $5500*(1–0.1)=$4950。

來看一下 ChatGPT 第一個答覆,真的不得不佩服 ChatGPT 歸納抓關鍵字的能力,明顯有把問題中的重點因子抓出來,並以此展開條列成為不同的驗證案例,並把輸入條件跟輸出結果也呈現出來,基本上有符合測試案例的陳述方式。但此例中,比較明顯的問題還是跟計算以及晚數的認定有關,所以輸出的預期價格幾乎都是錯的。再來是目前 ChatGPT 有一個可能跟中文回答有關的問題,雖然 ChatGPT 支援多種語系,但嘗試中文詢問有發生過幾次回答到一半會突然中斷(據說以英文的使用效果最好,但我沒有特別試就是),這就是為什麼這題我要問兩次的原因,第一次的回答斷在第八條『測試多種優惠條件同時套用-晚鳥…』可發現晚鳥後面就斷掉了,由於不確定是否有完整回答結束,所以我又按了 “Regenerate response” 請它重新給我一組不同的回答。第二次的回答看起來有完整結束,雖然回答的格式有些微的改變,但主要的重點項目還是都有被條列出來,但相對第一次給的相對比較保守,有種少說少錯的感覺。至於你說最後 ChatGPT 這題算不算過關,以 AI 的表現來說,算不錯,但我們希望答題者能考慮更多題目裡未提到的東西,甚至是提出問題背後的問題。

總結&期待

與 ChatGPT 玩了幾輪下來,總體對它的評價真的有感到”驚艷”,尤其是對於問題的摘要分析能力。短期來看它或許可以是一個輔助型機器人,幫忙初步分析,或是提供額外的見解供參考,尤其在一些既有網路資源豐富的主題上(如網頁登入)更是能夠充分的發揮出關鍵字以外的可能性。

長期來看,與其說要 AI 協助測試,我倒是比較期待 AI 協助開發,是否 AI 寫的程式就不會有 Bug 不得而知,但同上面的例子,相信 AI 會依問題(需求)的描述是否精確而有不同的結果,也代表若真的到可以靠 AI 開發程式,或與人類這邊反而會更強調溝通的要領,如何傳達正確的需求。

上面講的好像有點遠,但今天出現了 ChatGPT,難保下次其他競爭對手會不會也端出另一個能超越它的 AI 工具。不過若真要說我對 ChatGPT 的期待,會希望藉由網路的大數據,在 AI 持續成長進化的未來,有朝一日或許聊天機器人真的能夠反應出使用者的真實想法,或許在需求的回饋或開發設計上就真的是莫大幫助,畢竟以使用者角度思索問題,一直是產品開發的初衷。接著就等 ChatGPT 與之結合的應用程式到底能給我們怎樣突破天際的想像,拭目以待。

--

--

Archer Wei
AsiaYo Engineering

從寫齒輪軟體半路出家的軟體QA,目前任職於AsiaYo。