開發、測試開發和測試的區別

突然發現好像挺多人想投測開和測試的,很多人面試的時候也會被問到這幾個職位的區別,然後有測試經歷或者說有系統學習過測試的人蠻少的,樓主去年投這個崗位的時候也很迷茫,中間在牛客網請教過好幾位大佬and前輩,這裏做一個小小的總結(主要內容來自於和大佬們的談話以及《How Google Test Software》這本書,如果有不準確的地方大家可以評論談論),也希望和我當時一樣迷茫的朋友們能有所收穫。

首先明確一下簡稱吧,畢竟這幾個名字太像了,中文容易搞混。軟件開發工程師(SWE),測試開發工程師(SWT),測試工程師(TE)

1、SWE也需要做測試的工作,SWE需要編寫測試驅動的設計、單元測試、參與構建各種大小規模的測試等(簡單說開發其實需要對自己的代碼負責,並不是很多人理解的代碼寫出來扔給SWT和TE去測)

2、SWT也是一個開發者角色,只是工作重心在可測試性和通用測試基礎框架上。(SWT也要會寫代碼,代碼要求並不比開發低,他們寫代碼的聚焦點是測試,PS:以字節爲例,大部分的測開是技術序列,代碼要求和開發一致,薪資也一致(當時宣講會聽的))

3、SWE和SWT不是敵人(不是一個生產BUG,一個挑刺的),更多是合作伙伴,SET寫代碼的目的是可以讓SWE測試自己的功能。

4、TE把用戶放在第一位來思考,組織整體質量的實踐,分析解釋測試運行結果,驅動測試執行,構建端到端的自動化測試。(SWT和TE工作有很多交織,SWT更多是要構建測試框架,編寫測試工具。TE更多是腳本,測試用例,以及點點點........,以字節爲例,TE對代碼的要求會相對較低,但是也需要寫代碼(宣講會聽的))

5、國內很多大廠的測開其實做的是測試的活,也要很多測開乾的就是開發的活,這些都取決於你的組,不是一概而論的。

6、SWT和TE對於知識廣度的要求會更高,SWE你也許只需要在一個角度仔細鑽研就可以了,SWT和TE則需要你是“萬能博士”,正如推薦的那本書的作者所說,招一個好的SWT和TE往往比SWE還難

7、SWT的天花板也許相對SWE會低(畢竟國內的事實是SWT和TE做主程的很少),但是SWT越來越受重視是不爭的事實,同時SWT的平均待遇不低

最後選擇SWT還是TE引用推薦的那本書裏的幾個標準(節選)(這也是交流的幾個大佬也反覆的提到是否真的喜歡測試類的工作):

你可能是一個SET,如果你有以下的特徵:

a.你編程時,會內疚的想到還有很多單元測試用例沒有完成。隨後,你又會考慮各種生成測試代碼和驗證的方法,而不是手工 編寫每個單元測試用例

b.看到編譯器警告時會焦慮不安

c.當貝要求測試一個產品時,你會打開源碼,開始思考需要模擬的東西

d.你心目中領導力是:建立一個偉大的底層單元測試框架,供所有人來使用,或者在測試服務器上每天數百萬次的運行

e.當被問道產品是否可以上線時,你可能會說:所有的測試都通過了

你可能是一個TE,如果你有以下的特徵:

a.你能在已有的代碼段中快速找到錯誤,迅速理解軟件失效的模式,但是並不關心從頭編寫代碼或者做修改

b.你更願意到一些開源網站上去閱讀別人的源碼

c.在現實世界裏你很願意和其他人交流

d.你心中的領導力是:扶助其他工程師的創意,用更高數量級規模的應用場景來挑戰他們的創意

e.當被問道產品是否可以上線時,你可能會說:我覺得可以了

 

綜上(大概率是這樣的,大家別鑽牛角尖,沒有優劣之說):

代碼能力要求:SWE=SWT>TE

知識廣度要求:SWT,TE>SWE

溝通能力要求:TE>SWT>SWE

知識深度要求:SWE>SWT>TE

薪資待遇:SWE=SWT>TE(純粹意義的開發,測開和測試,當然國內很多公司自己都搞不清這幾個Title區別)

 

大家有時間想詳細瞭解或者想從事這個行業的還是希望大家深入閱讀一下《How Google Test Software》,同時借貼再次感謝曾經回答我問題的幾位大佬和前輩!

同時附自己去年字節測試開發的面經,大家可以參考一下測試開發的面試難度和流程:

https://www.nowcoder.com/discuss/205655?source_id=profile_create&channel=666

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章