測試部門的職責定位 | 深度分析

以下文章來源于BY林子 ,作者林冰玉

測試部門的存在是傳統(tǒng)企業(yè)普遍存在的一種組織架構(gòu)形式,在數(shù)字化轉(zhuǎn)型的浪潮下,有不少企業(yè)在往業(yè)技融合方向轉(zhuǎn)變,但測試部門完全融合到業(yè)技融合團隊還是任重而道遠。在這種新形勢下,測試部門該如何跟業(yè)務(wù)、開發(fā)更有效的協(xié)作,是需要系統(tǒng)性思考的問題。

本文圍繞這一問題展開,嘗試對測試部門的職責進行定義,內(nèi)容不僅適用于傳統(tǒng)企業(yè)中獨立的測試部門或者測試團隊,也適用于敏捷團隊里的 QA(測試角色)。

01 組織架構(gòu)

為了更好地聊職責定位,有必要先捋一下測試部門的組織架構(gòu)。測試相關(guān)的組織架構(gòu)常見的有以下幾種情況:

測試是一個獨立的部門,跟開發(fā)中心或者開發(fā)部是平級的關(guān)系:這種組織架構(gòu)下,測試跟開發(fā)是非常獨立的,兩者之間通常會有比較厚重的部門墻,溝通和協(xié)作會比較吃力。
測試和開發(fā)同屬于某個開發(fā)中心,但是測試自己是一個獨立的團隊,對應(yīng)的還有多個開發(fā)團隊:這種組織架構(gòu)跟前一種是非常類似的,測試和開發(fā)還是比較獨立,有著團隊墻,同樣溝通和協(xié)作的難度較大。
根據(jù)不同的產(chǎn)品線,測試和開發(fā)融合在一起成為開發(fā)團隊:這種開發(fā)和測試間的溝通和協(xié)作會相對順暢,比較利于質(zhì)量實踐的開展。
在前一種測試和開發(fā)融合的基礎(chǔ)上,按職能成立的跨團隊社區(qū)型組織,比如測試社區(qū)或質(zhì)量社區(qū):這種組織主要是解決測試人員分散在不同的開發(fā)團隊不方便共享專業(yè)領(lǐng)域知識和經(jīng)驗的問題。

