App測(cè)試工程師必須掌握的測(cè)試技巧

一、前言

移動(dòng)端測(cè)試經(jīng)過(guò)近十年的發(fā)展慨代,方法和工具已經(jīng)非常成熟邢笙。很多時(shí)候,我們不一定自己非得開(kāi)發(fā)什么工具和平臺(tái)鱼响,利用現(xiàn)有的工具鸣剪,也能提高質(zhì)量和測(cè)試效率。本文主要根據(jù)作者積累的App測(cè)試的方法和經(jīng)驗(yàn),總結(jié)一些App測(cè)試的技巧筐骇,以及如何利用工具提升測(cè)試效率债鸡。

二、App常用測(cè)試技巧

1. App測(cè)試的正確姿勢(shì)

在進(jìn)行App測(cè)試的時(shí)候铛纬,手機(jī)一定要連接到電腦厌均,同時(shí)開(kāi)啟命令行抓取日志和網(wǎng)絡(luò)抓包工具。這樣告唆,如果發(fā)現(xiàn)Bug棺弊,我們能第一時(shí)間通過(guò)錯(cuò)誤日志和網(wǎng)絡(luò)請(qǐng)求,分析定位Bug擒悬。常用的抓包工具模她,Windows下建議Fiddler,Mac下建議Charles懂牧。

日志和抓包

2. 如何提供最有效的Bug信息

在保證產(chǎn)品質(zhì)量的過(guò)程中侈净,測(cè)試人員的主要工作在于發(fā)現(xiàn)產(chǎn)品研發(fā)過(guò)程中出現(xiàn)的各種Bug,開(kāi)發(fā)人員根據(jù)我們的Bug描述僧凤,定位并解決Bug畜侦。由于問(wèn)題的發(fā)現(xiàn)和解決并非同一個(gè)人,測(cè)試人員對(duì)Bug信息的描述就非常重要躯保。那么怎樣提供最有效的Bug信息呢旋膳?我提供幾點(diǎn)參考。

  • 復(fù)現(xiàn)步驟的描述能用視頻盡量不用文字途事。
    大部分的Bug系統(tǒng)都支持gif圖片的展示验懊。gif圖片其實(shí)是一種網(wǎng)頁(yè)端的視頻格式。因?yàn)槎⑺铮绻覀儼褟?fù)現(xiàn)步驟錄制成一個(gè)gif圖片鲁森,附在Bug單里面祟滴,將會(huì)更加清晰明了振惰。這里介紹一個(gè)錄制gif視頻的小工具:LICEcap,它可以快速對(duì)PC屏幕進(jìn)行錄制垄懂,然后轉(zhuǎn)成gif視頻骑晶,效果如下:
LICEcap視頻工具
  • Logcat日志不可少
    通常開(kāi)發(fā)同學(xué)會(huì)在代碼中加入一些調(diào)試日志,一旦程序出現(xiàn)異常草慧,會(huì)在日志中打印出來(lái)桶蛔。因此,我們?nèi)绻麑ug出現(xiàn)前后的日志截取下來(lái)漫谷,將會(huì)給開(kāi)發(fā)同學(xué)的問(wèn)題定位帶來(lái)效率的提升仔雷。
    對(duì)于實(shí)時(shí)日志的獲取,Android系統(tǒng)可以通過(guò)Android sdk中的adb logcat工具抓取:
    logcat

iOS通過(guò)libimobiledevice獲取:

brew install libimobiledevice
idevicesyslog [-u <device-udid>]
  • 不要忽視網(wǎng)絡(luò)請(qǐng)求
    絕大多數(shù)的App產(chǎn)品都需要與后端進(jìn)行交互碟婆。很多Bug有可能是后端返回異常導(dǎo)致的电抚。因此,我們可以對(duì)發(fā)生Bug前后的網(wǎng)絡(luò)日志進(jìn)行抓取提供給開(kāi)發(fā)同學(xué)竖共。關(guān)于抓包方法的介紹參考慶豐的文章-移動(dòng)應(yīng)用抓包調(diào)試?yán)鰿harles蝙叛。

3. 如何通過(guò)Mock測(cè)試提高效率

