不同類型的軟體公司,對測試工作的重視程度也有很大不同。建議測試人員選擇一些業務持續發展的公司。做項目東一榔頭西一棒的公司,是不需要高品質的測試的,他們需要的是儘快把軟體交出去,卻無法靜下心來思考,怎麼把品質做好。選擇這樣的公司,要冒相當大的風險。
接下來說一下大家關心的話題,如果選擇了測試,怎麼能從測試團隊中脫穎而出呢。經常被提出的概念有“管理和技術兩條路線”,這個概念太抽象,還是無法幫我們理清思路。有的觀點認為,測試要學習開發技術,這個也沒有說到關鍵點上。我認為測試人員的職業發展有下面兩個,換句話說,軟體企業最需要擁有這兩種能力的測試人員。注意,這兩種能力並不互相衝突。
第一、不斷改進測試策略,提高測試效率和品質 目前很多公司的測試還是以手工的黑箱測試為主,測試策略比較單一,可能很多同學都遇到在寫測試計劃的時候,測試策略那一章不知該寫什麼的問題。如果只做黑箱測試,會在提高測試品質的路途上出現一道難以逾越的鴻溝。 改進測試策略需要掌握開發技術,但是技術僅僅是必要條件,更重要的能力,是能夠系統的規劃一件事情,分析工作中的問題,選擇最有效解決方案,最終和大家一起實現一個共同的改進目標。 改進測試策略一般會考慮以下幾個方向:單元測試(白盒和灰盒)、自動化測試、效能測試、安全性測試、易用性測試等等。當然,具體的改進目標,要根據業務的不同,選擇合適的方向。 不過,很多測試團隊的人力資源都比較緊張,無法投入太多的人手去改進測試策略,能夠很好的解決這一矛盾就顯得非常重要。公司需要的是,能夠根據測試團隊的當前狀況,制定出有效改進計劃,並帶領大家提高測試效率的人。
第二、能夠“吃”業務,控制業務的測試品質 這裡需要說明,“吃”業務並不等同於熟悉業務。對於測試工作來說,熟悉業務是非常重要的,大部分測試人員上崗以後,都會從瞭解業務開始,逐漸的掌握產品線的商務規則。但是,當一個測試人員熟悉了某個業務以後(成為業務專家),問題出現了:他/她可能會一直陷在這個業務的測試執行中,無法解脫,幾年如一日的做著類似的工作。 即使增加了新的測試人手,業務專家也沒有感到多少輕鬆。一方面,業務專家要周而復始的對新人進行培訓,解答他們工作中的問題,培訓成本極高;另一方面,業務專家不放心把重要功能交給新人測,必須自己來測試,業務專家的職業發展出現了比較尷尬的局面。 由此我們提出了“吃”業務的概念,它與熟悉業務最大的區別就在於,測試人員吃掉一個業務以後,可以把測試工作完全交給另一個測試人員來做,同時,也能保證測試的品質。而要達成這個目標,關鍵就在於文檔。我們需要以業務為單位,完善測試案例、業務沉澱、測試設計、測試指令碼等文檔,並且,更重要的是,要把這些零散的文檔組織成一個系統的文檔體系。 注意,吃業務並不等於為這個業務單元編寫一套非常完整的文檔,而是建立起一個基本的,可持續維護的文檔體系即可。業務專家吃完一個業務以後,可以把這個業務交給其他人,然後開始吃第二個,同時,關注原先的業務的文檔完善過程。這樣,有吃業務能力的測試人員,能管理更多的業務需求和測試人員,而且由於他/她接觸的業務越來越多,工作的視角也會逐漸提高,成為系統級的測試工程師和團隊leader。 要設計這一文檔體系,也需要較好的系統設計能力,當然,最主要的是持之以恒的毅力。 另外,每個業務單元的文檔體系,也可以在一批批的測試人員中傳承,每個人都會來維護、完善它,並從中學到很多經驗。
【這篇主要是講了測試人員應該提高的兩種能力,但是對測試人員的職業規劃,只提了一句:將來發展為技術性,或者管理型。】
--------
【下面這篇給出了一種成長體系,和需要掌握的知識,但我覺得這是很單一的體系,衡量標準也未必適用於任何公司。不過這些知識掌握住肯定還是好的。】
初級測試工程師––入門級,具有一些 手工測試經驗,開發測試指令碼並開始熟悉測試生存周期和測試技術;
測試工程師––能夠獨立編 寫自動化的測試指令碼程式並擔任測試編程初期的領導工作,進一步 拓展程式設計語言、作業系統、網路與資料庫方面的技能; (但具體應該是哪些方面呢。)
進階測試工程師––協助開發或維護測試或編程標準與過程,負責同級的評審,並能夠指導初級的測試工程師;
Team Leader––一般具有5年左右工作經驗,負責管理一個小團隊。負責進度安排、工作規模/成本估算、按進度表和預算目標交付產品,負責開發項目的技術方法,能夠為使用者提供支援與示範;
測試經理––能夠擔當測試領域內的整個開發生存周期業務,能夠為使用者提供互動和大量示範,負責項目成本、進度安排、計劃和人員分工;
計劃經理––具有多年純熟的開發與支援(測試/品質保證)活動方面的經驗,管理從事若干項目的人員以及整個開發生存周期,負責把握項目方向與盈虧責任。 【這是走管理型的路線了】
職業規劃:
1.第一階段,學習自動化測試載入器,學會編寫指令碼;
2.第二階段,學習編寫測試計劃,測試方案,測試案例;
3.第三階段,學習 組態管理,版本控制,專案管理,bug管理;
4.第四階段,轉向做一個管理者.
技術方向就沿著測試開發的路一直走下去.最終成為技術上的大拿,在一個公司裡成為核心技術人員
這個方向 對技術的積累要求最高,適於那些對管理沒什麼興趣,就想專心做技術的人。要沿著這條路走下去,需要一直不斷地在開發能力上的積累,並且還要求一定的知識廣度和對職業的獨特理解。
管理方向呢,工作個幾年以後轉向測試經理,以後的發展就多樣了,品質總監\專案經理等等
有些人說做管理不需要技術,卻沒想過作過一個技術工作,自己都不會的東西怎麼去管理別人,當然也有例外,有些管理員也的確是靠自己的人格魅力去讓一個團隊健康發展的。不過那隻是極少數罷了。大多數測試管理員也是需要在技術上有一定積累的。而且對於所有工作都一定要比較熟悉, 黑白盒,自動化,效能,用例設計,組態管理,計劃方案的設計等等,並且還要去調合團隊內部的工作氛圍,制定適當的激勵機制,作為一個管理者絕不比一個技術人員需要積累的東西少。
而 流程式控制制大概是選的人最少的,QA累死不討好,最終成為一代終極流程式控制制顧問
這一類工作需要有非常大的耐心和自信,需要在工作中對流程式控制制方面有自己的感悟,需要對理論很熟悉。對人的毅力也是個極大的考驗呢
其他的,還有做用例做到極至,做功能測試做到極至,做使用者體驗做到極至的等等,總之各種發展方向者需要努力的堅持,任何一個方向做好了都很好。
如果你是 測試員或是進階測試員,有志轉向管理髮展,那麼需要加強以下幾點:
1. 測試計劃的編寫(要結合測試的項目,能以此來控制和確定測試所需人員,裝置及時間來管理測試時間)
2. 要熟悉BUG跟蹤工具及軟體測試流程.(如: TD, Bugzilla, CQ等)
3. 要熟悉組態管理工具. (如: CVS, VSS等)
4. 要熟悉自動化工具.(例如:WinRunner, QTP, Robot, RFT, Automation等,能結合錄製完的指令碼編寫代碼)
5. 要熟悉壓力及效能測試工具.(例如: LoadRunner, webload, silkperformance等,能結合相關資料,分析出效能瓶頸)
6. 要熟悉或精通一門語言. (例如: Java, C++)
7. 要熟悉資料庫.(例如: Oracle, DB2, SQLServer, MySQL)
8. 要熟悉主流作業系統. (例如: HP Unix, IBM AIX, Sun Solaris, Red Hat Linux, SuSE Linux, Windows)
9. 能用英文流利的和老外交流以及往來Email.
10. 語言表達能力強,表達問題清晰明了.
11. 溝通能力強,能和上級/開發經理很好的達成測試相關/BUG事宜.
12. 學習技術的能力要強,能快速上手一個新的技術.
13. 樂於與人交流.
【我覺得以下不怎麼靠譜,不過可以一看】
初級測試工程師:剛走出大學校門或者剛從些培訓機構出來的學員,之前沒有或具備很少的測試經驗,這個階段主要是掌握最基本的測試方法、測試計劃、測試案例、測試報告、環境搭建等。北京上海地區,該職位薪水一般在2000-5000之間。
中級測試工程師:從事過2-3年實際工作的測試工程師,能夠獨立制定測試計劃,編寫測試案例,對初級測試工程師進行指導等。北京上海地區,該職位薪水一般在4000-6000之間。達到中級測試工程師水準後,以後的發展可以存在多種方向:
--》管理方向:
測試組長:一般5人以下團隊,能夠同時承擔2-3個較小項目(程式碼在5000行以下)或者1個中、大型項目(程式碼在5000行-25000行左右)。北京上海地區,該職位薪水一般在5000以上,好的過萬。
------------》測試經理:可以管理多個小型測試團隊,能夠承擔多個中型及較大型項目的測試,及具備至少1個大型項目(程式碼在25000行以上)的測試管理能力。該職位薪水一般過萬,年薪二三十萬正常。
------------》品質經理/專案管理:跳出測試的執行轉而關注過程。SQA待遇差別比較大,但有2年以上測試或開發經驗的人5000以上應該沒問題,好的也過萬。
--》技術方向:
白盒測試:這個由開發人員轉過來的比較多,一般技術上要至少達到技術經理的水準。待遇比較好,一般7k以上,好的年薪二三十萬。
自動化測試方向:熟練使用一種以上自動化測試載入器,做的好的待遇與白盒測試有的一拼,一般6k以上,不過最近學的人多了,待遇貶值可能比較快。
測試分析師/技術總監:主要職責是對系統的測試結果進行綜合的分析,例如缺陷分析、效能分析等。不但測試技術能力較強,還要具備資料庫、作業系統等多方面的技術知識。這個待遇一般過萬了吧.
行業測試專家:物以稀為貴,過萬一般問題不大。
經曆了以上一些階段,大概在35歲左右,職業發展上基本達到瓶頸,此時只要混的不是很差收入一般可以算的上中產階級,日子可能依然過的比較鬱悶,之後的方向可能有做培訓,諮詢,自己開公司創業等。
入測試行已有五、六年,談談自己的規劃和一些想法:
一、自己的規劃:
做了幾年之後,積累的了一些行業經驗(電子商務型,電信通訊行業)和管理經驗(指的是測試管理),畢竟是女孩,這麼多年一直都在不斷地學習各種技術,總怕落後。時間長了,感覺還是很累,感覺比做開發累。所以將來的方向是:走管理路線。(當然這條線也不好走,但是做了2年管理後,感覺在這方面有一定能力,只要努力就一定會成功的)
做好測試:主動性強,有信心,能聽取接納別人的意見。
二、對於測試新手來說,如何入行,需要具備的知識和能力
1、測試的基礎理論知識,知道測試流程是什麼。測試的常用的文檔有哪些,該如何編寫。測試方法有哪些。
方法:去一些測試論壇(如:51testing,測試時代,3atesting,一起測試網等)找些資料來學習。或者買一些測試的書籍。再有也可以參加測試培訓。
2、要熟悉或精通一門語言. (例如: Java, C++,.net,VB,PB,Dephi),做到能讀懂代碼。當然能獨立編寫代碼更好。
方法:學習一種比較流行的語言即可,因為時間有限不可能學很多開發語言。學習的過程一定要給自己制訂時間計劃,而且語言這東西最好結合執行個體來學習,主要學習設計思路。
3、要熟悉BUG跟蹤工具.(如: TD, Bugzilla, CQ等),學習一種即可,主要能領悟出bug的處理流程是什麼,如何管理。
方法:到網上看資料,裝上工具適用。
4. 要熟悉組態管理工具. (如: CVS, VSS等),會一種即可,當然有時間的話,2種工具都會更好。
5. 精通OFFice系列工具,排版能力強。測試中經常會寫文檔,所以這方面要強。
6、 要熟悉資料庫.(例如: Oracle, DB2, SQLServer, MySQL),對一種資料庫精通就可以了。
7、要熟悉主流作業系統. (例如: Red Hat Linux, Windows)
8、需要增強能力:
學習能力強;表達能力強;耐心,細心,信心,責任心;能承受壓力;溝通能力強。
以上這些,都是需要下功夫的,不能做表面功夫,那樣的話,就算你入行後,會發現自己要學的東西會很多。
三、入行後,要學習的知識和能力:
1 、公司的文化和制度
2、熟悉業務,這塊很重要,需要認真對待。
3、熟悉公司的開發流程和測試流程。
4、業務熟悉後,將自己所學的知識運用到實際工作中。提高自己的測試水平。
5、培養自己的溝通能力,與業務相關的所有人都能很好的溝通。
6、工作中遇到的問題及解決措施要及時總結整理。
7、針對公司的項目或產品選擇適合的自動化的測試工具,協助公司提高測試效率。
這一階段重在:熟悉業務,熟悉工作流程
四、入行半年——1年後,要學習的知識和能力
1)提高編寫用例的技巧。
2)熟悉一種單元測試工具。(針對公司的項目或產品使用的開發語言而定)
如果公司這塊一直都是開發人員來做,暫且跳過。
3)熟悉一到兩種自動化工具。(功能類和效能類的,如:WR,QTP,LR,ROBOT等)
建議:學習工具的話,一定要結合實際的項目,這樣學得快而且效果比較好。
4)熟悉一種測試管理工具。
(呵呵,為以後做測試管理者打算)
5)瞭解新業務,開發的新技術。
這個階段的重點:就是提高自己編寫用例的水平,工具的使用。
五、 多年以後,相信自己都自己的目標了。
1)如果做專職的效能測試工程師:精通一種效能測試工具,並能分析出瓶頸。(這點我沒做到)(這些需要提高多方面的知識:伺服器,中介軟體,開發,資料庫等)
2)如果做自動化測試工程師,精通一種自動化工具,並能獨立編寫指令碼,瞭解一些最新自動化測試方面的技術。
3)測試管理者。(技術+管理),哪方面薄弱就補哪塊。多多聽取別人的意見,改進自己身上的缺點。
不管做任何事,都要有目標。有了目標,就會堅持到底。否則。。。。。