測試工程師到底是幹啥的?測試工程師轉開發有多大希望?

我2011年本科畢業,在學校時因為沒錢,只考了幾十塊錢的軟考網路工程師(CCNA的價格是我當時2個多月生活費,NP就夠快一年了,當時真的很窮。PS學校消費也真的很省,3個人出去搓一頓大魚大肉才100不到)。後來找工作去了老家的中國電信做運維,雖說毫無技術壓力,但是工資的壓力讓我做了4個月就跑到北京了。因為有關係進了一個私企做軟體測試工程師(工資翻了5倍當時超高興,帶績效800→純工資4k)。在工作期間,多數內容都是公司軟體的功能性能測試、linux下的一些環境搭建和配置,和網路環境搭建。像centos或debian這些大眾發行版的基礎服務(http ftp ssh dns squid啥的)和交換機路由器配置(華為思科居多)都是輕車熟路。

工作了3年之後合同到期,出來闖了一下,發現很多公司都很不待見做測試的,工作比較鬧心(之所以沒繼續留原公司也是因為空降來了個領導整個測試部門都很不爽大部分朋友都離職了,但多數都是回老家,我要是回老家就回到工資800的時代了)

但自從自己出來找工作之後,一直很不順利,不知道為什麼,去哪都被鄙視,去年半年進過3家公司,第一家通宵+周末加班,第二家下礦井(最後還是因為幹活太快被開除了),第三家在倉庫撕了好長時間膠條最後拖欠工資(沒簽合同),三家招的都是測試工程師但是沒有一個干正經事的。

有點對測試這個行業開始看不清了,害怕再之後還能不能幹這行
現在2015年,上半年完全是家裡蹲狀態(倒是把駕照學了)。偶爾會看js和一點web開發的資料,租了虛擬主機和vps搭了點服務玩。

但是不知道接下來還能找什麼工作,4個月的網路運維工程師經驗,3年的(確切的說是2.5年)測試工程師經驗,以及半年的被坑經驗,現在已經不知道接下來何去何從了。以前一起北漂的熟人,轉前方(銷售)和回老家(做生意)的居多,但我這兩樣都做不了。

想轉做web前端,把w3school上的js都看完了,這周寫了點代碼,把從linux下採集的一些數據展示到web上,結果在微博上被另一個老開發者看到之後被噴了夠嗆(數據是json文件,默認非同步模式沒等讀完呢頁面先輸出完了,於是切成同步模式結果被噴。我第一天寫js我還覺得我自己有救……)。

廢話了幾百字,就是想在知乎上問問兩個問題:
測試工程師到底是幹啥的?
測試工程師轉開發有多大希望?

順帶如果能問出來我還有沒有救就好了,現在出門求職就是各種碰壁狀態。

