1.手機(jī)測(cè)試概念
傳統(tǒng)手機(jī)測(cè)試?VS 手機(jī)應(yīng)用軟件測(cè)試
傳統(tǒng)手機(jī)測(cè)試
?傳統(tǒng)的手機(jī)測(cè)試山憨,我們說(shuō)的是指測(cè)試手機(jī)本身比如抗壓,抗摔盯拱,抗疲勞盒发,抗低溫高溫等。也包括手機(jī)本身功能狡逢、性能等測(cè)試宁舰。
手機(jī)應(yīng)用軟件測(cè)試 C/S Client/Server
?手機(jī)應(yīng)用軟件是基于手機(jī)操作系統(tǒng)之上開(kāi)發(fā)出來(lái)的軟件,做這樣的測(cè)試就叫做手機(jī)應(yīng)用軟件測(cè)試奢浑。
2.手機(jī)端常規(guī)測(cè)試
2.1.1.介紹手機(jī)測(cè)試的概念架構(gòu)
對(duì)于手機(jī)端測(cè)試蛮艰,按照平臺(tái)來(lái)分,分為Android和IOS兩大主流系統(tǒng)雀彼,
對(duì)于ios和Android壤蚜,二者有區(qū)別,我就說(shuō)一下我在測(cè)試這兩款手機(jī)app的感受吧
Android開(kāi)源導(dǎo)致碎片化比較嚴(yán)重详羡,(手機(jī)品牌眾多,系統(tǒng)版本各異嘿悬,分辨率不統(tǒng)一实柠,主流手機(jī)型號(hào)上千。無(wú)法保證應(yīng)用善涨、游戲?qū)τ谒惺謾C(jī)的適配兼容窒盐。)bug比較多,而IOS通常bug會(huì)少一些钢拧。
Android手機(jī)長(zhǎng)按home建蟹漓,會(huì)呼出應(yīng)用列表和切換應(yīng)用,右滑擇會(huì)終止應(yīng)用源内。
還有分辨率測(cè)試葡粒,Android手機(jī)分辨率有20多種,IOS較少一些
再就是手機(jī)操作系統(tǒng),Android系統(tǒng)太多了嗽交,IOS較少卿嘲,但是升級(jí)之后不能夠降級(jí),不過(guò)呢夫壁,發(fā)現(xiàn)了最近ios中boss直聘的一個(gè)bug
是有關(guān)于Boss直聘強(qiáng)更的一個(gè)bug拾枣,當(dāng)我們點(diǎn)擊手機(jī)APP端 Boss直聘? 進(jìn)入主頁(yè)面彈出提示框“新增郵箱上傳附件簡(jiǎn)歷功能” 彈窗中有立即升級(jí)的鏈接,點(diǎn)擊別的區(qū)域沒(méi)有反應(yīng)盒让;
必須點(diǎn)擊“立即升級(jí)”才會(huì)跳轉(zhuǎn)到“App Store”若不升級(jí)梅肤,重新切換回Boss直聘界面,依舊提示“立即升級(jí)”全部退出依然如此邑茄。我繼續(xù)說(shuō)哈
按照目前技術(shù)架構(gòu)的話姨蝴,現(xiàn)在有一些原生的app架構(gòu),類似于Client Server架構(gòu)撩扒,也有基于Html5的app似扔,類似于pc機(jī)的BS(Broswer server)架構(gòu)。手機(jī)測(cè)試和pc機(jī)類似搓谆,又有一些不同的地方炒辉。
當(dāng)然除了手機(jī),現(xiàn)在還有好多使用Android系統(tǒng)泉手,比如酒店點(diǎn)餐的平板黔寇,銀行對(duì)公或者對(duì)個(gè)人業(yè)務(wù)的業(yè)務(wù)平臺(tái),還有一些智能的穿戴設(shè)備斩萌,小米的手環(huán)缝裤,google 聯(lián)想的智能眼鏡,智能家居颊郎,電視盒子憋飞,這些都是在使用android系統(tǒng),我之前最早的時(shí)候姆吭,就要測(cè)試過(guò)一個(gè)智能家居設(shè)備榛做,測(cè)試的時(shí)候需要考慮藍(lán)牙,wifi連接傳輸這塊内狸,也有好多要測(cè)試的內(nèi)容检眯。
2.2.How
2.1.2.功能測(cè)試
我就先來(lái)說(shuō)一下功能測(cè)試吧,對(duì)于手機(jī)app來(lái)說(shuō)昆淡,和我們測(cè)試web項(xiàng)目差不太多锰瘸,也是各種測(cè)試方式需要考慮進(jìn)來(lái),比如說(shuō)邏輯功能測(cè)試昂灵,現(xiàn)在移動(dòng)端越來(lái)越火爆避凝,大家用的軟件也越來(lái)越多舞萄,對(duì)軟件也越來(lái)越挑剔,現(xiàn)在公司在開(kāi)發(fā)移動(dòng)端的時(shí)候恕曲,肯定是有相應(yīng)的需求文檔和UI所設(shè)計(jì)的產(chǎn)品效果圖鹏氧,我們做邏輯功能測(cè)試,就是根據(jù)這些資料佩谣,當(dāng)然也根據(jù)我們正常人的邏輯思維進(jìn)行邏輯功能測(cè)試把还,就拿我上個(gè)項(xiàng)目來(lái)說(shuō),它就是一個(gè)移動(dòng)端項(xiàng)目茸俭,在做邏輯功能測(cè)試的時(shí)候吊履,我們要測(cè)試主頁(yè)面,我的頁(yè)面调鬓,商城頁(yè)面這些功能是否合理艇炎。
2.1.3.安裝與卸載測(cè)試
軟件安裝后是否可以正常運(yùn)行,安裝過(guò)程中是否可以取消,安裝空間不足時(shí)腾窝,是否有相應(yīng)提示,是否可以卸載應(yīng)用(可通過(guò)桌面卸載缀踪,也可以通過(guò)軟件卸載。曾發(fā)現(xiàn)在IOS手機(jī)上有個(gè)應(yīng)用安裝時(shí)未完全安裝虹脯,終止安裝后驴娃,未完成安裝的應(yīng)用圖標(biāo)一直顯示在手機(jī)上,并且無(wú)法成功刪除),卸載是否支持取消功能循集,單擊取消后軟件卸載功能是否正常,卸載后文件是否全部刪除所有的安裝文件夾,從不同的應(yīng)用市場(chǎng)下載進(jìn)行安裝測(cè)試唇敞,比如測(cè)試小米市場(chǎng),華為市場(chǎng)咒彤,應(yīng)用寶疆柔,安卓市場(chǎng),安智市場(chǎng)的安裝測(cè)試镶柱。
2.1.4.軟件升級(jí)測(cè)試
當(dāng)客戶端有新版本時(shí)旷档,是否有更新提示,當(dāng)版本為非強(qiáng)制升級(jí)版時(shí)歇拆,用戶可以取消更新鞋屈,老版本能正常使用,用戶在下次啟動(dòng)app時(shí)查吊,仍能出現(xiàn)更新提示谐区;當(dāng)版本為強(qiáng)制升級(jí)版時(shí)湖蜕,當(dāng)給出強(qiáng)制更新后用戶沒(méi)有做更新時(shí)逻卖,退出客戶端,下次啟動(dòng)app時(shí)昭抒,仍出現(xiàn)強(qiáng)制升級(jí)提示评也,當(dāng)然現(xiàn)在強(qiáng)更已經(jīng)很少出現(xiàn)了炼杖。檢查更新后各個(gè)功能是否能正常使用;在線跨版本升級(jí)后能否正常使用盗迟,當(dāng)然現(xiàn)在主流的安裝更新方式開(kāi)始向熱更新熱部署方式轉(zhuǎn)變坤邪,就是在用戶不需要手動(dòng)更新的情況下,完成版本的靜默更新罚缕,這個(gè)技術(shù)是有難度的艇纺,需要看公司中程序員的技術(shù)能力還有就是是否有這樣的產(chǎn)品需求。
2.1.5.登錄測(cè)試
對(duì)于登錄測(cè)試邮弹,基本上每一款app都有登錄注冊(cè)功能黔衡,所以在測(cè)試App的時(shí)候,登錄測(cè)試是必不可少的一項(xiàng)腌乡。
我們做登錄測(cè)試的時(shí)候盟劫,往往包含這么些項(xiàng),登錄用戶名和密碼錯(cuò)誤時(shí)与纽,界面有提示信息
用戶主動(dòng)退出登陸后侣签,下次進(jìn)入app時(shí),應(yīng)該進(jìn)入登陸界面
密碼更改后急迂,登錄時(shí)是否做到了有效數(shù)據(jù)的校驗(yàn)影所,對(duì)于未登錄狀態(tài)時(shí),一些頁(yè)面的操作袋毙,是否做了控制
切換賬號(hào)登錄型檀,檢驗(yàn)登錄的信息是否做到及時(shí)更新,對(duì)于多個(gè)端(web听盖、iso胀溺、android等)進(jìn)行操作時(shí),確保數(shù)據(jù)庫(kù)操作無(wú)誤皆看,且每個(gè)端可以及時(shí)看到數(shù)據(jù)的更新,一個(gè)賬號(hào)只允許一臺(tái)機(jī)器登陸的軟件仓坞,需要賬號(hào)登錄多個(gè)手機(jī)時(shí),是否將原用戶踢下線腰吟,且能夠給出提示信息,用戶登錄狀態(tài)太久无埃,session會(huì)過(guò)期,會(huì)出現(xiàn)“雖然是登錄狀態(tài)毛雇,系統(tǒng)會(huì)提示用戶沒(méi)有登陸”
2.1.6.安全性測(cè)試——權(quán)限測(cè)試
對(duì)于手機(jī)權(quán)限嫉称,如果我們是剛開(kāi)發(fā)不知名的app,權(quán)限這塊盡量少一些灵疮,這些權(quán)限在安裝的時(shí)候都必須用戶同意织阅。在Android 6.0之后,權(quán)限需要?jiǎng)討B(tài)的申請(qǐng)震捣,我們測(cè)試的時(shí)候,需要測(cè)試在使用到這些權(quán)限的時(shí)候荔棉,程序員是否做邏輯判斷闹炉,用戶同意權(quán)限應(yīng)該怎么操作,不同意權(quán)限又應(yīng)該怎么操作润樱。
2.1.7.消息推送測(cè)試
消息推送渣触,是移動(dòng)端的一大特色。我就說(shuō)一下消息推送我們所做的這些方面吧壹若,
未鎖屏?xí)r嗅钻,應(yīng)用后臺(tái)運(yùn)行,消息推送是否可正常接收店展,未鎖屏?xí)r啊犬,APP客戶端使用過(guò)程中,可以收到消息提醒壁查,且點(diǎn)擊可查看觉至。
鎖屏?xí)r,手機(jī)消息欄是否可以接收到消息提醒睡腿。且點(diǎn)擊可查看语御。點(diǎn)擊后消息欄中消失。
精準(zhǔn)推送
當(dāng)推送消息是針對(duì)登錄用戶的時(shí)候席怪,需要檢查收到的push與用戶身份是否相符应闯,沒(méi)有錯(cuò)誤的將其他人的消息推送過(guò)來(lái)
push推送消息是是否能有針對(duì)性的推送,如相應(yīng)內(nèi)容推送給相應(yīng)用戶(精準(zhǔn)推送)
退出登錄后挂捻,是否接受push推送(根據(jù)需求來(lái))
2.1.8.前后臺(tái)切換測(cè)試
APP切換到后臺(tái)碉纺,再回到APP,檢查是否停留在上一次操作界面刻撒;檢查功能及應(yīng)用狀態(tài)是否正常骨田;程序是否崩潰,功能狀態(tài)是否正常声怔,尤其是對(duì)于從后臺(tái)切換回前臺(tái)數(shù)據(jù)有自動(dòng)更新的時(shí)候
手機(jī)鎖屏解屏后進(jìn)入app注意是否會(huì)崩潰态贤,功能狀態(tài)是否正常
當(dāng)APP使用過(guò)程中有電話進(jìn)來(lái)中斷后再切換到APP,功能狀態(tài)是否正常
當(dāng)關(guān)閉APP進(jìn)程后醋火,在開(kāi)啟APP悠汽,APP能否正常啟動(dòng)
對(duì)于有數(shù)據(jù)交換的頁(yè)面,尤其是有視頻圖片之類的頁(yè)面芥驳,每個(gè)頁(yè)面都必須要進(jìn)行前后臺(tái)切換柿冲、鎖屏的測(cè)試,這種頁(yè)面最容易出現(xiàn)崩潰
2.1.9.UI測(cè)試(界面測(cè)試)
確保產(chǎn)品UI符合產(chǎn)品經(jīng)理制定的原型圖與效果圖
一般涉及界面(如菜單兆旬、對(duì)話框假抄、窗口和其他可視控件)布局、風(fēng)格、文字是否正確慨亲,頁(yè)面是否美觀,操作是否友好宝鼓。
如:安裝app后的加載頁(yè)顯示刑棵,分享頁(yè)面的產(chǎn)品logo顯示
2.1.10.兼容性測(cè)試
我再說(shuō)一下兼容性測(cè)試吧,兼容性測(cè)試主要考慮手機(jī)的版本愚铡,型號(hào)蛉签,分辨率,就像我說(shuō)的沥寥,現(xiàn)在手機(jī)碎片化比較嚴(yán)重碍舍,各個(gè)版本,比如Android邑雅,從Android4.0到Android8.0的版本它是不一樣的片橡,然后現(xiàn)在各大手機(jī)廠商像華為,三星淮野,小米捧书,錘子,魅族骤星,vivo這些廠商都修改android源代碼经瓷,也是給我們?cè)黾雍秃枚喙ぷ髁浚枚鄷r(shí)候開(kāi)發(fā)的軟件在三星上沒(méi)問(wèn)題洞难,但是華為舆吮,小米就不行。還有手機(jī)分辨率队贱,現(xiàn)在主流的可能是1920*1080色冀,但是還有好多其他分辨率,比如720*1280柱嫌,還有一些更大分辨率的手機(jī)呐伞,都要考慮這些分辨率的兼容,不然用戶視覺(jué)體驗(yàn)就不好慎式。
兼容測(cè)試伶氢,公司中會(huì)買(mǎi)好多測(cè)試機(jī)來(lái)太讓我們進(jìn)行測(cè)試,一般是不同廠商的手機(jī)瘪吏,當(dāng)然還有第三方云測(cè)平臺(tái)癣防,比如testin還有騰訊wetest,就可以做兼容性測(cè)試掌眠±俣ⅲ可以一次性測(cè)試100臺(tái)測(cè)試機(jī),同時(shí)會(huì)有相應(yīng)的兼容報(bào)告蓝丙,bug報(bào)告级遭。
對(duì)于IOS望拖,ISO版本有7.1.2、8.3挫鸽、9.1等说敏;能否適配各種屏幕尺寸。
2.1.11.網(wǎng)絡(luò)環(huán)境測(cè)試
測(cè)試2G丢郊、3G盔沫、4G、wifi枫匾、有網(wǎng)架诞、無(wú)網(wǎng)、弱網(wǎng)情況下應(yīng)用的運(yùn)行
網(wǎng)絡(luò)不好時(shí)干茉,提交數(shù)據(jù)是否一直處理提交中谴忧,是否會(huì)有延遲,數(shù)據(jù)交換失敗是否會(huì)有提醒
有網(wǎng)到無(wú)網(wǎng)再到有網(wǎng)環(huán)境時(shí)角虫,數(shù)據(jù)是否可以自動(dòng)恢復(fù)俏蛮,正常加載
無(wú)網(wǎng)絡(luò)時(shí),各種提示信息是否友好上遥,數(shù)據(jù)本地化是否正確(比如提示當(dāng)前已斷開(kāi)網(wǎng)絡(luò)搏屑,請(qǐng)檢查網(wǎng)絡(luò)設(shè)置;還有從wifi環(huán)境切換到4G環(huán)境提示是否啟用4G網(wǎng)絡(luò)粉楚,會(huì)產(chǎn)生扣費(fèi)辣恋。
2.1.12.mokey測(cè)試 (monkey壓力測(cè)試 測(cè)試為1000-2000)
對(duì)于手機(jī)測(cè)試,除了我們一些常規(guī)的功能測(cè)試模软,我們還會(huì)做壓力測(cè)試伟骨,比如對(duì)于Android手機(jī),我會(huì)使用adb指令進(jìn)行一些相應(yīng)的操作燃异,比如通過(guò)adb查看設(shè)置携狭,進(jìn)入設(shè)備,抓取log回俐,我們測(cè)試的時(shí)候逛腿,會(huì)使用adb logcat所抓出來(lái)的log日志存到電腦,發(fā)給開(kāi)發(fā)仅颇,方便他們快速解決bug单默。
另外,我還會(huì)使用monkey對(duì)app進(jìn)行測(cè)試忘瓦,可以使用monkey對(duì)app做壓力測(cè)試搁廓,主要就是測(cè)試操作app的時(shí)候,程序是否會(huì)崩潰。
我們使用adb? shell monkey 指定對(duì)應(yīng)的app境蜕,執(zhí)行要測(cè)試的次數(shù)蝙场,指定要觸摸的比率,超時(shí)時(shí)間和忽略崩潰信息粱年,就可以執(zhí)行測(cè)試售滤,將測(cè)試log存到某個(gè)位置,然后把測(cè)試出的bug 日志發(fā)送給開(kāi)發(fā)逼泣。300000
我就簡(jiǎn)單的說(shuō)一下測(cè)試的指令吧,比如我上邊所說(shuō)的邏輯舟舒,我們用 adb shell mokey -p 指定要測(cè)試的包名 --ignore-crashs 忽略崩潰 --ignore-timeout 忽略超時(shí) --throttle 38指定延遲時(shí)間毫秒 -s 指定測(cè)試種子 指定測(cè)試次數(shù)拉庶,然后將文件 >輸出到磁盤(pán)中。
2.1.13.性能測(cè)試
對(duì)于性能測(cè)試秃励,(eclipse和Android studio中本身有檢測(cè)cpu和內(nèi)存的工具氏仗,也有檢測(cè)手機(jī)內(nèi)存泄漏的工具)靠工具來(lái)測(cè)試手機(jī)cpu占用,內(nèi)存占用夺鲜,電池溫度等皆尔,以及測(cè)試我們的app在后臺(tái)持續(xù)運(yùn)行的流量消耗和電量消耗問(wèn)題。
ADB介紹
ADB全稱Android Debug Bridge, 是android sdk里的一個(gè)工具, 用這個(gè)工具可以直接操作管理android模擬器或者真實(shí)的andriod設(shè)備(如G1手機(jī))
它的主要功能有:
* 運(yùn)行設(shè)備的shell(命令行)
* 管理模擬器或設(shè)備的端口映射
* 計(jì)算機(jī)和設(shè)備之間上傳/下載文件
* 將本地apk軟件安裝至模擬器或android設(shè)備
ADB常用指令
查看設(shè)備
adb devices
這個(gè)命令是查看當(dāng)前連接的設(shè)備, 連接到計(jì)算機(jī)的android設(shè)備或者模擬器將會(huì)列出顯示
安裝軟件
adb install -r (APK路徑)
-r 代表如果apk已安裝币励,重新安裝apk并保留數(shù)據(jù)和緩存文件慷蠕。apk路徑則可以直接將apk文件拖進(jìn)cmd窗口,記得加空格食呻。
卸載軟件
adb uninstall <軟件名>
adb uninstall -k <軟件名>
如果加 -k 參數(shù),為卸載軟件但是保留配置和緩存文件
問(wèn)程序員--com.example.test
登錄設(shè)備shell
adb shell
adb shell <command命令>
這個(gè)命令將登錄設(shè)備的shell.
后面加<command命令>將是直接運(yùn)行設(shè)備命令, 相當(dāng)于執(zhí)行遠(yuǎn)程命令
查看手機(jī)內(nèi)存情況
adb shell dumpsys cpuinfo
查看內(nèi)存情況
adb shell getprop | findstr dalvik? 本機(jī)內(nèi)存的使用情況
查看應(yīng)用內(nèi)存使用情況
adb shell dumpsys meminfo +包名:應(yīng)用的內(nèi)存使用情況
列出手機(jī)裝的所有app的包名:
adb shell pm list packages
列出系統(tǒng)應(yīng)用的所有包名:
adb shell pm list packages -s
列出除了系統(tǒng)應(yīng)用的第三方應(yīng)用包名:
adb shell pm list packages -3
adb logcat 查看手機(jī)日志
將手機(jī)日志輸出到本地文件中
adb logcat -v time process > C:/log/aa.txt
有多臺(tái)設(shè)備是adb選擇設(shè)備
adb -s 設(shè)備名稱 logcat -v time process >C:/log/aa.txt
按某級(jí)別過(guò)濾日志則會(huì)將該級(jí)別及以上的日志輸出流炕。
比如,命令:adb logcat *:W 將 Warning仅胞、Error每辟、Fatal 和 Silent 日志輸出
顯示所有優(yōu)先級(jí)大于等于“warning”的日志
Android 的日志分為如下幾個(gè)級(jí)別:
V —— Verbose(最低,輸出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高干旧,啥也不輸出)