測試者出的APP測試面試題

weixin_34321977發表於2016-07-21

最近公司可能要招聘測試了,老大讓我出幾個面試題,網上搜到了一些,還有自己想了幾個,如下:

一、開場問題:(自由發揮)

1、請自我介紹一下;
2、為什麼離開上一個公司呢?
3、做測試多久了?以前做過哪些專案?你們以前測試的流程是怎樣的?用過哪些測試工具?
4、你覺得為什麼要在一個團隊中開展軟體測試工作,測試的價值提現在哪裡?

二、技術方面:

1、程式碼能力:

1.1、請用自己最擅長的程式語言,將一個字串反轉並輸出?

參考答案:
(1)、python實現:
方法1、使用[::-1]:
s = 'python' print s[::-1]
方法2、使用reverse()方法:
l = list(s) l.reverse() print ''.join(l)

(2)、java實現:
方法1、使用StringBuffer,一點技巧也沒有:
public String reverse(String s){ return new StringBuffer(s).reverse().toString(); }
方法2、靈活運用了字串功能:
public String reverse(String s){ char[] letters=s.toCharArray(); char temp; int len=letters.length; for(int i=len/2-1;i>=0;i--){ temp=letters[i]; letters[i]=letters[len-1-i]; letters[len-1-i]=temp; } return new String(letters); }

1.2、針對數十個安卓應用市場渠道包,請問如何進行大體的功能驗證,簡單敘述一下思路?

參考答案:可以自動化遍歷某個目錄下面的所有渠道包apk,然後迴圈:安裝——》登入——》**操作——》退出——解除安裝

2、測試思路:

2.1、給你一個模組,比如註冊模組,你會怎麼樣設計與執行測試?

參考答案:資料——》從哪裡來(入口)——》到哪裡去(出口)——》資料庫(檢驗資料的正確性)

2.2、請說一下你以前公司功能測試通過的標準?(自由發揮)

2.3、你認為app測試過程中,相對於web,要更多注意哪些測試點?或者說app測試和web測試有哪些不同之處?

參考答案:
1、“點選載入更多”的分頁處理技術,是否有重複的資料,資料顯示是否完整,到達最後一頁後是否還有資料進行顯示;
2、資料的排序方式;
2、介面跳轉是否正確;
3、出現異常情況是否有提示,是否跳轉到已經設定好的預設頁面,如斷網情況下,顯示網路未連線,資料載入失敗,或者如果此頁面沒有資料顯示,顯示友好提示資訊;
4、圖片處理的地方,是否容易出現程式崩潰現象,主要是圖片壓縮機制;
5、前臺展示的資料,後臺進行變動(增、刪、改),是否是實時更新還是app一開始執行再進行載入;
6、前臺主動發出請求,後臺資料庫中是否存在相應的資料同時包括資料的關聯性(商家的會員進行下訂單,資料庫中生成一條訂單的記錄的同時,生成一條積分記錄,該會員的積分進行相應的變化);
7、手機app網路環境測試重點:主要是針對2G、3G、4G、wifi三種網路環境進行測試 ;
8、手機app相容性測試:主要是針對android各個系統版本進行測試,及測試螢幕解析度進行測試;

3、測試技術:

3.1、說說會用哪些抓包工具?怎麼用的?

參考答案:比如fiddler,主要用來做app抓包使用,先在fiddler客戶端做好各項配置,埠設定為8888,然後在手機上設定代理,就可以抓包了,主要看的是伺服器返回的值、還能夠修改傳入引數、傳出的引數、模擬網路延時,去構造不同場景。

3.2、什麼是alpha測試和beta測試?

alpha測試:在公司場地,由員工主導的測試行為;beta測試:在客戶場地,由客戶主導進行的測試。

3.3、請寫出一個SQL來查詢分數前五5的所有人?

mysql:select * from 分數表 order by 分數 desc limit 5; oracle:select top 5 * from 分數表 order by 分數 desc;

3.4、linux常用命令有哪些?

cd命令:切換到某個目錄
ls命令:列出當前目錄的所有檔案、資料夾
pwd命令:列出當前目錄的路徑
cp命令:複製
mv命令:剪下
grep命令:管道
find命令:查詢
rm命令:刪除
ps命令:檢視程式
kill命令:殺掉某個程式
cat命令:檢視某檔案
tar命令:打包
chmod命令:賦許可權
chown命令:改變檔案的所有者
vim命令:文字編輯

