天天看點

十年軟體測試從業者:和軟體測試的十年“愛恨情仇”

      時光荏苒,從畢業到現在已經10年,10年來一直從事着軟體測試的工作。從一個什麼都不會,到測試技術人員再到測試管理,期間有迷茫,有痛苦,有彎路,有捷徑。今天對自己過去的10年測試經曆做一個總結,一是給自己重新出發增加動力,二是給剛入道的、迷茫中的測試朋友一點點建議,希望你們少走彎路。

首先,談談測試職業規劃,即做什麼的問題。

      所謂方向比努力重要,這絕對是一句真理。如果能在剛走上測試工作崗位的時候明白這個道理,那麼不出5年,你一定能成為某一測試領域的專家,那時不管是薪水、自信心都是順其自然的事情。但是遺憾的是,我們擷取的太多資訊是,測試人員是一個通才,什麼都要學,什麼都要懂。結果這樣的一個方向,導緻了3腳貓功夫的測試人員一大把。那麼什麼都懂一點的測試人員難道就沒有用武之地了嗎?也不是,可以朝着測試管理崗位發展。說到這裡,引出了測試職業規劃的第一條路:測試管理。那麼很容易想到職業規劃的另外一條路,測試技術專家。在測試技術領域裡,無外乎就是性能測試專家和自動化測試專家。

      明确了軟體測試職業規劃的三個方向,接下來就是如何選擇一條适合自己的方向。

      下面給出我的幾條建議:

  關于選擇測試管理:首先你一定不是一個喜歡技術,對技術敏感的人,這個很容易判斷。第二,你一定是個善于溝通,組織協調能力強的人。第三,你的長期抗壓能力較強,上能頂住上司批評,下能頂住下屬埋怨。能受得了委屈,吃的了虧。第四,你對管理工作充滿持續的激情,如果過去你是一個比較如魚得水的學生幹部,那更加沒問題。總之,相對你的IQ,你的EQ更高。那麼從性格上來說你比較适合做測試管理工作。

  關于選擇性能測試專家:正好和測試管理人員具備的性格相反,首先,你不喜歡組織協調這樣的工作,你性格有些孤傲,你上學的時候一定不是學生幹部,或者不是一個如魚得水的學生幹部。第二,你不一定是個技術狂熱者,但你不排斥技術,你的動手能力較強,喜歡實踐。能靜下心來學習。那麼你有成為一個技術專家的潛力。

  關于選擇自動化測試專家:和性能測試專家類似,如果你掌握一門程式設計語言,或者有信心學好一門程式設計語言,那麼恭喜你,你有成為自動化測試專家的潛力。通常,性能測試專家和自動化測試專家在技術上是相通的。

  确定了自己的測試發展方向,接下來就是如何實作的問題:有一個著名的10000小時定律理論,即一個人想要成為某個領域的專家,需要經過1萬個小時的錘煉。按此比例計算,如果以每天工作8小時,一周工作5天計算,那麼成為一個領域的專家需要4-5年的時間。

      關于如何成長為測試管理人才:

     首先你一定要成為一個功能測試專家;通過參與至少2個完整項目的測試工作,你對測試理論、一個完整項目的測試流程、測試活動、測試輸出了于指掌。第二,盡量選擇一個行業如電信、支付、網購、通訊等深入做下去,成為該領域的業務專家。因為測試經理的角色往往也是半個需求人員的角色。第三,盡量在頭三年的時間裡,親自參與功能測試、性能測試、自動化測試工作,為後面測試管理的招聘工作、測試計劃、人員配置設定、任務安排打下一個良好的技術基礎,說白了,測試管理工作也是一個技術管理崗位,沒有一定的技術功底,很難開展後續的管理工作。

  關于如何成長為性能測試專家:剛進入測試管理崗位,你負責的工作一定是功能測試任務。沒有機會接觸性能測試工作。怎麼辦?我的建議是:自學或者參加教育訓練班,如果你是一個自我管理能力非常強的人,建議自學,如果不是,那麼建議參加專門的性能測試教育訓練班。參加教育訓練班之前最好大緻了解一下性能測試的基礎知識。

     性能測試的學習過程大緻如下:

  1) 首先了解一個系統的架構,明白各伺服器之間是如何互動工作、系統的資料流向、系統的壓力點,進而确定性能測試需求和名額,即那些功能需要考慮壓力,能承擔的壓力是多大。比如一個購物網站,最典型的登入功能、送出訂單功能需要支援多少個使用者并發,每個并發使用者在幾秒之内完成操作,系統長時間在壓力狀态下的穩定性。

  2) 第二選擇測試工具,對于基于Http協定的應用來說,一般loadrunner都能完成性能測試工作,學習loadrunner的三部曲:腳本錄制編寫(loadrunner generator)、場景設定和執行(loadrunner controller)、結果分析(loadrunner analysis)的内容。

  對于一些無法用現有工具實施性能測試的應用,需要考慮自己編寫工具來完成。是以一個優秀的性能測試工程師一定是能熟練使用一門程式設計語言的。

  3) 實踐,一定要多實踐,安裝完loadrunner以後,loadrunner裡帶有現成的性能測試項目---飛機訂票系統。完全可以拿來練手loadrunner。

  4) 性能測試的目的是發現系統處理能力的瓶頸而系統調優才是最終的目的,如果能進一步提高各業務伺服器、資料庫伺服器的調優技能,對性能測試工作來說是如虎添翼。

      關于如何成長為自動化測試專家:

  自動化測試和性能測試不一樣,性能測試主要是對伺服器的性能做測試,而自動化測試是從前端考慮,其目的旨在于替代部分手工測試、考量用戶端長時間運作的穩定性。自動化測試分為:web站點的自動化測試、PC用戶端的自動化測試、手機端的自動化測試。每一個終端的測試都是一個大的領域,建議先深入學習一個終端的自動化測試技術。

  關于Web端站點的自動化測試:常用的開源測試工具:selenium架構+一門程式設計語言(建議python),或者收費軟體QTP,推薦selenium,因為它是開源的、免費的,不存在盜版問題、且可擴充,是以國内的一線大公司喜歡用。

  Pc用戶端自動化測試:常用的測試工具:QTP。付費軟體,國内很多小公司在用。

  Android手機自動化測試:常用的測試工具:monkey、monkeyrunner、robutium、appium等,這些都是開源軟體。一樣,國内一流的公司都在使用。

  蘋果端的自動化測試:常用的測試工具:Instrument、FoneMonke、Broomine、iphone SDK自帶的test unit。

      不管學習哪一個終端的自動化測試,熟練掌握一門程式設計語言是必要條件。

  最後談談軟實力,一個優秀的測試技術專家,我認為需要具備以下幾個特性:

  持續學習能力:計算機技術的發展可謂日新月異,如果不持續學習,那麼不出2年,你就會發現你隻能當一個廉價的手工測試人員。是以如果能在工作中學習最好,不能的話,下班後保證2個小時的自學時間。幾年下來,你就能發現自己的進步有多大。

  溝通能力:我覺得可以從2方面培養:第一:日常工作的溝通能力:和開發、産品、運維、客服同僚的溝通要及時,表達要準确,多微笑、多傾聽、保持良好輕松的同僚關系。第二,正式場合的溝通能力,如項目周會、評審會議、總結會議,一定要提前做準備,講什麼、怎麼講,自己私下裡先練習一下,這樣在正式場合才能表達清楚、氣定神閑、落落大方,給上司和同僚留下一個好的印象。

  團隊合作能力:首先從心态上,要強調整體的概念,放下單打獨鬥的想法。在實際項目中,展現為團隊成員之間的互相協作、資源共享、共同進退。這個時代已經不是一個英雄創造神話的年代了,隻有團隊的齊心協力才能把項目做好,這樣的人往往也是公司最喜歡,最願意去培養的人。

  與優秀的人為伍:所謂近朱者赤,近墨者黑。跟對一個老大、和優秀的人共事,找一個優秀的伴侶、經常去參加一些牛人講座、技術論壇,通過這些人的耳濡目染,一定會讓你少走很多彎路。

  其他還有很多軟實力,但我個人認為以上幾點比較重要。

      凡事要趁早,特别是技術行業,一定要在頭幾年打下紮實的技術功底,這對将來的技術管理或技術專家路線都有極大的幫助。

       轉