論測試的主要責任
序:
很多人對測試工程師這個工作的範圍和責任有非常多的誤解,可能包括公司的高層、本領域的研發同事、其他領域的同事等等。
甚至有時候測試工程師本身也受種種觀點、看法的影響,混淆了自己的工作職責,盲目的承擔額外的工作壓力和責任,疲於奔命,無法把精力和心思放在提高本職工作,專注獲取自我職業提公升上。(這是乙個關於承擔和推卸的度,下文會用示例具體分享。)
種種原因,都會讓這個群體的從業者揹負起額外的工作壓力,在某些責任定位或者推卸責任的情況下,莫名中槍。類似的吐槽,在網上我們可能看過很多,比如設計人員、解決方案人員等。但是此文並不是吐槽,實際上,職業生涯初期的小委屈,額外的誤解和背黑鍋,長遠來看,非常有利於打磨出合格的從業者。本文更多是試圖表明測試的主要責任範圍,以免在推諉扯皮中,放過真正的問題,沒有拿出有效的對策和方案來解決問題。
場景重現:
在不同的維度,我們可能見過對測試領域不同的指責:
「這個問題測試為什麼沒測出來?」——這是產品經理或者高層面對客戶的反饋,習慣性第一板子先打過來。
「你們的測試是怎麼設計的?有沒有考慮客戶的實際應用場景?」——這可能是專案經理或測試經理對測試工程師的拷問。
「不是有測試麼?**自測完提交上去就行了,等他們測出來問題就改,測不出來就過了。」——除了業內非常有名的大公司,很多公司對**提交、聯調做的還是非常不規範,很多開發人員就會產生這種想法。
「這個bug到底有沒有修復,是什麼原因,以後怎麼督促解決改進?」——很多人也會把qa和測試的責任放在一起做要求。
那麼你知道在上文的幾種說法裡面,有哪些是測試人員的責任?有哪些不是測試人員的責任呢?
正如邰曉梅在她的《測試對質量負主要責任?》中表達的觀點「我的觀點:測試不對質量負主要責任,測試只起到質量輔助的作用;測試是一種服務,為其他角色提供服務,提供關於質量的資訊。」一樣。個人認為:
產品的質量是產品團隊每個人都要承擔的,不隸屬於某個小組或某個角色。測試的責任是要對測試工作本身負責,承擔本職工作的質量責任。而不是承擔整個產品的質量責任。
這個觀點的另外表達方式,可以參考個人的另外一篇博文《一把手的態度決定產品質量》。
測試的本職工作是什麼?
我們可以跨領域用乙個案例來分享——體檢。
很多公司每年都會組織員工進行體檢,在it行業或任何乙個行業待久了,都會有一些職業病,體檢結果也不盡人意。ok,測試部門,實際上就是乙個體檢中心。整體流程如下:
一、乙個人進入體檢中心(乙個開發產品流轉到測試環節)
二、體檢中心經過五官科、抽血、驗尿、x光等等一系列流程(測試經過冒煙、功能、效能、隨機等等流程)
三、體檢中心會給這個人出具乙份體檢報告(測試提供的測試報告)
四、體檢報告會列出問題,比如脂肪肝、高血壓等等,以及給出建議和結論(測試會給出產品的問題,以及解決建議,版本測試結論)。
這個例子就是測試完整的工作範圍和職責。乙個人體檢有沒有問題,實際上取決於這個人自己。同樣,自己的病症能不能解決,也完全取決於自己。
人的病症可能就是自己的作息習慣、平時的重視、遺傳或意外導致,體檢只是暴露了問題。——同樣,好的產品是設計出來的,而不是測試出來的——巨集觀上有流程,微觀上編碼規範,有評審有制度,如果嚴格遵守過程質量,那麼最後的結果肯定是符合本組織的質量標準。所以患病的原因,往往是因為沒有按照規範來,平時的**設計編寫粗狂,取的開源**直接放到版本中等等原因導致。
病症的解決,也會完全依賴這個人本身,而不是體檢中心。比如脂肪肝,體檢中心可能會給出脂肪肝的危害性,以及提供一些建議:運動、飲食平衡等。但是這個人本身不重視,依然我行我素,那麼下一次體檢,肯定還會存在脂肪肝這個問題,當然,可能會更嚴重一些。同樣,測試團隊對產品進行了測試,如果在開發過程中不去修復,或者沒有解決方法——比如加強評審,增加自測用例,對**進行部分優化或重構,甚至換人等等,那些同乙個團隊,下次的產品質量,也不會本質上的提高,該有的問題,還依然會有。
當乙個人面對體檢報告的時候,可能知道應該怎麼做,但是考慮到其他因素,還是會繼續帶著問題前行,比如這個人是銷售,他會說我知道我有脂肪肝,但是我需要陪客戶應酬,沒辦法——同樣,乙個產品發布,測試團隊給出問題,可能產品團隊是心知肚明,但是為了趕上產品的deadline,或者先對付競爭對手的某類產品,只能帶著風險/問題發布。兩者的意義一模一樣,知道問題,但是經過評估,選擇帶著問題繼續下去。
體檢中心的責任是全面的對體檢者進行診斷,提供詳細的報告建議。至於體檢者有沒有問題,問題能不能解決,完全的取決於體檢者本身的努力。同樣,測試的責任就是針對准入測試的產品進行系統的測試,給出測試結論。問題本身能不能解決,還依賴於開發人員的修復和完善。
測試是產品質量的乙個環節,可以理解為是質量體系非常重要的環節。但是絕對不是唯一的環節。測試對質量的責任就是做好本職工作,提高測試的質量和效率。
還是用體檢的例子。
如果一位體檢者本身有脂肪肝,體檢中心沒有檢測出來,給體檢者出具了全部合格的報告,這種誤診漏診,是體檢中心的事故。同樣,產品的缺陷沒有測試出來,就是測試的失職,是沒有做到本職工作的質量標準。針對測試環節,會有漏測或重大事故指標來衡量測試環節的工作質量。
換個主動的角度,體檢中心讓體檢者對自己的健康有全面直觀的了解,不要擔心諱疾忌醫。對一些特別嚴重的病症,可能會採用婉轉的表達,或者瞞過體檢人,直接和直系親屬溝通。但無論如何,要對出具的體檢報告負責,通過或直接、或委婉、或間接的方式通知到個人。乙個軟體版本進入測試環節,測試人員有必要把這個版本的真實情況完完整整的呈現出來。同樣,測試也不要因為面子等因素或各種穿小鞋的權術範圍,去主動的隱瞞產品的缺陷。也可以通過種種直接、委婉或間接的方法。
體檢中心怎麼去提公升自己的業務,提高自己的專業化程度呢?
1、提高效率:原來平均乙個人體檢需要3個小時,提高到2.5個小時
2、簡化流程:通過各種體檢專案的整合優化,節省體檢者的往返次數
3、更新裝置:購買更先進的器材,提高準確度和工作效率
4、培訓人員:讓醫生的業務技能提高。
5、業務創新:做血常規本來需要抽4管血,現在只需要抽3管。
這也是測試部門如何提高自己本職工作的方法,如何更快準狠的出測試報告?無非就是上文描述的種種:培訓、流程優化、測試工具開發更新、測試理論和意識提高,結合業務優化測試方法等等。
做更專業化的測試團隊,而不是做管的更寬的過程質量團隊。這可能是很多業內業務人員的混淆——你讓乙個體檢中心,派出自己的**,24小時跟催體檢者:不行,你不能抽菸,要注意健康;不行,不能熬夜,注意血壓等等——是應該有人去做,但是,肯定不是體檢中心這個部門的本質職責。
測試要不要向過程質量的探索?
上文定義了測試的本職工作。但是在實際的工作中,測試和過程質量之間的界限非常模糊,這就是開篇提到的承擔/推卸之間度的問題——承擔額外的工作壓力和責任,疲於奔命,無法把精力和心思放在提高本職工作,專注獲取自我職業提公升上。
沒有乙個標準答案,需要具體情況具體分析的判斷。下面分別從三個角度來分析問題:
正面:
測試人員多是新人,打出bug之後,並不是繼續投入到其他測試執行或者測試技能提公升,而是繼續跟蹤這個bug,確認bug是那個開發人員的,這個開發人員怎麼分析定位的,bug的原因是什麼,業務邏輯耦合還是編碼思路不夠清楚,這個bug是怎麼修復的,resolved之後,自己應該怎麼驗證? 通過這種對bug打破沙鍋問到底的方式,測試人員能較為快速的了解很多業務邏輯,對後面自己定位問題、分析問題,甚至成長為需求、架構師都非常有幫助。當然,可能對測試本身來說較為耗時,因為同樣的工作時間,可能會繼續執行好多case。
測試人員是老手,對很多疑難問題怎麼處理都比較清楚,甚至一些常見的編碼錯誤都比較知道。所以會去對一些研發的新人做一些反向的追溯和建議。這種方式,對產品本身的質量非常好,同樣,也很容易讓開發和測試之間的對立關係趨向於平和。
反面:
真正需要對質量負責的人,逃避了自己的責任。某個產品經理面向客戶一陣虛吹,回頭給的專案時間比較少。最後出了問題,直接找測試團隊背黑鍋,產品質量問題都是因為沒有測出來。
沒有真正意義上的qa團隊,由測試團隊兼任,在向前探索,規範過程的時候,和開發人員對立,然後把較多的精力放在互相證明對方是錯誤、是不規範的事情上。無法集中精力在業務和技術的層次——如果明確是測試兼任qa的職責,那麼一定要快速的切成兩隻子團隊,各負其責。職責混淆在一起,肯定會出問題。
第三方:
產品經理和測試主管達成一致,你幫我背黑鍋,回頭我補償給你——某款產品出了問題,大老闆雷霆震怒,一定要找人承擔責任。這時候,產品經理說不能讓全團隊掛掉啊,測試的兄弟幫忙背個黑鍋,回頭我補償你。然後測試主管就站出來,說都是我的錯。然後扣獎金,通報。過了半年,產品經理找個由頭,給測試主管加了一下工資。
類似的這種小弟替老大背黑鍋的江湖義氣橋段,實際上在很多公司也上演過。這種場景不好定位是正方還是反方,所以就放在第三方來描述。
所以測試要不要向過程質量去探索,甚至承擔質量的責任。在不同的公司、文化、環境、定位下,是截然不同的選擇。
很多迷茫的同行,也不要奢望能在網上找到標準答案。自己在工作的時候,仔細的評估好各種利害關係,小心求證的去做即是。
整體而言,產品的質量是產品團隊每個人都要承擔的,不隸屬於某個小組或某個角色。測試的責任是要對測試工作本身負責,承擔本職工作的質量責任,而不是承擔整個產品的質量責任。讓測試本職工作更專業的方法是去提高測試的效率、準確度、方法、工具、思路等等。
論測試的主要責任
論測試的主要責任序 很多人對測試工程師這個工作的範圍和責任有非常多的誤解,可能包括公司的高層 本領域的研發同事 其他領域的同事等等。甚至有時候測試工程師本身也受種種觀點 看法的影響,混淆了自己的工作職責,盲目的承擔額外的工作壓力和責任,疲於奔命,無法把精力和心思放在提高本職工作,專注獲取自我職業提公...
軟體測試對質量負主要責任?
你的公司,產品發布時,是否要求測試說出個 產品質量是xx的 論斷,如果發到使用者那裡出了問題,就首先打測試的板子,老大都在問 測試為什麼沒有測試出來 彷彿測試是最後一道關 是質量警察?測試應該對質量負主要的責任嗎?我的觀點 測試不對質量負主要責任,測試只起到質量輔助的作用 測試是一種服務,為其他角色...
全程軟體測試 測試組長的責任
測試組長的能力要相對全面,但著重強調在專案管理 測試流程控制 溝通等方面的能力,在技術上也不能弱,但不需要過高的要求。測試組長的責任偏重於測試專案的計畫和跟蹤 有效測試策略的制定和測試小組的團隊管理等,其主要責任如下 負責乙個獨立的測試專案及其測試組的管理工作。制定整個專案的測試計畫 測試策略,包括...