目前對於招測試來說,知識覆蓋面比較廣,以下做列舉。
建議在面試之前記一下,不要輕視這些基本理論,我之前看到一些人去面試,連基本的網絡協議都答不上來,哪怕可能個人能力技術比較強,但是在這種題目上被減分實在沒必要。
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自動化方面談及不太多,所以權當基礎性的參考。