每種組織形式都有它存在的原因,至于哪一種比較理想,需要從價值目標的角度來考慮,具體可參考書籍《高效能團隊模式 ( https://book.douban.com/subject/35528423/ )》里介紹團隊拓撲 ( https://hennyportman.wordpress.com/2020/05/25/review-team-topologies/ )內(nèi)容。

02 職責定位

除了前面列舉的典型組織架構(gòu)之外,肯定還有其他的情況。不過,不管是哪一種組織架構(gòu),測試部門的職責可以分為兩大類:測試管理類和測試實施類。

對于獨立的測試部門或團隊,一般會有一部分人承擔測試管理類職責,另一部分承擔測試實施類職責;
對于測試開發(fā)融合的團隊,可能每個測試人員都需要同時承擔測試管理和實施的職責;
對于測試社區(qū),其構(gòu)成就會同時包括前面兩類職責的人員,同時在社區(qū)的角度來講,還需要承擔社區(qū)建設(shè)、活動組織等相關(guān)職責。


2.1 測試管理類職責

說明:后面幾項管理類職責,我會從組織級層面介紹,其實這里的組織可以是整個企業(yè),也可以是某個團隊或者團隊的某個測試人員,雖然介紹的是組織級的管理職責,對應(yīng)到團隊或個人都是適用的,同樣可以參考。

測試管理類職責主要是組織級質(zhì)量/測試體系構(gòu)建、組織級質(zhì)量相關(guān)策略的制定、以及質(zhì)量/測試實踐標準規(guī)范的定義。

2.1.1 構(gòu)建組織級質(zhì)量/測試體系框架

結(jié)合企業(yè)文化、業(yè)務(wù)指標等確定質(zhì)量目標,由目標驅(qū)動,構(gòu)建相應(yīng)的體系框架,涵蓋流程、策略規(guī)范、實踐指南等內(nèi)容。

關(guān)于組織級質(zhì)量/測試體系構(gòu)建框架,我之前有分享過如下圖示的組織級測試體系圖譜:



該圖譜由“一個中心,四個方向”構(gòu)成,要構(gòu)建完備的組織級測試體系,建議圍繞“一個中心”、向四個方向發(fā)力:

一個中心:核心價值觀
四個方向:高效率協(xié)同、標準化指導、規(guī)范化實施、自動化支撐

2.1.2 制定組織級質(zhì)量策略

組織級質(zhì)量策略比通常說的測試策略范圍更廣,是指在組織質(zhì)量體系框架下具體的能夠指導團隊質(zhì)量/測試實踐落地的策略,是全組織通用的質(zhì)量保障的方向性指導。具體到每個團隊還需要根據(jù)團隊的具體情況進行調(diào)整,基于組織級策略定制化自己團隊適配的策略。

1. 測試流程

這里的測試流程不是指執(zhí)行某項測試需要哪些步驟,而是指軟件開發(fā)生命周期中需要在哪些環(huán)節(jié)實施測試相關(guān)活動。

測試流程的定義就是將這些內(nèi)容固化下來,形成規(guī)范,讓團隊全體成員基于這些規(guī)范來執(zhí)行相應(yīng)的測試實踐。

沒有流程規(guī)范,大家隨意開展測試工作,將會混亂。測試流程,相當于測試活動開展的框架,跟編程框架類似。

可以用來培訓批量人員,讓大家按照統(tǒng)一的方式來實施測試,規(guī)范每個人的測試行為,減少犯錯的可能性,盡可能提高測試的效率和有效性。

測試流程通常跟軟件開發(fā)流程緊密相關(guān),需要基于開發(fā)流程來定義。基于企業(yè)不同的開發(fā)模式,測試流程常見的有以下幾種情況:

傳統(tǒng)瀑布開發(fā)模式下的獨立測試階段,發(fā)生在開發(fā)完成之后;
基于 V 模型開發(fā)模式下的測試,同樣是發(fā)生在開發(fā)完成之后的階段;
基于 W 模型開發(fā)模式下的測試,更早進入到開發(fā)階段,測試與開發(fā)并行,但是順序性的,過程不可逆;
基于敏捷開發(fā)模式的測試,左移到需求階段,在軟件開發(fā)全生命周期進行持續(xù)的測試,并且右移到生產(chǎn)環(huán)境,給軟件開發(fā)提供全流程的質(zhì)量反饋,做到缺陷預防,降低成本,提高軟件交付質(zhì)量。
關(guān)于這幾種開發(fā)模型,可以參考下面博客的詳細介紹:

《軟件開發(fā)常見模型(瀑布模型、V 模型、W 模型、敏捷開發(fā)模型)》    ( https://www.cnblogs.com/luoye1/p/13611099.html )

測試流程規(guī)范業(yè)界目前主要有以下三種管理形式:

人為制定流程,編寫流程規(guī)范文檔,團隊依據(jù)文檔執(zhí)行;
文檔定義流程,同時配套工具平臺來規(guī)范執(zhí)行,如流水線、看板等;
將流程全部固化到工具平臺,利用工具平臺實現(xiàn)全流程的標準化和自動化,如 Google 等。

2. 測試策略

測試策略是在既定測試流程的基礎(chǔ)上,定義不同產(chǎn)品需要測試的內(nèi)容,每個環(huán)節(jié)的測試活動、測試方法。

組織級的測試策略具備較高層次的方向性指導意義,而團隊級的測試策略更能指導落地,兩者所涵蓋的內(nèi)容是類似的,只是抽象層次不太一樣。

比如組織級的測試策略需要定義不同產(chǎn)品對應(yīng)的測試內(nèi)容是功能為主,還是性能、安全等同樣重要;需要定義對于不同類型的系統(tǒng)和不同的技術(shù)架構(gòu)所采用的自動化分層策略有何差異,以及對應(yīng)的測試四象限里包括的測試方法有哪些……

而團隊級就是根據(jù)自己的產(chǎn)品類型、系統(tǒng)和團隊特點來基于組織級策略定制化自己的測試策略。



傳統(tǒng)測試策略文檔通常是篇幅較長、文字為主的形式,編寫成本較高,并且寫完了很少有人去看,形存實亡。為了讓測試策略真正能發(fā)揮指導價值,推薦采用一頁紙測試策略的思路來制定。

3. 質(zhì)量度量與治理策略

1)質(zhì)量度量

質(zhì)量度量需要從定性和定量兩個維度進行,組織級的質(zhì)量度量策略主要包括度量指標和度量方式的定義。






其中度量指標既有過程指標,也包括成效指標;度量方式主要是指標對應(yīng)數(shù)據(jù)的獲取方式。下圖為度量指標示例:



Thoughtworks 同事于曉南的《質(zhì)量度量文集》有質(zhì)量度量的系列詳細分享,感興趣的同學請移步參閱。

2)質(zhì)量治理

