首頁>Club>
針對近幾年測試開發工程師比較吃香,在未來必將逐步代替手動純手工測試人員,而寫程式碼能力加測試能力是怎麼練成的呢,請教各位啦?
10
回覆列表
  • 1 # 白喵說

    首先,其實題主的問題還是很實誠的,我剛開始做測試的時候其實也是這個心態,想轉開發,也學習了很多的語言,個人覺得這是職業危機感的表現,挺好的,也相信題主不管去做開發和測試都會去不斷的學習和進步。

    好吧,正文來了,測試究竟是做什麼的?以下是我不久前分享過的一篇文章,我直接拿過來回答第一個問題吧(還順便解決了測試人員的發展問題)

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

    測試可以做什麼

    談到測試人員的發展,首先再回過頭來看看整個專案期間測試人員做的事情或者說能夠做的事情吧以及需要具備的對應的能力吧!

    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、版本的需求階段:

    測試人員已經能夠開始做需求階段的缺陷預防,保證需求是能夠滿足使用者的原始需求,並且整個需求都是非常清晰和合理的,版本後期沒有需求不合理或者需求不清晰的問題。

    需要具備的能力或者知識:對於客戶的使用場景非常清楚,能夠在客戶角度上面思考問題;有自己的一套需求分析的方法,最好是模型或者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、完善,實踐,推廣,再完善,再實踐,再推廣.....相信這個時候,你已經是數一數二的高手了,再加上自己的一些推銷自己的方法,提升自己的品牌意識,剩下的就不用說了,當然,學習無止境.........

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

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

  • 中秋節和大豐收的關聯?
  • 有什麼能學習普通話的軟體推薦嗎?