首頁/ 汽車/ 正文

在一個“去QA化”的專案中,QA能做什麼?

第一次在某篇文章裡看到“去QA化”這個概念,我當時也就是隨隨便便翻看了一下,並未多加關注。第二次是在QA社群群裡看見更資深的同事在談論“去QA化”,當時我小小的腦袋裡,單純覺得“去QA化”離我還是很有一些距離的。

萬萬沒想到!沒過多久,當我上到一個專案之後,TL跟我說,我們有些專案確實是沒有QA的,隔壁專案組有一個QA,但是在整個開發流程中也沒有專門的測試階段。聽完之後,我眼睛瞪得像銅鈴(誇張修辭):那誰來做測試策略呢?在什麼階段測卡了?什麼時候做探索式測試呢?TL顧及我作為QA的尊嚴,立馬跟我強調:“我覺得QA還是非常重要的,我是反對他們那樣做的!太危險啦!”。但是,她善良的勸慰並沒有撫平我的震驚,打消我的思考。這次我知道,“去QA化”可能真的來了。

那在“去QA化”的專案中,我能做什麼來為團隊提供價值呢?我帶著這樣的思考來到了專案上,並得出了一些自己的思考。

測試策略

因地制宜地制定測試策略,這個是QA到了新專案必須要做的一個事情。在瞭解專案的上下文之後,我們需要及時去做這個事情,它的優先順序是非常高的。測試策略是一個非常重要的指導,它涵蓋了功能,效能,Accessibility,相容性,安全等方面都需要測什麼,也明確瞭如何去測試的問題。在敏捷開發流程下,推薦大家可以參考“敏捷測試四象限”去思考設計自己的測試策略。

如果這個專案不是一個全新的專案,已經有了現成的測試策略,我們需要在加入專案時去理解現在的測試策略,並在後續對專案背景、技術架構、軟體功能有了更深入的瞭解之後,看是否需要去改進當前測試策略。每個專案的測試策略,其實都應該跟隨專案變化不斷演進。

質量內建

QA為什麼要在專案上推進質量內建?首先,我們想想缺陷是被測試出來的嗎?不,它是在生產過程中產生的,所以我們需要在生產的過程中去提升產品的質量,減少缺陷。

在敏捷開發的流程中,我們有需求分析、架構設計、Kick off、Desk Check、In QA這一系列的環節,質量內建其實就是要求我們做好每個環節的質量保障,努力避免缺陷,儘早發現缺陷,而不是期望在測試環節發現所有缺陷,然後再修復。缺陷發現得越晚,修復的成本就越高。並且,缺陷發現越多,就越可能存在更多的缺陷。

我們在每一個階段都需要有質量保障策略,團隊的每個人都需要為質量負責。

比如,

在需求分析階段,寫卡需要遵守INVEST原則,團隊需要對需求的理解達成一致;

在開發階段,可以透過Pair、TDD、QA和Dev pair寫單元測試、及時需求澄清等保障開發階段的質量;

在測試階段,可以透過充分的測試設計、探索性測試、更完善的自動化測試覆蓋等去及時發現缺陷。

除此以外,質量內建還包括其它的方面,需求管理,風險管理,提高團隊的質量意識等。

自動化測試

制定自動化測試策略,並跟團隊達成一致。搭建E2E和API自動化測試框架,編寫自動化測試程式碼,並經常給專案小夥伴們科普洗腦(我不是,我沒有)自動化測試的重要性,逐步提高專案的自動化覆蓋。

除了UT、E2E、API這些自動化測試以外,其實任何經常重複執行的動作,都可以嘗試自動化,比如準備測試資料,重複填寫冗長的表單等工作。自動化測試可以減少人工重複點點點,解放QA的一部分勞動力,並且自動化測試的及時反饋,可以讓團隊和客戶對產品質量更有信心。

測試左移

需求分析是開發流程當中非常重要的一環(不侷限於敏捷開發),QA應該更早地介入需求分析,更多去關注業務需求,以QA的獨特視角去分析需求的合理性,以及一些邊界場景。在需求分析階段,多與客戶進行溝通,理解客戶的真正訴求。跟BA一起pair完成寫卡,補充業務場景。並儘量在Kick off之前,確定好這張卡哪些testcase需要API自動化覆蓋,哪些需要在e2e自動化覆蓋,哪些是需要UT測試來覆蓋。

在故事卡進入開發階段前,通過當面溝通、ACs、testcases的各種方式(根據自己專案情況來),確定並澄清需求,達成一致理解。減少因為需求不合理,需求分析不充分,需求理解不一致導致的問題。

持續改進

在一個專案開始或比較混亂的時期,QA總是有很多重要的事情要去做,如前文提到的,制定測試策略、提高自動化覆蓋、提高team的質量意識等等工作。但是,當專案進入一個穩定期,團隊小夥伴們已經有較好的質量意識,測試覆蓋率也達到較高的標準,這個時候我們可以去做什麼呢?

首先,我們知道質量內建是一個持續的長期的概念,讓大家適應了各個角色在各流程承擔的質量職責之後,QA需要保持觀察,對質量守護工作保持敏感性,持續推進質量內建;

另外在新版本釋出後,透過User Testing,收集使用者反饋,或者分析終端使用者的行為,收集分析生產環境的資料,持續進行改進;

QA還需要收集線上問題、UAT問題,進行缺陷分析,並組織團隊一起共同制定質量改進方案。在專案的演進過程中,持續的思考是否需要改進我們的質量保障方案、測試策略。

質量內建以及高度的自動化測試,偶爾讓我們看起來不再需要QA,可是誰來做質量內建呢?誰來輸出質量保障方案呢?誰來寫自動化測試呢?誰來做持續改進呢?是QA,或者是戴上QA帽子的人。

總結下來,其實QA在專案上能做的東西有很多,包括但不限於:

制定測試策略,明確測試範圍、測試方法,這是團隊測試工作的重要指導;

質量內建,將質量內建到開發各階段,引領團隊成員一起關注並提升質量;

自動化測試,逐步構建各層級的自動化測試覆蓋,提高自動化測試有效性;

測試左移,將測試活動提前到需求分析階段,減少由於需求不合理引起的質量問題;

測試右移,關注生產環境質量,分析生產環境的資料、問題及反饋,由此去找到更多的質量改進方向;

持續改進,保持對質量的敏感性,持續觀察專案中可以改進的地方,持續推動質量內建工作;

除了以上幾個點,QA還可以多關注提升效能,面向客戶等方向。

我覺得,所謂“去QA化”只是在某些專案中去掉了單獨的一個QA角色,但是總有人會戴上QA的帽子,或者人人都戴上了QA的帽子,人人都擁有很高的質量意識,這其實是QA的理想國。

文/Thoughtworks楊垚

更多精彩洞見,請關注公眾號Thoughtworks洞見

相關文章

頂部