三四月份,正是挺多公司開放招聘的時候,個人經歷了一些大廠或小廠的面試也總結了一些信息,羅列一下權當拋磚引玉,希望能夠稍微幫到一些準備或者正在找工作的朋友。
前期準備:
關於投簡歷
需要意識到:一旦開始投簡歷,就是正式的開始找工作期了,你可能在投簡歷之後,時刻都能收到公司的面試邀請和電面邀請。所以,在開始投簡歷之前,就應該做一些基本知識的準備,避免倉促的接到電面和面試,因為沒有表現好錯過了好公司的機會
面試的有些問題是需要臨時突擊背誦加強的,因為甚至日常工作涉及不到,涉及面也比較廣,建議還是要提前做三到四個月的準備,如果是在職狀態的話,這個時間其實並不是特別充裕,所以給自己做個計劃時間表,選擇一個開始投簡歷的合適時間。
設置個人的目標
確認自己的目標,自己有意向的公司以及可以接受的公司類型,針對性的做準備;不要海投,尤其對於已經工作一段時間的人,海投會導致你收到一些沒有必要的電話。
當然目標也不一定是哪個具體的公司,所以要分析清楚自己的想法:關於薪資範圍,工作強度、公司規模,行業方向,將來的職業發展等,這些也可以在面試過程中逐漸清晰,你可能在這些元素裡需要接受一些東西放棄一些東西,要清楚完美的工作的是不存在的,大部分人裡只能從自己能力範圍裡選擇一個相對好的,當然能力越強,可選範圍就越大
總結提煉自己的經歷
你要審視一下自己的過去的工作,了解自己的優勢在哪裡,了解哪些是你對項目對公司做出的比較大的貢獻,哪些項目值得一說,面試時有理有據說清楚自己的優勢。
總結一下自己的工作優點,基於工作事實去訴說優點,更加使人可信。
裸辭or騎驢找馬?
不到萬不得已不建議裸辭,主要原因是對於你找的下一份工作有影響,從情緒上說,無工作狀態下,人的焦慮感很容易增加,陷入自我懷疑,影響個人精神面貌進而影響面試狀態,從而可能最後倉促定一個工作,另外,對於裸辭的人,談薪的時候公司容易壓價。
建議還是找準幾個自己有意向的單位,集中幾天請假面試,目前很多公司還是能夠一下午走完全部面試流程的。
技術類準備
目前對於招測試來說,知識覆蓋面比較廣,以下做列舉
建議在面試之前記一下,不要輕視這些基本理論,我之前看到一些人去面試,連基本的網絡協議都答不上來,哪怕可能個人能力技術比較強,但是在這種題目上被減分實在沒必要
1.網絡基礎知識
TCP/IP協議四個層次組成,以及每個層的常用協議
OSI七層模型
TCP協議三次握手
TCP協議四次揮手
TCP和UDP的區別
HTTP和HTTPS的區別
一次完整的HTTP請求過程(即瀏覽器輸入url到看到網頁過程會發生什麼)
HTTP不同的狀態碼的代表意義
HTTP的請求方法有哪些,作用是什麼
HTTP 請求方法GET 和 POST的區別
2、測試工具相關
以Charles為例
Charles的工作原理是什麼
Charles如何抓Https網頁,IOS需要特殊注意些什麼
如何設置弱網(弱網速度具體設置值)
如何設置斷點,修改接口數據
如何指定網絡請求重定向到本地
3、常用ADB指令
adb devices 查看連接計算機的設備
adb install <apkfile> 安裝apk
adb install -r<apkfile> 覆蓋安裝
adb install -s <apkfile>把apk安裝到sd卡
adb uninstall <packagename> 卸載APK
adb uninstall -k <packagename> 卸載app但保留數據和緩存文件
adb logcat 查看log
adb logcat -c 清空日誌
adb logcat *:E >D:\log.txt 輸出到某文件
adb logcat ActivityManager:I *:s 查看應用包名
4、常用Linux指令
cd命令:切換到某個目錄
ls命令:列出當前目錄的所有文件、文件夾
pwd命令:列出當前目錄的路徑
cp命令:複製
mv命令:剪切
grep命令:管道
find命令:查找
rm命令:刪除
ps命令:查看進程
kill命令:殺掉某個進程
cat命令:查看某文件
tar命令:打包
chmod命令:賦權限
chown命令:改變文件的所有者
vim命令:文本編輯
5、SQL
基本的增刪改查語句,對於select語句考察多一些
子查詢
多表聯合查詢(join on)
group by 與 having基於聚合函數的使用
去重,排序,模糊查詢
MySQL中的join有幾種有什麼區別
延伸:索引和視圖
列舉幾個常用的關係型資料庫和非關係型資料庫
(以上建議做題熟悉,leetcode或者搜索一些題目,面試考察方式一般也是面試官口述一個表,讓搜索某種結果,所以要熟悉這種模式,而不是只是記憶語法)
6、移動端測試的基礎知識
目前各個公司的測試工程師定義可能不一樣,有的是全部涉及,有的是只做移動端,或者只是後臺接口測試開發,如果個人發展方向以及找工作更多的是移動端測試方向,那麼移動端的基礎知識是必須要記的
安卓系統四層架構
安卓四大組件
什麼是安卓activity,activity的生命周期
首頁跳轉某頁面後返回到首頁,activity經歷了怎樣的過程
APP發生crash測試需要怎麼處理(區分IOS/Android)
你常見的發生crash的日誌是什麼
什麼是安卓ANR,如何避免
安卓crash和ANR的區別
Android手機和IOS手機,系統有什麼區別
App測試中ios和Android有哪些區別
7、場景測試題,給你一個登錄/支付/列表等場景,如何測試
面試常駐問題,基本不管大廠小廠都會問這個問題,考察面試人的思維考慮廣泛度,對於這個問題,每個測試人員可能都有自己思路和方法,回答的時候可以保證全面性的基礎上體現自己分析問題解決問題的步驟,可以按照自己的想法,這裡僅做列舉
確認大前提:需求內容,需求背景,需求目標,對象用戶,使用設備,使用環境
可大略概括為:功能,界面,性能,安全
1)基本的功能邏輯測試:等價類,邊界值,數據類型,正常邏輯,異常邏輯,異常邏輯的良性提示,流程失敗,各種場景,易用性等
2)設備兼容性:IOS Andriod,不同系統版本,不同屏幕
3)獲取設備權限
4)網絡環境:wifi/弱網/斷網,以及這幾種情況切換下,發起請求與預設頁面
5)FPS,正常情況下資源加載速度,打開速度
6)流量測試,和電量測試
7)cpu 和內存資源佔用情況
8)負載測試、壓力測試:程序的健壯性,並發量用戶量比較大的時候是否會有崩潰之類的問題
9)安全測試:涉及安全性的數據不可以被挾持,攻擊,密碼不可明文存儲
10)是否調用第三方,與第三方軟體的協調配合
8、一門計算機程式語言
根據公司招聘要求,大部分公司會讓手寫算法題,但一般來說不會特別難,視工作經驗而定。語言這方面可能理論性的東西可以短期記憶,但是真的能流暢的書寫還是要系統性的學習,不管是書或者視頻,基礎還是要打好,然後刷一些算法題,而且對一個測試來說,精通一兩門語言對於工作是很有益處的,如果不想一直點點點的話,還是多在前期打好語言基礎
會一門腳本語言的話錦上添花
9、之前工作的工作內容
這裡大致分成三個模塊
1)你們公司的測試流程是什麼
基本算是必問問題,可能各個公司會有一些流程簡化,但是建議還是實際情況結合正統流程,豐富成更完整的測試流程
2)項目細節
會仔細詢問簡歷上的項目,最好對項目了解到代碼架構層面,經得起詢問,同理,不要在簡歷上寫自己不太熟悉的東西,如果寫了就要做好準備會被問
3)你遇到的印象最深的bug,怎麼解決的
可提前準備,這個問題不是說完了bug就完事了,絕大多說面試官會問你問題根源是什麼,開發為什麼會出這個問題,建議說到代碼層面的問題
10軟實力
由於測試工作的實際內容,各部門溝通比較常見,也經常會遇到衝突處理的情況,所以面試的時候很多面試官會考察面試者的溝通協調能力,事務處理能力,這個問題出現的頻率很高,場景可能各不相同。比如,即將上線,產品臨時加需求的情況;開發沒有按期完成需求影響上線的情況,這些場景下問你需要怎麼處理
這些問題其實沒有準確的答案,其實如果有測試經驗的同學可以直接結合自己經驗,說出自己覺得合適的處理方案,可以提前自己做一個總結。
11、你需要向公司了解什麼
一般面試官最後會給一些時間問你想要了解什麼,如果你覺得已經到了可能會發offer的時候,就不要問一些虛的東西了
公司測試團隊有多少人
測試的主要工作內容是什麼(很重要)
公司的發展方向
上下班時間和加班情況
月薪和年終獎以及其他福利(hr談薪期間)
掌握清楚這些,對後續可能的offer對比很有幫助
12、一些有用的參考APP
網際網路求職:拉鉤,boss直聘(ps,有內推途徑優先走內推)
公司信息查詢:看準網,天眼查,脈脈-職言區,牛客網(針對應屆)
刷題:leetcode
信息檢索:github
(對於大廠面試建議提前查下各網站得面試題和反饋,針對性面試)
以上是個人的一些總結,可能也有些不太全面,對於個人不太涉獵的比如UI自動化方面談及不太多,所以權當基礎性的參考。
找工作的過程必然是一個疲憊的過程,可能會經歷很多否定和壓力,以及焦慮,保持良好的心態,相信自己,在每次面試之後總結並且提升,就變得十分重要。反過來想,在找工作的過程中,求職者更能清晰的了解到現在的市場上對測試的要求是什麼,對於自己將來的發展也十分有利,凡是經歷過的,都不失為對自己的一種提升,希望還在找工作的朋友能夠堅持下去。
最後,祝大家能拿到心儀的offer
Xmind