做一個優秀的軟體測試工程師要具有哪方面的能力呢

漫步雲端ly發表於2017-12-06
 “您好,我想請教您,做一個優秀的軟體測試工程師要具有哪方面的能力呢,還是 只是靠經驗?是多而廣的測試工具,還是少而專的工具呢?”
   關於優秀的軟體測試需要哪些能力,軟體測試是一項很枯燥、很乏味、很無聊,好像沒什麼成就感,沒什麼技術含量的工作,這是我第一次接觸軟體測試的時候的感覺,我想每個剛進入軟體測試這個行業大概都和我有同感吧,當然現在的感覺變了,可能是自己漸漸接觸時間的變長。其實我們在平凡的崗位上,做著不平凡的工作。
   在軟體測試的歷史上,曾有三件因為軟體測試而出現的重大事件,事件一:愛國者導彈防禦系統把“槍口”對準了自己人。事件二:美國迪斯尼公司的獅子王遊戲軟體的相容性問題,事件三:售票系統效能問題。所以成為一個優秀的軟體測試工程師,首先你必須是專業的,打個比方,你發現bug了,在你將bug反饋給開發之前,你必須多次、反覆的確認你所提問題的存在,不要在反饋的時候,別人幾句就給反駁了,你要讓別人沒有任何反駁的餘地,你所說的每一點都要有理有據.
   1.首先必須具備的就是認真、負責、嚴謹、耐心的態度,因為我們軟體測試工程師吃的就是這口飯,所以比必須對你所測產品負責,寧可錯殺一千,也不可放過一個bug.雖然在軟體測試的7條原則裡,第一條就是bug本身就是無窮盡的,但我們作為測試人員,應儘快能的確保質量
   2.其次就是過硬的技術本領,技術是為測試服務的,無論是測試理論、測試工具、開發知識、資料庫作業系統、網路知識、我們都必須精通一門,知曉其它(當然這個做到比較難,什麼都會很難,再者多了之後,就不會精了,什麼都會也等於什麼都不會,這個自己把握),因為測試與開發或者其它行業不同,它可能更多的在乎你廣度而不是深度(這個可能更多的是指手工測試)
   3.其實也就是業務知識,光有技術,沒有業務,再好的技術也很難使上勁,熟練的業務知識會幫助你發現更多的缺陷,進而更好的保證好產品的質量.
   4.其次就是溝通能力了,測試人員經常要與開發等不同的人員打交道,如何更準確、更簡潔、更嚴謹的描述bug,同時如何讓開發人員接受你發現的bug等,所以良好的溝通能力顯的尤為重要.
   5. 縝密的邏輯思維能力。其實我個人感覺測試人員和刑偵有點向,我們測試人員不單單只是發現問題,我們應該更多的關注bug產生的真正原因,準確的定位,更好更快的協助開發人員解決bug,所以這個需要你有很好的逆向反推能力。

   關於只是靠經驗?是多而廣的測試工具,還是少而專的工具呢?當然經驗豐富當然好,它能更好的幫助你分析問題,解決問題。關於測試工具,其實測試工具只是為測試服務的,我們不能把重點放在工具上,更多的是人。就好比手工測試與自動化測試,哪個發現的問題更多,我個人覺得肯定是手工測試發現的問題要比自動化測試發現的問題要多的多。


