首先,其實題主的問題仍是很實誠的,我剛開始作測試的時候其實也是這個心態,想轉開發,也學習了不少的語言,我的以爲這是職業危機感的表現,挺好的,也相信題主無論去作開發和測試都會去不斷的學習和進步。
好吧,正文來了,先回答第一個問題:測試到底是作什麼的?如下是我不久前分享過的一篇文章,我直接拿過來回答第一個問題吧(還順便解決了測試人員的發展問題)
—————————————————
測試能夠作什麼編程
談到測試人員的發展,首先再回過頭來看看整個項目期間測試人員作的事情或者說可以作的事情吧以及須要具有的對應的能力吧!
一、版本或者產品的規劃階段:框架
做爲一個測試人員,這個時候能夠從一個更高的角度對產品的規劃提出本身的想法,來更好的幫助產品取得成功。編程語言
須要具有的能力或者知識:對於產品的商業理解以及整個行業和市場的理解都比較深刻,實際上這個時候咱們能夠將本身當作是一個產品經理。工具
二、版本的需求階段:單元測試
測試人員已經可以開始作需求階段的缺陷預防,保證需求是可以知足用戶的原始需求,而且整個需求都是很是清晰和合理的,版本後期沒有需求不合理或者需求不清晰的問題。
須要具有的能力或者知識:對於客戶的使用場景很是清楚,可以在客戶角度上面思考問題;有本身的一套需求分析的方法,最好是模型或者checklist之類的;很是好的分析能力,可以經過需求文檔分析到可能潛在的問題。學習
三、設計階段:測試
測試人員開始作設計階段的缺陷預防,可以對於研發的整個設計方案很是清楚,可以根據研發設計文檔裏面的業務邏輯圖本身可以站在測試的角度來畫出一份讓測試人員更加容易理解的業務邏輯圖,而且可以發現研發在設計方案上存在的一些問題,而且指導研發進行修改。
須要具有的能力或者知識:比較深刻的業務背景知識;熟悉開發使用的語言;業務分析和轉換的能力;編碼
四、編碼階段:設計
測試人員開始編寫單元測試、接口測試用例、測試工具或者自動化測試用例,而且開始思考後面如何去更好的測試(更高的效率,更好的保證質量),而且幫助研發提早作好編碼階段的缺陷預防,甚至作得測試驅動開發。
須要具有的能力或者技能:熟悉開發使用的編碼語言、可以對開發的代碼進行靜態走讀、熟悉開發使用的編碼語言的單元或者接口測試方法和框架、具有測試工具開發的能力、具有自動化的能力,良好的代碼分析能力和用例設計能力。接口
五、測試階段:
測試人員開始制定測試策略和測試計劃、執行測試用例、發現和定位bug、跟蹤和迴歸bug,質量分析,有效的探索性測試等等,目的是花更短的時間來更好的保證質量。
具有的能力或者技能:制定策略和計劃的能力、執行能力、分析和排查問題的能力,業務的理解能力,對代碼的熟悉程度,模塊的質量分析能力等等!
ok,總結下上面用到的一些能力和技能,以及每種能力對本身的幫助
一、產品的商業理解能力--產品經理(馬雲、馬化騰、周鴻禕等都是這樣的人)
二、需求的分析能力和市場的理解能力--也是向產品經理方向發展
三、業務背景知識--可以讓本身在該領域走的更遠
四、開發使用的編程語言--這個應該是本身深刻到代碼級別一個比較基礎的東西,對於本身對代碼進行測試是很是有幫助的
五、業務的分析能力---養成這樣的習慣後會有一套本身的分析方法,對於本身在測試領域的發展的頗有幫助的,如今測試界的一些公共測試技術裏面就有包含這些
六、單元測試能力--這個讓本身走向白盒測試工程師是頗有幫助的,也是可以讓本身跟開發走的更緊點
七、接口測試能力--應該是向單元測試的一個過渡,可以讓本身更好的接觸到業務邏輯
八、自動化開發能力和工具開發能力--這個就不用說了,如今已經有專門的自動化人員和工具開發人員了
九、用例設計和測試分析能力--測試人員一個很基本的能力,可是真正作好的其實比較少,若是用例設計的質量很高的人其餘方面的能力確定很不錯,並且有了本身的一套方法後對於本身在測試領域的發展是頗有幫助的,須要不斷的總結和分析,將經驗抽象爲方法或者模型
十、執行能力--測試人員(應該是全部的工做)都須要具有的一個能力吧,若是作好的話其實對本身的幫助也是比較大的
十一、發現bug的能力--這個時候對於測試人員的發散思惟很重要(我的以爲是衡量真正的測試人員一個比較最重要因素,沒有之一),有些測試人員就是可以沉迷於此
十二、定位bug的能力--其實這應該是測試人員一個很基本的技能,可是咱們都是交給研發去作了,若是將前期的工做作起來的話,咱們是應該具有這樣的能力的
1三、分析和排查問題的能力--分析能力是測試人員一個很是重要的能力,一個好的測試人員老是可以根據目前的一些現象發現一些本質上面的東西,而且有本身的解決問題的方法
1四、制定策略和計劃的能力--這個發展方向應該是項目經理或者管理方向吧,可是對於測試人員也是頗有幫助的,對於本身從一個整理上面理解問題頗有幫助
固然,以上這些能力測試人員不用每一項都掌握的很是熟練,能夠根據職業發展方向概括爲以下幾項:
一、產品經理
二、白盒測試工程師(叫開發測試工程師其實更加合適)
三、自動化開發工程師
四、資深的測試工程師或者測試專家(可能須要包括以上超過10個技能而且能力都要達到必定級別)
五、項目經理
其餘的幾點就不說了,這裏重點說下達到資深的測試工程師或者測試專家(其實就是測試界的大牛)級別須要的一些條件吧!這個也是筆者一直比較欣賞的一個職業,但是目前這方面的人確實比較少,不少人半路走上了管理崗位!
一、看下本身是否真的適合這樣的職業(很享受去發現一些bug,特別是通過本身思考後發現的一些別人沒有發現的bug),這個能夠在剛進入測試行業就看出來
二、一個好的平臺:從目前來看,不少公司是沒有辦法給一個測試人員提供學習以上能力的機會的,建議是可以儘可能找到這樣的一個平臺(固然也須要不斷的證實本身是一我的才)
三、在一線測試呆儘可能長的時間,而且反覆磨練本身上面的一些能力(沒有最高只有更高),這就是所謂的十年磨一劍,這樣須要很大的勇氣,可是在這個浮躁的行業裏面作到堅持其實是很難的,不少人都是耐不住寂寞的。若是你作到了你就贏了
四、不斷的積累的和總結(總結是本身得到經驗一個很是寶貴的方法,也是讓本身進步更快的一個方法)
五、開始將本身的一些方法抽象出來,造成一些比較通用的方法,而且不斷的嘗試運用到實踐中,證實這個方法是ok的,造成一些理論
六、完善,實踐,推廣,再完善,再實踐,再推廣.....相信這個時候,你已是首屈一指的高手了,再加上本身的一些推銷本身的方法,提高本身的品牌意識,剩下的就不用說了,固然,學習無止境.........
————————————————
第二個問題,關於測試轉開發的問題,這個其實不是問題,只要你歷來沒有放棄過寫代碼。