avatarAnne Hsiao

Free AI web copilot to create summaries, insights and extended knowledge, download it at here

3251

Abstract

將大的功能切成不同 Phase,每個 Phase 會有多個小任務,按照前後端、頁面規劃、User Stories 切分。</p><p id="5ac8">將任務切小的優點除了時程與資源較好預估外,也減輕單次工程師開發、Code Review 以及 QA 測試的負擔。</p><p id="d566">試想若整個功能都做完了,一次測試到 10 個問題,心裡直接山崩地裂土石流,接著工程師改完 10 個問題後,發現修好 A 又壞了 B,整個心累。</p><p id="c1a7">若能將功能分成 5 個小任務,也許第一個任務測試到 3 個小錯誤,改完後就先上線這個小任務(用 <a href="https://readmedium.com/product-beta-release-planning-and-feature-flags-implementation-1f7673007d23">Feature Flags</a> 先藏起來不讓使用者看到),接著再著手進行第二個任務、或是同步讓其他 QA 測試其他範圍來加快速度,每次的負擔較小外,持續 deliver 的感覺真的很好呢!</p><h2 id="a606">4. 記得預留 Buffer Time 給測試時程</h2><p id="e861">怎麼每一篇都會提到要給對方預留足夠時間啊?摁⋯⋯因為我們每次都把事情想得太簡單了!事情真的不是你想的那樣!</p><figure id="564c"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*0WGHdG9ZU-gbLXQaLdbZmQ.gif"><figcaption></figcaption></figure><p id="ce29">工程師開發時間的預估是一個難題,但是測試時間的預估更是困難重重!有些功能改一個小邏輯(工程開發很快)但是測試卻要測到非常多種特殊情況與結果,不論是手動測試或自動測試,光是寫測項就要花很多時間了,更不用說實際測試、驗證、寫下 BUG 重現步驟、截圖截影片所花費的時間。</p><p id="296e">接著工程師拉回去修正,也不確定要修多久,修完再來測試一遍,超級耗神費工!也因此第三點將任務切小尤其重要,至少減少單次實作、測試的時間,讓來來回回(back and forth)的狀況減少。</p><h2 id="d93a">5. 上線前找到 BUG 皆大歡喜🎉</h2><p id="a3f9">剛開始接觸這份工作時,每當 QA 找到 BUG 我都很氣餒,尤其是一次開了十幾個 defect 要我一一檢查的時候。煩惱自己跟工程師溝通不夠清楚、跟設計師一起 Review 的時候沒抓到錯誤、寫 PRD 的時候思考不夠縝密,然後想著上線時間又要延後了,不想面對啊!</p><p id="742d">隨著做的專案與上線的功能愈來愈多後深刻體會到,問題提前被 QA 抓到總比上線後被客戶發現、被使用者回報好太多了!畢竟到那田地,就不是單純心情不好、時程延後被被老闆唸這麼簡單——小則客服、業務被客戶罵,大則讓客戶賠錢、造成使用者流失,甚至成為公關危機導致品牌信譽沒了,這些才是更嚴重而且難以挽回的狀況。</p><p id="2bec">從此以後,上線前找到 BUG 我都心懷感激,謝謝 QA 總是這麼細心的把關,對PM、工程師來說,每次都是學習的機會,看看自己又少考慮了些什麼,一起討論下次如何避免,大家各自發揮自己的專長,就是團隊合作最讓人開心的時候!</p><blockquote id="45f1"><p>延伸閱讀:想更瞭解各種測試的類型與其重要性,可以參考《<a href="https://pse.is/F2YJ7">一次搞懂單元測試、整合測試、端對端測試之間的差異</a>》,裡面也有對自動化測試更詳細的說明唷~</p></blockquote><div id="4bac" class="link-block"> <a href="https://cyanho.medium.com/testing-%E6%B8%AC%E8%A9%A6%E7%AD%96%E7%95%A5-testing-strategy-548ff3a7d427"> <div> <div> <h2>[Testing] Testing Strategy</h2> <div><h3>本篇文章以開發者的角度出發,聚焦在與開發過程緊密相連的兩種測試類型 — unit test 和 integration…</h3></div> <div><p>cyanho.medium.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*vC7dlnQUGDtQYart)"></div> </div> </div> </a> </div><div id="4db5" class="link-block"> <a href="https://readmedium.com/pm-podcast-ep06-quality-assurance-and-product-releases-bf48d935e80c"> <div> <div> <h2>【PM Podcast EP06】原來產品測試這麼複雜?feat. 旋轉拍賣資深測試工程師 Tiger</h2> <div><h3>歡迎來到三眼怪產品經理對談系列:PM 基本功的第四集!在上一集中,我們聊了優先級排序的眉眉角角,這一集我們要往產品開發的下一步流程移動,聊聊大家如何一起完成把產品送到用戶手中的最後一哩路:產品測試與上線流程的管理。</h3></div> <div><p>medium.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/1*CRTim5CEE9lUNnK8Cbdk4A.png)"></div> </div> </div> </a> </div><div id="e653" class="link-block"> <a href="https://readmedium.com/internal-usability-testing-for-beginners-1301994c35c2"> <div> <div> <h2>沒有資源做產品的使用者研究?讓我們從內部易用性測試開始!</h2> <div><h3>大家都知道使用者研究、易用性測試很重要,但不是每個團隊都機會或資