現在軟體測試工作越來越收到企業的重視,許多人員也投入到軟體測試的行列中來,軟體測試工程師的隊伍越來越壯大。但是如何成為一名優秀的軟體測試工程師呢?這是大家比較關注的一個問題,尤其是初入這個行當的萊鳥更想了解這個問題的答案。本文根據自己多年來在IT公司從事軟體測試的經驗總結了一些東西給大家共享,同時也希望大家提出寶貴的意見和建議。起碼有三年以上的軟體開發經驗現在許多軟體企業招收一些剛剛畢業的大學生或者非計算機專業的人員作為自己公司軟體測試工程師,這是非常錯誤的,也是對軟體測試不負責任的表現。雖然他們可以發現軟體中的一些錯誤,但是對於軟體中的一些關鍵,致命,危險的錯誤他們是很難發現的。大家都知道,軟體工程中有個模型叫瀑布模型,這是最基本的軟體模型,熊貓人之謎這個模型又叫碗狀模型,因為開發位於碗的最底部,左上方依次為建模,需求分析,設計;右上方依次為測試,部署,維護。這就是說明軟體開發是一切軟體活動的基礎,同時也是軟體測試的基礎。一個人只有經歷過一定年限的軟體開發工作,才可以積累豐富的經驗,知道在軟體中哪些地方容易出錯而那些地方不容易,這給以後的軟體測試工作帶來非常寶貴的經驗。有逆向思維的能力我曾經接觸過一些軟體測試工程師,他們幹了一段時間軟體測試工作後返回去又開始去做開發工作了,問他們為啥?答案是軟體測試工作太難了,開發是順向思維,而測試是逆向思維,老要找一些稀奇古怪的思路去操作軟體。軟體的使用者千差萬別,軟體在使用過程中遇到的各種現象也是千差萬別的,所以要求軟體測試工程師需要具有一些逆向思維的能力,想別人所不想,測別人所不測,這樣才可以找到更多的軟體中的錯誤。這是作為一名優秀的軟體測試工程師最基本的素質。善於同軟體開發人員溝通溝通是當今軟體專案中需要掌握的最關鍵技術之一。軟體測試人員要善於同軟體開發人員溝通,軟體測試人員與開發人員搞好關係,使測試人員不成為開發人員的眼中釘,這對於提高整個軟體專案質量是十分重要的。溝通主要包括:討論軟體的需求,設計:通過這樣的溝通,你可以更好的瞭解所測試的軟體系統,以至於儘可能少的測試出軟體中不是錯誤的“錯誤”,從而降低給軟體開發人員帶來的壓力。報告好的測試結果:作為一個測試人員,發現錯誤往往是測試人員最願意而且引以自豪的結果,但是一味地給開發人員報告軟體錯誤,會給他們造成厭惡感,降低整個軟體的質量和開發進度。所以作為一名軟體測試工程師,當你測試的模組沒有嚴重的錯誤或者錯誤很少的時候,你不妨跑到開發人員那裡告訴他們這個好訊息,這會給你帶來意想不到的結果。討論一些與工作無關的事情:作為一個測試人員經常和開發人員討論一些與工作無關的事情,比如大家可以談談新聞,趣事,家庭…這樣可以加強相互間的默契程度,許多統計表明,這樣可以更好的提高軟體工作質量。善於同領導溝通測試人員往往是領導的眼和耳,領導根據測試人員的測試結果可以瞭解公司的產品質量,從而調整其他的工作。領導工作一般比較繁忙,所以作為一名優秀的測試人員要學會把測試結果進行總結,最好以圖表的形勢給領導看。掌握一些自動化測試工具測試工作往往是比較繁瑣,枯燥無味的工作,測試人員長期處於重複的手工工作,會降低測試效率,並且對於測試質量也往往是不利的;況且許多測試不使用測試工具是不可以進行的,比如效能測試,壓力測試等等。目前市場上有許多測試工具供你使用,你可以根據自己的需要選擇一些測試工具來輔助你的測試。但是要記住一點,不是說有了測試工具就不要人工測試了,測試工具不是萬能的。善於學習的能力軟體測試技術隨著時間的變化也在做一些提高和改進,作為一名優秀的測試人員要善於利用書籍,網站,論壇,交流等各種途徑不斷提高自己的軟體測試水平。提高自己的表達能力軟體測試人員當發現軟體中存在缺陷的時候,往往要書寫缺陷報告,缺陷報告要寫得詳盡清楚,使開發人員能夠儘快定位錯誤,修改錯誤,所以作為一名優秀的測試人員提高自己的寫作能力是非常必要的。瞭解業務知識更好的瞭解你說測試軟體的業務知識是非常重要的,對業務知識瞭解得越深入,越能夠找出更深入,更關鍵,更隱蔽的軟體錯誤。所以作為一名優秀的軟體測試工程師,要多向該領域專家,同行學習,提高自己的業務知識水平。以上僅為個人的一些經驗所談,希望大家都能夠成為一名優秀的軟體測試工程師。

相關文章