這邊我想幫他補充一個前綴,End-to-End Testing。簡單來說就是 API 層級的端對端測試,所以重點在真正的接上資料庫,讓 邏輯流 與 資料流 真正的動起來。以我們來說,在 Build Time 的測試階段會用 Testcontainer 把外部相依來的服務如 MQ、DB 開起來,然後先加入測試資料,再進行 API 的調用與斷言,最後再將幾個 API 組合在一起變成一個前端調用的場景
安全
這邊我也只能先以 Mobile App 的角度來談,因為沒了 Web 世界常見的 Cookie 和 Session,現在也流行一些其他的方法如 OAuth,那就是會放一個 Token 在 Header 上。對於後端來說就會偏向 Stateless 的範疇,誰擁有 Token 誰就可以互動和拿資料,保護議題就要放在是否合法安全的取得 Token,把這個責任丟給別人,像是 Google 登入、Apple FaceID 等等
監控
這個就最單純了,最簡單驗證 HTTP 狀態碼是一種作法,如果希望可以覆蓋的更全面的話,建議就是把測試那個環節的端對端測試拿來用,讓 Build Time 的迴歸測試,擴展到 Runtime,模擬用戶的真實場景。當然在這邊我想要特別提到一件事,監控跟測試的重點都在不斷地迭代,我們不會一次就到位,也沒辦法寫一次用永遠,一定要一直反覆迭代優化