進度條

QA只是測試?你知道他的完整名稱意思是「品質保證工程師」嗎?

不只是Tester, 淺談產品品質守護神QA

作者: Vincent Ke 更新日期:

在過去小編的工作經驗之中,每當產品開發完成之後,最痛苦的階段就是上線前的各種準備事宜,除了規格文件的妥善外,其中還有一個最可怕,也是在軟體界中的老生常談-「改BUG」

 

 

pexels-photo-459793.jpeg

 

 

但當然Bug除了本身程式設計上有著考慮欠周的地方之外,只要產品的規模夠大,容易造成的邏輯衝突自然也會不在話下,所以在小編的開發經驗之中,通常在交付客戶(或是產品功能上線前),都必須保留一段緩衝時間,來讓測試工程師們對交付的產品去做驗證,來確保產品品質不會像是紙糊的老虎一樣,不堪一擊

 

 

在傳統的瀑布式開發流程之中,當開發團隊提交產品及規格文件後,測試工程師(Tester)的任務,就是與開發團隊一起撰寫測試情境、測試計畫(Test Plan)與測試案例(Test Case),接著就是滿滿的測試項目以及雪花般的Bug海量飛來,而PM也必須針對每一個Bug去釐清是否需例外狀況處理,也是就針對本身規格外的事件去做補遺。而當然,產品Scope越大,所需要來回驗證的時間就會拉得更長

 

 

pexels-photo-1435183.jpeg

 

 

但在Agile敏捷式開發的概念之中,如果一但驗證的時間被拉長,雖然可以提昇產品的交付品質,但卻也意味著遞交給客戶的時間也隨之延長,而當中可能會因為一些Bug較為嚴重,造成了交貨期的延宕,當中的糾結和取捨,最後也成為了團隊績效和與客戶間信任的平衡做拉扯

 

 

但QA在敏捷式開發的價值中,並非只有扮演Tester的角色

 

 

先從QA的角色開始談起,QA的全名為Quality Assurance engineer,即品質保證工程師,其中最核心的任務並非是測試,而是保證產品交付的品質,在SQA(Software Quality Assurance)的概念之中,最重要的就是建立一套有計畫,有系统的方法,來確認專案或產品中所制定的標準、步驟以及方法,是否可完整的實現及採用

 

 

假如我們今天的產品是輪框,在設計藍圖繪制後並開發完成,QA就必須要對每一項細節做出質疑和驗證,例如各種不同的輪胎是否適用、若少一顆螺絲會有什麼影響、甚至假設這個輪框標榜超耐震,就必須針對各種不同的震動度去提出測試計畫..等等,而這些項目,都是避免輪框組裝上路後壞掉的各種情況。

 

 

crash-test-collision-60-km-h-distraction-163016.jpeg

 

 

這樣的角色除了要具備開發能力外,必須具備更為周到的思維以及眼界,才能在產品上線前,針對問題對症下藥,來做出「事先預防」上的準備,這也是agile上QA(或可稱呼Agile tester)最重要的價值;而過去傳統上定義的Tester,比較類似獨立於開發團隊外的組織,只能做出事後處理。

 

 

所以說,QA通常是公司中最了解產品的角色,而為提升「事先預防,預先治療」的價值,QA必須參與整個產品的開發流程,不管初期的系統架構設計、需求分析,甚至是使用情境上的整理等,都必須全程參與,接著就是和開發團隊一起討論測試案例及各種情境,讓工程師可以從使用者邏輯上的開發中,轉換到系統功能上的邏輯開發。

 

 

pen-writing-notes-studying.jpg

 

 

而隨著部分功能的迭代開發完成後,撰寫Automation test也是QA相當重要的職責,把產品驗證做到更自動化,避免因人為原因造成產品測試上的疏漏,而些工作無非都是提升團隊在開發上的敏捷度,不僅可以快速因應需求變更而來擬定策略,最重要的,是可大幅縮短過去冗長的驗證流程。

 

但當然一定也會有上線前Bug修不完的狀況發生囉,如何去把每一個Bug的優先程度與影響範圍量化,來了解產品上線的最小MVP Scope 在哪裡,並定義出先求「有」再求好的「有」的標準,都是QA的職責所在。

 

 

pexels-photo-212286.jpeg

 

 

所以與其說守護神,QA更像產品的門神,來為我們努力的心血做出層層把關。當你抱怨他們雞蛋裡挑骨頭了,應該要先想想你的雞蛋裡為什麼有骨頭,好好與QA團隊合作,他們的細心絕對是在開發上不可或缺的一大戰力。

 


最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!

Medium vincent

Vincent Ke

喜歡把混亂的事情變的簡單 用嘴巴做事其實很可以 但要結合靈活的腦袋思考 就一起來拆解吧