如何做一個讓開發(fā)人員看得起的測試人員
做測試做了8年,前兩年做的是與硬件產(chǎn)品相關(guān)的測試,質(zhì)量管理比軟件行業(yè)要嚴格的多的多,原因是,大部分的應用軟件代碼出錯,改下代碼重新編譯,打補丁,就ok了,而一旦硬件設計出錯,或者零件用錯,造成的成本損失會很大,嚴重的可能是電路板報廢,更嚴重的是導致整批產(chǎn)品的報廢。當然,軟件出錯也能造成無可挽回的損失,只是某些特定領(lǐng)域會要求很嚴格,知識相對于硬件來說,程序修改要比電路板的維修成本相對低一些。
因為這種現(xiàn)象的存在,所以很多國內(nèi)企業(yè),尤其是一些小型的企業(yè),對測試重視程度不夠,甚至沒有專門的測試人員,可能有的是為了項目需要,設立了測試團隊,1人測試團隊也屢見不鮮,我就知道好多企業(yè)是一人測試組,而且還是應屆生的也有。對于這樣的企業(yè),您無法想象測試人員的地位會是什么樣,老板都覺得設置測試人員是組織架構(gòu)需要,而不是為了質(zhì)量需要,那開發(fā)人員對測試人員自然也是不太看得起。
由于專職測試人員并不參與產(chǎn)品的代碼編寫,所以給人一種非生產(chǎn)勞動力的感覺,而且大多企業(yè)都是用一些編碼能力較弱的人去做測試。
在很多外企中,對測試相對國內(nèi)會重視一些,對測試人員素質(zhì)要求也較高,對測試人員培訓也較重視,但是并不代表測試人員地位就高,一樣是會有開發(fā)人員看不起測試的情況,這種看不起并不會流于表面,而是骨子里的,沒人說出來,但是會存在,大家心知肚明。
然而我們有時候也會聽到有開發(fā)人員說某某測試人員挺厲害的,那么怎么樣才能做一名讓開發(fā)人員佩服的測試人員呢?
一,編程語言
你至少要掌握一門語言,不管是簡單的php,java,還是C++也好,或者其他的腳本語言python,perl還是shell也好,至少你用一種語言真正的做過一些事情,而且能拿來就用。
二,數(shù)據(jù)庫
你至少要掌握一種數(shù)據(jù)庫的DBA,對SQL的操作要熟悉,至少能熟練的運用JOIN進行查詢,知道基本的HAVING的用法,如果你能寫存儲過程,并且能優(yōu)化存儲過程那當然更好了,測試人員離不開數(shù)據(jù)庫的管理和數(shù)據(jù)庫的操作。
三,操作系統(tǒng)
作為測試人員,各種操作系統(tǒng)你應該很熟悉,系統(tǒng)安裝,配置,管理,一個都不能少,對于Linux,你至少要對一種系統(tǒng)做過系統(tǒng)管理,熟悉常用的命令行操作,具體要會哪些,建議google一下,用Linux的時候,盡量能用命令行,就不要去點鼠標,因為它不是windows,要改變這樣的習慣。能在Linux下能安裝和配置軟件,***建議大家自己下載source code,親自編譯,了解make file的原理。
四,扎實的軟件測試理論
這是做為測試人員最基本的,不要連開發(fā)人員都知道的一些測試方法,我們測試人員竟然沒聽過,很多測試人員覺得理論知識我看過,以為自己就了解了,其實做過一段時間之后,你再回頭去看理論,會有更多的收獲,我工作多年之后再看測試方面的書籍,發(fā)現(xiàn)還是會有不同的收獲,理論是實踐經(jīng)驗的總結(jié),不能說***,但是如果說你設計測試用例的時候,如果每種方法都有涉及到,你肯定會發(fā)現(xiàn)用例覆蓋率會高,而且容易發(fā)現(xiàn)bug。
五,盡量自己分析問題
發(fā)現(xiàn)問題了,怎么辦?可以找相關(guān)的開發(fā)人員幫忙分析,但是我想說的是,在發(fā)現(xiàn)問題之后,能自己盡量的尋找線索,首先要確定非環(huán)境因素,比如檢查配置是否全部正確,網(wǎng)絡是否有問題等等,然后確定非環(huán)境因素后,保護現(xiàn)場,保存記錄系統(tǒng)提示信息,如果有日志功能,那自己先根據(jù)日志查找一些線索,并把自己檢查過的地方和做過的分析信息盡可能多的提供給開發(fā)人員,而不是僅僅把錯誤日志或者錯誤信息丟給開發(fā)人員讓他們分析就不管了。
六,多涉獵一些項目之外的知識
不要做一個項目,就兩耳不聞窗外事,做測試的就是要涉獵的廣,跟開發(fā)不同,測試是要能接受任何類型的項目,因為測試是一門方法學,方法學是不受某個產(chǎn)品或者領(lǐng)域限制的,但是如果你對其他領(lǐng)域也了解的多,對你做測試是有幫助的,前沿技術(shù)你也要了解一些。
七,掌握一些安全方面的知識
往往系統(tǒng)安全是很重要的,如果你能提出一些系統(tǒng)安全方面的漏洞,那別人自然會覺得你考慮的比較全面,至于安全方面需要哪些知識,我覺得首先從網(wǎng)絡安全入手,了解一些密碼學方面的知識,比如了解常用的加密算法原理,比如報文加密傳輸協(xié)議原理,建議看一下hash的方法,這個簡單容易理解,還比較容易舉一反三。
八,提高溝通能力,懂得尊重開發(fā)人員
測試人員要面對的人員很多,客戶,項目經(jīng)理,開發(fā)人員,產(chǎn)品經(jīng)理等,有時候你會全部都接觸的到,那么沉默就不一定是金,有良好正確的溝通能力,會幫助你提高在其他人心目中的好印象,溝通不是能說就行,要正確的溝通,高效的溝通,就是能用最簡潔的語言把事情描述清楚,溝通的好,你的人緣就會好,就自然會受到大家的歡迎,其他人也愿意與你合作,千萬不要在背后評論開發(fā)人員,即使評論,也評論別人的優(yōu)點有哪些值得我們學習,懂得尊重開發(fā)人員,即使所你技術(shù)比別人強,懂得尊重別人的人才能被別人尊重。
九,不要自己把自己的地位降低
很多測試人員覺得自己做的測試工作本身就沒有技術(shù)含量,覺得自己的工作創(chuàng)造的價值少,沒有挑戰(zhàn)性,其實如果連你自己都看不起自己,那如何讓別人看得起你呢?
總之,做測試,是一門技術(shù),也是一門藝術(shù),我們把世界分為三個層次:技術(shù)(Technology),科學(Science),藝術(shù)(Art),技術(shù)是底層的,科學高一層,藝術(shù)是***層的,技術(shù)可以通過短時間內(nèi)學會,而如果把技術(shù)上升為科學,是需要大量的研究和積累的,而藝術(shù)的層次,這個不是學的來的,你需要有天賦,比如喬布斯,他就是因為有了藝術(shù)的天賦才造就了成功的蘋果。
看著上面這些,你會不會覺得做測試要比開發(fā)需要學習的東西更多呢?如果你這么想,那就是正確的,真正優(yōu)秀的測試人員,絕對是要在綜合能力方面超過開發(fā)人員的,因為,你懂得的不僅僅所一門技術(shù),你已經(jīng)掌握了一門藝術(shù)。