Q&A for QA
Question #01
問題:
對於「RD 產出的 code 不測試, 就直接丟給 QA」這個現象的看法與建議?
Answer:
這我分兩個面向來看:
- RD 沒時間寫
- RD 不想寫
管理問題
第一點,這應該不是 #能力 或 #意願 問題,而是 #專案管理 或 #團隊運作 造成 #時間 不夠充裕的問題。
不管跑啥方式 (看板 / Scrum),RD 可以透過 Retro 去反應這樣的狀況,然後讓 Scrum Master or PO / TL 去協調,不管怎樣,要把時間喬出來做。這種投資是很值得,產出的品質會是更穩定可靠的。我相信只要專業度夠的 RD,都會知道要做好 UT 的 Sense,但是「做」需要時間。
時間這個因素,會牽涉到完成的完整度問題。工程師大多期許自己做到 #完美 (Perfect),而時間的限制,需要工程師去思考 #完成 (Complete) 距離 #完美 有多遠。這也是了解工程師對於 取捨、Tradeoff 的能力,通常在拆工作項目時,可以看得出來。
意願
如果是第二點,屬於 #意願,乃至於 #能力 問題,可以說是「人」的問題,然後就是影響整個團隊。
意願問題,應該是直屬主管或者現場的 Tech Lead 處理,因為 Code Review 應該就會看到 Unit Test 有沒有寫?如果 PR 沒寫 UT 就讓他過,那看點 Approve 的人就要負責。有些團隊因為人力佈局的關係,可能是成員之間相互 Review,而不是 TL,那就要往上一層去推,像是 PO / TL,請他們對團隊做這樣的要求。如果是到主管那邊的操作就是直接當作 KPI 去執行。
能力問題則由 TL 以及成員之間相互砥礪、相互學習,只要願意學,我相信都不會做得太差。TL 或團隊成員沒時間,那可以自己要求去外面上課,調整自己的不足。實務上遇到更多的是,有些 UT 不好寫,需要調整設計配合才可以,這種案例往往需要 TL 介入一起討論。
這樣在推的過程,一定會遇到 #時間 不夠的問題,回到第一點,由 PO / TL 處理 or SM 處理;
摘要
執行任務的過程的三大要素:#方向、#資源、#時間 缺一不可。而「人」的前提則是意願與能力。
Question #02
問題:
身為一個負責開發業務需求的 RD,Code 寫好後,測試要做到怎樣的狀況,才能交給 QA / Tester?
Answer:
我自己以前 as a developer 的時候,作法如下:
- 完成 DCUT (Design, Coding, and Unit Test)
- 確認 Build Pass
- 拿 Build 好的 Artifact 在自己的工作環境安裝,確認 Config / DB 沒問題,跑得起來.
- 跑過 Happy Paths,確認需求上描述的功能已經都滿足。
- 沒問題了,請 QA 測其他的 Test Cases
這五個步驟,不管是 Web / Desktop / Mobile 我都是這樣走。
相關討論與回答:
- https://www.facebook.com/groups/DevOpsTaiwan/permalink/1784559398297765/
- https://www.facebook.com/groups/DevOpsTaiwan/permalink/1815984381821933/
結論
任務都有資源、時間、風險、成本 ... 等各種因素,
在時間有限、資源有限的時候,
考驗的是團隊協作的共識,
有時候:
完成 (#Complete) 比 完美 (#Perfect) 更重要。
原始資料
- 發表時間:2022/12/15
- 原文連結