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