這邊會給大家介紹兩份軟體測試調查報告. 主要目的是讓大家知道, 目前全球在測試方法, 都在做哪些事情, 用了什麼實踐, 以及遭遇什麼問題. 這樣的資訊可以幫助大家思考, 自己下一步可以往哪邊走, 以及對照自己做法是否合宜.
The State of Testing Report 2024
由 PractiTest 所提供的調查, 從 2014 年開始到現在, 除了 2019 年外, 每年一份報告. 他的目的是在呈現當今測試社群的目前的實踐, 以及所面臨的挑戰, 希望能夠引發大家針對這些事情產生有效的討論.
你可以在這裡找到所有調查報告. 有些報告有多語言版本可以看.
https://www.practitest.com/state-of-testing/
我並不會講解整份報告, 有興趣的朋友可以自行去閱讀. 這邊只會針對我自己有興趣的部分來討論.
圖 13-1 填問卷者的分佈
這份報告, 有大多來自於北美(26%) 和西歐(29%), 這應該算是很正常. 再來印度是軟體大國, 佔了 19% 也是在情理之中. 亞洲區域有到 13%, 算是有越來越重視測試的現象.
很明顯地, 在國外 Scurm, XP, 和 Kanban 這些作法, 已經是主流到主流不行的方式, 需知這是非敏捷機構做的調查, 他們的角度來看會是比較中立.
令我意外的是 DevOps, 並沒有我想像的這麼高. 在國內很多人認為敏捷是高大上, 太抽象偏思維, 應該會是比較具體的 DevOps 比較好推, 比較容易落地. 結果居然 2024 只有 45%, 還比 2023 少 5%.
BDD 這個做法有越來越高的趨勢, 因為能在早期時, 針對需求的釐清, 讓 PM, RD, 和 QA 有共識這件事情, 是非常重要的事. 所以 BDD 被重視是應該的, 台灣這邊可以好好瞭解這一塊.
TDD 目前看起來 2024 年有高一點, 但是前兩年都還是持平 18%, 所以可能需要持續觀察.
Waterfall 看起來是持續盤旋往下走. 不過也是有 2 成左右的人持續使用.
測試某種程度, 有在找開發人員麻煩的意味, 畢竟多數人應該不喜歡被指出錯誤, 因此溝通技巧對測試人員來說, 是非常關鍵和重要. 如何讓開發人員不會不開心, 並且還樂意與你合作把品質搞好, 這是需要學習的.
在功能方面的測試自動化 和測試自動化的相關技能, 這些都還是當紅炸子雞. 調查往往是居高不下. 不過, 有個地方可以注意一下 API Test 是很高的, 或是因為不是對開發調查, 所以 Unit Test 不在上面. 但是 API Test 確實是個趨勢.
測試設計可以佔到 30% 是出乎我意料外的, 所謂測試設計主要是在談如何開立好的測試個案和場景的方法, 這部分在台灣是完全不重視的, 大多數的人是不太清楚黑箱白箱這些東西, 所以往往都很擔心自己開的個案涵蓋度不足. 在國外他們很清楚這是重要的基本功, 是有其重要性.
另外, 如果你有常常關心測試的趨勢, 你會發現 AI 或是 mahcine learning 也是測試人員非常注意的, 他們希望 AI 可以幫助他們找出更多需要測試的場景. 另外也因為要測試的組合或是數量太多, 也希望藉由 machine learning 可以去根據過往規則去挑出合適要測的東西.
由下表可以知道, 大部分的測試工作還是由專職的測試人員來做. 這裡蠻有趣的, 因為測試的工作不管誰來做, 就是這麼多, 如果都是專職測試人員來說, 但是專職的人又不多, 這樣怎麼可以有好的測試結果呢?
不過, 也可以看到, 隨著時間的推移, 測試工作逐漸由非專職的測試人員來分擔. 否則就像我剛剛說的, 事情就這麼多, 要團隊一起來分擔, 這樣才做得完做得好.
目前前三名的是: Jira (42%), Selenium (22%), Postman (18%)
個人感覺開源工具, 或市占率高工具的是首選, 因為資料多, 用得人多, 所以比較好找人, 並且有問題發生比較有機會找到解法.
AI 是這幾年主要的議題, 自然就會想知道它會對測試帶來怎樣的影響. 目前看起來就是在產生測試程式方面幫助最多, 然後藉由chatGPT 等工具, 讓測試人員可以從中學習一些知識和場景, 輔助在開立個案和數據上面可以更有信心.
State of Software Quality Testing 2024
由 Katalon 所提供的調查, 從 2022 年開始到現在, 每年一份報告.你可以在這邊找到調查報告:
https://katalon.com/state-quality-2024
這份報告, 有 40 %的填問卷的人來自亞太, 這真是出乎我意料之外, 我以為大多應該是在北美(27%) 和西歐(16%). 這是我想選他的原因之一, 由地緣的關係, 對我們應該有一定的參考程度.
目前看起來跟前一份報告同樣的結論, 這幾個工具穩穩站最前面, 如果你問我說要要學什麼, 基本上這些學起來, 大概80%公司都可以去. 對於公司來說, 如果集中使用這些工具, 人才比較好找, 測試工具出問題時也比較多資源可以參考.
基本上測試自動化是用來確認已知的事情, 檢查主功能或是已知重大風險是否都正確無誤. 所以在回歸測試和功能測試上應用最多
另外, 在產生 test case 和 test script 上面, 因為部分步驟重複性高, 所以也會用自動化來幫忙.
API Test 正如前面說的, 也是很高應用
比較有趣的是 UI 測試自動化, 這部分的程式很容易出錯, 維護的成本其實很高. 但是大家容易被廣告詞所欺騙, 認為 UI 操作錄一錄, 測試自動化就完成. 但是沒想到後續代價是很高的.
這裡提到要做自動化會遇到的問題. 大多大家應該都知道. 我挑幾個有趣的來說說.
首先, 團隊缺乏自動化的技能和經驗, 這件事情是很矛盾的, 前面報告說測試自動化很重要, 是最先需要學習的技能. 但是這裡又說大家都沒技能. 可見都是嘴上說說, 但是身體很誠實:沒時間去學或是沒時間去做. 但是為什麼會這樣呢? 其實主因就是老闆不夠重視和在意. 他只在意專案不要延遲, 所以這種會造成延遲的工作, 即使理論上再重要, 也是排在後面. 所以老闆這樣想, 員工自然也容易這樣做.
接著, 測試自動化的維護成本太高, 這件事情很容易被忽略, 大家以為寫完後, 之後就可以一直跑, 不需要人的介入, 多棒棒啊. 但是你也知道程式就是會改 A 錯 B, 受測程式改變, 測試程式自然一定會受影響, 就會需要不斷修改維護.
正如前面所說, 產生測試個案, 腳本和數據是最主要. 其他太神奇的進階使用就不用想太多
ChatGPT 仍然是首選. 自製工具有佔不少比例, 代表目前這些工具某些需求仍未滿足, 所以才需要自行開發.
自動化工具已開始內建 AI 功能, 不過是否真的管用還需要一段時間觀察.