PS:在知乎問了個問題結果被罵了有一頁,是你們浮躁還是我浮躁啊,我是誠心想知道有沒有答案,你們都跑過來曬優越了(而且還玩匿名

2015-06-04更新:
非常感謝 測試行業的奇葩 兄弟的回答。
說真的,最初我的工作內容也是包括了兄弟說的12345條,版本規劃提需求,版本需求提功能點,設計階段給建議,編碼階段自己做過功能、寫過代碼、自動化環境自動化腳本,測試用例,測試階段更是忙,這麼做了2年多,本來是很高興的。
但是到了2年之後情況就急轉直下了,1234條都瞬間消失了,工作內容變成了純寫(改測試用例),每天的工作突然就變成「滑鼠點點滑鼠點點滑鼠點點」,有時候發現了一個bug實在手癢鑽到linux底層去看腳本和代碼,前端(web)和linux下shell的還好說,都是看得到代碼的;要是C或者JAVA的根本接觸不到代碼,每天就看著進程crash之後報mantis,工作真心枯燥乏味。
實在熬不下去了我就辭職了,之後又接觸了3家公司,就有了前文說的更坑經歷。

想起以前在公司還給測試新人做過講座,我貌似也一條條123456寫了很多測試是做什麼的,只不過理想跟現實,差距太大。

2016-02-25更新:
其實我從去年8月份已經轉至php開發並工作至今。
看到大家還有人在關注這個問題,所以就來補充一下。
我對測試這個職位仍然非常失望。


首先,其實題主的問題還是很實誠的,我剛開始做測試的時候其實也是這個心態,想轉開發,也學習了很多的語言,個人覺得這是職業危機感的表現,挺好的,也相信題主不管去做開發和測試都會去不斷的學習和進步。
好吧,正文來了,先回答第一個問題:測試究竟是做什麼的?以下是我不久前分享過的一篇文章,我直接拿過來回答第一個問題吧(還順便解決了測試人員的發展問題)
—————————————————
測試可以做什麼

談到測試人員的發展,首先再回過頭來看看整個項目期間測試人員做的事情或者說能夠做的事情吧以及需要具備的對應的能力吧!
1、版本或者產品的規劃階段:

作為一個測試人員,這個時候可以從一個更高的角度對產品的規劃提出自己的想法,來更好的幫助產品取得成功。

需要具備的能力或者知識:對於產品的商業理解以及整個行業和市場的理解都比較深入,實際上這個時候我們可以將自己看成是一個產品經理。


2、版本的需求階段:

測試人員已經能夠開始做需求階段的缺陷預防,保證需求是能夠滿足用戶的原始需求,並且整個需求都是非常清晰和合理的,版本後期沒有需求不合理或者需求不清晰的問題。
需要具備的能力或者知識:對於客戶的使用場景非常清楚,能夠在客戶角度上面思考問題;有自己的一套需求分析的方法,最好是模型或者checklist之類的;非常好的分析能力,能夠通過需求文檔分析到可能潛在的問題。

3、設計階段:

測試人員開始做設計階段的缺陷預防,能夠對於研發的整個設計方案非常清楚,能夠根據研發設計文檔裡面的業務邏輯圖自己能夠站在測試的角度來畫出一份讓測試人員更加容易理解的業務邏輯圖,並且能夠發現研發在設計方案上存在的一些問題,並且指導研發進行修改。
需要具備的能力或者知識:比較深入的業務背景知識;熟悉開發使用的語言;業務分析和轉換的能力;


4、編碼階段:

測試人員開始編寫單元測試介面測試用例、測試工具或者自動化測試用例,並且開始思考後面如何去更好的測試(更高的效率,更好的保證質量),並且幫助研發提前做好編碼階段的缺陷預防,甚至做得測試驅動開發。
需要具備的能力或者技能:熟悉開發使用的編碼語言、能夠對開發的代碼進行靜態走讀、熟悉開發使用的編碼語言的單元或者介面測試方法和框架、具備測試工具開發的能力、具備自動化的能力,良好的代碼分析能力和用例設計能力。


5、測試階段:

測試人員開始制定測試策略和測試計劃、執行測試用例、發現和定位bug、跟蹤和回歸bug,質量分析,有效的探索性測試等等,目的是花更短的時間來更好的保證質量。
具備的能力或者技能:制定策略和計劃的能力、執行能力、分析和排查問題的能力,業務的理解能力,對代碼的熟悉程度,模塊的質量分析能力等等!


ok,總結下上面用到的一些能力和技能,以及每種能力對自己的幫助

1、產品的商業理解能力--產品經理(馬雲、馬化騰、周鴻禕等都是這樣的人)
2、需求的分析能力和市場的理解能力--也是向產品經理方向發展
3、業務背景知識--能夠讓自己在該領域走的更遠
4、開發使用的編程語言--這個應該是自己深入到代碼級別一個比較基礎的東西,對於自己對代碼進行測試是非常有幫助的
5、業務的分析能力---養成這樣的習慣後會有一套自己的分析方法,對於自己在測試領域的發展的很有幫助的,現在測試界的一些公共測試技術裡面就有包含這些
6、單元測試能力--這個讓自己走向白盒測試工程師是很有幫助的,也是能夠讓自己跟開發走的更緊點
7、介面測試能力--應該是向單元測試的一個過渡,能夠讓自己更好的接觸到業務邏輯
8、自動化開發能力和工具開發能力--這個就不用說了,現在已經有專門的自動化人員和工具開發人員了
9、用例設計和測試分析能力--測試人員一個很基本的能力,但是真正做好的其實比較少,如果用例設計的質量很高的人其他方面的能力肯定很不錯,而且有了自己的一套方法後對於自己在測試領域的發展是很有幫助的,需要不斷的總結和分析,將經驗抽象為方法或者模型
10、執行能力--測試人員(應該是所有的工作)都需要具備的一個能力吧,如果做好的話其實對自己的幫助也是比較大的
11、發現bug的能力--這個時候對於測試人員的發散思維很重要(個人覺得是衡量真正的測試人員一個比較最重要因素,沒有之一),有些測試人員就是能夠沉迷於此
12、定位bug的能力--其實這應該是測試人員一個很基本的技能,但是我們都是交給研發去做了,如果將前期的工作做起來的話,我們是應該具備這樣的能力的
13、分析和排查問題的能力--分析能力是測試人員一個非常重要的能力,一個好的測試人員總是能夠根據目前的一些現象發現一些本質上面的東西,並且有自己的解決問題的方法
14、制定策略和計劃的能力--這個發展方嚮應該是項目經理或者管理方向吧,但是對於測試人員也是很有幫助的,對於自己從一個整理上面理解問題很有幫助

當然,以上這些能力測試人員不用每一項都掌握的非常熟練,可以根據職業發展方向歸納為如下幾項:
1、產品經理
2、白盒測試工程師(叫開發測試工程師其實更加合適)
3、自動化開發工程師
4、資深的測試工程師或者測試專家(可能需要包括以上超過10個技能並且能力都要達到一定級別)
5、項目經理

其他的幾點就不說了,這裡重點說下達到資深的測試工程師或者測試專家(其實就是測試界的大牛)級別需要的一些條件吧!這個也是筆者一直比較欣賞的一個職業,可是目前這方面的人確實比較少,很多人半路走上了管理崗位!


1、看下自己是否真的適合這樣的職業(很享受去發現一些bug,特別是經過自己思考後發現的一些別人沒有發現的bug),這個可以在剛進入測試行業就看出來
2、一個好的平台:從目前來看,很多公司是沒有辦法給一個測試人員提供學習以上能力的機會的,建議是能夠盡量找到這樣的一個平台(當然也需要不斷的證明自己是一個人才)
3、在一線測試呆盡量長的時間,並且反覆磨練自己上面的一些能力(沒有最高只有更高),這就是所謂的十年磨一劍,這樣需要很大的勇氣,但是在這個浮躁的行業裡面做到堅持實際上是很難的,很多人都是耐不住寂寞的。如果你做到了你就贏了
4、不斷的積累的和總結(總結是自己獲得經驗一個非常寶貴的方法,也是讓自己進步更快的一個方法)
5、開始將自己的一些方法抽象出來,形成一些比較通用的方法,並且不斷的嘗試運用到實踐中,證明這個方法是ok的,形成一些理論
6、完善,實踐,推廣,再完善,再實踐,再推廣.....相信這個時候,你已經是數一數二的高手了,再加上自己的一些推銷自己的方法,提升自己的品牌意識,剩下的就不用說了,當然,學習無止境.........

————————————————

第二個問題,關於測試轉開發的問題,這個其實不是問題,只要你從來沒有放棄過寫代碼。


首先說明下我也是做測試的,做了將近兩年,現在從事開發工作。至於測試工程師幹什麼我想 @測試行業的奇葩 以及說的很清楚了,我就結合自己經歷說下轉開發的問題吧,當然我的經歷適不適合題主還需要你自己去辨別下。
首先先說想測試轉開發的人一般分為兩種:
1、覺得測試技術的提升和對產品的理解深度出現瓶頸
2、測試行業做的很不如意,覺得開發很牛叉、還好找工作,所以想轉行

對於後者,我只能說測試工作本身是一個很複雜要求很高的工作,我只能說這個不是測試這個行業的問題,而是個人問題,你轉去做開發相信我不到一年你就又會想去做配置管理或銷售。

-------------------------------------------------------------------------------------------------------------------------------------
我是13年畢業的學生,和許多畢業生一樣,我很迷茫,因為專業知識學的很差勁,根本找不到對口工作,因為和計算機專業稍微搭點邊,對軟體工程多少了解,又愛好編程,所以被招去做了測試。
測試工作不到一年,我就完全愛上了這個工作,雖然天天加班也沒有周末,但是那一年是我成長最快的一年,我和另一名同事為本不太注重測試的公司搭建起了一套自動化測試框架,完善了部分量化測試的方法與標準,對原有測試用例重新評審並完善編寫,性能測試與分析也開始幹起來,我和那個同事還一起建立了一個和測試工具有關的測試人垂直社區網站,雖然撰稿人當時只有我們兩個,但是還是以每周10篇純幹活原創帖的進度辦著我們的小站,而且去年和TesterHome在上海舉辦了一次測試技術沙龍,當時很多大公司也開始打電話挖我,覺得自己很牛叉,甚至想和同事合夥開一家第三方測試公司!(現在想想無知的我真可怕)所以當時理所當然的決定跳槽,並選定了某知名公司A作為目標。
開始很順利,說實話筆試很難,分為開發部分、測試理論部分和一個實際系統的性能分析,不過順利的進入到了二面,也就是公司測試部門的老大,上來直接就問我關於中間件的性能問題和用例覆蓋度的問題,我當時就蒙了,答的稀里糊塗,當時他就給我一頓批,並告訴了我我的性能測試分析部分完全是沒經過對結構與場景的詳細分析拍腦子寫出來的產物,並指出我在用例設計上的薄弱點,我當時恨不得找個地縫鑽進去,但我真想好好的謝謝他,一下子將我打醒。
回去後我開始重新審視自己的框架與用例,發現糟糕的很,開始沉下心仔細撲到項目里並進行測試工程師軟考的準備,這期間因為開發了很多實用的測試小工具,老大問我有沒有興趣轉去做開發,我想了一段時間,覺得自己對產品模塊的理解太差,性能分析上也出現了瓶頸,所以轉去做了伺服器後端開發,但是我想說,我現在依然是走在想成為頂尖測試工程師的路上,其實開發與測試本就聯繫極為緊密,在國外一般都是資深開發才做測試的,而反觀國內的開發行業,大部分一樣也是覺得這個行業賺錢,去參加個培訓就來找工作了,水的要命,還有什麼資格總說測試行業門檻低?其實哪個行業都一樣,我真的見過有的開發連邊界值這種問題多不做保護也不進行單元測試的,不過回想如果不是我這段測試經歷,我也不會做個好開發吧。
所以題主測試轉開發本身並不難,在我看來開發轉測試才應該是正常的行業現象,不過這個行業現在確實不成熟、太浮躁了、頂尖測試工程師缺口太大,我覺得題主如果真想做開發,那就先沉澱下來,不要怕什麼天天加班有沒有周末,你現在還沒有資本去選擇。


測試工程師,產品質量的把關者,工作起點高,發展空間大。我國的軟體測試職業還處於一個發展的階段,所以測試工程師具有較大發展前景。
工作的大概內容更
1.編寫測試計劃、規劃詳細的測試方案、編寫測試用例。
2. 根據測試計劃搭建和維護測試環境;
3. 執行測試工作,提交測試報告。包括編寫用於測試的自動測試腳本,完整地記錄測試結果,編寫完整的測試報告等相關的技術文檔;
4.對測試中發現的問題進行詳細分析和準確定位,與開發人員討論缺陷解決方案。
5.提出對產品的進一步改進的建議,並評估改進方案是否合理;對測試結果進行總結與統計分析,對測試進行跟蹤,並提出反饋意見。
6.為業務部門提供相應技術支持,確保軟體質量指標。


我覺得測試還好啊,挺好找工作的,我現在幹了一年半測試,跟你的差不多,我們公司做的是交換機。
我覺得測試非常重要啊,每次出的版本都會有一堆問題,如果沒有測試,設備很難保證不出問題的。
之前我們領導說過,一個好的測試其實是可以指導研發怎樣去設計代碼的,這就要深入到具體的協議了。所以如果喜歡這行就好好提升自己,還是很有前途的。


測試,驗證成品和需求之間的差距。

所以說如果開發流程不是需求導向的話(需求-開發-驗證),測試的地位就很捉急了。


謝邀。匿名是因為我想罵人!
初看標題,我以為是應屆畢業生的提問。仔細看了一下內容才發現是個有2.5年測試經驗的人提問。
做測試2.5年還不知道測試是幹什麼的,的確值得思考一下未來的路該怎麼走了。
測試是幹嘛的?答案太多了,度娘一搜一片一片的。測試的地位如何?不同的企業文化導致測試的地位有高有低,當然,任何一個職能部門的地位都應該是靠自身過硬的功夫爭取回來的。
說說測試轉研發的難度。部分牛叉的測試大拿是研發轉過來的,你說反轉會不會太難?你認為的難,可能是基本功不行,各方面的綜合能力不夠強,代碼能力也是弱的可怕才會把這事兒變得很難!
最後說說出路。11年畢業,年紀應該在24--27之間,這個年紀的人應該已經明確自己想幹嘛了,你卻跑來問出路,先問問自己到底想幹什麼,然後就去努力試一把,大不了失敗,也不會比現在的情況差到哪兒去。最後溫馨提示:想轉行,無論是開發還是銷售亦或者其他,都需要有重新開始的勇氣跟決心,還要有不怕失敗的厚臉皮。祝好運!


從你的經驗,感覺你懂得挺多的,我覺得還是信心缺乏吧。
沒必要這山看著那山高,把自己的目標定好,測試需求量也是挺大的。
找不到正經測試崗位,只能說你沒有把你懂的完全發揮出來,或者說你信心不足一開始姿態就較低,導致面試者直接氣勢上就把你壓下去了。
如果是做測試的話,你需要了解你所掌握的技能在測試市場上的定位,找准自己的位置才好去找工作;
轉開發的話,說真的,只能從0開始了,不要指望現在能拿到跟你周圍做開發的那群人差不多的薪水。即時你懂很多開發理論,但是開發這種東西還是要經驗的積累,比如遇到一個小問題有經驗的人一定比你解決得快。

還是建議一步一個腳印做測試,但如果決意要做開發,也要做好相關的準備,就不要糾結那麼多了。


看了題豬的描述,這做的測試是開發方面的測試,屬於軟體測試.
可以考慮下硬體測試,屬於電子工廠的,一個電子產品生產出來,需要用軟體模擬用行為來測試硬體性能,不過這種工作不怎麼高大上,算不上碼農了.很多時候是為了解決實際問題,做OEM/ODM的工廠,TE是個很重要的角色


測試工程師是一個非常重要的職業,在我司尤其如此。


測試還是有前景,關鍵是看技能,性能和自動化部分還是很吃香的


我也是是測試,現在工作一年了,目前有點疑惑要不要轉開發,但是轉開發還擔心自己實力不夠,經驗不足。有沒有好的建議,測試和開發的發展前景有什麼區別,會不會有瓶頸


我剛剛跟你相反,我現在是做開發的,想往質量方向轉,只是現在還沒有一個學習的方向


題主現在公司有測試嗎?我要應聘。


我猜,題主想問的問題,其實是他為什麼找不到工作?
在熱情的討論,測試生涯之前,我想先知道,題主是在人事階段被槍斃的,還是在上級領導階段被槍斃的?
如果是上級領導階段被槍斃,那麼可能是技術能力、或者溝通能力,不符合。
如果是人事階段就被槍斃了,那麼可能是衣著談吐方面的問題。

是的,曾經因為我旁邊的新同事,體現了髒亂差的風格,所以我辭職了。
公司人事有沒有因此後悔我就不知道了。


在北上廣找不到合適的測試工作只能說明自身能力不足,做著測試覺得開發好?只能呵呵


推薦閱讀:

测试人员是否有「归纳导致 bug 的范围」的职责?
怎樣用三句話向一個 8 歲小孩解釋什麼是資料庫?

TAG:計算機 | 軟體測試 | IT行業 | 測試工程師 | 質量管理 |