尷尬的效能測試崗位——順便聊聊 “點點點”
效能測試工作不尷尬,但是效能測試崗位很尷尬。
從我這裡的講述中,希望你也能看到其他測試工作的影子,希望你對“點點點”不再迷茫不再抑鬱。
自己水平有限,望大家多多批評。
效能測試的工作內容
這方面的資料很多了,我也不是權威,說不全的。
大致流程:
- 和需求提出方溝通要測什麼,測試的目的等,是否真正需要效能測試。討論測試的方案是否可行,比如一個頁面圖片是不是可以過濾掉,單壓一個介面是不是就可以了。
- 確定測試的環境,測試的人都是誰,測試的時間,同時誰來準備測試資料。
- 根據測試工具如Jmeter或者LoadRunner等等確定寫指令碼,調通指令碼。
- 執行指令碼即壓測,同時觀察壓測的現象。壓測中要自己掌握控制壓測的時間和量,時間短了不行,量過大過小都不行。
- 分析壓測的現象,自己能分析最好,自己分析不了就找別人分析,現象是否達標。
- 如果不達標,要定位效能瓶頸問題,這是最考驗技術功力的。
- 將效能瓶頸問題的修復做迴歸測試。一般或者是改程式碼或者是改環境配置。
- 傳送測試報告。
最有含金量的部分
- 第一無疑是分析壓測現象和效能調優,包括環境調優。
- 第二是討論溝通需求,不過往往實操中這一步都很水,主要是因為測試沒啥話語權。
- 第三是寫指令碼和準備資料和準備環境(如果有)。
- 第四是執行指令碼時配置的併發數等引數及其含義。
效能測試報告
實操中,測試報告往往是很水的一個環節。兩種情況討論:
- 系統性能不好還在修改中,這時候不用發測試報告,還沒改好呢發什麼報告浪費大家時間。
- 系統性能好了才需要傳送測試報告,效能都好了啊,其實解釋一下資料就行了。
那麼對測試報告的核心要求很簡單,就是:介面精美權威高大上。
裡面的折線圖重要嗎?已經不重要啦,調優的時候真的重要,但出報告的這個時候這些指標我們已經不頭疼不care了。
裡面的資料結果集重要嗎?重要,所以要醒目。
所以對測試報告,最重要的就是資料結果集展示,就那麼兩行結束,其他都是輔助,來證明測試報告的高大上,來證明效能測試工作的難度和工作量。
所以懂行的無論誰最關心的應該是調優,那些僅僅關心測試報告形式內容的甚至窮追不捨的一般都很low。
前期效能測試需求的溝通
網上去搜這個,肯定是一堆要點並且要有資料計算,比如全天的使用者量是多少,使用者的活躍時間在哪裡,高峰使用者量是多少,二八法則等等。
實際上這些都是很理想化的東西,真正壓測起來肯定會變成:效能越高越好。
這個也是好理解的,誰都想要最好的,同時最後越過最優效能才知道系統瓶頸在哪裡才能調優。
所以,懂行的無論誰最關心的應該是極限壓力測試,容量測試僅僅是附屬品,任何僅僅糾結於容量測試的一般都很low。
同時測試地位的侷限,面對一些明顯是不合理的高要求根本沒有反駁的餘地,答應就是了,等著現實打臉就好了。
其實也沒啥討論計算的地方,總結一下,前期的需求溝通,往往就是知道要測什麼了,告訴開發預期不要太高,就這樣。
例如,我曾經遇到前端每傳入一批新引數就要在資料庫中建立新表,就這種奇葩的架構方案還要高效能,我也是答應而已,坐等現實啪啪打臉。
效能調優的一般內容
效能調優的技術棧
簡單說說效能測試的核心,效能調優包括環境調優。這裡不教你怎麼調優,而是聊聊調優的技術樹。
以Java為例,看看調優要掌握什麼:
- 底層Linux。
- 基本硬體知識,SSD和磁碟,CPU和記憶體知識。
- 虛擬化技術。
- 網路協議,網路基礎。
- 關係型資料庫,NoSQL,佇列,檔案伺服器。
- JVM,即Java語言的特性。
- 執行緒和程序
- 系統架構知識
- 語言演算法
- 公司業務
看到這一堆,你發現了什麼?
- 我根本就沒提測試工具的使用!神聖的Jmeter LoadRunner Locust等等這些哪去了?
- 和開發的技術要求基本一樣,甚至包括部分運維的技術樹,甚至超過開發的技術寬度。
說實話,某些開發的Jmeter用的比測試還666666,難不成技術樹裡我還得寫上IDEA/Eclipse嗎?一個工具而已。
一個性能測試沒有效能調優能力會怎麼樣
簡單暴力的就是沒地位,這種技術水平的地位甚至都不如Jmeter一個軟體。
- 出了問題背鍋肯定有你。
- 得了榮譽大頭肯定沒你。
- 平時交流diss的就是你。
- 要點兒資源特別費勁。
- 學習的態度吧,人家開發忙起來了根本顧不上你。
聊聊測試和開發的關係
以效能測試,效能調優為起點,從工作重合度這個角度聊聊測試和開發的關係。
測試說俗了,就是給開發擦屁股的。
這裡思考下如何擦的都滿意,那塊給你擦,為什麼給你擦(捂臉)。
開發不屑於做的
開發根本瞧不上的,就是這活如果開發自己幹了人家是覺得浪費時間的。
典型的是“點點點”這種工作,還有各種外包測試同學乾的活。
當然“點點點”這種工作也能點出門道,這後面提,這裡領會精神。
開發能做但是沒時間做的
效能測試,部分自動化測試工作屬於此類。
這也說明了,如果你效能優化水平很low,那開發本來沒時間做的讓你給整成不得不做了,能給你好臉色嗎?
一些簡單的自動整合,自動化部署環境,自動化介面測試等,人家開發自己能做只不過交給你了而已。
開發不一定能做好的
測試開發,部分自動化測試,測試架構師。
測試開發各種工具平臺,開發真不瞭解需求啊,而開發能力大家又是平手,那他真沒把握搶測試開發的飯碗。
自動化測試用例程式碼雖然一般,但是用例真心複雜,思維還是要有的,並且很可能存在語言不同,一般做不了。
能督促開發工作的
質量專員,安全測試,白盒測試。
開發之前我就告訴你這麼做有質量風險,你這種架構不安全,得改的這類的。
白盒測試如程式碼覆蓋率的測試,不是說隨便發個報告就可以了,而是真的看到程式碼的缺點。
不過質量專員很虛,這裡不做深入探討。
安全測試我還不夠了解,感覺也稍微虛。
總結
最值錢的其實就是後兩種,越是開發做不了的越值錢。
測試工作如何值錢
全方位的測試用例設計
千萬不要小瞧測試用例的設計,一個登入頁面的測試用例設計甚至能寫出來上百種(舉例而已領會精神)。
而用例設計需要考慮的包括但不限於:
- 安全測試用例
- 效能壓力測試用例
- 相容性測試用例
- 弱環境測試用例
- 特殊功能性測試用例
這需要測試人員對架構,業務,效能,安全,瀏覽器/手機客戶端等等要有一個充足的瞭解。
就算不充足,至少有些方面要有比開發瞭解。
簡單來說,你要測出開發想不到的地方,“點點點”也會值錢。
技術能力強
粗暴的理解,就是,無論什麼時刻,懟開發不帶慫的。
就說效能調優吧,你能直接找出效能瓶頸,甚至以此diss開發水平,指導開發的修改方式,我覺得就不簡單了。
開發對待技術的優勢往往是深度,測試往往是廣度。這個不展開討論了,大家應該有共識。
當然這個需要長時間的積累,技術無止境。
溝通能力強
不多解釋了,測試比開發更需要溝通能力。
業務
你要知道了解開發也掌握不到的業務,比如開發只知其一不知其二的這類。
當然業務很虛,我馬上解釋為什麼。
對測試來說,業務為什麼很虛
並非針對所有的行業,也並非針對所有的測試人。這裡只談談一般情況。
開發流程
一個正常的開發流程,需求的路徑從上到下有:
- 需求提出方
- 產品經理
- 開發
- 測試
很簡單就能看到,測試存在於業務的底層。
談談測試比開發懂業務的可能性
是可能的。
但是想一下,需求是產品經理給開發和測試的,你懟開發,開發說是產品讓這麼幹的,然後你懟產品?
有了業務矛盾,開發會聽測試的還是產品的?
談談測試比產品懂業務的可能性
- 需求本身就是產品自己提的
人家自己創造出來的業務,被你測試給生生懟回去了,可能嗎?
- 需求是來自需求方提的,產品設計的
你測試和需求方溝通過了?你要懟,可能嗎?
業務會因跳槽而拋棄
不解釋了,太虛。
聊回效能測試的尷尬
- 效能測試是開發有能力做但是沒時間做的。
- 效能測試幾乎不涉及業務。
就這兩點,除非效能測試人有特別高超的技術能力,其餘都不會受內部重視。
同時效能測試工作時間是高度集中和高度碎片化的,往往這個崗位在公司內是作為兼職。
最後
效能測試要求高但是往往不值錢,希望大家據我的思考能得到一二。
希望各位對效能測試工作有個認識,同時也能理解什麼樣的測試崗位才有可能值錢。
希望各位“點點點”不再輕易迷茫抑鬱。
同時,薪水和崗位是匹配的,技術能力不能完全決定薪水高低。
這裡也是粗淺的分析思考,技術不能萬能的,但沒有技術是玩不轉的。
需要軟體測試資料的小夥伴,可以來加群:747981058。群內會有不定期的發放免費的資料連結,這些資料都是從各個技術網站蒐集、整理出來的,如果你有好的學習資料可以私聊發我,我會註明出處之後分享給大家。