根據(jù)質(zhì)量度量的結(jié)果,通常需要進行相應(yīng)的質(zhì)量治理,從組織級角度來講需要有相應(yīng)的治理策略指導,包括治理周期/頻率、治理舉措建議等內(nèi)容。推薦定期的質(zhì)量治理會議來幫助組織持續(xù)改進質(zhì)量。

定期的質(zhì)量治理會議是一項非常有價值的活動,類似于回顧會議,只不過是主題主要是討論質(zhì)量治理相關(guān)內(nèi)容。

參與者為質(zhì)量相關(guān)干系人,會議內(nèi)容主要為回顧前一階段質(zhì)量方面做的好的和需要改進的,對于好的方面繼續(xù)保持,而對于不好的方面,大家頭腦風暴改進舉措,并指定舉措負責人負責執(zhí)行情況跟蹤。同時,將有代表性的改進舉措固化下來,作為后續(xù)類似問題的參考。

2.1.3 定義組織級質(zhì)量實踐規(guī)范

1)實踐標準規(guī)范

在質(zhì)量策略的指導下,定義每個實踐活動的標準規(guī)范,供團隊落地實施參考。質(zhì)量實踐的標準規(guī)范通常包括但不限于以下幾個方面的內(nèi)容:

目標:目標的清晰定義,能夠幫助團隊理解實踐的價值,更好地實施;
負責人/角色:明確實踐的負責人,有利于實踐如期開展;
參與者:與實踐相關(guān)的人員都需要參與;
實施方式:實踐實施的步驟、方法等,可能需要舉例說明;
達標要求:實踐的成功評判標準;
輸出輸出:實踐的前提條件,以及實踐完成后的產(chǎn)出;
……
軟件全生命周期的典型質(zhì)量實踐通常有且不限于下圖這些:



2)質(zhì)量成熟度模型

質(zhì)量成熟度模型是評估質(zhì)量實踐實施情況,并牽引團隊持續(xù)改進的重要工具之一。

需要測試部門定義組織級的質(zhì)量實踐成熟度評估維度,團隊可以根據(jù)自身特點進行定制化微調(diào),以實現(xiàn)對團隊質(zhì)量實踐活動實施情況進行評估,并且指導團隊持續(xù)改進。

2.1.4 規(guī)劃組織級工具平臺

工具平臺方面,根據(jù)前面策略和實踐需要工具平臺支撐的情況,有測試部門跟平臺開發(fā)/采購負責人提出相應(yīng)的支撐需求,將工具平臺與實踐落地更緊密地聯(lián)系起來,在提高交付質(zhì)量和效能的同時,發(fā)揮工具平臺的最大價值。比如:

對于測試流程的管理,需要流水線或看板提供的功能需求;
根據(jù)分層策略,對于需要編寫自動化測試的工具的需求;
對于質(zhì)量度量指標獲取的工具支撐需求;
……

