從業這幾年過程中,有過很多次面試,印象中面試官問的最多的就是效能和自動化。
其實問這個問題是非常有趣的乙個事情,因為在我的從業過程中遇到過兩種情況。
第一種情況是你說你不會,然後公司要了你,你懷著喜悅的心情去上班,想著終於可以跟大牛學習自動化了。
然後入職後發現,我擦?這些測試人員咋全是點點點,包括面試我那個?
第二種情況是你說你會,公司要了你,你懷著喜悅的心情去上班,想著終於遇到乙個完善的測試團隊了,終於擺脫點點點了。
然後入職發現,我擦?專案時間這麼緊,寫個毛線自動化,然後你又開始了點點點。
我叫皮皮,是一名軟體測試工程師。上面的經歷是我真實的經歷。
當然除了上面的兩種情況,還有其他很多種情況。我們來想一下,為什麼面試官會問自動化和效能?
筆者認為,情況無外乎有三:
第一是直接判斷你的技術能力第;
第二是根據你的技術能力去給出薪資;
第三是考量團隊建設。
那麼為什麼你會了自動化,卻還是讓你點點點?筆者認為最重要的原因就是時間。
乙個小的專案,從立項到測試結束大概只有30-35天時間。這期間測試人員需要看需求文件,需要根據需求文件提出改善性建議,需要根據需求文件或產品原型或ui設計去編寫測試用例等等。
而留給測試時間往往只有一周左右。手工測試第一天往往就可以跑完所有冒煙,但是對於自動化工程師來說,自動化用例設計才剛剛開始(注意我說的是ui自動化不是介面自動化),編寫用例這段期間,頁面元素不變還好,一旦發生變化,縱使你封裝的再好,還是有需要改動的**。
所以對於時間成本和工作效率而言,手工測試絕對是第一選擇。
等專案穩定之後,你的耳邊就會響起,那個小張呀,最近不忙,你看是不是要把自動化搞起來了?然後你開始編寫起了自動化測試用例。
在筆者看來,這個時候編寫自動化用例更加得心應手。原因很簡單:
第一是專案基本沒有bug,方便寫斷言(斷言類似於手工測試裡的預期結果);
第二你在做手工測試的時候已經寫完了所有用例,只要你手工測試用例寫的足夠嚴謹,自動化測試用例完全可以根據手工測試去實現。
自動化用例的完成對產品功能的迭代可以說的上是如借東風。如果不是新增新功能而是把以前的功能做優化....
哈哈哈哈,當我沒說,我遇到過好幾次產品迭代後把原來功能換了個樣。
當然如果是增加了新功能,這樣每次迭代進行冒煙測試的時候,你的時間可以用來做兩件事情;
一是利用自動化指令碼去驗證之前功能是否會因為新**合入出現問題;
二是利用手工去對新功能測試。
粗略算了一下,假設半月迭代一次,每次迭代需要5輪測試,人工回歸一次需要5個小時,最終確定一年下來,自動化為你省去600個小時,也就是75個工作日,同時也省去了測試舊功能要吐的煩惱以及人疲憊下產生的錯誤。
我們依舊回到上面的問題,為什麼面試官會問自動化和效能?自動化已經聊過。下面來說說效能測試。
根據2023年部分軟體測試從業者調查顯示,80%的人從事手工功能測試,31%從事效能測試工作,自動化測試和介面測試皆為27%。(加起來不是100%的原因應該是身兼多職)效能測試工作人員比自動化佔比還高!
我們可以分析一下原因,自動化本質還是黑盒測試!因為所有的操作基本都是模擬使用者行為,雖然可能通過指令碼去模擬多個使用者,但是遠遠無法達到效能測試的要求。
因為ui自動化除了增加頁面渲染時間,你的公司頻寬和伺服器頻寬也都會是不確定因素。
如果**、天貓、京東、12306等缺了效能測試,或許對於絕大多數人類都是乙個災難。我擦?我好不容易等到雙11,你居然告訴我**頁面打不開....
提到了功能測試、ui自動化測試、效能測試,這裡不得不多說一句,介面自動化測試。
介面自動化和ui自動化設計基本一致,所以不做過多贅述,一般來說介面自動化先於功能測試和ui自動化測試。做好介面自動化,對於功能測試會節約很多時間,在一般小型企業,介面自動化測試基本可以滿足效能測試的要求。
講到這裡,或許我們可以做個總結。手工測試滿足專案功能質量,自動化測試提高專案迭代速度,效能測試為了滿足同一時間內使用者體驗。
說到這裡,或許很多人已經看的不耐煩,因為我說的大多數人都知道。我也想過不寫這些,但是我寫這些的原因是為了以後做鋪墊。
我想通過我的所學去整理一些系列,如ui自動化的實現,介面自動化的實現,部分場景下效能測試的實現。
這些系列我將會以初學者為出發點去編寫。當然這些知識網上已經有很多,我不一定比他們寫的好,但是我會用心去寫,也算是對自己所學的總結。
這些系列我將盡可能寫的快些,因為冬天快來了,凍手.....
我們為什麼要做滲透測試
企業在保護關鍵基礎設施的安全計畫中投入了數百萬美元,來找出防護盔甲的縫隙,防止敏感資料外洩。滲透測試是指能夠識別出這些安全計畫中的系統弱點與不足之處的一種最為有效的技術方式。通過嘗試挫敗安全控制實施並繞開安全防禦機制,滲透測試師能夠找出攻擊者可能攻陷企業安全計畫 並對企業帶來嚴重破壞後果的方法。是一...
我們為什麼要做介面測試
說起介面在不同領域有不同的解釋,在計算機程式設計中介面也分為很多,這裡我們定義的介面是指應用程式程式設計介面,也就是所說的api,偏官方的解釋為一些預先定義的函式,目的是提 用程式與開發人員基於某軟體或硬體得以訪問一組例程的能力,而又無需訪問原始碼,或理解內部工作機制的細節。而對於測試人員來說就是已...
原創 為什麼要自動化測試?
最近在做乙個專案,需要將原有的手工用例實現自動化。面對這項任務,回想起我剛進公司那會,部門的軟體測試基本都是自動化的,全部採用通訊領域測試語言ttcn實現,當時面臨的工作就是開始學習ttcn指令碼,繼而開始編寫自動化指令碼,全然沒有對自己問這麼個問題,為什麼要自動化測試?經過幾年的測試,對這個問題已...