公司開發的產品專業性較強,軟件測試人員需要有很強的專業知識,現在軟件測試人員發展出現了一種測試管理者不愿意看到的景象:
1、開發技術較強的軟件測試人員轉向了軟件開發(非測試工具開發);
2、業務能力較強的測試人員轉向了軟件需求;
3、溝通能力較強專業能力較強的人員轉向了軟件實施;
為什么不愿意看到呢,自己培養起來的優秀人員都為別的部門、別的公司干活去了,而測試這邊永遠都是新人,永遠都是剛入門的軟件測試工程師:開發水平一般、業務能力一般、溝通能力一般。而那些轉行的測試同仁們,薪水并沒有質的飛躍,到了‘那邊’成績平平,很快就被埋沒了。這里當然要排除那些實在對開發、對業務、對實施非常感興趣想在這些領域有所建樹的狂熱者們。問題就來了,那些人為什么要‘轉業’呢?原因無外乎以下幾點:
1、公司的軟件測試沒有技術含量,沒有挑戰性;
2、認為在公司能做到測試經理就已經是測試發展的最高境界了;
3、測試人員薪水較其他低;
4、想了解一下測試之外的其他崗位,豐富自己的閱歷,為以后更好的做管理做準備。
那么,公司的軟件測試真的技術含量很低嗎?工作效率已經達到最高了嗎?真的不需要挑戰嗎?測試經理就沒有高級和低級之分了嗎?測試人員的薪水就不可以比開發人員高了嗎?測試人員真的需要那么多嗎?當然不是,也許很多年的‘舊路’不能靠自己改變,也許有人埋怨領導者們因循守舊、頑固不化,但沒有人會阻擋我們去創新,去阻止我們探索新的模式、新的思路、新的工作方法去改變這種現狀,沒有公司是傻子,一個人的薪水和他體現出來的價值是成正比的。所以應該打破常規,去探索新的東西,這種創新不僅包括技術創新也包括管理創新。關于職業發展,僅根據公司的實際情況,和從大家那里得來的想法,談一談:
1、開發技能較強的軟件測試人員可以轉向自動化測試工具、測試管理工具的開發,這里不僅要求開發能力較強,還需要多了解第三方測試工具,挖掘測試組內測試人員的需求,了解業務;
2、業務能力較強的可以做測試(用例、計劃)設計工程師,由于公司產品業務較強,需求人員僅能為測試人員提供需求文檔,而究竟哪些是最重要的測試點,測試過程中采取什么樣的測試方法能使得測試路徑最短、覆蓋率最全,這些都需要抓住軟件業務的精髓;
3、做到了測試經理,完全可以把管理再出神入化,每個人身上有什么特點,怎樣能讓每個組員的能力發揮到極致,怎么更好的爭取測試人員的利益,怎樣做到最好的資源調配,怎樣讓大家不再迷茫,另外,怎樣提升自己的威信,提升執行力,領導力,怎樣把管理做到讓人嘖嘖,到了這種程度,通過橫向和縱向對比,優勢自然就出來了。
另外,轉做開發、需求、實施,然后又轉回測試做管理,這種我是比較贊同的,但度不好掌握,而且如果自己的水平實在太高,很可能會讓這類人產生英雄無用武之地的想法,公司的平臺太低,而自己感覺自己的水平偏高,所以很可能導致這類人的離職,所以個人的發展和公司測試部的發展一定得保持同步,誰都不能過快,步伐不一致的的兩個人怎么能走在一條道上呢?所以在個人發展的情況下,關注公司總體測試發展,先認清兩者的發展方向再去‘轉業’未嘗不可。
4、做到測試設計人員、自動化工具、管理工具開發人員就是極致了嗎?當然不是,測試行業照樣有咨詢、有顧問、專家,測試管理做好了也可以去做項目經理、去做部門經理,實在不行,完全可以去創業嘛。
總之,發展無極限,路是自己走出來的,不要只走別人踩出來的路。
測試人員應該具備的幾種思維方式【1】
1、逆向思維方式
?? · 逆向思維在測試中用的很多,比如將根據結果逆推條件,從而得出輸入條件的等價類劃分
?? · 其實逆向思維在調試當中用到的也比較多,當發現缺陷時,進一步定位問題的所在,往往就是逆流而上,進行分析
?? · 逆向思維是相對的,就是按照與常規思路相反的方向進行思考,測試人員往往能夠運用它發現開發人員思維的漏洞?
?? 2、組合思維方式
?? · 很多東西單一的思考都沒有問題,當將相關的事物組合在一起卻能發現很多問題;如多進程并發,讓程序的復雜度上了一個臺階,也讓程序的缺陷率隨之而增長
?? · 按照是否排序組合可以分為:排列(有序)和組合(無序);針對不同的應用,可以酌情考慮使用“排列”或者“組合”
?? · 為了充分利用組合思維而不致于讓自己的思維混亂,要注意“分維”,將相關的因素劃分到不同的維度上,然后再考慮其相關性?
?? 3、全局思維方式
?? · 事物往往存在多面性,當我們掌握了越多的層面,我們對它的認識就越清楚,越有利于我們掌握其本質,全局思維方式就是讓我們從多角度分析待測的系統;試著以不同角色去看系統,分析其是否能夠滿足需求
?? · 其實平常我們在軟件開發過程中,進行的各種評審,就是借助全局思維的方式,讓更多的人參與思考,腦力激蕩,盡可能的實現全方位審查某個解決方案的正確性以及其他特性?
?? 4、兩極思維方式
?? · 邊界值分析是兩極思維方式的典范
?? · 為了看系統的穩定性,我們采用了壓力測試
?? · 兩極思維方式,是在極端的情況下,看是否存在缺陷?
?? · 注意是兩極,不是一極
?? · 測試人員做久了,往往容易走極端——職業病,不利于與人溝通?
?? 5、簡單思維方式
?? · 剝離一些非關鍵特征,追逐事物的本質,讓事物簡單的只剩下“根本”
?? · 針對事物本質(解決問題的本質)的測試,讓我們不至于偏離方向?
?? 6、比較思維方式
?? · 認識事物時,人們往往都是通過和頭腦中的某些概念進行比較,找出相同、相異之處,或者歸類,從而將其加入大腦中的知識體系,可能的話,再建立好的搜索方式,以便以后使用
?? · 應用模式是“比較思維”很常見的例子,現在模式很火,有設計模式、體系結構模式、測試模式、等等,一些專家針對一些相關問題的共性找出來的解決方法,取完名字后,可以讓大家方便的復用
?? · 讓經驗在這里發揮作用,測試中經驗很重要,比較思維是使用經驗的方式?
?? 7、動起來,更精彩
?? · 關注程序的運行時狀態
?? · 傳統的基于結構的程序可以更多的在代碼中反映將來程序的運行方式;而面向對象將代碼和運行時顯著分離
?? · 讓我們在關注代碼靜態結構(如類結構)的同時,也要謹慎關注其動態(對象交互網)表現
其實這些思維方式,大家都在有意識或者無意識的使用著,它們各自都有自己的妙處,將我們的思維發散,有意識的將他們用在問題的思考上,有時可以給我們一種“柳暗花明又一村”的感覺。
測試工程師的進階之路【2】
從狹隘的面來理解,測試工程師的本職的進階方向大致如下:
即兩種大方向:管理方向和技術方向。
?
從廣義上來劃分測試人員的發展,即不僅僅局限于測試本職工作,大致有6大類的方向。決定不同發展方向的核心技能要素有三個,即:
三核心要素:管理技能、測試技能、業務技能。
根據三種技能的掌握情況和互相之間的交集點,大致分為6個大類方向:
◆ 管理方向
◆ 測試技術方向
◆ 業務技術方向
◆ 技術支持方向
◆ 質量保證方向
◆ 其他方向
六大方向對核心三技能的大致要求,請參考如下圖示:
(注:上圖只是對六類發展方向,三種核心技能掌握做簡單圖示,不代表具體數值,也無橫向對比價值。)
測試人員的六大發展方向和對應崗位:
(注:只代表各大方向的具體方向,各方向/崗位之間未標識上下級,平級層次關系)
對六大方向的各個崗位,無法一一描述所要學習掌握的知識點。如果對某一方向的某一崗位有興趣,在網絡資源這么發達的今天,有心的話,自然會找到關于測試人員所需要的技能知識,進行歸納總結,所以在本文中不再贅述。
軟件測試工程師職業生涯規劃【3】
由于國內軟件測試行業目前的發展迅速、需求旺盛,在國內的軟件測試職位晉升一般要比國外快,但因行業本身太年輕,大家對軟件測試中軟件測試職業的發展了解不夠,從而導致許多有志在此發展的年輕人舉步不前。所以下面介紹一下海外公司成熟的軟件測試行業職位分布情況,我國一些在軟件測試行業中處于前端的公司與之也相仿,這可以作為軟件測試職業規劃的參考,給新人一個導向。
第一階段:(測試員)初級測試工程師
自身條件:初入行具備計算機專業學位或一些手工測試經驗的個人。
具體工作:執行測試用例,記錄bug,并回歸測試,通過qtp等測試工具錄制回歸測試腳本,并執行回歸測試腳本。
學習方向:開發測試腳本并且開始熟悉測試生存周期和測試技術。
第二階段:(測試工程師)程序分析員
自身條件:有1~2年工作經驗的測試工程師或程序員。具有初步的自動化測試能力,完善自動化測試腳本。
具體工作:設計和編寫測試用例,編寫自動測試腳本程序且擔任測試編程初期的領導工作。
學習方向:拓展編程語言、操作系統、網絡與數據庫方面的技能 。
第三階段:(高級測試工程師)程序分析員
自身條件:有3~4年經驗的測試工程師或程序員。具有一定的行業業務知識,儲備系統分析員的能力。
具體工作:幫助開發或維護測試或編程標準與過程,分析軟件需求,獲得測試需求。確定測試需求相應的測試方法,獲得測試策略方案。參與同行的評審(軟件需求,軟件測試計劃等),并為其它初級的測試工程師或程序員充當顧問。
學習方向:繼續拓展編程語言、操作系統、網絡與數據庫方面的技能。
第四階段:測試組負責人
自身條件:有4~6年經驗的測試工程師或程序員。具有豐富的行業業務知識,具有系統分析員的能力,專長性能測試。
具體工作:負責管理1~3名測試工程師或程序員。集中于技能方面,擔負一些進度安排和工作規模/成本估算職責。分析性能瓶頸的原因,為開發團隊提供bug解決策略。
負責進度安排、工作規模/成本估算、按進度表和預算目標交付產品,負責開發項目的技術方法,能夠為用戶提供支持與演示;
學習方向:性能測試,測試技能
第五階段:(資深安全或性能測試工程師)測試/編程高級負責人
自身條件:有6~10年經驗的測試工程師或程序員。
具體工作:負責管理8~10名技術人員。性能測試整體方案設計,軟件系統性能問題定位和性能優化,內存優化及分析數據溢出等,分析系統的安全漏洞等。負責進度安排、工作規模/成本估算、按進度表和預算目標交付產品。負責開發項目的技術方法。為一些用戶提供支持與演示。
學習方向:開發一些特定領域的技術專長
第六階段:測試/質量保證/開發(項目)、經理
自身條件:有10多年的工作經驗。
具體工作:管理8名或更多的人員參加的1個或多個項目。負責這一領域(測試/質量保證/開發)內的整個開發生存周期業務。為一些用戶提供交互和大量演示。負責項目成本、進度安排、計劃和人員分工
第七階段:(公司級質量總監)計劃經理
自身條件:有15年以上開發與支持(測試/質量保證)活動方面的經驗。
具體工作:管理從事若干項目的人員以及整個開發生存周期。負責把握項目方向與盈虧責任
職業生涯規劃是人生的大事,下面我結合親身經歷,談談自己的觀點:
step1:校園階段 (畢業前1年~1.5年)
很多人的職業規劃 是到了工作以后才開始進行的,其實,這樣做,有很大的局限性。凡是工作過的人,都有一個體會,就是自己的第一份工作,會影響到5~10年的發展軌跡,甚至會對一生產生影響。因此,選擇一份合適的工作作為起點,是必須要在校園內思考清楚的問題。
由于中國的教育基本是理論教育,大家在工作前的實踐能力大多比較弱,固然有其不足,但也有好的一面,那就是可塑性比較好。可塑性好代表了選擇的余地可以很大,因此,大家在選擇第一份工的時候,要充分結合自己的教育背景、個人能力、興趣愛好、長期目標等等,作出理性的決策。
軟件測試,特別是黑盒軟件測試是一種入門起點較低、上手迅速、且發展空間比較大的職業,因此,對于很多學生而言,作為進入IT就業的初級崗位,是非常合適的。
校園階段的規劃,主要是選擇大的入門方向,當然,此時也可以給自己一個長期的目標,但是不必規劃過細,因為,在沒有入行前,一切都還未知,把握好路線即可。
下文假設大家選擇的是軟件測試~~
step2:入門階段 (入行后3個月~1年)
對于剛剛入行的新人,這個時期是一個全面熟悉期,最能夠學習到新的知識,也最有拼搏的熱情和動力。建議大家可以借著這股沖勁,盡可能了解所在領域的全貌,了解各個主要分支的內容、特性、優勢、局限性等等,并考察自己當前的工作環境,結合個人匹配程度和興趣愛好,根據前述內容調整自己的規劃。
對于測試行當而言,技術方面一般有幾類:黑盒測試、白盒測試、自動化測試、測試工具、專用業務技能等;相關的管理方面一般有:測試管理、質量管理、項目管理等。
面對上述形形色色的方向,建議大家可以都稍稍了解下內涵,然后確定1~2個,作為中長期的主攻方向,達此標準,基本已經實現了入門,至于能否進得廳堂,就要看后期的努力了。
step3:提高階段(入門后3年~5年)
對于入門后選擇管理還是選擇技術,其實這種問題,是無可無不可的,關鍵是看對自己的長期的定位了。不過,我個人建議當前階段還是技術為重吧。畢竟,在一個技術環境中,要做好管理,沒有扎實的基礎,也難服眾嘛。
本階段是人最容易懈怠的階段。畢竟,剛剛入行的熱忱早已被日復一日的繁復工作給冷卻,有了一定的工作經驗,勝任本職,對于大多數人而言,絕不是問題。家庭、娛樂方面開始占據了業余生活的主流。可是,畢竟大家還很年輕,大多數人此時也不過20多歲,就此懈怠也是非常可怕的。因此,有規劃的提高自身核心競爭力,在這個時候尤為關鍵。
提高是要提高的,但是對于大多數人而言,也沒有必要很拼搏,此時處在一個比較穩定的職位上的你,可以考慮進行細化自己的中期規劃了。根據選定的方向,制定一個自我提升的計劃,并定義好自我檢查的里程碑(譬如:每個季度或半年算一個階段),每天或者每周,有規律的學習一點即可。抱定一個目標——“每天進步一點點”,幾年一大成不是問題。
我個人是反對急功近利的,傾向于穩打穩扎,這個階段忌做“萬金油”,而應努力成為有一技之長的“專家”。
對于選擇做技術的人而言,這個階段的達成標準,一般至少要能夠熟悉你所選技術方向的大多數技術細節,“細節決定成敗”嘛,雖然把握全局的能力是必要的,但是作技術而言,倘若不能鉆的很細很深,恐怕也很難以高手自居吧。
對于選擇做管理的人而言,我個人傾向是:此階段接觸管理的理念,并可以介入管理,但是此階段不宜全面進入管理(除非你有更深層次的考慮,可以不去穩打穩扎)。學習管理的理念是非常重要的,其實管理更多一種思維和做事的方式,這門學問很深入,也不像技術,會不會是那么的顯著,因此,建議多看多學,取長補短,并努力形成自己的做事風格。高級軟件測試工程師,測試組長等,都是不錯的含有技術特征的管理職位,此時的你應該能夠勝任于此。
這個階段的達成后,你也可以躋身老手行列,不必為求職犯愁,你應該可以很容易跳槽或時不時被獵頭騷擾下,達成此階段,你要做更深入的規劃。
step4:升華階段(老手后5年~10年)
此時的你,即將步入中年,不論是曾經專注技術還是偏愛管理的,都面臨著家庭和社會的雙重壓力,你不可能像年輕人一樣整天拼搏了,你需要穩定,因此,不能頻繁的跳槽,建議考慮比較正規且有潛力的企業,要考慮給自己一個長遠的發展規劃。
正因為有前期的細節的背景的支撐,此時,你需要努力提升自己的宏觀把握能力。哪怕做技術的,也要考慮適當的轉型管理(中國特色是:工程師很難超過35歲的,一般人到了30歲不是轉管理就是轉商務了)。當然,一般人是技術做得越好,管理的時候,越容易切中項目要害。但是,對于從技術上來的人,關鍵是要開始培養和人打交道的能力。此階段的關鍵是,需要逐步形成自己的管理風格,具備協調并行事務的能力。
當然,純管理和技術型管理還是有所區別的。對于純管理的人,熟練應用管理的科學理念,形成自己的風格尤為重要。純管理的測試經理人,不僅僅可以做好測試方面的管理,其實也可以做好項目甚至其他的管理。其實,不管管理的對象是什么,它們的管理理念還是相通的。從測試管理中摸索出來的很多經驗,可以很好的推廣于其他的管理領域。而對于技術型管理的人,主要是帶好技術團隊,同時,不斷補充新的技術知識,跟緊技術潮流。此時的你,有強大的技術背景支撐,不需要過分鉆研細節,只需洞察核心,合理安排好你的團隊成員即可。
這個階段,也可能少數的人會選擇離開具體的企業,而開始從事測試咨詢,那是一個充滿挑戰的嶄新開始,也必須有前期的積累方能勝任。
對于大多數人而言,此階段中一個需要重點考慮的問題是,是否將測試作為自己的終生職位,如果是,基本上達到上述的目標,保持狀態,基本可以做到退休的。如果不是,那就比較可怕了。其實我不建議此階段的人轉型,除非有充分的理由和很好的機遇。畢竟,達到此階段,你已經付出了至少5年的努力,而且還是人生的黃金時段,時光一去不復返啊。當前狀態下轉行,請務必慎重。