Options

源進行。在這邊分享一個較為輕量級的作法 — — 找內部的團隊成員來做易用性測試與訪談。</h3></div> <div><p>medium.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*UgCgntq2CumxoB1H.png)"></div> </div> </div> </a> </div><div id="822a" class="link-block"> <a href="https://readmedium.com/software-product-release-management-definition-and-workflow-e93075bd8ae"> <div> <div> <h2>產品上線管理:寫給 PM 的基本名詞解釋與工作流程</h2> <div><h3>前陣子在 PTT 看到關於 Release 週期的討論,底下推文從一天 n 次、每天上版到半年、一年才釋出一個新版本的回答都有,這篇文章就來分享我在不同團隊中經歷過的產品部署與上線經驗,以及分享一些我在擔任 PM…</h3></div> <div><p>medium.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*YuZDwDVMBzwK3vSO.png)"></div> </div> </div> </a> </div><div id="584e" class="link-block"> <a href="https://readmedium.com/3pm-series-how-to-work-with-your-teammates-4d071c38634e"> <div> <div> <h2>【PM 夥伴攻略系列索引】團隊合作的溝通心法大全</h2> <div><h3>PM 的職務內容仰賴和許多不同角色的溝通,而每個角色都有著自己不同的思維模式、不同的工作流程、不同的目標和不同的需求在運作著。我們希望分享我們跟夥伴們工作後的心得與學習,來協助 PM…</h3></div> <div><p>medium.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/1*WfY5KHixwn7QOpP0Vi0bww.png)"></div> </div> </div> </a> </div> <figure id="6b09"> <div> <div> <img class="ratio" src="http://placehold.it/16x9"> <iframe class="" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fbutton.like.co%2Fin%2Fembed%2Fnanachiang0910%2Fbutton&amp;display_name=LikeCoin&amp;url=https%3A%2F%2Fbutton.like.co%2Fnanachiang0910&amp;image=https%3A%2F%2Fstorage.googleapis.com%2Flikecoin-foundation.appspot.com%2Flikecoin_store_user_nanachiang0910_main%3FGoogleAccessId%3Dfirebase-adminsdk-eyzut%2540likecoin-foundation.iam.gserviceaccount.com%26Expires%3D2430432000%26Signature%3DcLY4bMphekj8PnsBM7F%252BrwKS7v0mLyTVsqN8pLpZPZ%252F7kjsJXg4tEV7xZsX0bRYHOEBlxwV4jvYVqnDcH4rONFqn5aiuRgutXvineNdTgVJdJsbi2mjbNaWYA%252Bzq5I63pgm3U1e%252FcE1CXqQ19lN%252BtAA9F2iYtIeAow85IH4olxC%252BJxvBWWXf71h1wlETGwIDBK5ghAVUkMMzoxRmGqbJCy3q%252BUIwlHodouDbN2AbOtZl6eltycSsHD4W18M%252BX%252F0bTgug8zMhN0VD3czhrt3kwxRki6apG8w6TOYyoFY46LVK7BaYNu7XniG8Th2dJxNJP%252Fm0hFYr9Fkq%252BU2Sh3mbrw%253D%253D&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=like" allowfullscreen="" frameborder="0" height="212" width="485"> </div> </div> </figure></iframe></div></div></figure><div id="eda5"><pre>謝謝你的閱讀!如果有任何疑問、建議的主題也歡迎留言給我 📒</pre></div><div id="6528"><pre>如果單純想給我一點鼓勵,請給我 1–10 個拍手; 如果覺得文章對你有點幫助,請給我 11<span class="hljs-string">-20</span> 個拍手; 如果想看更多團隊合作的文章,請盡情長按拍手(50個拍好拍滿也沒問題)讓我們知道 👏🏻</pre></div><div id="4638"><pre>未來也會分享跟團隊內其他角色的合作方式,敬請期待! 想要持續追蹤我們的最新文章,請追蹤產品三眼怪實驗室 <span class="hljs-comment">(◉◉◉)</span></pre></div></article></body>

