一、問(wèn):app測(cè)試與web測(cè)試的區(qū)別
參考答案:
1)、系統(tǒng)架構(gòu):web端的服務(wù)器更新后,客戶端會(huì)自動(dòng)同步更新;如果是app下修改了服務(wù)端,意味著客戶端用戶所使用的核心版本都需要進(jìn)行回歸測(cè)試一遍;
2)、兼容性。Web端要考慮不同的瀏覽器內(nèi)核進(jìn)行測(cè)試(IE、chrome、Firefox),APP的兼容性要考慮選擇主流的機(jī)型,不同的分辨率、尺寸, 以及不同的操作系統(tǒng);
3)、性能:APP客戶端的性能,要考慮電量,流量,GPU渲染(用GPU來(lái)在屏幕上顯示圖像);
4)、交叉事件測(cè)試,安裝、卸載、更新,前后臺(tái)切換;
5)、界面操作,如:橫豎屏切換,多點(diǎn)觸控,事件觸發(fā)區(qū)域。
二、問(wèn):APP的兼容性怎么測(cè)試,測(cè)了哪些機(jī)型?哪些版本?那又怎么測(cè)Android的兼容性、怎么測(cè)手機(jī)的兼容
app的兼容性:我們會(huì)在不同的機(jī)型(比如:魅族,華為,三星,小米,iOS一般測(cè)試iphone5以上)上進(jìn)行測(cè)試用例的執(zhí)行
三、問(wèn):app測(cè)試點(diǎn)有哪些?
參考答案:功能,兼容性,用戶體驗(yàn),安全性,安裝卸載升級(jí)測(cè)試,交叉事件,UI測(cè)試,性能測(cè)試。
四、問(wèn):app項(xiàng)目做了多久
參考答案:一直在做,現(xiàn)在app的主體需求已經(jīng)完成了,后期都是一些零零散散的需求,測(cè)試工作量比較少。
五、問(wèn):你測(cè)了app哪些模塊
參考答案:所有功能都測(cè)
六、問(wèn):你怎么做app測(cè)試的
參考答案:參考本文檔后面的“APP項(xiàng)目介紹參考思路”
七、問(wèn):App的性能測(cè)試怎么做的
參考答案:App的性能分為服務(wù)器端的性能和手機(jī)端的性能。我先說(shuō)服務(wù)器端的性能,再說(shuō)手機(jī)端的性能。
服務(wù)器端的性能,我們可以用LoadRunner或Jmeter工具進(jìn)行測(cè)試,我以Jmeter工具為例子說(shuō)一下App服務(wù)器端的性能測(cè)試,首先,確定app的性能測(cè)試功能點(diǎn),比如,查詢,提交數(shù)據(jù),登陸這些用戶常用的功能,一般會(huì)被選來(lái)做性能測(cè)試,然后,根據(jù)該功能點(diǎn)的接口測(cè)試需求,或使用fiddler抓包,在jmeter上構(gòu)造向服務(wù)器發(fā)送的請(qǐng)求數(shù)據(jù),配置好相關(guān)的設(shè)置,并做好服務(wù)器的監(jiān)控(我們的App項(xiàng)目是搭建在linux上的,用的是nmon工具做監(jiān)控),然后運(yùn)行測(cè)試,測(cè)試完之后,收集CPU,內(nèi)存等信息,結(jié)合聚合報(bào)告的內(nèi)容,分析性能測(cè)試結(jié)果。
手機(jī)端的性能測(cè)試步驟是:
1、在服務(wù)器上安裝監(jiān)控工具(iTest/GT)
2、啟動(dòng)監(jiān)控工具,監(jiān)控被測(cè)應(yīng)用
3、清空l(shuí)ogcat日志:adb logcat -c
4、獲取logcat日志:adb logcat -v time > E:\share\logcat.log
5、使用monkey運(yùn)行被測(cè)應(yīng)用:adb shell monkey -p your.package.name -v 500 > E:\share\monkey.log
6、根據(jù)監(jiān)控圖,檢查CPU,內(nèi)存,流量,電量是否符合性能指標(biāo)。如果不符合,就把不符合指標(biāo)的報(bào)表和對(duì)應(yīng)的logcat發(fā)給開(kāi)發(fā)定位。
八、問(wèn):adb命令有哪些?
查看設(shè)備:adb devices
1)安裝卸載:adb install/uninstall
2)、獲取logcat日志:adb logcat -v time > E:\share\logcat.log -- 把logcat日志導(dǎo)入到E盤(pán)的share目錄下。
收集logcat日志(logcat日志,記錄了用戶的在系統(tǒng)上的所有操作)
1)、先清空系統(tǒng)上原有的logcat日志:adb logcat -c
2)、獲取logcat日志:adb logcat -v time > E:\share\logcat.log? -- 把logcat日志導(dǎo)入到E盤(pán)的share目錄下。
3、獲取app的包名和activity名稱
? ? adb logcat -v time | findstr STAR? 腳本中,cmp= 后面的值就是 包名
運(yùn)行monkey工具:adb shell monkey -p?app-weichi-release.apk -v 3000
回歸測(cè)試,收集seed號(hào):adb shell monkey -p app-weichi-release.apk -s 45544215878 -v 5
進(jìn)入手機(jī)的核心:adb shell
把本地的文件上傳到Android設(shè)備:adb push?本地文件路徑? Android設(shè)備路徑
把Android設(shè)備的文件下載到本地:adb pull?Android設(shè)備路徑? 本地文件路徑
九、問(wèn):你這個(gè)app測(cè)試人員有幾個(gè)?怎么分工?
? ? 參考答案:2個(gè)。按測(cè)試的手機(jī)類(lèi)型分工,每個(gè)人負(fù)責(zé)幾種測(cè)試機(jī)型,每個(gè)人都要測(cè)試app的所有測(cè)試點(diǎn)。
十、你做APP用過(guò)monkey,能具體講一下嗎?
參考答案:我們用monkey模擬用戶的偽隨機(jī)操作(點(diǎn)、觸摸、滑動(dòng)等),對(duì)APP的穩(wěn)定性進(jìn)行測(cè)試。
? 一般我們會(huì)用到命令 adb shell monkey -p 包名 -v 次數(shù)
十一、那如果monkey測(cè)試過(guò)程中,出現(xiàn)crash你怎么定位?
? ? 參考答案:crash一般是空指針導(dǎo)致的,在logcat日志中輸入“nullpoint”搜索到相關(guān)的日志,然后把日志給開(kāi)發(fā)定位。
十二、那問(wèn)題開(kāi)發(fā)修復(fù)了你怎么驗(yàn)證?(意思就是,monkey怎樣做回歸測(cè)試)
? ? 參考答案:我們會(huì)進(jìn)行回歸測(cè)試,會(huì)按照之前的軌跡(seed)去跑monkey,命令是:adb shell monkey -p 包名 -s seed值 -v 次數(shù)
十三、面試官:看你寫(xiě)有用MONKEY做APP測(cè)試,怎么做的?如果有問(wèn)題的話怎么定位?
我:(1)用adb命令,adb logcat -c清空日志,再獲取日志 adb logcat -v time 導(dǎo)到要保存日志的地方
? (2)再使用monkey命令adb shell monkey -p 包名 -v 次數(shù),不過(guò)次數(shù)的話我一般都是算時(shí)間來(lái)跑,比如說(shuō)我跑個(gè)5分鐘大概要多少次,然后直接跑個(gè)1小時(shí)的次數(shù)這樣,然后跑完就看monkey日志,如果說(shuō)它跑的次數(shù)跟我設(shè)的次數(shù)不一樣.就說(shuō)明monkey中途跑失敗了。那我就要去看看logcat日志有沒(méi)有null point,或anr in的關(guān)鍵字,如果有null point,就表示app在測(cè)試過(guò)程中crash了,然后把null point前后的日志截取下來(lái),發(fā)給開(kāi)發(fā)定位;如果有anr in,表示app在測(cè)試過(guò)程中出現(xiàn)了ANR(程序無(wú)響應(yīng)),我們要把/data/anr/traces.txt文件取下下來(lái),再把ANR進(jìn)程號(hào)對(duì)應(yīng)的日志發(fā)給開(kāi)發(fā)定位問(wèn)題。(日志具體的信息,我們看不懂)
APP出現(xiàn)ANR的原因:
1、線程阻塞的
2、內(nèi)存不足
3、CPU滿負(fù)荷
APP出現(xiàn)CRASH的原因:
1、空值指針
2、內(nèi)存不足
3、CPU滿負(fù)荷
******************************************************************
APP項(xiàng)目介紹參考思路:
我負(fù)責(zé)的app項(xiàng)目叫“百拍外賣(mài)”
主要模塊有美餐、個(gè)人中心、留言等模塊,主要的業(yè)務(wù)流程是用戶在APP上下單后,商家后臺(tái)能接收到訂單并對(duì)訂單進(jìn)行處理。
測(cè)試前,先熟悉app的原型圖和業(yè)務(wù)需求,確定測(cè)試點(diǎn),app開(kāi)發(fā)好后,先做一個(gè)冒煙測(cè)試,看看軟件的基本功能是否可用,如果正常,我們?cè)僮龉δ軠y(cè)試,UI測(cè)試,兼容性測(cè)試,交叉事件測(cè)試,安裝卸載測(cè)試等。
如果面試官問(wèn)具體某個(gè)測(cè)試類(lèi)型怎么,就要舉例子加以說(shuō)明。
比如:
UI測(cè)試:檢查app的UI是否和原型圖一致。
功能測(cè)試:能不能正常使用,瀏覽頁(yè)面、發(fā)布任務(wù)、充值這些用戶使用頻繁的功能測(cè)試
兼容性測(cè)試:在不同的主流手機(jī),比如:小米,華為,OPPO,vivo以及iPhone不同的操作系統(tǒng)上操作
用戶體驗(yàn)測(cè)試:界面是否符合用戶的使用習(xí)慣,按鈕是否明確
安全性:敏感信息是否加密,能不能攔截篡改數(shù)據(jù)
性能測(cè)試:當(dāng)多個(gè)用戶同時(shí)使用時(shí)會(huì)不會(huì)出現(xiàn)卡頓,數(shù)據(jù)會(huì)不會(huì)出現(xiàn)丟失,使用monkey來(lái)測(cè)試他的穩(wěn)定性
交叉事件:1.打開(kāi)某個(gè)有數(shù)據(jù)交互的頁(yè)面,切換到后臺(tái)或者其他軟件
安裝升級(jí)卸載:1.在安裝過(guò)程中斷網(wǎng)測(cè)試 2.升級(jí)時(shí)突然斷網(wǎng)會(huì)發(fā)生什么 3.卸載有沒(méi)有殘余
(補(bǔ)上app的8大測(cè)試點(diǎn),并舉例子說(shuō)明)