Mock一般是指模擬某個(gè)服務(wù)器接口的返回?cái)?shù)據(jù)。在App的測(cè)試中公给,我們?yōu)榱藴y(cè)試某個(gè)服務(wù)器接口的不同返回結(jié)果對(duì)前端交互的影響借帘,經(jīng)常需要反復(fù)構(gòu)造不同參數(shù)的網(wǎng)絡(luò)請(qǐng)求。這個(gè)過(guò)程繁瑣又效率低下淌铐,其實(shí)最好的方法就是通過(guò)Mock工具肺然,將請(qǐng)求的返回?cái)?shù)據(jù)進(jìn)行修改。

例如腿准,對(duì)于我們熟知的登錄接口狰挡,有登錄超時(shí)、操作超時(shí)释涛、登錄被擠下線加叁、登錄系統(tǒng)繁忙、賬戶(hù)和密碼錯(cuò)誤唇撬、賬戶(hù)鎖定它匕、賬戶(hù)解密失敗等多種情況。如果是在沒(méi)有mock的情況下窖认,我們需要實(shí)際構(gòu)造10多種場(chǎng)景豫柬,有些比如系統(tǒng)繁忙,超時(shí)等場(chǎng)景通過(guò)傳統(tǒng)的方法根本沒(méi)法構(gòu)造出來(lái)扑浸。利用Mock方法烧给,我們可以借助一些工具,例如charles打斷點(diǎn)喝噪,截取接口返回的response的json數(shù)據(jù)础嫡,進(jìn)行一些模擬。

這里推薦的Mock工具還是Charles酝惧,它提供了 Map 功能榴鼎、 Rewrite 功能以及 Breakpoints 功能,都可以達(dá)到修改服務(wù)器返回內(nèi)容的目的晚唇。這三者在功能上的差異是:

  • Map 功能適合長(zhǎng)期地將某一些請(qǐng)求重定向到另一個(gè)網(wǎng)絡(luò)地址或本地文件巫财。
  • Rewrite 功能適合對(duì)網(wǎng)絡(luò)請(qǐng)求進(jìn)行一些正則替換。
  • Breakpoints 功能適合做一些臨時(shí)性的修改哩陕。

具體的使用方法也可以參考慶豐的文章-移動(dòng)應(yīng)用抓包調(diào)試?yán)鰿harles平项。

4. 模擬器的妙用

我們的測(cè)試同學(xué)一般習(xí)慣在真機(jī)上進(jìn)行測(cè)試赫舒,覺(jué)得這樣更加符合用戶(hù)的真實(shí)場(chǎng)景。其實(shí)闽瓢,仔細(xì)想想你會(huì)發(fā)現(xiàn)号阿,大部分的測(cè)試工作都是在驗(yàn)證產(chǎn)品本身的功能,與手機(jī)本身無(wú)關(guān)鸳粉。那么我們是不是也可以在模擬器上進(jìn)行測(cè)試呢扔涧?很多人可能會(huì)覺(jué)得Android自帶的模擬器性能不好,但是現(xiàn)在市場(chǎng)上出現(xiàn)了很多非常優(yōu)秀的模擬器届谈,比如Genymotion枯夜,網(wǎng)易mumu,Droid4X等艰山,這些模擬器的性能都與真機(jī)媲美湖雹,對(duì)于iOS系統(tǒng),自帶的模擬器我們就不用多說(shuō)了曙搬。除此之外摔吏,我這里還要給大家說(shuō)說(shuō)模擬器的妙用。

(1)模擬GPS位置
大多數(shù)的Android模擬器都有位置模擬功能纵装,我們?cè)O(shè)置特定的GPS位置征讲,即可讓你定位到指定的位置,從而測(cè)試需要區(qū)分地域的場(chǎng)景橡娄。

位置模擬

(2)設(shè)置分辨率
App測(cè)試中诗箍,我們經(jīng)常需要測(cè)試不同屏幕尺寸,不同分辨率下的UI展示情況挽唉。通常的做法滤祖,是去購(gòu)買(mǎi)各種屏幕尺寸和分辨率的手機(jī),從而進(jìn)行兼容性的測(cè)試瓶籽。這樣的做法適合土豪團(tuán)隊(duì)匠童,同時(shí)效率也比較低下。從節(jié)約成本上來(lái)考慮的話塑顺,我們可以使用模擬器汤求,Android的模擬器一般支持分辨率和屏幕尺寸的自定義設(shè)置,iOS可以啟動(dòng)不同機(jī)型的模擬器茬暇。

