1. 程式人生 > >百度測試實習面試記錄

百度測試實習面試記錄

內推QA實習後當晚收到電話確認面試時間,一面為電話面試,時間大概30多分鐘。網路電話效果不好,需要找個安靜的地方才能接聽電話。

1.簡述下自己做過的專案

2.在專案中負責哪些部分,主要解決的問題

專案因為是NLP方向的,和麵試的內容不符合,就沒有再深入的提問了

3.介紹一下TCP協議

4.TCP協議的三次握手及四次揮手具體的過程

5.linux的命令是否熟悉,佔用cpu前5的app如何進行檢視

ps -aux | sort -k4nr | head -N

head表示顯示行數,ps顯示瞬間程序的狀態,sort表示按照第幾列進行排序

top -M
top -P

top命令是實習進行監控的,-M表示記憶體,-P表示CPU

6.linux下檢視日誌的命令

# uname -a   # 檢視核心/作業系統/CPU資訊 
# cat /etc/issue 
# cat /etc/redhat-release # 檢視作業系統版本 
# cat /proc/cpuinfo  # 檢視CPU資訊 
# hostname   # 檢視計算機名 
# lspci -tv   # 列出所有PCI裝置 
# lsusb -tv   # 列出所有USB裝置 
# lsmod    # 列出載入的核心模組 
# env    # 檢視環境變數 
資源: 
# free -m   # 檢視記憶體使用量和交換區使用量 
# df -h    # 檢視各分割槽使用情況 
# du -sh <目錄名>  # 檢視指定目錄的大小 

# grep MemTotal /proc/meminfo # 檢視記憶體總量 
# grep MemFree /proc/meminfo # 檢視空閒記憶體量 
# uptime   # 檢視系統執行時間、使用者數、負載 
# cat /proc/loadavg  # 檢視系統負載 
磁碟和分割槽: 
# mount | column -t  # 檢視掛接的分割槽狀態 
# fdisk -l   # 檢視所有分割槽 
# swapon -s   # 檢視所有交換分割槽 
# hdparm -i /dev/hda  # 檢視磁碟引數(僅適用於IDE裝置) 
# dmesg | grep IDE  # 檢視啟動時IDE裝置檢測狀況 

網路: 
# ifconfig   # 檢視所有網路介面的屬性 
# iptables -L   # 檢視防火牆設定 
# route -n   # 檢視路由表 
# netstat -lntp   # 檢視所有監聽埠 
# netstat -antp   # 檢視所有已經建立的連線 
# netstat -s   # 檢視網路統計資訊 
程序: 
# ps -ef   # 檢視所有程序 
# top    # 實時顯示程序狀態(另一篇文章裡面有詳細的介紹) 
使用者: 
# w    # 檢視活動使用者 
# id <使用者名稱>   # 檢視指定使用者資訊 
# last    # 檢視使用者登入日誌 
# cut -d: -f1 /etc/passwd # 檢視系統所有使用者 
# cut -d: -f1 /etc/group # 檢視系統所有組 
# crontab -l   # 檢視當前使用者的計劃任務 
服務: 
# chkconfig –list  # 列出所有系統服務 
# chkconfig –list | grep on # 列出所有啟動的系統服務 
程式: 
# rpm -qa   # 檢視所有安裝的軟體包

7.n*m的矩陣,從左上到右下,用n+m步走完,共有多少種方法

其實就是向右移動n,向左移動m,實際就是在n+m步中選擇n個位置進行右移,組合問題

8.單鏈表的逆序遍歷

開始提出的辦法是遍歷並進行記錄,時間複雜度為o(n[2])

面試官提示後提出了使用棧進行儲存再輸出的辦法,面試官再問了下時間複雜度的對比,這個複雜度以訪問來說的話就是o(n)

9.對於一個手機app應該如何進行測試

功能測試

客戶端效能測試

適配相容測試

安全性測試

伺服器效能測試
UI測試
健壯性測試
迴歸測試

10.對於手機app裡面的html頁面如何測試

考慮回答的角度:使用者介面測試,瀏覽器相容性測試,網路測試,安全測試,效能測試

1、由於HTML5嵌入在App裡面,輸入框需要呼叫原生鍵盤。由於andriod不同手機的差異化,會導致原生鍵盤功能不同。

曾發現三星的android某版本呼叫原生數字鍵盤沒有小數點,後只要碰到三星機器就呼叫全鍵盤;

2、App底部導航欄是否帶入到H5頁面中,開啟鍵盤是否會影響導航欄位置變動。一般在HTML5頁面中應該刪除App的導航欄;

3、App與HTML5對接部分需要加密傳輸;

4、App頭部的點選後返回的是前一個頁面還是退回app主介面,需要注意;

5、IOS、Android的部分機型由於鍵盤的開啟和收起會出現提示或確認頁面彈框上下不居中;

6、由於網路問題偶現的App的報錯需要包裝;

7、從App各個入口進入HTML5介面都是免登入,各入口登入、登出正常;

8、在各個機型中,螢幕較小和較大的機器會出現不能全部顯示或者部分空白的情況。

9、長時間不操作HTML5或者App,需要重新登入,或者需要重新輸入密碼;
10、螢幕較小手機提交引數的確認頁面,由於字數較多會出現換行的情況,需要做適配。

11.對於一個測試出的問題,研發人員認為沒問題,如何解決

對該問題要進行溝通,確認是哪方面出現了理解的偏差,如果溝通過後無法解決,再將問題報給上級人員

12.介紹一下常用的排序演算法

插入排序 氣泡排序 簡單選擇排序o(n[2])

快速排序 歸併排序 堆排序 o(nlogn)

13.介紹一下快速排序演算法

基本思想:以某個記錄的關鍵字為比較的基準,將序列劃分為兩組,左邊小於劃分元,右邊大於劃分元,對左右再進行劃分元的選擇,一般是選擇當前記錄的第一個關鍵字。

public static int partition(int []array,int lo,int hi){
        //固定的切分方式
        int key=array[lo];
        while(lo<hi){
            while(array[hi]>=key&&hi>lo){//從後半部分向前掃描
                hi--;
            }
            array[lo]=array[hi];
            while(array[lo]<=key&&hi>lo){從前半部分向後掃描
                lo++;
            }
            array[hi]=array[lo];
        }
        array[hi]=key;
        return hi;
    }
    
    public static void sort(int[] array,int lo ,int hi){
        if(lo>=hi){
            return ;
        }
        int index=partition(array,lo,hi);
        sort(array,lo,index-1);
        sort(array,index+1,hi); 
    }

14.介紹一下二分查詢

二分查詢的時間複雜度是o(logn)

15.介面和抽象類有什麼區別


16.error 和 exception的區別

error和exception都是繼承於throwable

error一般是指與虛擬機器相關的錯誤,系統崩潰,虛擬機器錯誤,記憶體空間不足,棧溢位等,這類錯誤僅靠程式本身無法恢復和預防,一般建議程式停止

exception表示程式可以處理的異常,捕獲或是丟擲或是處理,應儘可能處理,在exception裡面又分為runtime exception和受檢查的異常

runtime exception不進行檢查,不丟擲或捕獲都可以,例如除數為0,陣列越界等錯誤,應該程式設計師處理

受檢查異常如果沒有捕獲或丟擲編譯無法通過,例如檔案無法找到等外部錯誤