因為 AI 的強大,我開始學習測試了!?近期體悟分享

測試是一個工程師都知道要寫的東西,但常常跟文件一樣,不知不覺就閃過去了 XDD 閃過去的念頭不外乎就是開發就夠忙了,哪有來的時間寫測試?尤其像是我在接案公司,趕 Deadline 都很勉強了還跟你測試?

但請不要忘記我們現在這個時代的黑科技登場:AI!

因為 AI 的強大,我開始學習測試了!?近期體悟分享

開始學習測試的契機

學習一項技能,要有契機、原因或是藍圖,那我的契機是什麼呢?

第一階段:公司導入了 AI

最近公司導入了 Cursor 這個 AI,讓我感到對於開發有更多的想像性,開始想著有什麼東西可以提升效率?啊!我想就是 debug 這件事情!目前我們公司在 debug 都還是滿仰賴人力、肉眼除錯的,如果有機會直接讓 AI 幫我們去處理這塊,看起來好像滿讚的!

第二階段:從想像到開始

但說真的身為一個測試小白,第一步總是困難的?要找資源、課程、書籍等等,而且也不知道該怎麼起手。

結果就剛好看到平常所待的 Discord 群組,開始招募了測試的線上讀書會,我就想說哇這也太剛好了吧,大概考慮了一下就加入了 XDD

覺得大家想學習一項新技能,也可以去像是技能交換網或 Facebook 社團等之類的平台~尋找是否有人在找讀書會或是自己辦一個,我覺得有大家一起讀、環境一起成長,會比較不容易半途而廢!

我希望達成什麼藍圖?前端測試種類?

其實我一開始的想像是,單純希望讓一些功能不會壞掉,就這樣 XD 畢竟我對測試的認知還沒到很深,所以不太了解測試能做什麼?

直到我開始讀了測試讀書會指定的書籍「前端測試指南:策略與實踐 - 唐心皓(Summer) 著」其中的前端測試種類,好像慢慢有了一點想像。

這裡簡略提到一點,這會是一篇技術筆記系列文,之後會再詳細提到他們分別是什麼:

  • 單元測試:對「對小單位的測試」,比方說有一段程式單純做「數字相差」,沒錯!就是驗證這麼小的東西。
  • 整合測試:對於功能進行的全面測試,比方說要測試一個元件能夠「按了一個按鈕,出現一段文字」。
  • 端對端測試:模擬使用者操作流程的測試。
  • 視覺測試:利用工具自動檢測使用者介面變更的測試。

說真的當讀完第一章之後我才發現原來有這麼多方便的測試工具!像是單元測試,可能會認為說這麼簡單幹嘛測試?不過像是 JavaScript 或是有人如果跟我一樣有寫過 PHP 的,因為弱型別語言的關係,就可能會出現型別錯誤。或是說數字計算時會出現小誤點誤差等等的情況,其實就很適合使用單元測試。

目前其實我有在整理公司的初始後端開發範本,就很適合針對一些基本專案一定會用到的功能做個測試,這樣之後專案複製出來也會是對的,減少的多少成本呀~

沒想到居然對我的工作已經有些幫助?

在讀到視覺測試這塊,有對前端測試有新的認知,可以針對說畫面如果有變動、RWD、不同裝置的不同狀況去做監測,超讚!

不過我自己是剛好有遇到一個情況:一個老舊專案要去做改善,但因為該專案的資料不少,上傳上去後我需要肉眼去一個一個檢查,其實真的還滿麻煩的。

這時候我就突發奇想,去使用了視覺測試來幫助我判斷資料是否有更動 XD 於是我馬上請了 Cursor AI 與 Chat GPT 大神給了我怎麼去執行,說真的 code 我基本上也不太會寫 XDD 但就在跟 AI 一起協作的情況下,就能夠針對我改善 code 更新前與更新後去幫我比對差距是小的(會有點誤差範圍),後續上傳之後也確實就沒有問題。

當然我不確定這是不是個好辦法,但至少給了我一些解決的思路,我是覺得挺不錯的。大家也可以嘗試出自己不同的解決方法~

小結

覺得現在真的很方便能夠與 AI 進行協作~

但其實一開始我有想過一個念頭:既然 AI 這麼強大了,那我還要特別學習測試有意義嗎?還是就請 AI 幫我去處理就可以了~

但後來覺得說還是可以去嘗試學習看看,也因為我去知道了這些測試的東西,我有了新的認知,就能夠搭配過去的經驗產生出沒有想過的搭配與方法!畢竟 AI 是一個工具,但如果我們有更多的知識與創意,更能夠創造出更多提升產能的東西吧!

之後會有一系列的測試系列文,新手上路也可能會有些錯誤 XDD 會盡可能的將內容寫到正確~希望大家一起指教多多交流!

參考資料

  • 前端測試指南:策略與實踐 - 唐心皓(Summer) 著
  • Cursor AI
  • Chat GPT
  • 縮圖是 Chat GPT 產生出來的