哈囉大家好,我是在軟體業工作的PM,
前陣子分享PM與工程師合作的注意事項得到很多回饋,
最近又寫了一篇PM與QA合作的心得,歡迎大家給些回饋或是跟我們交流交流~
【PM夥伴攻略】如何與QA合作?
https://pse.is/FFGC8
軟體業中的 QA(Quality Assurance)是負責軟體測試、確保軟體功能正常的重要角色。在我剛加入團隊時並沒有專職的 QA,功能測試的工作是由產品經理、工程師、客服共同負責,而在兩年後 QA 部門已經比 PM 人數還要多了,包含手動測試、自動化測試與有經驗的 QA 主管來協調資源與管理測試項目(Test Cases)。
為了確保產品的穩定度與安全性,「測試」這件事情對於使用者數量多、以及會碰到「錢」的電商、金融相關產品尤其重要,因此除了 QA 本人會負責測試之外,產品經理、工程師也會在不同階段為測試盡一份心力。
▍軟體開發流程中的各種測試
1. 工程師—Unit Test
開發時,工程師會寫單元測試(Unit Test),Code Review 時其他工程師會再次檢查 Code & Unit Test 是否合規。
2. 產品經理、設計師—Use Case Review
當工程師的開發告一階段,會請產品經理、設計師測試功能與情境是否符合期待。通常就是對照著 PRD、mockup 來檢查與測試。
3. QA—End-to-end Testing (E2E), Integration Testing
到了 QA 手上時,會進入 End-to-end Testing (E2E)、Integration Testing 的階段,包含手動測試與自動測試。
手動測試時會檢查每個新任務的細節,除了正常使用情境與介面檢查外,也會測試極端情況、錯誤使用方式的處理、不同版本或權限的管理等等。
而在我們的流程中,自動測試的環節出現在新版本的功能、優化、bug fix merge 到主要分支後、準備上線前的最後一道關卡,跟 DevOps、SRE 密切合作。主要測試項目為目前線上已有的功能與模組,例如註冊、登入、加入購物車、結帳流程等等,避免新的版本影響到原有功能。而新功能的自動化測項則是會邊開發邊加進去,逐漸提高代碼覆蓋率(code coverage)。
QA 主管負責掌管龐大的測試項目(Test Cases)資料庫,使用如 TestRails 這類型的工具將測試項目分類、互相關聯、複製、移動,同時跟工程師、產品經理溝通新的功能開發的測試項目、資源、時程。
手動測試和自動測試都很重要,前者強調使用情境、使用流程、UIUX的具象狀況,後者則是能快速檢查與盤點大部份重要功能的實作與邏輯運作狀況。
▍如何跟 QA 合作?
1. 提供細節清晰的測試需求
2. 除了測試功能,也讓 QA 幫忙 PRD 的偵錯
3. 掌控好每次開發、測試的項目的範圍
4. 記得預留 Buffer Time 給測試時程
5. 上線前找到 BUG 皆大歡喜
(文章有點太長,細節請參考文章內容~~~)
最後分享一篇最近讀的文章《一次搞懂單元測試、整合測試、端對端測試之間的差異》
https://pse.is/F2YJ7
以上~