## 為什麼要自動化測試? - 日常維運時,每每上線前會覺得心神不安嗎?(擾亂你的生活 - 當產品需求日益複雜,時不時改A錯B嗎? - 重複瑣碎的任務越來越多,降低開發與成長的速度。 - 環境建置時讓你感到無力,要讓不同的人得到相同的測試環境,總是需要更多的資源與時間 ## 能帶來什麼? - 更加豐富個人的能力,是從資深工程師在往後延生的一哩路。[神雕俠侶裡頭的獨孤求敗,晚年只會拿樹枝和別人比武,可是你拿再厲害的刀劍就是無法打敗他](https://columns.chicken-house.net/2017/01/30/leetcode1-tdd/) - 更全面的掌握系統軟硬體架構 - 系統上線前後,為你的心情帶來一片寧靜 - 不知不覺中多了很多時間,可以拿來打電動了~ - 越來越棒的程式碼品質,擺脫了程式碼女工的稱號 - 在相同的軟體開發迭代速度下,保持優異的產品質量 ## 自動化測試 vs 手動測試 - 自動化的主要目的是,穩定的測試品質與範圍,並且降低人工介入的成本與風險。 - 不需要手動測試了嗎? 我認為也還是需要的,自動化測試建立在足夠多的手動測試,並且從中查覺到痛點並發現不符合人體工學的地方,依據觀察寫出來的測試會比較好用的測試。 - 自動化測試的範圍可以很大,是一個專門的領域[職業](https://rickhw.github.io/2015/10/11/SQA/How-To-Be-An-SQA/) ## 如何執行自動化測試? - [# 演講:從理想、到現實的距離,開啟品味軟體測試之路](https://rickhw.github.io/2022/08/13/SQA/Path-to-Software-Testing/) - [# 閱讀心得:軟體測試的反面模式(anti-patterns)](https://medium.com/%E5%BE%8C%E7%AB%AF%E6%96%B0%E6%89%8B%E6%9D%91/review-software-testing-anti-patterns-35c9b422dc4e) ![四大腳色](https://i.imgur.com/gzhitOR.png) ![測試金字塔](https://i.imgur.com/wIGzLm8.png) ![測試權重-以電商為例](https://i.imgur.com/eqY2aik.png) **我的想法: 從四大腳色這張圖來看,當今要精通任一個皆可能需花費數年,原因是每個領域的需求日趨複雜且有水平擴展的趨勢。所以 Dev 來說做好單元測試從分工來看是必須的,但目前團隊結構我們還需要再去了解一些整合與UI的測試。過程中勢必會遇到很多挑戰,失敗與挫折會接踵而至,但跨越後勢必能建立更穩固的軟體團隊,並且是良好健康的文化。** 要怎麼做呢? 先專注於本質上的事情,還是以產品需求為主測試為輔,產品得先能動接著再補上測試。什麼叫產品能動? 就是滿足需求,且經過 UAT。 ## 資源 - Jack 那裏有厲害的人(恭麟推薦的) - ㄩˇㄊ一ㄥˊ (以前信集界 | 河流) - 拓金 Luby 的哥哥 ## 工具 - [## 軟體品質靜態分析 – SonarQube 實務](https://courses.openedu.tw/courses/course-v1:SEC+SE103+201709/course/) ## 願景 - 開發完成後,首先最重要的是把可樂跟零食準備好,準備完成後只要一顆鍵,測試與部屬就會自動執行,接著吃爆米化配可樂與翹腳等結果。 ## 還須討論 - 解釋為什麼要分層、為什麼要維持程式架構品質 - 傳達意念與行動力、試著影響別人、先說服自己、由心而生 ## 第一步 ### 預期達成效果 - 維持 PRD運行品質 - 維持程式架構品質 ### 工作原則 - 優先考慮自動化執行 - 結合 Git - co-work: ex 如何共同開發測試? 測試專案要放在哪? codeReview 機制? - 可讀性高的測試結果 ### 計畫/行動 - e-e: cynkolor, PBN-APP - U.T: cymkolor, chatAPI(未來) ## 先做 CD ### 原則 - 結合 Git - 固定環境建立應用程式 - 正式環境只能由 CD 部屬應用程式 ### 工作流 - 開發人員在 Dev 分支開發 - CD 是透過 master/main 有變化時觸發 | 手動觸發 - 人工測試正式的應用程式 ## 討論 - 瑞青是很支持自動化測試,最在意的是能否與 Azure devops 能結合。 - 跟奕璋討論關於自動化測試,蠻有想法的大致知道自動化測試類型的目的,但比較少想法在整合測試與單元測試執行面的問題。也比較支持整合測試來去達到高品質的產品