測試工程師和開發工程師承擔的是開發工作的兩個不同方面,說得極端一點,一個是建立,一個是破壞,雖然兩者的最終目的都是一樣的,但在達成目标的方式上卻有很大的差異。是以,在為同一個目标奮鬥的過程中,發生沖突也是難免的,但通過下面的一些建議,換個視角看看開發人員的生活和工作,可能很多的沖突就能化解于無形了。
Cem Kaner在《Testing Computer Software》書中有一段話: “The best tester is not the one who finds the most bugs or who embarrasses the most developers. The best tester is the one who gets the most bugs fixed.” (最好的測試人員不是發現最多BUG或是使得最多開發人員不自在的人,而是能夠[說服開發人員]修正最多BUG的人),建議大家好好了解這句話。
和開發人員交流的經驗歸結為“五要四不要”:
1、要耐心和細心
細心是測試工程師的一個基本素質,測試工程師是對品質負責的人,涉及到品質問題,就不能含糊,是以一定要細心,細心對待每一個可能的BUG、細心對待每一段被你檢查的代碼,細心對待每一個你撰寫的BUG報告,細心對待你發出的每一封郵件。細心是一種态度,你的态度遲早會感染和你合作的開發人員,而這往往是合作愉快的基礎。
至于說到耐心,在我的工作經曆中,不厭其煩地向開發人員解釋一個BUG,讓他認識到BUG的重要性是經常的事情,其實想想也很正常,對任何人來說,被人指出自己的缺點和不足都不是讓人舒服的事情,是以,一點不耐煩的情緒就可能引起對方很大的反感,給自己的工作帶來不必要的麻煩。
2、要懂得尊重對方
開發是一件需要全面和綜合考慮的工作,開發工作中,由于各種原因導緻程式中出現問題是很正常的現象,作為測試工程師,發現了這些問題并不值得你誇耀,也不能說明你比開發工程師聰明。一個好的測試工程師一定是懂得尊重開發工程師的人,尊重對方的技術水準,尊重對方的代碼。我接觸過的開發人員都是挺和善的,一般來說,對他們最大的尊重就是承認他的專業水準,承認他的代碼。對他們來說,代碼就像是自己的孩子一樣。是以,記得在合适的時候表達你對他的尊重,贊揚一下他代碼的精妙之處。
3、要能設身處地為對方着想
開發工程師一般都處在較大的工作壓力下,他的上司直接考核他們的名額很大程度上是已完成的代碼,是以在工作任務緊張的時候,對于測試工程師報上來的BUG會拖延解決甚至是推脫,給測試工程師的感覺就是很不合作。那麼在這個時候,就需要設身處地的為對方着想了,每個人都會為自己的工作在内心排定優先級,如果他認為解決你發現的BUG不是重要的事情,那麼最大的可能就是你并沒有向他解釋清楚這個BUG的嚴重程度。
發現BUG是我們的責任,敦促BUG得到解決是我們更重要的責任,是以,我們可以心平氣和地和開發人員坐下來讨論一下BUG的嚴重程度,和他一起排定BUG的優先級别并确定解決的時間。
4、要有原則
不要忘記,測試工程師需要對産品的品質負責,在這一點上一定要有原則。測試工程師可以和開發工程師建立良好的個人關系,但在具體的事情上,一定要按照公司的相關流程來處理。當然,在堅持原則的同時,可以采用一些委婉的表達方式,可以在允許的情況下盡量體諒開發工程師,但請記住,一個有原則的測試工程師才能真正幫助開發工程師,才能赢得開發工程師的尊重。
5、要主動承擔
如果開發工程師要求你承擔部分不屬于你的責任,比如,定位你發現的BUG到代碼一級,或者是幫助他編寫部分文檔和代碼(不要不相信,真的有這樣的事情),那麼你會怎麼做呢?在我的測試經曆中,這些事情都遇到過,我的原則是在可能的情況下盡量多承擔。其實都是工作上的事情,有能力的話,多做一點也無妨。當然,肯定有人不同意我的意見,在這裡我也不想争辯,個人意見而已,僅供參考。
在我的測試經曆中,我會根據自己的進度和時間安排盡可能地提供更多的關于BUG的參考意見,甚至是定位到代碼一級,這種方式不是正規的方式,但對于提高自己被信任的程度是非常有益的。但在主動承擔時,一定要明确是在自己确有餘力的情況下才能去承擔,否則,婉拒是最好的對策。
【四不要】
1、不要嘲笑
不要嘲笑你所發現的BUG,即使是非常愚蠢的錯誤也絕對不要嘲笑,說不定那個錯誤是因為開發工程師聯系加班24小時犯下的,對别人的工作始終應該尊重。如果你覺得有必要提醒他不再犯一些經常犯的錯誤,可以采用這樣的方式:編寫一份測試過程中發現的開發人員常犯錯誤的文檔(記住,千萬不要寫上誰犯了這些錯誤),用輕松的口氣調侃一下,發送給開發人員。這種方法我采用過,開發人員都能很快接受。
2、不要在背後評論開發工程師
永遠不要在背後評論開發工程師的技術能力,這個絕對是非常忌諱的事情,一時的口舌之快或許會使你永遠不再能同他良好地合作,要知道,開發工程師最在意地就是别人對他的技術能力的評價。其實這個不僅僅是作為測試工程師的準則,也應該是做人的準則。
3、不要動辄用上層來壓制對方
在出現和對方的意見分歧的時候,應該采用什麼方式說服對方呢?直接向上層求助當然是一個辦法,但這種辦法帶來的負面左右也是很明顯的,首先是作為上層的處理結果可能不一定符合你的願望(在很多公司,開發工程師的地位高于測試工程師的地位,這種地位的不平等導緻上層在處理分歧時會有一定的偏向性);其次是動辄拿出上層來壓制對方隻能給他人留下無用的印象。是以在出現分歧時,盡量嘗試通過溝通解決吧,實在不行,再動用最後的手段。
4、和開發人員的溝通不要隻有BUG
除了在BUG記錄單上,在其他的地方也讓和你合作的開發工程師接觸到你吧,午餐或是集體活動的時候多和對方聊聊天,一方面可以增進彼此的感情,混個臉熟,打交道的時候也友善;另一方面,從他那裡了解業務的知識和他負責子產品的方方面面,對自己也是提升。我個人就很喜歡和開發工程師溝通,開發工程師其實一般都是比較健談的,尤其是對自己程式的精妙之處,多了解一些,多接觸一些,對自己總是有益的。
寫了這麼多,其實關鍵的就是兩點:多從别人的角度去想想,所謂“換位思考”,多尊重對方就一定能得到對方的尊重與配合;其次是加強和開發工程師的溝通,讓他清楚地認識到你的工作對他的價值,你發現的每一個BUG的重要性。
我一直認為,一個好的測試工程師一定是在公司裡被所有人尊重的快樂分子,而不應該是一個“鐵面判官”。當然,作為我個人來說,絕對不敢說自己做的已經很好了,不過,我經常都記得提醒自己:尊重對方。