【PM夥伴攻略】如何跟QA合作?

每次被問到回答不出來的產品細節或邏輯,我都會去找 QA 確認,因為他們是這個世界上最瞭解功能細節的人!

軟體業中的 QA(Quality Assurance)是負責軟體測試、確保軟體功能正常的重要角色。在我剛加入團隊時並沒有專職的 QA,功能測試的工作是由產品經理、工程師、客服共同負責,而在兩年後 QA 部門已經比 PM 人數還要多了,包含手動測試、自動化測試與有經驗的 QA 主管來協調資源與管理測試項目(Test Cases)。

為了確保產品的穩定度與安全性,「測試」這件事情對於使用者數量多、以及會碰到「錢」的電商、金融相關產品尤其重要,因此除了 QA 本人會負責測試之外,產品經理、工程師也會在不同階段為測試盡一份心力。

▍軟體開發流程中的各種測試

Icon: Flaticon, Tool: Canva

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)。

自動化測試工具可參考《Best Automation Testing Tools for 2019

QA 主管負責掌管龐大的測試項目(Test Cases)資料庫,使用如 TestRails 這類型的工具將測試項目分類、互相關聯、複製、移動,同時跟工程師、產品經理溝通新的功能開發的測試項目、資源、時程。

手動測試和自動測試都很重要,前者強調使用情境、使用流程、UIUX的具象狀況,後者則是能快速檢查與盤點大部份重要功能的實作與邏輯運作狀況。

【補充參考】其他類型測試
・效能測試(Performance Testing)
・用戶驗收測試(UAT - User Acceptance Testing)
・易用性測試(Usability Testing)

▍如何跟 QA 合作?

複習:《【PM夥伴攻略】如何跟工程師合作?》

1. 提供細節清晰的測試需求

與 QA 的溝通工具同樣為 PRD,測試跟開發一樣是非常細節導向的工作,QA 的工作是要將所有可能發生的狀況展開來,比對「預期結果」與「實際測試結果」並回報非預期的狀況。

除了 PRD 以外,我通常也會整理一份非常概要的清單給 QA 同步參考,QA 再依照 PRD 與清單內容來擴寫測項。

【清單舉例】
・正常、極端、錯誤情境
・未登入、已登入情況下
・已開啟、未開啟A功能的使用者,使用新功能時的情況
・裝置、螢幕大小、瀏覽器

2. 除了測試功能,也讓 QA 從產出 PRD 的階段開始幫忙偵錯

我們的 QA 是隸屬於獨立的部門、並未直接安排在各小組內。每個 Scrum Team 會共用測試資源,因此 QA 會同時測試許多不同類型、模組的功能。

