前言
- 在一線大廠,沒有測試這個崗位,只有測開這個崗位
- 即使是做業務測試,那麼你的title也是測開
- 所以想聊一聊測開的看法
- 但不代表這是正確的看法,僅供參考
還沒來阿里之前,我對測開的看法
- 一直以為專職做自動化測試和效能測試是測試這條路的最終歸宿
- 測試開發,只是大廠才可能存在的角色
- 測試平臺,少部分公司才會用到的東西,肯定不會成為主流的啦
- 況且測試平臺要會前端還得會後端,你都這麼全棧為什麼不做開發呢
- 做 UI 自動化、介面自動化直接寫 python 指令碼不就好了嘛,做效能測試用 Jmeter 就好了嘛
多數人眼中的測試開發
- 開發一個測試平臺,就要包攬前後端
- 至少我一開始也是這樣認為的
- 前端要會,後端也要會,測試也得會,感覺就是全能的啊
來了阿里之後,對測開看法有了轉變
- 測開才是做測試這條路的最終歸宿,其實不只是測試吧,包括運維,最終肯定是運維開發,而不是自動化運維
- 只有開發測試平臺才是測開的最終選擇嗎?不,不是的
- 但做出一個平臺是最容易體現你身為測開的價值,畢竟你前後端都啃了,能跟開發同學一樣弄一個完整的平臺了,晉升那不是妥妥的,現在大部分同學都很敬佩有開源測試平臺經驗的人
- 包括在阿里,其實之前就有很多人聊過,如果你平時搬磚沒有做一些技術活,那你的晉升之路肯定沒有做純技術的同學順利,因為晉升答辯你可以短時間展示你的技術能力,但是沒有辦法短時間展示你的業務能力或者其他軟實力
測試平臺的好處和不足
好處
- 介面測試,UI 自動化測試,效能測試均可通過點選頁面解決 =》 降低做自動化測試、效能測試的門檻,提高測試效率、測試廣度
- 平臺有頁面,頁面友好能提高人幹活的積極性,小白或者新同學見到也願意去做和學習 =》 提高個人的主觀能動性
- 使用平臺代表團隊共享,資料共享,專案共享,基礎弱的同學可以看到大神同學寫的東西 =》提高團隊的分享氛圍,促進不同技術能力的同學互相學習,當然前提要肯去學
- 資料共享意味著一切皆可溯源,比如有人刪庫跑路,刪資料跑路,那對應的操作人記錄肯定能看到 =》提高專案的穩定性
- 資料私有化,這個私有化指的是,專案所有資料都可以儲存在自己公司伺服器 =》 提高專案的安全性,不過大部分開源專案應該都支援私有化部署
- 做出測試平臺的同學更容易得到團隊中的認可 =》 提高個人的影響力和晉升成功率
- ....
- 平臺肯定有蠻多的優點的
不足
其實有些好處就是不足
- 降低了高階測試的門檻,所以會讓測試同學的技術能力更加兩極分化,做技術的可能會越做越好,但本身沒有程式碼能力的測試同學可能只能通過平臺來做介面測試、自動化測試,缺少了自己獨立鍛鍊實戰的機會
- 測試平臺化是趨勢,所以未來一定會有更多的企業效仿大廠招測試開發,那轉行做測試的門檻也會更加高,未來可能會像面開發一樣面測試(大廠已經是了);不過這個應該是算優勢也算劣勢吧,提高測試的競爭力可以提高測試的地位,只不過會淘汰很多隻會手工測試不願學習程式碼的同學
- 做測試平臺,不僅需要有很強的測試能力,因為你都不瞭解測試需要什麼,怎麼開發出一個好的平臺呢?然後還得需要有前後端的知識,可能還得加上運維知識,所以你得會很多東西,這就變成做測試平臺的門檻反而很高,以至於有些開發同學來轉行做測開
- 做成一個可用性、穩定性、易用性都很好的測試平臺,所需要的時間成本、人力成本是巨大的,因為這相當於開發一個完整的新專案,所以它的生命週期會很長,如何說服你的老闆同意去做是一個問題,這就不僅需要你的技術能力能說服老闆,更需要老闆有魄力支援你
- 假設你的技術能力low一點,那麼它可能就無法在多個團隊中展開使用,這樣會導致投入產出比非常低,即使用起來,可能後期維護成本也很高
- ....
- 其實平臺也有很多不足
我對測試平臺的看法
- 它會是趨勢,但它很難每個公司都能獨立完成一個測試平臺
- 前面有說過,完成測試平臺所需要的能力五花八門,所以當你會這麼多技能的時候,你可能就想要很高的薪資,但從國內對測試的態度來看,它的工資肯定會比開發低一層(大廠無視),這就變成一個惡性迴圈,公司想要低成本勞動力幹測開的活,你作為測開想要拿到更高的薪資
- 所以網上有很多開源的測試平臺,一般沒能力開發平臺的公司就會私有化部署,然後再定製化二次開發,這也是一種趨勢,應該不存在銷售測試平臺的情況,畢竟開源的都挺好看挺好用的
- 測試平臺很難做到適配所有專案,包括在阿里其實測試平臺特別多,自動化、效能、相容、雲真機,但我所在的部門一個都沒用上,原因有很多種,就不細說了
測試平臺是測開必需品嗎?
- 我認為不是的
- 測試平臺雖然很能體現測開的能力,但不是唯一方式
實際專案中用不到測試平臺,有必要學習嗎?
- 只要是對自己成長有幫助的,其實都應該學習,只不過有優先順序而已
- 假設未來你想走測開路線,那麼學習如何開發測試平臺也未嘗不可,當然不影響當前工作前提下咯
做測試平臺的前提
對個人而言
有一個測試平臺專案經歷,可以提高面試通過率和自己的技術能力
對團隊而言
- 應該是質量效能部,或者基礎建設部來主導,而不是業務測試部門來主導,這應該是一個專職工作,而不是閒下來的時候弄一弄
- 確保得到老闆的支援
- 充分調研測試平臺的可行性,比如團隊組成,技術選型,可承受的損失範圍,平臺使用的部門,等等
心目中的測開都有哪些職責
- 我的主管跟我聊過,測開並不一定要做測試平臺才算測開,一個合格的測開,應該是對自己專案上用到的程式語言很熟悉,如同開發一樣熟,甚至要比他們還熟悉
- 作為測開,可以給開發同學進行 code review,特別是有新開發同學剛入職可能對業務、程式碼架構不熟悉,寫的程式碼就會亂七八糟,這個時候假如你很熟悉整套程式碼,很熟悉這個程式語言,那麼你就可以提出優化建議,不要說不可能,我主管就可以,比開發還熟悉程式語言;另外還可以寫單元測試,我們的服務端單元測試覆蓋率是 70% 左右,所以基本服務端沒啥 bug
- 測試開發,可以是開發平臺,可以是開發工具,可以是編寫指令碼,但都有一個最終目的,使用你的開發技能來提高測試效率、測試廣度、深度,用更高的測試覆蓋率來保障專案質量
- 開發工具,可以是二次開發開源框架,比如 RF,可以是二次開發測試工具,比如 Jmeter,二次開發的前提不是為了秀你的技術,而是當前的工具/框架滿足不了你的測試場景,所以你要二次開發,以此來滿足;像我專案中,因為有自研的 rpc 框架,所以需要二次開發 Jmeter 的取樣器,才能正常測試
- 至於到底要不要開發測試平臺,這個只能看自己團隊了