測試從業者,打交道最多的就是開發,而測試和開發之間的關系在行業内被稱為‘天敵’。最近部門内有些産品線成員和開發同僚在協作之間也是雙方抱怨不斷,為此形成此文,算是給大家一些思路參考。
作為測試工程師,你知道要怎麼更好地來處理跟開發之間的關系麼?
其實對于存在這種所謂的‘敵對’關系,并不難了解。
從整個産品研發的角度看,開發是産品的制造者,産品就相當于他的‘孩子’,而測試的工作是去找這個“孩子”身上的毛病。相信,沒有一個人喜歡别人對自己的孩子各種挑錯。
是以,開發和測試的這種“敵對”屬性是在所難免。而在日常的工作中,相信大家經常能看到如下的一些對話。
幾個測試人員下班走在路上,抱怨數落白天開發的種種“罪狀”:
- 每次提bug,開發都讓會讓清資料、清緩存、重新開機機器,三兩下把bug整不見了,等到bug複現不出來,就說看吧,不能複現,不修複了!或者就說自己本地是好的,質疑測試的版本不對,再不然就說使用者不會這麼操作,不用修複,反正就是想方設法不想修這個bug!
- bug一開始明明能穩定複現,但開發一直放在那裡不管,等過了一段時間後,環境被破壞了,測試版本更新了,又讓測試來複現這個bug,浪費時間重新搭環境不說,bug還經常不能複現了,然後又說不能複現是以bug就不修複了。
- bug修改完,啥說明交待都沒有,不說清楚根本原因和影響子產品,我們怎麼做回歸測試啊!
除了測試對開發的行為有抱怨,同樣的,開發對測試的抱怨也不少,相信大家經常會聽到一些開發對測試的槽點:
- 測試整天搞一堆流程和文檔,要開發提供這個,提供那個,開發寫代碼都沒時間,還哪有那麼多時間整這玩意啊!
- 靠,查半天,又是一個無效的bug,測試到底有沒有搞清楚需求?
- 不懂代碼。。。
上面列舉的槽點其實說的還較為保守,不管是測試對開發,還是開發對測試的槽點太多了,有的太過于血腥,就不一一列舉了,歡迎讀者留言補充。
看着這些相信作為研發技術人員(不論是開發或是測試)的你肯定不陌生。畢竟立場不一樣,職責不一樣,出現這樣的分歧和沖突也無可厚非。
但是,如果每天工作在這樣的工作氛圍裡,不止影響我們每天的心情,而且肯定也會影響我們的工作效率。
那,到底可以做些什麼來改善這種敵對關系?或者說可以從哪些方面來融洽開發和測試之間的工作氛圍,以下概括為四個方面。

