1蟋软、移動(dòng)端測(cè)試
1镶摘、定義
移動(dòng)端軟件測(cè)試就是符合多重網(wǎng)絡(luò)(2G,3G岳守,4G凄敢,wifi,弱網(wǎng)湿痢,斷網(wǎng))涝缝,不同系統(tǒng)(ios,Android)譬重,不同硬件配置(手機(jī)/pad,不同機(jī)型)下發(fā)現(xiàn)軟件缺陷拒逮,并保證提高軟件質(zhì)量的過(guò)程。
2臀规、特點(diǎn)(與PC端測(cè)試區(qū)別)
C/S:客戶端-服務(wù)器架構(gòu)滩援;B/S:瀏覽器-服務(wù)器架構(gòu)。區(qū)別如下:
效率:C/S效率高塔嬉,有的內(nèi)容已經(jīng)在系統(tǒng)中玩徊;B/S每次都要加載最新數(shù)據(jù)。
升級(jí):B/S無(wú)縫升級(jí)谨究;C/S刪除老版本再安裝新版本恩袱。
安全:C/S更安全,需安裝胶哲,注冊(cè)畔塔,登錄;B/S有瀏覽器即可使用鸯屿,安全程度低俩檬。
開(kāi)發(fā)成本:B/S成本低;C/S需要不同系統(tǒng)的開(kāi)發(fā)人員碾盟,成本較高。
3技竟、測(cè)試要點(diǎn)
APP測(cè)試主要內(nèi)容:
功能測(cè)試:
1冰肴、業(yè)務(wù)邏輯正確性測(cè)試,依據(jù):產(chǎn)品文檔-》測(cè)試用例編寫
2、兼容性測(cè)試:
—系統(tǒng)版本:Android官方版本熙尉,定制版本联逻;IOS:官方版本
—分辨率:720*1280,1080*1920
—網(wǎng)絡(luò)情況:2G,3G检痰,4G包归,5G,WIFI
異常測(cè)試:
1铅歼、熱啟動(dòng)應(yīng)用:應(yīng)用在后臺(tái)長(zhǎng)時(shí)間待機(jī):應(yīng)用在后臺(tái)待機(jī)時(shí)手機(jī)重啟
2公壤、網(wǎng)絡(luò)切換和終端恢復(fù)
3、電話信息中斷恢復(fù)
升級(jí)椎椰、安裝厦幅、卸載測(cè)試:
1、升級(jí)測(cè)試:臨近版本升級(jí)(1.0-》1.1)慨飘;跨版本(1.0-》...-》2.2)
2确憨、安裝測(cè)試:首次安裝,覆蓋安裝(同版本瓤的,不同版本)休弃,卸載后安裝
3、卸載測(cè)試:首次卸載圈膏;卸載安裝后卸載
健壯性測(cè)試:
1塔猾、手機(jī)資源消耗:CPU,內(nèi)存
2本辐、流量消耗:圖片桥帆,數(shù)據(jù),視頻
3慎皱、電量測(cè)試
4老虫、崩潰恢復(fù)
交叉時(shí)間測(cè)試;
PUSH測(cè)試等茫多。
3祈匙、軟件測(cè)試分類
4、描述用瀏覽器訪問(wèn) www.baidu.com 的過(guò)程天揖?
?先要解析出 baidu.com 對(duì)應(yīng)的 ip 地址:
?要先使用 arp 獲取默認(rèn)網(wǎng)關(guān)的 mac 地址
?組織數(shù)據(jù)發(fā)送給默認(rèn)網(wǎng)關(guān)(ip 還是 dns 服務(wù)器的 ip夺欲,但是 mac 地址是默認(rèn)網(wǎng)關(guān)的 mac 地址)
?默認(rèn)網(wǎng)關(guān)擁有轉(zhuǎn)發(fā)數(shù)據(jù)的能力,把數(shù)據(jù)轉(zhuǎn)發(fā)給路由器
?路由器根據(jù)自己的路由協(xié)議今膊,來(lái)選擇一個(gè)合適的較快的路徑轉(zhuǎn)發(fā)數(shù)據(jù)給目的網(wǎng)關(guān)
?目的網(wǎng)關(guān)(dns 服務(wù)器所在的網(wǎng)關(guān))些阅,把數(shù)據(jù)轉(zhuǎn)發(fā)給 dns 服務(wù)
?dns 服務(wù)器查詢解析出 baidu.com 對(duì)應(yīng)的 ip 地址,并原路返回請(qǐng)求這個(gè)域名的 client
得到了 baidu.com 對(duì)應(yīng)的 ip 地址之后斑唬,會(huì)發(fā)送 tcp 的 3 次握手市埋,進(jìn)行連接
?使用 http 協(xié)議發(fā)送請(qǐng)求數(shù)據(jù)給 web 服務(wù)器
?web 服務(wù)器收到數(shù)據(jù)請(qǐng)求之后黎泣,通過(guò)查詢自己的服務(wù)器得到相應(yīng)的結(jié)果,原路返回給瀏覽器
?瀏覽器接收到數(shù)據(jù)之后通過(guò)瀏覽器自己的渲染功能來(lái)顯示這個(gè)網(wǎng)頁(yè)
?瀏覽器關(guān)閉 tcp 連接缤谎,即 4 次揮手結(jié)束抒倚,完成整個(gè)訪問(wèn)過(guò)程
5、. 給你一個(gè)網(wǎng)站怎么開(kāi)展測(cè)試坷澡?
a)首先托呕,查找需求說(shuō)明、網(wǎng)站設(shè)計(jì)等相關(guān)文檔频敛,分析測(cè)試需求项郊。
b)制定測(cè)試計(jì)劃,確定測(cè)試范圍和測(cè)試策略姻政,一般包括以下幾個(gè)部分:功能性測(cè)呆抑,試界面測(cè)試,性能測(cè)試汁展,數(shù)據(jù)庫(kù)測(cè)試鹊碍,安全性測(cè)試,.兼容性測(cè)試
c)設(shè)計(jì)測(cè)試用例:
?功能性測(cè)試可以包括食绿,但不限于以下幾個(gè)方面:鏈接測(cè)試侈咕;鏈接是否正確跳轉(zhuǎn),是否存在空頁(yè)面和無(wú)效頁(yè)面器紧,是否有不正確的出錯(cuò)信息返回等耀销;提交功能的測(cè)試;多媒體元素是否可以正確加載和顯示铲汪;多語(yǔ)言支持是否能夠正確顯示選擇的語(yǔ)言等
?界面測(cè)試可以包括但不限于一下幾個(gè)方面:頁(yè)面是否風(fēng)格統(tǒng)一熊尉,美觀。頁(yè)面布局是否合理掌腰,重點(diǎn)內(nèi)容和熱點(diǎn)內(nèi)容是否突出狰住。控件是否正常使用齿梁。對(duì)于必須但為安裝的空間催植,是否提供自動(dòng)下載并安裝的功能。文字檢查勺择。
?性能測(cè)試一般從以下兩個(gè)方面考慮:壓力測(cè)試创南,負(fù)載測(cè)試,強(qiáng)度測(cè)試
?數(shù)據(jù)庫(kù)測(cè)試要具體決定是否需要開(kāi)展省核。數(shù)據(jù)庫(kù)一般需要考慮連結(jié)性稿辙,對(duì)數(shù)據(jù)的存取操作,數(shù)據(jù)內(nèi)容的驗(yàn)證等方面气忠。
?安全性測(cè)試:基本的登錄功能的檢查邻储;是否存在溢出錯(cuò)誤未桥,導(dǎo)致系統(tǒng)崩潰或者權(quán)限泄露;相關(guān)開(kāi)發(fā)語(yǔ)言的常見(jiàn)安全性問(wèn)題檢查芥备,例如 SQL 注入等;如果需要高級(jí)的安全性測(cè)試舌菜,確定獲得專業(yè)安全公司的幫助萌壳,外包測(cè)試,或者獲取支持日月。
?兼容性測(cè)試袱瓮,根據(jù)需求說(shuō)明的內(nèi)容,確定支持的平臺(tái)組合:瀏覽器的兼容性爱咬;操作系統(tǒng)的兼容性尺借;軟件平臺(tái)的兼容性;數(shù)據(jù)庫(kù)的兼容性精拟。
d)開(kāi)展測(cè)試燎斩,并記錄缺陷。合理的安排調(diào)整測(cè)試進(jìn)度蜂绎,提前獲取測(cè)試所需的資源栅表,建立管理體系(例如,需求變更师枣、風(fēng)險(xiǎn)怪瓶、配置、測(cè)試文檔践美、缺陷報(bào)告洗贰、人力資源等內(nèi)容)。
e)定期評(píng)審陨倡,對(duì)測(cè)試進(jìn)行評(píng)估和總結(jié)敛滋,調(diào)整測(cè)試的內(nèi)容
6、常用ADB命令
adb --help / adb :看見(jiàn)幫助信息
adb start-server:啟動(dòng) adb 服務(wù)
adb kill-server:關(guān)閉 adb 服務(wù)
adb devices:查看手機(jī)設(shè)備號(hào)
adb shell getprop ro.build.version.release:獲取系統(tǒng)版本
adb push 電腦 手機(jī)
adb pull 手機(jī) 電腦
adb logcat | grep(unix) 包名
adb logcat | findstr(win) 包名
adb shell :進(jìn)入 shell 命令行玫膀,可以操作 Linux 命令
adb shell dumpsys window windows | grep mFocusedApp:獲取包名 啟動(dòng)名(win:adb shell dumpsys window
windows | findstr mFocusedApp)
adb install 路徑/apk 文件:安裝 apk 到手機(jī)上
adb uninstall 包名:卸載 app 從手機(jī)上
adb shell am start -W 包名/啟動(dòng)名:app 啟動(dòng)時(shí)間
7矛缨、APP崩潰(閃退),可能是什么原因造成的
緩存的垃圾太多帖旨;
打開(kāi)的應(yīng)用程序過(guò)多箕昭;
應(yīng)用版本兼容問(wèn)題;
檢查APP的SDK和手機(jī)的系統(tǒng)是否兼容解阅;
檢查APP訪問(wèn)網(wǎng)絡(luò)的地方落竹,組件中的ImageView是否可以正常下載并顯示到APP頁(yè)面上;
在一些特定情況下閃退货抄,如播放視頻述召,Android5.0升級(jí)到6.0時(shí)朱转,有的系統(tǒng)API老版本有,新版本沒(méi)有积暖。
8藤为、如何測(cè)試監(jiān)測(cè) app 的內(nèi)存使用、CPU 消耗夺刑、流量使用情況缅疟?
adb shell top
Android 應(yīng)用性能測(cè)試通常包括:?jiǎn)?dòng)時(shí)間、內(nèi)存遍愿、CPU存淫、耗電量、流量沼填、流暢度等
根據(jù)手機(jī)的使用應(yīng)用頻度和強(qiáng)度不同桅咆,可將應(yīng)用使用強(qiáng)度分為如下幾種狀態(tài):
?空閑狀態(tài):指啟動(dòng)應(yīng)用后,不做任何操作或切換到后臺(tái)運(yùn)行的情況稱為空閑狀態(tài)坞笙,該情況為應(yīng)用對(duì)內(nèi)存的消耗是最小的岩饼。
?中強(qiáng)度狀態(tài):該情況用戶使用應(yīng)用的強(qiáng)度和時(shí)間長(zhǎng)短不確定,相對(duì)來(lái)說(shuō)使用時(shí)長(zhǎng)偏長(zhǎng)羞海。
?高強(qiáng)度狀態(tài):該種情況為應(yīng)用內(nèi)高頻率的使用忌愚,用戶很少達(dá)到,跑 monkey 時(shí)可認(rèn)為高強(qiáng)度狀態(tài)却邓,該種情況常用來(lái)測(cè)試應(yīng)用內(nèi)存泄漏的情況測(cè)試時(shí)硕糊,可根據(jù)用戶的操作習(xí)慣模擬應(yīng)用使用頻率和強(qiáng)度等級(jí)。
使用 adb 命令腊徙,手機(jī)連接電腦開(kāi)啟 USB 調(diào)試模式简十,進(jìn)入 adbshell。
(1)查看 CPU 占用率
使用命令 top -m 10 -s cpu(-t 顯示進(jìn)程名稱撬腾,-s 按指定行排序螟蝙,-n 在退出前刷新幾次,-d 刷新間隔民傻,-m 顯示最大數(shù)量)
9胰默、局域網(wǎng)和廣域網(wǎng)
1、局域網(wǎng)(LAN)指某一區(qū)域內(nèi)由多臺(tái)計(jì)算機(jī)互聯(lián)成的計(jì)算機(jī)組漓踢∏J穑“某一區(qū)域”指同一個(gè)辦公室,同一建筑物,同一公司和同一學(xué)校等,方圓幾公里內(nèi)颖对。局域網(wǎng)可實(shí)現(xiàn)文件管理嫁赏,應(yīng)用軟件共享取具,打印機(jī)共享脖隶,工作組內(nèi)日程安排,電子郵件和傳真通信服務(wù)等功能暇检。局域網(wǎng)是封閉型的产阱。
2、廣域網(wǎng)(WAN)是一種跨越大的块仆、地域性的計(jì)算機(jī)網(wǎng)絡(luò)的集合心墅。通常跨省榨乎、市甚至一個(gè)國(guó)家。廣域網(wǎng)包括大大小小不同的子網(wǎng)瘫筐,子網(wǎng)可以是局域網(wǎng)蜜暑,也可以是小型廣域網(wǎng)。
10策肝、10M 兆寬帶是什么意思肛捍?理論下載速度是多少?
首先我們要搞懂其中的區(qū)別之众,運(yùn)營(yíng)商說(shuō)的 10M拙毫,完整的單位應(yīng)該是 10Mbps(bps:比特率),而我們講的下載速度單位是 MB棺禾,雖然都念兆缀蹄,但是不一樣的。
它們之間的換算關(guān)系是:1MB=8×1Mbps膘婶,換個(gè)方式看:1Mbps÷8=128KB缺前,也就是說(shuō),運(yùn)營(yíng)商稱的 10M寬帶悬襟,實(shí)際速度是 10Mbps÷8=1280KB衅码,約 1.25MB。
11脊岳、cookies 和 session 的區(qū)別逝段?
cookies:是針對(duì)每一個(gè)網(wǎng)站的信息,每一個(gè)網(wǎng)站只對(duì)應(yīng)一個(gè)割捅,其它網(wǎng)站不能訪問(wèn)奶躯,這個(gè)文件是保存在客戶端的,每次你打相應(yīng)網(wǎng)站棺牧,瀏覽器會(huì)查找這個(gè)網(wǎng)站的 cookies巫糙,如果有就會(huì)將這個(gè)文件起發(fā)送出去。cookies文件的內(nèi)容大致包函這些信息如用戶名颊乘,密碼参淹,設(shè)置等醉锄。
session: 是針對(duì)每一個(gè)用戶的,只有客戶機(jī)訪問(wèn)浙值,程序就會(huì)為這個(gè)客戶新增一個(gè) session恳不。session 里主要保存的是用戶的登錄信息,操作信息等开呐。這個(gè) session 在用戶訪問(wèn)結(jié)束后會(huì)被自動(dòng)消失(如果超時(shí)也會(huì))烟勋。
12、GET和POST的區(qū)別GET 和 POST 的區(qū)別
總結(jié)來(lái)說(shuō)就是:它們的本質(zhì)都是 TCP 鏈接筐付,并無(wú)區(qū)別卵惦。但是由于 HTTP 的規(guī)定以及瀏覽器/服務(wù)器的限制,導(dǎo)致它們?cè)趹?yīng)用過(guò)程中可能會(huì)有所不同瓦戚。
(1)post更安全(不會(huì)作為url的一部分沮尿,不會(huì)被緩存、保存在服務(wù)器日志较解、以及瀏覽器瀏覽記錄中)
(2)post發(fā)送的數(shù)據(jù)更大(get有url長(zhǎng)度限制)
(3)post能發(fā)送更多的數(shù)據(jù)類型(get只能發(fā)送ASCII字符)
(4)post比get慢
(5)post用于修改和寫入數(shù)據(jù)畜疾,get一般用于搜索排序和篩選之類的操作(淘寶,支付寶的搜索查詢都是get提交)印衔,目的是資源的獲取啡捶,讀取數(shù)據(jù)
1、post請(qǐng)求包含更多的請(qǐng)求頭
2.最重要的一條奸焙,post在真正接收數(shù)據(jù)之前會(huì)先將請(qǐng)求頭發(fā)送給服務(wù)器進(jìn)行確認(rèn)瞎暑,然后才真正發(fā)送數(shù)據(jù)
3、get會(huì)將數(shù)據(jù)緩存起來(lái)与帆,而post不會(huì)
4金顿、post不能進(jìn)行管道化傳輸
13、APP測(cè)試流程
參與需求評(píng)審:評(píng)審前看需求文檔
制定測(cè)試計(jì)劃:什么人鲤桥,測(cè)試多久揍拆,測(cè)試內(nèi)容,風(fēng)險(xiǎn)等
設(shè)計(jì)和編寫測(cè)試用例:后評(píng)審
執(zhí)行用例茶凳,跟蹤缺陷
編寫提交版本測(cè)試報(bào)告嫂拴。
14、弱網(wǎng)測(cè)試
步驟:
1贮喧、打開(kāi)fiddler或Charles筒狠,設(shè)置相應(yīng)的代理端口(端口被占用時(shí)需要手動(dòng)更改代理端口);
2箱沦、在代理工具中設(shè)置網(wǎng)絡(luò)的上傳和下載的速度
3辩恼、在手機(jī)中設(shè)置網(wǎng)絡(luò)的代理
15、FPS(流暢度)
可以通過(guò)(Perfdog)性能狗來(lái)監(jiān)控APP的流暢度。
如果要達(dá)到流暢的效果灶伊,F(xiàn)PS的值應(yīng)該在24疆前。
如果要達(dá)到最佳的效果,F(xiàn)PS的值為60聘萨。
16竹椒、流量?jī)?yōu)化
* 數(shù)據(jù)壓縮
* 針對(duì)相同的數(shù)據(jù),采用不同的數(shù)據(jù)格式
* 控制訪問(wèn)的次數(shù)
* 緩存機(jī)制
* 只獲取必要的數(shù)據(jù)
* 懶加載
20米辐、電量測(cè)試
* 可以使用其他的性能測(cè)試工具來(lái)測(cè)試
* 可以通過(guò)對(duì)比方式來(lái)測(cè)試(如同類產(chǎn)品對(duì)比))
* 耗電場(chǎng)景:開(kāi)啟定位胸完,GPS;藍(lán)牙翘贮;網(wǎng)絡(luò)傳輸赊窥,WIFI,屏幕亮度
2/智能產(chǎn)品測(cè)試
1狸页、系統(tǒng)測(cè)試
按照測(cè)試流程來(lái)走就好誓琼,需求分析、測(cè)試計(jì)劃肴捉、測(cè)試用例及評(píng)審、冒煙測(cè)試叔收、執(zhí)行測(cè)試若干輪齿穗、回歸測(cè)試、測(cè)試報(bào)告等步驟走完饺律。主要測(cè)試的對(duì)象是以應(yīng)用為核心窃页,兼測(cè)試服務(wù)器及設(shè)備的功能。
目前大家主要在做的是這部分的測(cè)試复濒,做好這部分的測(cè)試脖卖,產(chǎn)品80%的bug都能發(fā)現(xiàn)。
2巧颈、接口測(cè)試
以前的接口測(cè)試主要是app和服務(wù)器的通信畦木,主要以http請(qǐng)求為主。
智能硬件產(chǎn)品的服務(wù)器承載兩個(gè)端的請(qǐng)求砸泛,一般來(lái)說(shuō)硬件產(chǎn)品與服務(wù)器會(huì)建立一個(gè)TCP/UDP長(zhǎng)連接十籍,定時(shí)發(fā)心跳包及其他通信內(nèi)容包,另一端則是app端的接口唇礁。
以java為例勾栗,測(cè)試長(zhǎng)連接的服務(wù)端,socket寫一個(gè)客戶端盏筐,用現(xiàn)成框架mina/netty寫一個(gè)客戶端等围俘,具體代碼就不給出了。http請(qǐng)求就不贅述,方法太多了界牡。
這部分的測(cè)試最好和開(kāi)發(fā)同時(shí)進(jìn)行簿寂,但新項(xiàng)目的進(jìn)度和需求緣故,一般都會(huì)等到產(chǎn)品穩(wěn)定進(jìn)行欢揖,這塊發(fā)現(xiàn)的問(wèn)題很多都不是嚴(yán)重的問(wèn)題陶耍,但是一旦有個(gè)重要問(wèn)題就會(huì)導(dǎo)致產(chǎn)品功能無(wú)法使用
3、核心測(cè)試
什么是核心測(cè)試她混?試想一下智能手環(huán)運(yùn)動(dòng)檢測(cè)不準(zhǔn)確烈钞,OBD會(huì)使靜止的汽車虧電,智能血壓計(jì)檢測(cè)的血壓不對(duì)等等問(wèn)題坤按,那么這個(gè)產(chǎn)品一旦上市就會(huì)失敗毯欣,任何的bug修復(fù)也無(wú)濟(jì)于事。所以這塊的測(cè)試非常重要臭脓。
以下舉幾個(gè)核心測(cè)試內(nèi)容的例子:
耗電測(cè)試酗钞,最簡(jiǎn)單是接一個(gè)萬(wàn)用表,實(shí)時(shí)查看設(shè)備的電量情況来累,但是你必須實(shí)時(shí)查看砚作,也沒(méi)有歷史記錄。最好是準(zhǔn)備一個(gè)專用的功率電量測(cè)試工具嘹锁,有交直流電葫录,有報(bào)表輸出,在各種配置下的耗電情況都能自動(dòng)記錄领猾。這塊主要針對(duì)手環(huán)米同、OBD等需要電池的產(chǎn)品。
GPS測(cè)試摔竿,戶外的智能產(chǎn)品大部分都配備了GPS面粮,GPS信號(hào)強(qiáng)度和周圍環(huán)境有直接關(guān)系。隧道继低、高層建筑熬苍、天氣等都會(huì)干擾GPS定位,另外設(shè)備啟動(dòng)關(guān)閉點(diǎn)也是GPS容易發(fā)生問(wèn)題的時(shí)候袁翁。
干擾測(cè)試冷溃,很多智能硬件產(chǎn)品會(huì)插在其他設(shè)備上,如電視盒子梦裂、家居控制設(shè)備似枕、汽車設(shè)備,一定程度上會(huì)對(duì)其他設(shè)備產(chǎn)生干擾年柠,甚至影響其他設(shè)備的正常使用凿歼。
類似的功能還有很多褪迟,這些是智能硬件產(chǎn)品的核心,如果這些功能出現(xiàn)問(wèn)題答憔,產(chǎn)品就會(huì)死掉味赃,所以這部分需要重點(diǎn)測(cè)試,投入最多的人力進(jìn)去虐拓。
4心俗、電商、供應(yīng)鏈系統(tǒng)業(yè)務(wù)測(cè)試
電商測(cè)試
5蓉驹、嵌入式軟件測(cè)試
除了互聯(lián)網(wǎng)的應(yīng)用外城榛,還存在一種叫做嵌入式的軟件測(cè)試。比如航空器态兴,車載設(shè)備狠持,移動(dòng)設(shè)備等。
嵌入式軟件系統(tǒng)測(cè)試具有如下特點(diǎn):
≌叭蟆(1)測(cè)試軟件功能依賴不需編碼的硬件功能喘垂,快速定位軟硬件錯(cuò)誤困難;
∩茏病(2)強(qiáng)壯性測(cè)試正勒、可知性測(cè)試很難編碼實(shí)現(xiàn);
∩迪场(3)交叉測(cè)試平臺(tái)的測(cè)試用例章贞、測(cè)試結(jié)果上載困難;
》瘛(4)基于消息系統(tǒng)測(cè)試的復(fù)雜性,包括線程就谜、任務(wù)怪蔑、子系統(tǒng)之間的交互,并發(fā)丧荐、容錯(cuò)和對(duì)時(shí)間的要求缆瓣;
(5)性能測(cè)試虹统、確定性能瓶頸困難弓坞;
(6)實(shí)施測(cè)試自動(dòng)化技術(shù)困難车荔。
6渡冻、藍(lán)牙耳機(jī),音箱測(cè)試
藍(lán)牙耳機(jī)測(cè)試: