如上,目前崗位是測試工程師,希望向自動化測試,和測試開發方向發展


謝邀。

首先恭喜題主走上了軟體測試的不歸路,這個行業發展的方向其實是挺明確,一路向西走,不必回頭,而且發展也分了技術線和管理線,先分享下圖,岔路口選好方向啊。

題主應該是技術宅啦,那再看技術發展,選擇從測試工程師先向自動化測試工程師進步,我覺得是理所當然,難度相對較小的,然後在一定的技術積累和經驗積累基礎上,可以嘗試著測試開發方向,這個不是必須,畢竟對語言要求稍微高一些,下面是寫的一篇文章,介紹功能測試、自動化測試和測試開發的技術棧,可以看一下。

捉蟲佈道人:功能測試、自動化測試、測試開發技術棧?

zhuanlan.zhihu.com圖標

好了,預祝題主儘早跨進自動化,最終實現測試開發的夢想。


從職位劃分來說:

測試工程師 = 手工測試 + 自動化測試 + 測試開發

但因為長久以來,行業內對測試工程師有一定的偏見,認為測試就是手工/黑盒/界面的點點點,認為測試工程師完全等於手工測試。

此時如果希望吸引進階能力的(逼格更高的)測試工程師,業內發明了一些細分崗位,例如自動化測試工程師,以及測試開發工程師。

然後說自動化測試工程師。

簡而言之就是使用自動化手段代替手工測試的工程師。但其實所謂的自動化測試,是基於手工測試的; 任意形態的自動化測試,都是基於手工測試跑通。注意,web和手機上的ui測試,使用shell或者python進行腳本化測試,連接資料庫進行sql測試等等,都是手工測試,亦可以實現為自動化以減輕手工工作量。

所以,自動化測試與手工測試,均為業務測試。

在測試能力方面要求是一致的,即

業務理解力

測試設計能力

而在開發能力方面,則為:

系統架構分析能力,例如對分層的判斷,以確定測試切入的層面(比如從哪一層介面切入)

系統實現的原理與實現,例如你要測試直播,你得會使用標準類庫來實現直播流的推出與播放

測試框架的運用與改造,這就不多說了

自動化測試工程師仍為業務測試,脫離業務則不復存在。換言之,只懂得技術,只會炫耀測試框架,而不懂得一個系統該怎麼測的自動化工程師,會死的很慘。

再說測試開發工程師。

測試開發工程師的名詞,也逐漸被濫用,很多hr或獵頭,甚至候選人認為這是更高級的測試,所以偏好這個崗位。

測試開發工程師,如果要和自動化測試工程師相比來說,他更傾向與對測試框架和平台進行開發,來支持業務測試。

從測試能力來說:

需要理解測試過程和體系

最好有業務測試的基礎,否則做出的框架和平台容易流於表面,而不落地

從開發能力來說:

需要類似於一個開發,進行一個框架的設計和開發,以及一個平台的設計與開發

包含前後端開發,介面設計,資料庫設計,以及迭代維護和性能要求等

換言之,測試開發工程師如果只做框架和平台,那麼他可以業務無關。但也不能浮空。

以上三個崗位,未必在一個公司內都會配有專職測試。例如,可以有製作框架和平台的專職測試開發,而其自動化測試的實現可以完全右移給研發來做。這個據說是google的方式,當然,我沒有親眼見過。


所有的手工測試、自動化測試、測試開發統稱為測試工程師

看到樓主說的以後是希望往技術方向發展

自動化測試算是中級軟體測試工程師:

那麼自動化需要具備的技能如下:

UI自動化:python或java熟悉一門語言,selenium,unittest,htmltestrunner,ddt數據驅動,PO模式,UI自動化框架等。

介面自動化:requests,pytest,allure,jenkins持續集成,介面自動化框架,日誌處理,錯誤截圖等

App自動化:appium,uiautomatar,各種定位,sdk,adb命令等

測試開發:測試開發工程師還需要具備分析測試系統需求的能力,系統質量風險識別能力,要能夠站在測試架構師的高度,識別出測試基礎架構的需求,提出提高效率的方法。

另外,測試開發工程師需要具備非常廣的知識面,因為它不僅需要和開發工程師打交道,還要和CI/CD、運維工程師有緊密的聯繫。除此之外,還要能對測試架構部署、生產架構部署所採用的各種技術非常熟悉。


個人理解:

測試工程師需要掌握一些基礎的東西,比如測試用例、業務、軟體工程、網路、伺服器、中間件、資料庫等的基礎技術

