天天看點

功能測試如何擺脫現狀自動化測試工程師進階之路及測試開發的看法

作者:阿裡自動化測試君

一:測試開發的看法

前言

  • 在一線大廠,沒有測試這個崗位,隻有測開這個崗位
  • 即使是做業務測試,那麼你的title也是測開
  • 是以想聊一聊測開的看法
  • 但不代表這是正确的看法,僅供參考

還沒來阿裡之前,我對測開的看法

  • 一直以為專職做自動化測試和性能測試是測試這條路的最終歸宿
  • 測試開發,隻是大廠才可能存在的角色
  • 測試平台,少部分公司才會用到的東西,肯定不會成為主流的啦
  • 況且測試平台要會前端還得會後端,你都這麼全棧為什麼不做開發呢
  • 做 UI 自動化、接口自動化直接寫 python 腳本不就好了嘛,做性能測試用 Jmeter 就好了嘛

多數人眼中的測試開發

  • 開發一個測試平台,就要包攬前後端
  • 至少我一開始也是這樣認為的
  • 前端要會,後端也要會,測試也得會,感覺就是全能的啊

來了阿裡之後,對測開看法有了轉變

  • 測開才是做測試這條路的最終歸宿,其實不隻是測試吧,包括運維,最終肯定是運維開發,而不是自動化運維(抛開管理層而言)
  • 隻有開發測試平台才是測開的最終選擇嗎?不,不是的
  • 但做出一個平台是最容易展現你身為測開的價值,畢竟你前後端都啃了,能跟開發同學一樣弄一個完整的平台了,晉升那不是妥妥的,現在大部分同學都很敬佩有開源測試平台經驗的人
  • 包括在阿裡,其實之前就有很多人聊過,如果你平時搬磚沒有做一些技術活,那你的晉升之路肯定沒有做純技術的同學順利,因為晉升答辯你可以短時間展示你的技術能力,但是沒有辦法短時間展示你的業務能力或者其他軟實力

阿裡的測開是幹嘛的

  • 其實是分部門的
  • 如果是業務部門,那一般就是業務測試,點點點也不例外哦,當然你可以自己決定是否開發一些工具、腳本來輔助測試
  • 如果是基礎建設部門,那可能就是開發平台啊,或者是一些通用型工具
  • 像我們部門的話,很推崇技術解決問題,是以很多時候會用自動化去解決一些痛點,是以也有很多鍛煉的機會等着我....fighting....

測試平台的好處和不足

好處

  • 接口測試,UI 自動化測試,性能測試均可通過點選頁面解決 =》 降低做自動化測試、性能測試的門檻,提高測試效率、測試廣度
  • 平台有頁面,頁面友好能提高人幹活的積極性,小白或者新同學見到也願意去做和學習 =》 提高個人的主觀能動性
  • 使用平台代表團隊共享,資料共享,項目共享,基礎弱的同學可以看到大神同學寫的東西 =》提高團隊的分享氛圍,促進不同技術能力的同學互相學習,當然前提要肯去學
  • 資料共享意味着一切皆可溯源,比如有人删庫跑路,删資料跑路,那對應的操作人記錄肯定能看到 =》提高項目的穩定性
  • 資料私有化,這個私有化指的是,項目所有資料都可以儲存在自己公司伺服器 =》 提高項目的安全性,不過大部分開源項目應該都支援私有化部署
  • 做出測試平台的同學更容易得到團隊中的認可 =》 提高個人的影響力和晉升成功率
  • ....
  • 平台肯定有蠻多的優點的

不足

其實有些好處就是不足

  • 降低了高階測試的門檻,是以會讓測試同學的技術能力更加兩極分化,做技術的可能會越做越好,但本身沒有代碼能力的測試同學可能隻能通過平台來做接口測試、自動化測試,缺少了自己獨立鍛煉實戰的機會
  • 測試平台化是趨勢,是以未來一定會有更多的企業效仿大廠招測試開發,那轉行做測試的門檻也會更加高,未來可能會像面開發一樣面測試(大廠已經是了);不過這個應該是算優勢也算劣勢吧,提高測試的競争力可以提高測試的地位,隻不過會淘汰很多隻會手工測試不願學習代碼的同學
  • 做測試平台,不僅需要有很強的測試能力,因為你都不了解測試需要什麼,怎麼開發出一個好的平台呢?然後還得需要有前後端的知識,可能還得加上運維知識,是以你得會很多東西,這就變成做測試平台的門檻反而很高,以至于有些開發同學來轉行做測開
  • 做成一個可用性、穩定性、易用性都很好的測試平台,所需要的時間成本、人力成本是巨大的,因為這相當于開發一個完整的新項目,是以它的生命周期會很長,如何說服你的老闆同意去做是一個問題,這就不僅需要你的技術能力能說服老闆,更需要老闆有魄力支援你
  • 假設你的技術能力low一點,那麼它可能就無法在多個團隊中展開使用,這樣會導緻投入産出比非常低,即使用起來,可能後期維護成本也很高
  • ....
  • 其實平台也有很多不足

