編寫背景:
最近工作很忙、很累,北京7月的天氣非常的悶熱,就在這樣的7月里,工作中碰到了很多事情,特別是在我工作中,溝通最頻繁的開發人員,讓我不得不在繁忙的時候挺下來思考一些問題,記錄一些事情,讓自己的心情透透氣,呼吸新鮮的氧氣,好繼續努力。因此就有了這篇文章。
有時候,優秀的開發人員是被優秀的測試人員調教出來的
7月,北京的天氣非常的悶熱。就在這個悶熱的天氣,公司走了兩個優秀的開發人員,高興的是,公司把我現在所跟的這個測試項目的開發人員給留住了。經過這么長時間的測試工作,讓我體會到:有時候,優秀的開發人員是被優秀的測試人員調教出來的。
記得剛到我現在的這個公司,試用期過后,我就開始測試A軟件,這個軟件的開發人員編寫程序很細心,也很有責任感,心態態度也很好。因為,我在測試他的程序的時候,他設計的界面都很好,考慮到了用戶使用起來怎么樣會方便,當我發現他的程序的問題的時候,我告訴他,他第一反應是看我怎么操作出現這樣的問題的,然后他回去分析程序,用程序進行跟蹤,我也幫他分析,我倆配合溝通都非常的好。每次我發現的問題,他認同的會很快的改過來,他不認同的問題會向我講解他的理由,理由非常的充分,讓我很服他不修正問題的原因。我們的關系處的非常好,不像其它同行所說的測試人員是開發人員的敵人。這樣一直配合到我們把A軟件正式發布了。在這期間他還幫我寫些小工具,方便我測試的時候好建造數據。一年半過去了,前不久,他在做其它用戶的個性化程序,他都習慣性的先給我看看,看我能否給他找出問題,讓我很高興的發現,他的程序我無法在發現問題了,我只能提一些他有時忘記的用戶操作的友好性問題。嘿嘿,他現在寫程序的時候已經習慣注意到我測試時經常會發現他那些問題,他經常容易忽略那些問題。因此當他提交給我測試的時候,同樣是在一段時間內,同樣是個小功能的程序,但是我想盡我渾身招數我都找不到程序的一個bug了,當時,心里既是開心也是心酸,原因是:我不能在測試他的程序了,因為他對我太熟悉了,已經把我測試他程序中發現的問題在他寫程序的時候就解決了。他已經在我這里順利畢業了。以后有機會做白盒測試,興許可以發現問題。^_^ 寫到這里我還在回味著我曾經發現他的那些bug我們一起分析解決的場景。
然而,測試職業的工作不可能總是碰上這么好溝通和上進的開發人員,在工作的過程中,還是會碰上不是這一類的開發人員,那是2004年的7月底,我出差去現場測試B軟件了,當時見到項目組新成員,彼此都不了解,第一次見面時,其中一個開發人員見我個子很矮,比較顯小,就問我:你是從北京來的?,我說:是的。接著問:你來公司多長時間了?我說:快一年了。在接著問:你來這里是測試B軟件的那個功能模塊啊?我說:測試B軟件的所有功能。他無語。當時給我感覺很是不好。在后來的工作中,我發現他工作很不負責任,自己寫的程序不自測,問題很多;寫程序不按照用戶的需求寫、不考慮用戶使用怎么方便。所以那段時間,我讓他改bug簡直是要和他吵架,我可不喜歡和人吵架了,因為我從來沒有贏過。嘿嘿,現在想想,當時是平生第一次碰上這樣的人,這樣的事情。沒有經驗,沒有很好的做好調教這種類型的開發人員的工作,主要還是沒有找到很好的方法。后來這個開發人員由于工作不負責任、不好好的干活,公司就讓他離開了。當時我心里在偷偷的樂啊,以后不用測試他的程序了。那時候,測試他程序的日子里有時候好懷念測試A軟件的日子。
現在測試的這個C軟件有兩個開發人員,嘿嘿,C1開發人員非常的優秀,溝通非常的好,和A軟件的那個開發人員他倆不分上下。只不過他們的性格還是有些不太一樣。然而C2開發人員心態就不太好、也沒有很好的責任心。當我發現他負責領域的程序出現問題的時候,我告訴他,他第一反應就是沒有問題啊,然后我復現給他,然后他分析是不是他的,而不是去找程序是怎么出錯的,甚至讓我在寫bug的時候幫他定位問題出現在那里。在測試人員緊缺和時間有限的情況下,在我看不到原代碼的情況下,我怎么去定位問題出現在那個地方。我們之間溝通的時間都花費在了談論這個bug是誰的問題,這個bug要不要改,就這樣花費在了這些沒有價值的地方。還好,有了上一次的教訓,這次面對C2的開發人員,我心態好好多,已經能平靜和正常的對待這樣的現象。
現在經過請教有經驗的人,思考采用的方法是:
1、把這種情況反饋給項目經理,尤其在出現爭論是否是bug的時候,如果出現分歧可以讓項目經理來做判斷,或者找他們部長之間進行討論,不要和他直接產生沖突,因為我們是直接面對的,沖突對日常工作不好。
2、關于他的態度我可以和他說,我們的目的是修改程序,并不是確定誰有責任的事情,告訴他,是不是他的責任,我并不關心,我只關心程序是否好用。讓他感覺我們之間并沒有什么利益性質的沖突。
如果有那個同行看了這篇文章后有更好的方法,可以給我回信咯。嘿嘿,小女子在這里先謝謝了。
休息一下,現在來談談最后關于上面這些事情我發出的感慨吧:
優秀的開發人員,當他在發現問題的時候,他會和測試人員一起探討問題是怎么發生的,甚至測試人員也會問開發人員為什么會出現,這樣可以積累雙方的經驗。下次當他們在進行新產品的研發和測試的時候,開發人員就會知道測試人員會發現怎樣的bug,他提交程序前就會給提前改了。那樣測試人員可以用更多的時間去考慮那些沒有被發現的bug。這樣給公司節約不少成本和風險,對開發和測試本身來說都留下了更多的時間去探索更深層的東西。
碰到不開竅的開發人員,測試就要花費很多成本在溝通上和重復驗證老bug是否解決上。測試的價值就不能更進一步發揮,時間長了,測試會處于一種疲憊狀態,發現的效率會降低,這樣對開發和測試都不好。解決方法:只能從人力資源下手了,招人的時候要嚴格的考核這個人是否真正的符合這個崗位,不然的話,給公司和個人的成本損失太嚴重了。然而在實際工作中,對于一個開發人員的責任心往往很難一下子就了解,只有在項目中工作中逐漸的發現。
最后我告訴自己:有度量去容忍那些不能改變的事,有勇氣去改變那些可能改變的事,用智慧去區別上述兩類事情。