軟件測試,2019.2.15中移物聯網面試心路歷程。
做了一兩年的功能測試後,突發發現能勝任全部工作,在已有的公司已經得不到任何技能方面的提升後。準備跳槽,說一下跳槽面試遇到的問題吧。
面試中軟國際的外包,中移物聯網。就我本人來說我是不願意進外包的。但是好久沒有面試工作了,去試試水。
2019年2月15日上午十點的面試時間,為了這次面試我提前進行一番準備,包含WEB功能測試的13個測試點
包含:1 輸入框
2 搜索測試
3 添加修改測試
4刪除測試
5登錄和註冊模塊測試
6圖片上傳測試
7搜索頁面測試
8頁面易用性測試
9 關於兼容測試
10 網頁的鏈接測試
11 業務流程測試
12 安全測試
13 網頁測試中應該註意的其他問題
上面就是我面試前準備的面試的測試點,當然測試點還包含對應的用例設計方法,測試方法之類的。
也準備了APP測試的具體流程方面:
APP測試其實總的來說包含11個步驟
1 功能測試
2 性能測試
3兼容測試
4安全測試
5易用性測試
6 交叉事件
7 更新升級
8 安裝卸載
10 接口測試
11 容量測試
如上的測試流程我均是都有所準備的,接下來我準備的性能測試的準備工作
性能測試如果看文章講解實在太多了,我歸納了一下應該包含如下一些方法:
7個測試步驟:
1 確定性能需求
2 確定通過標準
3 設計測試用例
4 搭建測試環境
5 執行測試,並 監控
6分析測試結果,調優
7測試報告
日常流程應該是包含五部:
1 基準測試、
2 日常壓力測試
3 峰值壓力測試
4 容量測試
5 穩定性測試
如前文所述:對於對應的測試點或者流程步驟對應的知識都有惡補。
緊接著準備的內容是:關於WEB自動化和APP自動化方面的內容;
實在的來說相對於性能,我決定自動化是比較不容易的,原因有兩點
1 來自於編程語音方面的。
2 來自於你對一些處理異常的思路
我準備的關於APP自動化測試方面的內容,appium,selenium全套環境搭建,這些環境都是基於Java的。
其實自動化看似復雜其實流程挺簡單的:
仔細想想就包括如下3點:
1 元素定位
2 元素操作
3 頁面切換
看似非常簡單的步驟,你要把它做好實在不容易!如前文說的來自於語音的問題。
接下來準備的是各類測試文檔的編寫。
包含測試計劃,測試方案,測試用例,測試報告他們的測試點分別是:11,8,17,10
什麽是11,8,17,10?他是指的關註的元素:
這麽給你說吧測試計劃包含11個類別:
分別是 1 封面,2修改履歷,3目錄,4概述,5組織形式,6需求分析跟蹤矩陣,7測試通過失敗標準,8測試掛起恢復條件,9測試階段人力分布計劃,10測試交付物,11本方案的審批意見。
下面是測試方案應該包含的內容
1 封面,2修改履歷,3目錄,4概述,5測試環境,6測試策略,7測試風險評估與預防措施,8本方法的審批意見
下面是測試用例的17個維度
1功能模塊,2子模塊,3編號,4用例名稱,5優先級,6預制條件,7測試數據,8操作步驟,9 預期結果,10實際結果,11完成情況,12用例編寫人,13用例編寫時間,14用例編寫方法,15用例執行人,16用例執行時間,17備註
談到這裏我們是不是也應該關註一下測試報告,它包含10維度:
1 封面,2修改履歷,3目錄,4概述,5BUG記錄,6測試BUG分析,7測試用例執行情況,8遺留問題,9評估結果,10改進建議。
如上準備之余還關註了:TCP7層協議
1 物理層,2鏈路層,3網絡層,4傳輸層,5會話層,6表示層,7應用層
談到TCP不學一下IP的四層是不行的
1 網絡傳輸層,2Internet層,3傳輸層,4應用側,TCP/IP之間的對應關系要搞清楚。
後面我關註的TCP建立連接的3次握手
1客服端發送SYN報文,並指發送序號為X SYN=1,seq=x
2 到服務端,服務端接到這個請求後,服務端發送SYN+ACK報文,並指發送序號為Y, 在確認序號為X+1 SYN=1,ACK=x+1,seq=y;
3客服端接到服務單發來的請求後;發送ack報文,並指發送序號為z,在確認序號為Y+1,ACK=Y+1,SEQ=Z傳輸到服務端,至此連接建立。
由於TCP是全雙工的,斷開需要4次揮手才能斷開
1客服端發送FIN+ack報文,並指發送序號為X FIN=1,ACK=1,seq=x,ack=y
2 服務端發送FIN+ACK報文,並指發送序號為Y,確認序號為X+1 FIN=1,ACK=1,seq=y,ack=x+1
服務端發送ACK報文,並指發送序號為Z,在確認序號為x+1 ACK=1,seq=z,ack=X+1
客服端發送ACK報文,並指發送序號為x+1.在確認序號為y+1 ACK=1,seq=x=1,ack=y+1至斷開連接。
你以為上面的知識復習完了就完了?太天真
Linux,操作系統的各類命令必須掌握,MYSQL的掌握情況怎麽樣?Mysql新建表,UPdate你會嗎?
前面一大攬子就是我所準備的面試,接下來是我前文提到的面試來了:
來到光電園,中移物聯網這個公司,它就是一棟樓,去前臺說面試,人家拿起表格找半天沒找到我,立刻反應過來我是外包,從這裏開始就可以看出來,外包沒有任何歸屬感。
插一句,當時正兒八經的去面試中移物聯的,基本都是重慶大學,或者四川大學的同學,沒有985 211這家公司不得要你的。除非你像我一樣是通過外包渠道面試。
打電話,並且經過保安確認過後,要我到12樓,好像叫智能連接部,電梯到這個樓層的按鈕是按不動的,智能到11樓,13樓的按鈕也按不動,具體是什麽原因,只能是內部人員知道。
忘記說了,這是重慶的中移物聯網。
饒了半天爬樓梯到了12樓,一個小姐姐帶我去面試,到了辦公室,前面看到的是像網吧一樣的一排排的電腦,面試的地方還要一大堆爛七八糟的電腦鍵盤。左側找了兩個年輕人面試的我。等了一會。
當然我們外包面試時不能進入小玻璃隔間裏面詳談的喲,在次說一下外包沒有任何歸屬感,第二次感覺到。
整個面試感覺非常不專業,按照你提供的項目問一下,主要談的是性能測試和自動化測試。
前面談得很順利,談到JMeter做性能測試的時候,因為我說了一句,JMete|做性能測試,我們沒看結果樹,這個口誤,導致這個問題一個面試官糾結起碼二十分鐘!
因為之前我們做性能主要是用loadrunner做的,比較全面,包含容量測試,壓力測試,並非測試,結果導出分析,容量拐點之類的圖標非常容易看出來。
面試官問我:你不要結果數樹,你怎麽判定測試結果達到預期。當時緊張沒說了,當我們用JMete做測試的時候,可以添加一個Eexcel看運行的結果,也可以在斷言裏面添加一個summerreport的報告是可以看到的。當時沒想到。糾結半天後面。
年輕的面試官又問了怎麽做的自動化,我談得很好。差不多十多分鐘。
後面胖一點的面試官問一個問題,當我們的自動化測試,比如測試到下載百分之90卡住了,你如何解決這個問題,並且說明這個問題時自動化裏面經常遇到的,問我怎麽調試。
對於這個問題,我回答得很不好,當時回答的是,檢查定位的下載元素,元素定位的後臺路徑,和服務端存放位置等方面。但是明顯沒有達到面試官的需求。
如上兩個問題時我此次面試失敗的兩個點。
奔波在找工作的路上,一致在努力。其實看過其他人的面試經驗,發現了我未來軟件測試的方向:
1 來自於語音方面的問題: Java的垃圾回收機制、內類的幾種方式、堆和棧區別 在寫自動化代碼中,用到了哪些設計模式? 最近讀過的關於軟件測試的書,文章?有哪些給你留下了比較深的印象? 我發現自己對測試的理解還是不深,對Java中的很多概念還是比較模糊。
2 Java: HashMap與HashTable的區別 Java: 對抽象類與接口的理解 設計模式:如何實現線程安全的單例模式 設計模式:監聽者模式 算法題:判斷一個鏈表是否有環 算法題:字符串左旋 算法題:二叉樹中,兩個節點間的最大路徑。
3 自動化框架的實現,為什麽這麽做? 自動化過程中遇到的難點,困難? 面向對象的特性,簡單闡述這些特性帶來的優勢 接口與抽象類的區別 異常類處理機制 反射機制,在實際寫代碼中應用 final,finally,finalize的區別 有沒有用過spring框架 測試用例設計題:就linux下的CP命令設計測試用例。 如果讓你設計一些log監控系統,你會從哪些方面考慮?
4“自動化框架,關鍵字實現的Java代碼總共有多少行”,“Python程序共有多少個module”,“兩個Linux系統之間如何傳文件” 。
5自動化框架、流程。
6自動化測試執行時間,容錯處理機制 Robot Framework 框架的優缺點 自動化測試下一步的有哪些可以提高的地方 Java的多態機制 平日工作是如何設計測試用例,講解下目前所測產品的一個模塊的測試用例設計策略 在整個項目周期中,測試要做哪些事情
7 C++和Java對內存的操作有何區別?Java的垃圾回收機制為什麽不能避免內存泄露問題? 熟悉哪些網絡協議? 不同網段的兩臺機器是如何通信的?
如上7個點事完善個人經驗的方向。
最後總的來說,不推薦外包公司幹活!個人觀點不喜勿噴。
軟件測試,2019.2.15中移物聯網面試心路歷程。