1. 提高自身核心業務能力
首先一點,還是得從自身做好做起,測試工程師應該要提高自己的核心業務能力,讓開發挑不出來毛病,進而對你産生信任甚至歎服。
關于這一點舉一個曾經工作的案例(身邊的同僚)。
當時是一個剛畢業不久的小姑娘,加入公司不久,做事特别仔細謹慎,提bug也會經過再三确認才會提單。
當時公司的開發老大是個特别強勢的人,聲音大、氣勢強,一說話能把人吓懵的那種。
事情的起因,是因為小姑娘提了一個bug,在她的環境下面再三确認過,是個能夠穩定複現的嚴重bug,是以标記為了嚴重級别,并且指派給開發。
對應子產品的開發人員大緻定位了一下,沒有複現出來就回報給了他的老大。然後這個開發老大,就氣勢洶洶的過來測試辦公區,趾高氣昂地跟我(當時我作為測試負責人)說: “你們這邊的測試怎麼提bug的,是不是bug自己有沒有搞明白啊?現在開發的環境裡就是OK的,肯定是你們的測試環境的問題或者操作方法的問題!下次搞清楚再提bug,不要浪費開發的時間...”
這些話說的一點都不客氣,矛頭全指向測試這邊,不留任何餘地。(當然作為當時測試負責人的我,先不管事情誰對誰錯,先得維護測試這邊不被欺負,我也回怼過去。。。)
但整個事情,小姑娘卻沒有去争吵,沒有去理論,而是在她自己的環境下再次成功的把這個問題複現出來,然後再去找到開發,幫助他搭建同樣的環境,告知穩定的複現步驟,将bug在他的環境下複現,并且協助開發把問題定位出來,隻需要他們修改對應的代碼就可以了。
從這次事情之後,整個開發團隊對小姑娘的态度明顯改善了,不僅不再趾高氣昂的指點和質疑她的工作,而且在要修改bug的狀态(非修複狀态)的時候也會先跟她确認,得到準許之後才做相應狀态的修改。
是以後面她的工作開展順利了很多。
是以,要避免落人口舌,請先做好自己。測試做好自己的首要前提,就是必須要提高自己的業務能力:
◆ 一方面,要充分的熟悉被測産品,了解産品的邏輯和實作,在這個基礎上,不僅能提高你的測試技能和工作效率,而且在被開發質疑的時候,也能有紮實的産品業務知識做後盾。
◆ 另一方面,要規範自己的工作的輸出。例如保證各種測試文檔(測試計劃,測試用例和測試報告等)的品質,可以經得起開發、産品等各部門的稽核。
比如保證輸出的bug品質,編寫bug的描述和步驟清晰,bug的嚴重級别定位準确,以及定位日志和現場截圖齊全,不給開發留下挑刺的餘地。
隻有先提高了自己的工作品質,才可以用同等的标準去要求開發,才能在守住測試的立場的同時,也赢得對方的尊重。
2. 提高自身技術能力
其次,測試人員需要提高自己的技術能力,包括測試的技能,以及測試相關的技術能力和知識領域。
再給大家分享一個真實的故事,我原來有一個同僚,也是做測試的,因為主要是做黑盒測試,起初她并不懂代碼。
在項目工作過程中,她遇到一個極不願意配合的開發,每次想更加深入地熟悉産品的功能實作和業務邏輯的時候,咨詢開發,他都很不配合。
兩個人争吵過,也互怼過,甚至雙方上司調解過,但是都不見情形的改善。
沒有辦法,為了保證自己的測試任務能夠按時按量的完成,她隻能逼着自己去閱讀産品的源代碼。
雖然一開始都看不懂,但是她還是堅持,一邊找資料,一遍咨詢别人,最後終于把這個産品相關子產品的代碼都熟悉了。
在随後的測試過程中,遇到bug,她已經可以自己準确的定位出來是那一塊代碼的缺陷。
此後,再也沒有聽過她跟那個開發争吵了,因為她自己已經成為了那個最熟悉産品的人,不管從功能實作,還是代碼邏輯,她都了然于心。(甚至有時開發都會來咨詢她)
是以,測試工程師需要适當的有針對性的提高自己的技術能力,技術在手,無求于人。
那可以從哪些方面來提高:
◆ 第一,是測試的技能、測試流程以及各種測試方法的掌握,這些是測試工作的基礎,是以這個是必須要掌握的。
◆ 第二,能熟悉至少一門語言,不管是Java,Python還是Go,掌握其中1-2個就可以。有了語言基礎,測試可以更加深刻的了解産品的實作,也能夠更加清楚的知道bug經常會出現的子產品,能夠對産品進行更加充分的測試。
◆ 第三,至少要掌握一種資料庫的使用,測試人員離不開資料庫的管理和操作,自己掌握了這方面的技能,就再也不用依賴開發,減少自己的被動性。
◆ 第四,熟悉系統的相關操作,如安裝,配置,管理,對于Linux系統需要熟悉常用的操作指令,能在Linux下能安裝和配置軟體等。
總之,提高了自己各方面的技術能力,才能夠在工作中充分發揮自己的主觀能動性,不過分依賴開發,才能提高自己在開發心目中的專業性,赢得雙方平等的待遇。
3. 提高情商、溝通能力
再者,測試工程師也要提高自己的情商,增強自己的溝通能力,懂得站在開發的角度思考問題,學會去尊重開發人員。
作為測試人員,我們除了堅持自己測試的角度和立場之外,也要有同理心,學會站在開發的角度去看問題。
實際上很多沖突都是源于大家對需求了解不一樣造成的,是以當測試和開發對一個bug持有不同觀點的時候,不要率先很強硬的否定他,嘗試解釋為什麼他了解的需求有不足之處。
找到一些可以站得住腳的論點,從使用者角度出發,從安全性考慮,或者從易用性和友好性來看,說服開發接受測試的觀點,而不是強加自己的觀點給他們。
另外,平時工作之餘大家可以多溝通,有機會就組織一些開發和測試雙方參與的團建活動讓大家彼此都熟悉一些,這樣子很多時候面對熟悉的人,在反對對方的觀點的時候會更加容易考慮一下對方的感受,隻要氣氛不對立,很多事情就可以商量了。
這些溝通技巧都是一個人情商的展現,這也是為什麼很多公司招聘的時候都要求測試人員善于溝通和表達,高情商的表達和溝通方法,可以讓我們的工作氛圍少一些淩厲,多一些柔和。
4. 建立完善的管理流程
最後,在公司層面,還需要有一個完善的管理流程,通過流程控制來規範開發和測試部門的工作,同樣可以很大程度上減少沖突的發生。
品質保證從來都不僅僅是測試人員的職責,而是需要整個團隊齊心協力。
建立完善的流程,能夠幫忙提高産品的品質。從測試的角度,又有哪些流程和規範可以值得參考的呢?
- 規範開發的提測報告,寫明修複方法和bug的根本原因,幫助測試進行bug驗證和回歸測試;
- 規範開發處理的bug的過程,比如關閉bug之前必須要發郵件或IM通知跟測試确認,避免bug沒有經過确認被擅自關閉而引發沖突和沖突;
- 規範項目代碼稽核以及最後階段的代碼封禁,提高代碼的品質以及降低釋出最後階段出現嚴重回歸問題的幾率。
各種流程的推行,雖然看起來很繁瑣,但是嚴格執行起來,确實能夠解決很多實質性的問題,幫助緩解很多開發和測試之間的尖銳沖突。
總而言之,雖然開發和測試之間存在着天然的‘敵對’關系,但是作為測試人員要樹立好自己的定位,清楚的知道無論開發和測試,最終目的都是使項目高品質、高時效地完成。
并且隻有開發和測試并力合作才能完成好一個項目。是以無論開發還是測試,大家都離不開彼此,測試工程師不是給開發工作挑刺找茬。更不是開發人員的附屬品,需要在提高自己的同時,理性地處理和看待和開發的關系,共同營造一個良好愉快的工作氛圍。
原文發表于作者公衆号:【測試開發技術】,歡迎關注,第一時間擷取測試技術幹貨。