自動化測試需要開發語言加持,也有一些是使用測試開發開發好的工具不需要進行編碼

測試開發就需要開發知識,還要有架構知識等


第一、測試工程師主要做功能測試,但是自動化測試也做,不過自動化測試不經常做。

第二、自動化測試工程師,主要是從事自動化測試,寫腳本,寫自動化測試框架,幫助企業全面實現自動,從而節省成本。想從事自動化必須會代碼,不會代碼肯定不行的,網上有免費的資料,例如騰訊課堂上面搜索自動化測試必備代碼,學完之後,就可以學習例如selenium,appium等這樣的工具了。

第三、測試開發工程師是測試裡面的高端職位,有兩個特點,1)能寫代碼測試代碼。2)可以根據企業項目特點自己寫測試工具進行測試。


首先要恭喜你,不滿足於現狀,勇於往自動化測試或者測試開發方向發展,能夠把自身工作的天花板提的更高

我本人正是從手工測試,到自動化測試,再步入測試開發的,所以結合我自己的實踐經驗,給你指一條可能用得上的轉崗之路

一,建議你了解一下 Windows 批處理怎麼使用,從在團隊中做一個自動化腳本開始

測試工程師多是在 Windows 系統中辦公,批處理是一種非常簡單的腳本語言,也是最容易實現自動化的

我不太清楚你工作的業務是什麼,如果能提供一下的話更有針對性。拿 Android 舉例好了,測試工程師需要經常跟 adb 打交道,無論是抓 logcat,還是執行一些 adb shell 命令,通過上網找現成的東西,或者你學習批處理後自己做一個工具,將你們團隊里經常使用的 adb 功能封裝起來,分享給大家使用,相信我,這一步之後大家對你的印象就會發生改變

二,還是根據你的業務,從 UI 自動化工具開始學習,但此時需要同步學習編程語言了

UI 自動化工具,移動端常用的是 Appium,Web端常用的是 Selenium

它們都支持多種語言,比如有耳熟能詳的 Python,Java

如果你的編程語言零基礎,那麼就學習 Python 吧,入門非常容易

當你能基於上述框架寫出一些簡單的 UI 自動化交互程序後,就把你們業務中簡單的 case 進行自動化實現,並在自己日常的工作中運行它們去優化自己的測試任務

同時嘗試梳理出你們業務中一些簡單模塊下可以實現自動化的用例,少的話自己全部實現一遍,然後可以去找 Leader 提自動化的需求和設想

三,鞏固你的 UI 自動化能力,至少完成一個完整項目的自動化測試實現

這一階段,鞏固你的學習成果和項目經驗,便於你內部轉崗或者跳槽到自動化測試

四,做分享

如果你準備好了,那麼建議你在測試團隊內部(最好能邀請到開發團隊的人)做一次關於當前業務中自動化實施的經驗分享

相信我,當年我順利轉入測試開發,靠的就是一次經驗分享,被測開老大相中了(捂臉~)

五,關於自動化測試和測試開發

事實上自動化測試更偏重於使用現有的自動化技術方案,工具,去實現自動化測試用例,執行用例這樣的工作,本質上在於「用」

測試開發偏重於提供自動化解決方案,工具,偏重於「造」

自動化測試對業務的熟悉程度要求更高,要更加善於運用工具去解決自動化問題

測試開發對技術,編碼要求更高,能夠根據自動化測試提的需求去開發測試平台,工具

BUT,有的公司不會區分得這麼細緻,比如阿里,他按測試開發去招人,但需要其既能開發測試平台,也能夠具備測試思維去做一些測試的事

有關測試開發的更多話題,我在公號中有寫到,歡迎關註:henryWoo


首先,說說測試工程師,這個我認為就是手工測試。

1.需要了解測試的基本理論知識,測試流程等。

2.需要掌握簡單資料庫知識。增刪改查。

3.需要知道使用不同的工具提交bug色流程。

4.要學會和開發溝通的能力,這點至關重要。

5.需要會寫測試用例。

6.需要會寫測試報告。

自動化測試工程師需要掌握的技能

1.代碼能力,不管是java還是Python。

2.如果是基於web端的,需要會元素定位的8種方法。

測試開發需要掌握的技能

1.硬實力也是代碼能力。

2.會寫測試框架的能力,也就是自主研發可以給測試使用的工具。

希望能夠幫到你,謝謝。


我的建議是能走別的路就走別的路

高級測試成為技術專家公司級認可的人物基本沒有,即使在國內華為,也基本沒有,或者就是沒有

轉崗是必然的


推薦閱讀:
相关文章