我合作的 QA 都是邏輯很好、記憶力高超的細節魔人,讓他們及早加入產品設計的討論、跟工程師設計師一起規劃的好處是可以在看 PRD 的時候就幫忙偵錯(是不是少考慮A情況呢);也因為同時熟悉許多其他模組的功能,可以及早發現功能間有 dependencies 的問題(跟B功能之間的關聯是否有考慮到),避免進入開發後才發現問題。

延伸閱讀《如何撰寫產品需求與規格文件?問題、心法與實作小撇步!

3. 掌控好每次開發、測試的項目的範圍

以敏捷式開發來說,產品經理會跟工程師一起將大的功能切成不同 Phase,每個 Phase 會有多個小任務,按照前後端、頁面規劃、User Stories 切分。

將任務切小的優點除了時程與資源較好預估外,也減輕單次工程師開發、Code Review 以及 QA 測試的負擔。

試想若整個功能都做完了,一次測試到 10 個問題,心裡直接山崩地裂土石流,接著工程師改完 10 個問題後,發現修好 A 又壞了 B,整個心累。

若能將功能分成 5 個小任務,也許第一個任務測試到 3 個小錯誤,改完後就先上線這個小任務(用 Feature Flags 先藏起來不讓使用者看到),接著再著手進行第二個任務、或是同步讓其他 QA 測試其他範圍來加快速度,每次的負擔較小外,持續 deliver 的感覺真的很好呢!

4. 記得預留 Buffer Time 給測試時程

怎麼每一篇都會提到要給對方預留足夠時間啊?摁⋯⋯因為我們每次都把事情想得太簡單了!事情真的不是你想的那樣!

工程師開發時間的預估是一個難題,但是測試時間的預估更是困難重重!有些功能改一個小邏輯(工程開發很快)但是測試卻要測到非常多種特殊情況與結果,不論是手動測試或自動測試,光是寫測項就要花很多時間了,更不用說實際測試、驗證、寫下 BUG 重現步驟、截圖截影片所花費的時間。

接著工程師拉回去修正,也不確定要修多久,修完再來測試一遍,超級耗神費工!也因此第三點將任務切小尤其重要,至少減少單次實作、測試的時間,讓來來回回(back and forth)的狀況減少。

5. 上線前找到 BUG 皆大歡喜🎉

剛開始接觸這份工作時,每當 QA 找到 BUG 我都很氣餒,尤其是一次開了十幾個 defect 要我一一檢查的時候。煩惱自己跟工程師溝通不夠清楚、跟設計師一起 Review 的時候沒抓到錯誤、寫 PRD 的時候思考不夠縝密,然後想著上線時間又要延後了,不想面對啊!

隨著做的專案與上線的功能愈來愈多後深刻體會到,問題提前被 QA 抓到總比上線後被客戶發現、被使用者回報好太多了!畢竟到那田地,就不是單純心情不好、時程延後被被老闆唸這麼簡單——小則客服、業務被客戶罵,大則讓客戶賠錢、造成使用者流失,甚至成為公關危機導致品牌信譽沒了,這些才是更嚴重而且難以挽回的狀況。

從此以後,上線前找到 BUG 我都心懷感激,謝謝 QA 總是這麼細心的把關,對PM、工程師來說,每次都是學習的機會,看看自己又少考慮了些什麼,一起討論下次如何避免,大家各自發揮自己的專長,就是團隊合作最讓人開心的時候!

延伸閱讀:想更瞭解各種測試的類型與其重要性,可以參考《一次搞懂單元測試、整合測試、端對端測試之間的差異》,裡面也有對自動化測試更詳細的說明唷~

謝謝你的閱讀!如果有任何疑問、建議的主題也歡迎留言給我 📒
如果單純想給我一點鼓勵,請給我 1–10 個拍手;
如果覺得文章對你有點幫助,請給我 11-20 個拍手;
如果想看更多團隊合作的文章,請盡情長按拍手(50個拍好拍滿也沒問題)讓我們知道 👏🏻
未來也會分享跟團隊內其他角色的合作方式,敬請期待!
想要持續追蹤我們的最新文章,請追蹤產品三眼怪實驗室 (◉◉◉)
Team Collaboration
Team Communication
產品經理
Product Management
職場合作
Recommended from ReadMedium