2.1.5 人員能力建設(shè)

人員能力建設(shè)包括對測試角色的能力建設(shè),也包括對團隊非測試角色的質(zhì)量賦能,這兩部分需要采取不同的策略。

1)測試人員的能力建設(shè)

測試人員的能力建設(shè)建議下面三個方面的內(nèi)容:

構(gòu)建測試勝任力模型
建立不同的人員梯隊
構(gòu)建測試社區(qū)
我之前有對測試人員能力提升做過詳細的分享,包括組織級測試能力建設(shè)和個人角度的測試能力提升兩個部分,感興趣的朋友請移步參閱。

2)非測試角色的質(zhì)量賦能

前面對流程、策略、實踐的標準化定義,以及工具平臺提供的自動化支撐,其實就是對團隊各個角色的一種質(zhì)量賦能。除此之外,通過測試全生命周期的介入,以及很多多個角色共同參與的質(zhì)量實踐活動,測試可以對其他非測試角色進行質(zhì)量保障賦能。

2.2 測試實施類職責

測試實施類職責就是執(zhí)行質(zhì)量相關(guān)實踐活動,我在早期一篇寫給畢業(yè)生的文章《神圣的 QA 》中將其定為五個基本職責:



理解和澄清業(yè)務(wù)需求
制定策略并設(shè)計測試
實現(xiàn)和執(zhí)行測試
缺陷管理與分析
質(zhì)量反饋與風險識別
在另一篇文章《構(gòu)建測試的體系化思維(基礎(chǔ)篇)》中,對這五個基本職責以及對應(yīng)職責的相關(guān)實踐都有詳細的介紹。

2.3 測試社區(qū)職責

測試社區(qū)是一類虛擬性的跨團隊組織,相對傳統(tǒng)部門或團隊來說比較特殊。社區(qū)的職責我想從兩個角度來看:

社區(qū)運行相關(guān)的職責——構(gòu)建和運行社區(qū)需要相關(guān)人員履行的職責
社區(qū)對質(zhì)量的職責——對整個組織的軟件交付質(zhì)量、團隊質(zhì)量賦能等需要承擔的質(zhì)量相關(guān)的職責

2.3.1 社區(qū)運行相關(guān)的職責

測試社區(qū)本身運行相關(guān)的職責需要社區(qū)所有人共同來承擔,包括社區(qū)的建立、發(fā)展規(guī)劃和活動組織等。

可以成立社區(qū)核心小組,負責社區(qū)建立,發(fā)起社區(qū)發(fā)展規(guī)劃、活動內(nèi)容、活動形式的討論,推動具體的規(guī)劃和活動的落地。對于每次活動的組織可以由核心小組出人負責,或者從社區(qū)其他人員里出人負責。社區(qū)所有人員盡量參與每次活動或討論。

2.3.2 社區(qū)對質(zhì)量的職責

成立測試社區(qū)的一種情況是沒有獨立測試部門,測試人員分散到各個項目團隊。這種情況下,測試管理相關(guān)的大部分職責需要社區(qū)來承擔

一般建議核心小組主要負責,如質(zhì)量策略制定、質(zhì)量實踐標準化、工具平臺建議、測試人員能力建設(shè)、團隊質(zhì)量賦能相關(guān)等。職責的詳細內(nèi)容建議參考前面介紹。

03 寫在最后

測試部門作為組織內(nèi)質(zhì)量實踐專家組成的團隊,需要承擔起質(zhì)量倡導者職責,需要從系統(tǒng)化的角度來看待質(zhì)量,在整個軟件開發(fā)生命周期關(guān)注軟件內(nèi)外部質(zhì)量,并且對團隊實現(xiàn)質(zhì)量賦能。

本文首發(fā)于「BY 林子」,轉(zhuǎn)載請參考版權(quán)聲明 ( https://www.bylinzi.com/copyright-statement/ )。

作者:林冰玉


歡迎關(guān)注微信公眾號 :Python測試社區(qū)