软件测试工程师职业介绍和规划
????因錯誤而存在,因修正錯誤而存在,這就是軟件測試工程師的存在之道。雖然測試不是解決錯誤的根本舉措,但卻是必須的手段。??
??????軟件測試工程師(Software?Testing?Engineer)的主要工作職責是,理解產品的功能要求,并對其進行測試,檢查軟件有沒有錯誤(Bug),決定軟件是否具有穩定性(Robustness),寫出相應的測試規范和測試案例。簡而言之,軟件測試工程師在一家軟件企業中擔當的是“質量管理”角色,及時糾錯及時更正,確保產品的正常運作。據有關調查數據表明,目前國內許多軟件企業內部的測試人員和開發人員之比在1:5,與國外軟件業1:1的比例還相去甚遠。
??
????門派技能:
????軟件測試工程師主要職責為:
????1、負責項目/產品的測試工作,分析產品需求,建立測試環境和計劃,保證產品質量以及測試工作的順利進行;
????2、按照軟件工程規范和項目管理流程,實施、管理和知道軟件開發不同階段的各種測試,并提交測試報告。測試的計劃安排包括人員安排、進度、使用的軟硬件環境、測試的流程等;
????3、提交測試報告,并撰寫用戶說明書;
????4、參與軟件測試技術和規范的改進和制定。
????入門資質:
????一般需要至少專科學歷,一到兩年測試工作經驗。要熟悉軟件的測試技術、方法、流程、測試文檔,若想進一步提升,還要熟悉自動化測試的流程、管理及深層開發(包括測試框架等);了解若干主流測試工具,如功能測試工具WinRunner、QuickTestPro,性能測試工具LoadRunner,配置管理工具TestDirecter,?Visiual?Source?Safe等;熟悉一些主流的軟件工程方法論和思想,如RUP、CMM、CMMI、XP、PSP、TSP;了解軟件工程,軟件生命周期模型基礎,了解軟件配置管理;能夠根據不同企業的產品特點,要求了解相應的開發測試方法。對于資深的軟件測試人員,有些企業還要求其本身有自主開發測試工具的能力。
????由于需要與開發人員及時溝通,因此作為一個出色的軟件測試工程師,還需要有良好的溝通技巧以及優秀的言語表達能力,具備良好的團隊合作精神。
????入門經:
????縝密的邏輯思維能力
????為了應對軟件使用者千差萬別的使用習慣和軟件在使用過程中出現的各種現象,軟件測試工程師應該具有逆向思維能力,能夠以用戶的角度出發,捕獲一切可能性,對細節有不同尋常的關注能力。此外,軟件測試工程師還要有窮追到底的精神,并且要善于溝通和撰寫各類專業報告。
????出色的溝通能力
????要成為優秀的軟件測試工程師,要具備出色的溝通能力和表達能力,既能夠和技術開發人員溝通無礙,又能用簡潔明了的話語向客戶、管理者等這些非技術人員闡述系統在哪些方面還有缺失有待改進。在同開發人員的溝通過程中,要注意溝通技巧,提高溝通效率,和開發人員保持良好的人際關系。當測試人員發現軟件有問題時,不僅需要跟開發人員溝通,找到問題出在哪兒,闡述自己挑錯的理由,有時候甚至要提出解決方案,直接參與前期需求和代碼的修改。一個優秀的軟件測試工程師能夠適時地站在各自的立場上考慮、解釋并解決問題,從而盡量避免沖突和對抗。
????全面的技術能力
????作為軟件測試工程師,雖然無須精通各種語言各類技術,但必須全面理解被測軟件系統,明白該使用何種工具進行測試。要做到這一點一般需要有一定的編程經驗,這些經驗可以加深對軟件開發過程的理解。
????耐得住性子
????軟件測試工作是枯燥的,甚至重復性的,有時需要花費驚人的時間去分離、識別和分派一個錯誤,因此需要測試人員能靜得下心耐得住性子。這個工作不容許有絲毫的心浮氣躁。同時,邏輯嚴密但不乏重復成分的測試工作也容易使人倦怠,因此需要一定的自我督促能力。
????規范測試流程
???公司不正規的測試流程,不標準的測試方法,將使軟件測試人員終日陷入碌碌無為的點擊按鈕的不良狀態中。
????晉階易筋經:
????初級測試工程師
????入門級,具有一些手工測試經驗,開發測試腳本并開始熟悉測試生存周期和測試技術;
????測試工程師
????能夠獨立編寫自動測試腳本程序并擔任測試編程初期的領導工作,進一步拓展編程語言、操作系統、網絡與數據庫方面的技能;
????高級測試工程師
????幫助開發或維護測試或編程標準與過程,負責同級的評審,并能夠指導初級的測試工程師;
????Team?Leader
????一般具有5年左右工作經驗,負責管理一個小團隊。負責進度安排、工作規模/成本估算、按進度表和預算目標交付產品,負責開發項目的技術方法,能夠為用戶提供支持與演示;
????測試經理
????能夠擔當測試領域內的整個開發生存周期業務,能夠為用戶提供交互和大量演示,負責項目成本、進度安排、計劃和人員分工;
????計劃經理
????具有多年純熟的開發與支持(測試/質量保證)活動方面的經驗,管理從事若干項目的人員以及整個開發生存周期,負責把握項目方向與盈虧責任。
????秘傳“薪”經:
????薪資黃金點
????軟件測試工程師在IT行業中越來越受到重視,其薪資也節節高升。測試工程師的起薪從2000~5000元/月不等,若有四年工作經驗的話,薪資在8000元/月左右,具體視不同地域、不同性質企業、測試工程師的不同能力而定。一般工作5~8年的軟件測試工程師的薪資是剛出道時的新手的一倍,而10年以上工作經驗的軟件測試工程師薪資卻走了下坡路,和5~8年的從業者持平甚至有些企業開出了略低的薪資,看來這行的折舊率較高。
????軟件測試行業的從業者7成左右都擁有本科學歷,本科學歷的從業者的薪資約為大專學歷從業者的1.33倍左右,而碩士學歷的從業者薪資起點明顯高于本科學歷從業者,約為后者的1.49倍。一般外語能力精通者的薪資為平均薪資的1.29倍左右,熟練者為平均薪資的1.09倍,值得注意的是,深圳、杭州和大連的外語能力精通者的薪資均超出平均薪資不少,其中杭州的外語能力精通者的薪資是平均薪資的1.79倍。
????以3.5年左右從業工作經驗的軟件測試工程師的各地薪資情況來看:
????深圳地區的平均年薪是全國各城市最高的,超出7萬元,其中外商獨資歐美企業的年薪為7.8萬元,國營企業的年薪緊隨其后,超過了7.3萬元,合資/合作非歐美企業的年薪較低,約為6萬。
????北京地區該職位的平均年薪逾5.8萬元;其中外商獨資企業的年薪為全國之最,將近8.5萬元,而其余各類型企業的年薪都在5~6萬元左右。
????廣州地區該職位的平均年薪約為4.5萬元;其中外商獨資歐美企業的年薪最高,達到了7萬元;合資/合作歐美企業也能拿到6.2萬元的平均年薪,合資/合作非歐美企業就較遜色,年薪不到4萬元。
????上海地區軟件測試工程師的平均年薪為6.3萬元,歐美獨資和歐美合資的薪資不相上下,分別為7.9萬和7.7萬元。國營企業略高于平均線,達到6.5萬元,其余各類企業則都表現平平。
????杭州地區該職位的平均年薪達到了5.5萬元;其中外商獨資歐美企業和合資/合資歐美企業的年薪相當,均為6.9萬元,國營企業的薪資也頗吸引人,超過了5.9萬元,民營/私企和合資/合作非歐美企業的年薪均不到5萬元。
????大連地區該職位的平均年薪為3.8萬元;其中外商獨資企業和合資/合作歐美企業的年薪均超過了4.7萬元;國營企業的軟件測試工程師的年薪也近4萬元左右,而民營/私企和合資/合作非歐美企業的年薪則相對較低。
????福利
????上海地區的軟件測試工程師享有的帶薪年假是全國各地最多的,一年中平均有10天,北京、廣州、大連均為8天,杭州和深圳相對較少,為6天。
????以上這些地區在軟件測試的培訓方面都做得不錯,基本上均有6成以上的從業者可享受到公司提供的培訓計劃,但上海的軟件工程師的培訓比例不到5成。杭州和深圳兩地的培訓是全國各地區最出色的,逼近8成。
????深圳、上海均有2成的從業者可享受房貼或者補充住房公積金,大連和北京則有3成以上的從業者可享受公司的房貼或者補充住房公積金,廣州更是達到了4成以上,而杭州此項福利的比例較低,僅為1成。
?
2.做軟件測試至少要有四種能力?? 來源-http://www.rapidtesting.cn/Html/Career/011076.html
曾經在方正研究院擔任測試工程師的肖先生分析說,能勝任軟件測試工程師的人,至少需要以下幾個能力。
一、縝密的邏輯思維能力。為應對軟件使用者千差萬別的使用習慣和軟件在使用過程中出現的各種現象,軟件測試工程師應具有逆向思維能力,能夠以用戶角度出發,捕獲一切可能性,對細節有不同尋常的關注能力。
二、出色的溝通能力。優秀的軟件測試工程師,應具備出色的溝通和表達能力。既能和技術開發人員溝通,又能簡潔明了地向客戶、管理者等這些非技術人員闡述系統在哪方面有缺失。當發現軟件有問題時,不僅需要跟開發人員溝通,找到問題出在哪兒,闡述自己挑錯的理由,有時候甚至要提出解決方案,直接參與前期需求和代碼的修改。
三、全面的技術能力。作為軟件測試工程師,雖然無須精通各種語言各類技術,但必須全面理解被測軟件系統,明白該使用何種工具進行測試。
四、耐得住性子。軟件測試工作是枯燥的,甚至是重復性的,有時需要花費驚人的時間去分離、識別和分派一個錯誤,因此需要測試人員能靜得下心、耐得住性子,心浮氣躁是做不好的。
?
3.從人的性格:哪些人不太適合做軟件測試? 來源-http://www.rapidtesting.cn/Html/Career/011820.html
我覺得有幾種性格的人可能不太適合做測試,當然個人實際情況、應變能力不同可能會有不同的遭遇.
1.耐性不足的人
這種性格的人在做測試時候最大的一個難度在于碰到一個比較復雜難測的系統時,可能花了不少時間還沒發現什么問題,不過明顯感覺肯定什么地方有問題存在的,這時候很容易產生急躁心理,導致大腦一片混亂,思路沒有了,后面測試更加難進行下去。
2.溝通能力不好,抗打擊能力不強的
這種性格的人也許測試發現了一些問題開發人員不接受,說了一些可能讓你不舒服的話,而你不能和他進行有效的溝通,這時候最大的可能性就是會產生一種失落感,覺得自己的工作是不是那么重要或者自己能力有問題?
3.邏輯太混亂,沒有思路的人。
這種人應該可以做測試,但是也許不能一個人擔當重任,特別是在資源比較緊缺,項目組里面只有你一個人的時候,測試的思路是相當重要的,沒有思路,邏輯不清的人肯定無法將測試順利,全面,有效的進行下去。
4.比較懶的人
這種人肯定不會花時間去整理自己的經驗,導致測試技能的徘徊不前,也許永遠停留在一定的水平上不會提高,最后失去對測試行業的興趣.
5.學習能力不強而又不積極主動的人
對于測試人員來說,對業務的熟悉是非常關鍵的一方面,熟悉了業務才能更好地做好測試,而對很多項目來說,就國內現在的情況,測試人員進入的時候也許是項目進行到一定階段了,需要很快熟悉業務進入角色,而你熟悉的較慢又不愿花過多的時間去學習,也不愿主動跟業務人員去溝通學習的話,肯定會花過多的時間在測試中慢慢去熟悉業務,這樣效率低下是顯而易見的。
?
4.從企業問題來了解軟件測試人員的作用---來源http://www.rapidtesting.cn/Html/Guild/011813.html
先講一個案例:
企業網站已經運行多年了,訪問速度越來越慢,最近用戶反映,打開個網站首頁快的時候也要2、3秒,慢的時候就需要喝杯茶了,還不如上外網新浪搜狐快,廠領導重視這個問題,信息部的領導當然不敢怠慢。
首先組織人員參觀附近的運行比較好的相關網站,比如總公司的,地方上的信息港等,現場咨詢了相關設計人員若干問題。
然后就組織會議,召集相關人員討論、分析網站首頁慢的原因。網站的開發人員、維護人員、測試人員以及各方領導都參加了分析。結論很快就出來了,接著領導們開始提改進建議。但會議卻好象陷入了僵局。
網站首頁慢的原因如下:
1、在首頁打開的數據庫(表)太多。因為首頁要各車間、單位的最新數據列表,提取最新數據占用了太多時間。
2、數據庫有問題。測試人員在逐個測試數據庫時發現,雖然網站涉及多個數據庫服務器,如辦公郵箱服務器、郵件服務器、文件服務器、各生產數據服務器等,但有一臺服務器明顯慢了許多,斷掉這臺服務器,網站首頁的打開速度就進入毫秒級,將這臺數據庫的數據導出至另一臺備用服務器上,并將WEB服務器上的鏈接指定到備用服務器,訪問速度依然是毫秒級。
3、首頁中的SQL語句有問題。特別是Oracle中數據表指針的移動很費時間,需要優化。
解決方案也接著就出來了,如下:
將首頁改為靜態的。首頁中不再訪問所有的數據庫服務器,而是若干文本列表,這些文本由其它數據庫(表)在新增記錄時,同步在WEB服務器上生成。首頁是靜態的,速度就會快多了。
測試人員表示反對這種方案,認為問題出在數據庫上,而不是網頁的動態或靜態上,但在討論的過程中,領導強調指出問題必須給出解決方案,否則不予考慮。于是,表態的人少了,會議沉默了,然后就是方案的實現,解決問題的時限,散會……
這是個真實的案例。在本案例中,測試人員先期很積極的尋找網站速度慢的原因,但后來歸于沉默,是因為測試人員沒有能力解決這個問題,只能從多個方面尋找問題的原因,但誰找出問題誰負責解決的做法,打消了測試人員的積極性,測試人員是找問題的,不是解決問題的。多一事不如少一事。可以預見,這個方案最終會不了了之。
這就是在大多企業中軟件測試人員的一種窘境,測試人員即要發現問題,還要解決問題,并且測試人員和開發人員一般在同一個部門,發現的問題越多,自己不解決,就給開發人員造成的返工量越大,開發人員和測試人員的矛盾很多,又得不到有效的解決。
總結企業中測試人員面臨的問題:
1、測試人員的工作量很大,同時要為多個項目做測試,但收入卻很低。
2、測試人員不具備獨立性,企業的信息部門很少設有測試組一類的,測試人員往往和開發人員在同一個科室,開發人員有時兼做另一個項目的測試人員,表面上是方便了與開發人員的交流,實際上卻阻礙了測試工作的進展,礙于情面,誰都要在組織內生存,誰都不愿以工作影響了同事關系。
3、領導對測試工作的輕視問題。有些領導不懂測試流程,甚至分不清集成測試和系統測試,不給測試人員說話的空間,喜歡自己說了算,當然這是題外話。
4、測試人員要解決自己發現的問題。雖然開發和測試角色可能出現重復,但兩者的側重點是不一樣的,測試是發現問題,而開發則是解決問題。在實際工作中往往不是這樣,特別是在一些技術問題分析會議中,誰提的問題多,誰就最終負責解決問題。迫于生存,測試人員一般不多表態。
5、測試人員的素質。程序員在干不動編程時,才會轉行做測試,做職業轉行的緩沖,一些優秀的編程人員一般都安排做開發了,優秀人員不做測試最重要的原因是收入低,領導也不會安排這樣的人做測試,認為是人力資源浪費。所以,從開發崗位上轉行來的測試人員,即使有豐富的開發經驗,他也不能對所發現的問題全部解決。優秀人員的缺席也導致了測試工作效率降低。
5.測試人員如何獲得高薪?----
這聽起來是個很有誘惑力的話題;也的確是個很有誘惑力的話題。很多做測試的朋友千萬次的問,測試行業能掙到高薪嗎?從事測試工作有發展嗎?我能夠忍受枯燥無聊的測試工作嗎?
這里我不想談所有問題,只談談如何獲得高薪,獲得高薪需要哪些素質,那些條件,多少年的工作經驗等。?
我認為的測試人員分類
測試人員在軟件開發中基本由兩大類:一類是起步就做測試,一類做過開發后來轉為測試。?
最近在網上同一些朋友聊天,經常聊到測試人員是否需要開發經驗這樣一個話題。我個人認為,又開發經驗更好。我也傾向于由開發經驗的測試人員可以獲得更好的發展。但這都是一個動態的過程,起步就做測試的人可能后來也慢慢掌握開發經驗。
測試人員的成長階段?
測試人員基本上可以分為如下幾個階段,手工測試階段、工具輔助階段、定制工具階段、初級管理階段、高級管理階段、業務測試專家(此階段在等同于在管理方面發展的初級、高級管理階段,這個階段的測試人員熟悉測試的各個方面,逐步專項某個領域的測試)。?
手工測試階段?
處于此階段的測試人員一般是剛剛進入這一行,或者剛剛換了一個公司(新來的嗎)。這個時候是很重要的積累時期,自動此時工具只是一個輔助,重要的時你要有如何測試一個軟件的思想。?
工具輔助階段?
這個階段的測試人員對各個類型的測試都有所了解,為了提高測試效率,開始使用測試工具;或者為了以后的職業發展開始關注自動測試,并主動或被動的學習測試工具。這時候自己心里一定要有數,那些測試工具會對職業生涯有幫助。目前國內的測試人員都在學習一些大廠商的測試工具,這些工具的確不錯,但是不一定都對以后的職業發展有利。一般來說這個時候首先要確定自己在功能測試方向發展還是在性能測試方向發展。這樣可以有針對性地學習各類別的工具。當讓有時間和精力可以多學習一些,多多益善。另外還有一些白盒測試工具,如果想在白盒測試方向發展可以多多研究。
定制工具階段?
這是工具輔助階段的延續,一般定制工具分為兩種,一種是對第三方廠商的工具進行插件開發或利用工具的腳本語言開發可重用的類庫;另一種是開發公司內部使用的工具。第二中情況難度較大,需要測試人員有較高的開發水平。一般來說只有在商業測試工具不能滿足測試要求時才開發自己的測試工具。當然有時候不需要使用龐大的商業測試工具的時候也可以自己開發一些小的、能夠滿足測試要求的工具。這一般使用產品開發所使用的語言或者Perl、Python等。對于使用Java開發的產品可以使用BeanShell等腳本語言。?
業務測試專家?
此階段的測試人員已經熟練的掌握了多種工具,或者已經具備了為產品定制測試工具的能力。這個時候的測試人員應該做長期的職業生涯考慮,如果從事某個領域的產品測試時間較久,可以繼續深入研究此領域里的相關技術,逐步能夠提出對產品開發有建設性的建議。一般來說這個階段的測試人員會在產品規劃的前期作為高級測試人員參與進去,為產品的需求搜集和設計提供建設性意見。?
初級管理階段?
一般來說這個階段是指你處于項目組長位置的時候。這時可以制定測試計劃,組織組內人員編寫、修改測試用例。這個階段的人員一般一般可以考慮向業務測試專家方向或者高級管理人員發展。?
高級管理階段?
經歷初級管理階段后,積累了初步的測試管理經驗。這時候一般會參與測試計劃的制定、人力資源調配、各種資源分配等。?
各階段的薪資狀況?
就目前國內市場來看,按照測試人員所在的公司類型大致可分為如下幾類:?
1。國內中小企業?
2。國內大企業?
3。測試外包公司?
4。國外企業?
同一個等級的職位在不同類型的公司可能有不同的定義,比如在國內的小企業可能就以兩個測試人員,那你可能身兼多職,既是項目組長,又是項目經理。國內大企業一般來說同國外的企業的職位基本對應,但是一般來說國內大企業的測試經理到國外的公司也只能是個測試組長。?
轉載于:https://www.cnblogs.com/tillere007/archive/2009/05/05/1450266.html
總結
以上是生活随笔為你收集整理的软件测试工程师职业介绍和规划的全部內容,希望文章能夠幫你解決所遇到的問題。