3.5、請說明Android手機和IOS手機,系統有什麼區別?

1、兩者執行機制不同:IOS採用的是沙盒執行機制,安卓採用的是虛擬機器執行機制。
2、兩者後臺制度不同:IOS中任何第三方程式都不能在後臺執行;安卓中任何程式都能在後臺執行,直到沒有記憶體才會關閉。
3、IOS中用於UI指令許可權最高,安卓中資料處理指令許可權最高。

3.6、請簡要介紹一下安卓系統四層架構?

從上到下,依次是:應用程式層——》應用程式框架層——》系統執行庫層——》Linux核心層

3.7、簡單介紹一下Android SDK中自帶的幾個工具/命令的功能?

參考答案:
ddms:Dalvik Debug Monitor Service,是 Android 開發環境中的Dalvik[虛擬機器]除錯監控服務。

monkey:Android中的一個命令列工具,可以執行在模擬器裡或實際裝置中。它向系統傳送偽隨機的使用者事件流(如按鍵輸入、觸控式螢幕輸入、手勢輸入等),實現對正在開發的應用程式進行壓力測試。
uiautomator:UIAutomator是Eclipse自帶的用於UI自動化測試工具,可模擬APP上的單擊、滑動、輸入文字等操作。
monitor:同uiautomator
adb:ADB的全稱為Android Debug Bridge,就是起到除錯橋的作用。通過ADB我們可以在Eclipse中方面通過DDMS來除錯Android程式,就是debug工具。

3.8、常用的adb命令有哪些?請隨便寫一個monkey指令碼,並解釋其中引數的含義?

參考答案:
(1)、adb devices、adb install、adb uninstall、adb shell pm **、adb shell am **,
更多adb命令可參考:http://www.jianshu.com/p/a010d34c8fb8

(2)、adb shell monkey -p com.xiaoniu.finance -s 123 --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions -v -v -v 2000 > d:\xnonline-monkey-test1.txt
-p:app包名、
--throttle:每個操作的間隔時間,單位ms
--ignore-crashes:忽略崩潰
--ignore-timeouts:忽略超時
--ignore-security-exceptions:忽略安全異常
-v -v -v:日誌詳細等級,3個v代表最詳細等級的日誌
d:\xnonline-monkey-test1.txt:代表將產生的日誌,放到本地PC的D盤,並命名為:xnonline-monkey-test1.txt

3.9、測試過程中遇到app出現crash或者ANR,你會怎麼處理?

參考答案:可以先把日誌過濾出來: adb logcat | findstr xxxxx(過濾日誌資訊) ,然後再搜尋其中的關鍵字,比如:exception、crash,看看是那些方法或者異常導致了問題的傳送,初步定位問題原因後,可以交給開發人員去具體查詢深層原因並修復。

3.10、請說一下以往工作中都曾具體做過哪些工作?其中最擅長哪部分工作(功能,自動化(UI和介面),效能)?這部分你是怎麼做的?(自由發揮)

3.11、請簡單介紹一下實用過的安卓UI自動化測試工具?

參考答案:
appium:是一個移動端的自動化框架,可用於測試原生應用,移動網頁應用和混合型應用,且是跨平臺的。
robotium:是一款國外的Android自動化測試框架,主要針對Android平臺的應用進行黑盒自動化測試,它提供了模擬各種手勢操作(點選、長按、滑動等)、查詢和斷言機制的API,能夠對各種控制元件進行操作。

3.12、你覺得app的效能測試,即專項測試,需要重點關注那些方面?

參考答案:記憶體、cpu佔用、耗電量、流量、流暢度等

4、技術熱情:(考察個人潛力,自由發揮)

4.1、你為什麼來選擇做測試?
4.2、你認為理想的測試流程是什麼樣子?
4.3、你認為如何提高個人的軟體測試技術?
4.4、談談軟體測試職業發展,以及個人未來的打算?

三、技術之外:(考察軟實力,自由發揮)

1、溝通能力;
2、團隊合作;
3、執行力;
4、容易相處;

相關文章