我對測試平台的看法

  • 它會是趨勢,但它很難每個公司都能獨立完成一個測試平台
  • 前面有說過,完成測試平台所需要的能力五花八門,是以當你會這麼多技能的時候,你可能就想要很高的薪資,但從國内對測試的态度來看,它的工資肯定會比開發低一層(大廠無視),這就變成一個惡性循環,公司想要低成本勞動力幹測開的活,你作為測開想要拿到更高的薪資
  • 是以網上有很多開源的測試平台,一般沒能力開發平台的公司就會私有化部署,然後再定制化二次開發,這也是一種趨勢,應該不存在銷售測試平台的情況,畢竟開源的都挺好看挺好用的
  • 測試平台很難做到适配所有項目,包括在阿裡其實測試平台特别多,自動化、性能、相容、雲真機,但我所在的部門一個都沒用上,原因有很多種,就不細說了

測試平台是測開必需品嗎?

  • 我認為不是的
  • 測試平台雖然很能展現測開的能力,但不是唯一方式

實際項目中用不到測試平台,有必要學習嗎?

  • 隻要是對自己成長有幫助的,其實都應該學習,隻不過有優先級而已
  • 假設未來你想走測開路線,那麼學習如何開發測試平台也未嘗不可,當然不影響目前工作前提下咯

做測試平台的前提

對個人而言

有一個測試平台項目經曆,可以提高面試通過率和自己的技術能力

對團隊而言

  • 應該是品質效能部,或者基礎建設部來主導,而不是業務測試部門來主導,這應該是一個專職工作,而不是閑下來的時候弄一弄
  • 確定得到老闆的支援
  • 充分調研測試平台的可行性,比如團隊組成,技術選型,可承受的損失範圍,平台使用的部門,等等

心目中的測開都有哪些職責

  • 我的主管跟我聊過,測開并不一定要做測試平台才算測開,一個合格的測開,應該是對自己項目上用到的程式設計語言很熟悉,如同開發一樣熟,甚至要比他們還熟悉
  • 作為測開,可以給開發同學進行 code review,特别是有新開發同學剛入職可能對業務、代碼架構不熟悉,寫的代碼就會亂七八糟,這個時候假如你很熟悉整套代碼,很熟悉這個程式設計語言,那麼你就可以提出優化建議,不要說不可能,我主管就可以,比開發還熟悉程式設計語言;另外還可以寫單元測試,我們的服務端單元測試覆寫率是 70% 左右,是以基本服務端沒啥 bug
  • 測試開發,可以是開發平台,可以是開發工具,可以是編寫腳本,但都有一個最終目的,使用你的開發技能來提高測試效率、測試廣度、深度,用更高的測試覆寫率來保障項目品質
  • 開發工具,可以是二次開發開源架構,比如 RF,可以是二次開發測試工具,比如 Jmeter,二次開發的前提不是為了秀你的技術,而是目前的工具/架構滿足不了你的測試場景,是以你要二次開發,以此來滿足;像我項目中,因為有自研的 rpc 架構,是以需要二次開發 Jmeter 的取樣器,才能正常測試
  • 至于到底要不要開發測試平台,這個隻能看自己團隊了3
  • 二:自動化測試進階之路
  • 軟體測試全職業生涯從零到測開 | ProcessOn免費線上作圖,線上流程圖,線上思維導圖
  • 重點:600G的學習資料,懂的都懂
功能測試如何擺脫現狀自動化測試工程師進階之路及測試開發的看法
功能測試如何擺脫現狀自動化測試工程師進階之路及測試開發的看法

繼續閱讀