分辨率
iOS模擬器

(3)快速截圖和錄制視頻
真機(jī)上發(fā)現(xiàn)Bug首昔,我們截屏后寡喝,需要將圖片從手機(jī)傳輸?shù)诫娔X糙俗,然后提交到Bug系統(tǒng),這個(gè)過(guò)程影響工作效率预鬓。而且有的App還禁止了手機(jī)的截屏功能巧骚。在模擬上赊颠,我們不僅可以快速截屏,還可以用前面介紹的LICEcap工具錄制gif視頻劈彪。

5. 模擬網(wǎng)絡(luò)環(huán)境

由于手機(jī)的移動(dòng)性竣蹦,App的網(wǎng)絡(luò)場(chǎng)景非常復(fù)雜,網(wǎng)絡(luò)丟包率和延時(shí)有時(shí)候會(huì)非常高沧奴。為了測(cè)試不同網(wǎng)絡(luò)環(huán)境下App的功能是否正常痘括,我們經(jīng)常需要去一些信號(hào)不好的地方進(jìn)行測(cè)試。其實(shí)也可以有便捷的方式模擬網(wǎng)絡(luò)環(huán)境滔吠。常見(jiàn)的抓包工作Fiddler和Charles都支持丟包和延時(shí)的設(shè)置纲菌。只要我們知道不同網(wǎng)絡(luò)場(chǎng)景的丟包率和延遲參數(shù),即可通過(guò)工具模擬出來(lái)疮绷。然后通過(guò)手機(jī)連接模擬出來(lái)的網(wǎng)絡(luò)進(jìn)行測(cè)試翰舌。下面是常見(jiàn)網(wǎng)絡(luò)場(chǎng)景的參數(shù)設(shè)備列表,僅供參考冬骚。

網(wǎng)絡(luò)兼容性測(cè)試

6. 免費(fèi)的工具和平臺(tái)

這里不做過(guò)多的介紹椅贱,具體可以參考我之前的文章-移動(dòng)測(cè)試工程師必須知道的10個(gè)開(kāi)源框架

三、總結(jié)

荀子說(shuō)過(guò)“君子生非異也只冻,善假于物也”庇麦。善于利用現(xiàn)有的工具解決實(shí)際問(wèn)題,也是一項(xiàng)非常重要的能力喜德。本文只是拋磚引玉女器,由于業(yè)務(wù)場(chǎng)景的限制,很多方法不一定是最好的住诸,總結(jié)也不是很全面驾胆,歡迎大家多多留言,共同探討贱呐。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末丧诺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子奄薇,更是在濱河造成了極大的恐慌驳阎,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件馁蒂,死亡現(xiàn)場(chǎng)離奇詭異呵晚,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)沫屡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)饵隙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人沮脖,你說(shuō)我怎么就攤上這事金矛⌒炯保” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵驶俊,是天一觀的道長(zhǎng)娶耍。 經(jīng)常有香客問(wèn)我,道長(zhǎng)饼酿,這世上最難降的妖魔是什么榕酒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮故俐,結(jié)果婚禮上奈应,老公的妹妹穿的比我還像新娘。我一直安慰自己购披,他們只是感情好杖挣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著刚陡,像睡著了一般惩妇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上筐乳,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天歌殃,我揣著相機(jī)與錄音,去河邊找鬼蝙云。 笑死氓皱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的勃刨。 我是一名探鬼主播波材,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼身隐!你這毒婦竟也來(lái)了廷区?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤贾铝,失蹤者是張志新(化名)和其女友劉穎隙轻,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體垢揩,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玖绿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叁巨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斑匪。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖俘种,靈堂內(nèi)的尸體忽然破棺而出秤标,到底是詐尸還是另有隱情绝淡,我是刑警寧澤宙刘,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布苍姜,位于F島的核電站,受9級(jí)特大地震影響悬包,放射性物質(zhì)發(fā)生泄漏衙猪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一布近、第九天 我趴在偏房一處隱蔽的房頂上張望垫释。 院中可真熱鬧,春花似錦撑瞧、人聲如沸棵譬。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)订咸。三九已至,卻和暖如春酬诀,著一層夾襖步出監(jiān)牢的瞬間脏嚷,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工瞒御, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留父叙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓肴裙,卻偏偏與公主長(zhǎng)得像趾唱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蜻懦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容