善用 ChatGPT — 軟體測試藍海來了!

借力使力才能毫不費力

--

📢 如果此文章有幫助到你,請按此追蹤 一日測試 IG (oneday.software) ,與我們保持高度互動,以獲取最新的軟體資訊與技術方案!

▲ ChatGPT 官網圖(Source: https://openai.com/blog/chatgpt/

近期生成式 AI (Generative AI) 的熱潮持續升溫,而 ChatGPT 做為其中一種語言模型應用,在 2022/11/30 發布後,僅僅兩個月後即達到 1 億的使用者,其發展大大地影響著網路受眾。依國外新聞來源1, 來源2 指出,取得 1 億用戶這個成就的幾大科技巨頭的產品,分別花的時間如下:

  • Twitter: 5 年
  • Facebook: 4.5 年
  • Snapchat: 3 年
  • Instagram: 2.5 年
  • Tiktok: 9 月
  • ChatGPT: 64 天

但其實 AI 的發展早在 1950 年代就開始了,直到 2015–2016 年 AlphaGo 在棋局表現開始展露頭角的同時,逐漸讓大家認知到,原來在需要邏輯判斷的特定領域,電腦不只是速度快,在人類制定的規則下電腦是可以比人類還厲害的。但是,這並未顛覆「大眾的認知」,至少就筆者來說,我也打不贏遊戲的魔王啊!我就爛。而且在當下也只是圍棋領域的應用,沒有在接觸圍棋的群體,其實就只是接收到一個資訊:「哦~電腦下圍棋下贏人類了!」

直到 ChatGPT 的出現,不僅是 AI 在語言、對話領域的創造力有目共睹以外,在媒體大肆宣傳的狀況下,各行各業(e.g. 文字編輯、程式撰寫、圖片影像…等)似乎也發現 AI 的產出與人力創造出的成果正在產生消長現象。而也有一些企業家正試著將資金投資在 AI 領域的應用以獲取成本較低但品質較統一的輸出,那軟體測試領域呢?AI/ChatGPT 的發展會對軟體測試工程領域帶來什麼影響呢?恐慌的情緒也漫延到軟體測試領域了。

「是的! AI 對軟體測試有很大的影響!」

在寫這篇文章前,其實筆者也試過用 ChatGPT 做一些很「QA」的事,像是改變 ChatGPT 的使用邏輯,「難道只能我(User)問你(ChatGPT)答,不能你(ChatGPT)問我(User)答嗎?」,或是刻意的請他犯錯,由不同的領域切入像是程式編寫、簡易繪圖、函式產生與計算,以實際驗證邊界測試去試試 ChatGPT 的反應。當然,結果得到的結果都是相對有效的,但這並不能滿足我的好奇心,直到輸入了一個問題,才讓我對 ChatGPT 有著「警戒」的感覺,問題是這麼問的:

而問完之後突發奇想,不是透過 AI 生成嗎?那應該會有不一樣的答案吧?

好的!開始沒完沒了了,身為測試怎麼可能放過這個機會?

結果,在一連串的拷問後,筆者發現 ChatGPT 的答案開始重複了,透過文字的去重後,整理出來了整整 97 個項目是 ChatGPT 認為它可以協助軟體測試領域的發展,但因為有些項目的說明對筆者而言去重後還是過於相像,所以就保留該項目。相信以 ChatGPT 而言,本質上應該還是有些許差異的,如果大家有興趣,歡迎找 ChatGPT 對話,也歡迎在本文下提出討論!

▲ 以上是透過連續問 ChatGPT 在軟體品質領域它能協助的面向所獲取的答案(一日測試 整理)

以下歸納了幾個大類是 ChatGPT 能夠協助軟體測試領域的發展六大面向,分別是:

  • 測試案例的設計與生成 (30) — 28.84%
  • 自動化測試執行與監控 (13) — 12.5%
  • 測試品質保證與控制 (15) — 14.42%
  • 測試流程相關與管理 (14) — 13.46%
  • 測試類型與技術 (16) — 15.38%
  • 測試覆蓋度評估與優化 (16) — 15.38%

而每個項目分別對應到大類的數量如上述後方的數字,但眼尖的讀者可能會發現這些數字的總和並不為 97,而是 104,是的,依據 ChatGPT 自己的分法,有部份的項目,它重複歸在不同的大類中,如:自動產生測試案例/軟體測試的自動化持續集成和交付/測試覆蓋率的分析和優化/測試用例的可讀性和可維護性分析/測試用例的可重複性和可擴展性分析/測試用例的自動化維護和更新。

由上述的項目分類知道,以 ChatGPT 的角度而言,在軟體測試領域而言「測試案例的設計與生成」是它可以大力支持的部份,所以測試團隊的人力配置,在測試案例的設計與生成部份應該要盡可能的減少,如果可以引用 AI 的工具產生或是不一樣的方案替代,相信能為測試團隊帶來更有效益的產出。

但仔細想想 ChatGPT 能夠為軟體測試領域協助這麼多的事情,那是不是代表中間的串接,也需要新一代的軟體測試工程師們去整合呢?寫到這一段,才讓我對 ChatGPT 「警戒」的感覺稍稍鬆懈,隨之而來是「興奮」且在軟體測試領域看到一大片藍海的感覺!

但偏偏手又不聽使喚的輸入了下一個問題……
「那請問,軟體測試工程師還能做什麼?」

「……」

Howard Chiang
2023.02.25

--

--