軟件測(cè)試52講筆記--20 與時(shí)俱進(jìn):淺談移動(dòng)應(yīng)用測(cè)試方法與思路

這是我購買的"極客時(shí)間"上的一套課程的筆記圃泡,總共52講,定期對(duì)其中的內(nèi)容做一筆記愿险,鞏固學(xué)習(xí)內(nèi)容颇蜡。

20 與時(shí)俱進(jìn):淺談移動(dòng)應(yīng)用測(cè)試方法與思路

在作者看來,無論移動(dòng)端和PC段測(cè)試辆亏,都屬于GUI測(cè)試的范疇风秤,所以基本的測(cè)試思路是相通的。所以之前所說的腳本分層的實(shí)現(xiàn)方法也同樣適用于移動(dòng)端的GUI測(cè)試扮叨。

移動(dòng)端應(yīng)用又可以進(jìn)一步細(xì)分為三大類:Web App, Native App 和 Hybird App缤弦。

三類移動(dòng)應(yīng)用的特點(diǎn)

Web App本質(zhì)上就是Web網(wǎng)頁彻磁。
Native App:移動(dòng)端的原生應(yīng)用。
Hybird App:介于上述二者之間尘喝。

三類不同移動(dòng)應(yīng)用的測(cè)試方法

如果你的 Web 頁面是基于自適應(yīng)網(wǎng)頁設(shè)計(jì)(即符合 Responsive Web 設(shè)計(jì)的規(guī)范)瞧省,而且你的測(cè)試框架如果支持 Responsive Page鞍匾,那么原則上你之前開發(fā)的運(yùn)行在 PC Web 端的 GUI 自動(dòng)化測(cè)試用例橡淑,不做任何修改就可以直接在移動(dòng)端的瀏覽器上直接執(zhí)行梁棠,當(dāng)然運(yùn)行的前提是你的移動(dòng)端瀏覽器必須支持 Web Driver符糊。

對(duì) Native App 的測(cè)試呛凶,雖然不同的平臺(tái)會(huì)使用不同的自動(dòng)化測(cè)試方案(比如模闲,iOS 一般采用 XCUITest Driver尸折,而 Android 一般采用 UiAutomator2 或者 Espresso 等)实夹,但是數(shù)據(jù)驅(qū)動(dòng)亮航、頁面對(duì)象以及業(yè)務(wù)流程封裝的思想依舊適用塞赂,你完全可以把這些方法應(yīng)用到測(cè)試用例設(shè)計(jì)中宴猾。

對(duì) Hybrid App 的測(cè)試仇哆,情況會(huì)稍微復(fù)雜一點(diǎn)油讯,對(duì) Native Container 的測(cè)試陌兑,可能需要用到 XCUITest 或者 UiAutomator2 這樣的原生測(cè)試框架兔综,而對(duì) Container 中 HTML5 的測(cè)試软驰,基本和傳統(tǒng)的網(wǎng)頁測(cè)試沒什么區(qū)別锭亏,所以原本基于 GUI 的測(cè)試思想和方法都能繼續(xù)適用慧瘤。

移動(dòng)應(yīng)用專項(xiàng)測(cè)試的思路和方法

第一碑隆,交叉事件測(cè)試

也叫中斷測(cè)試,是指App執(zhí)行過程中,有其他事件或者應(yīng)用中斷當(dāng)前應(yīng)用執(zhí)行的測(cè)試永部。

此類測(cè)試目前基本是采用手工測(cè)試苔埋,并且在真機(jī)上進(jìn)行组橄,不會(huì)采用模擬器玉工。

交叉事件測(cè)試遵班,需要覆蓋的場景主要包括:

  • 多個(gè) App 同時(shí)在后臺(tái)運(yùn)行腹暖,并交替切換至前臺(tái)是否影響正常功能微服;
    要求相同系統(tǒng)資源的多個(gè) App 前后臺(tái)交替切換是否影響正常功能以蕴,比如兩個(gè) App 都需要播放音樂,那么兩者在交替切換的過程中宝与,播放音樂功能是否正常;
  • App 運(yùn)行時(shí)接聽電話诽里;
  • App 運(yùn)行時(shí)接收信息;
  • App 運(yùn)行時(shí)提示系統(tǒng)升級(jí)墓懂;
  • App 運(yùn)行時(shí)發(fā)生系統(tǒng)鬧鐘事件捕仔;
  • App 運(yùn)行時(shí)進(jìn)入低電量模式闸天;
  • App 運(yùn)行時(shí)第三方安全軟件彈出告警;
  • App 運(yùn)行時(shí)發(fā)生網(wǎng)絡(luò)切換笼吟,比如,由 Wifi 切換到移動(dòng) 4G 網(wǎng)絡(luò),或者從 4G 網(wǎng)絡(luò)切換到 3G 網(wǎng)絡(luò)等锄禽;

第二,兼容性測(cè)試

常見的 App 兼容性測(cè)試往往需要覆蓋以下的測(cè)試場景:

  • 不同操作系統(tǒng)的兼容性宵晚,包括主流的 Andoird 和 iOS 版本;
  • 主流的設(shè)備分辨率下的兼容性;
  • 主流移動(dòng)終端機(jī)型的兼容性耕陷;
  • 同一操作系統(tǒng)中饺蔑,不同語言設(shè)置時(shí)的兼容性孔祸;
  • 不同網(wǎng)絡(luò)連接下的兼容性拂蝎,比如 Wifi、GPRS、EDGE馆里、CDMA200 等;
  • 在單一設(shè)備上,與主流熱門 App 的兼容性,比如微信、抖音编振、淘寶等;

  • **兼容性測(cè)試,通常都需要在各種真機(jī)上執(zhí)行相同或者類似的測(cè)試用例累贤,所以往往采用自動(dòng)化測(cè)試的手段示损。 **同時(shí)烛谊,由于需要覆蓋大量的真實(shí)設(shè)備,除了大公司會(huì)基于 Appium + Selenium Grid + OpenSTF 去搭建自己的移動(dòng)設(shè)備私有云平臺(tái)外丹禀,其他公司一般都會(huì)使用第三方的移動(dòng)設(shè)備云測(cè)平臺(tái)完成兼容性測(cè)試状勤。

第三方的移動(dòng)設(shè)備云測(cè)平臺(tái),國外最知名的是 SauceLab双泪,國內(nèi)主流的是 Testin持搜。

第三,流量測(cè)試

流量測(cè)試焙矛,通常包含以下幾個(gè)方面的內(nèi)容:

  • App 執(zhí)行業(yè)務(wù)操作引起的流量葫盼;

  • App 在后臺(tái)運(yùn)行時(shí)的消耗流量;

  • App 安裝完成后首次啟動(dòng)耗費(fèi)的流量村斟;

  • App 安裝包本身的大衅兜肌;

  • App 內(nèi)購買或者升級(jí)需要的流量蟆盹。
    流量測(cè)試孩灯,往往借助于 Android 和 iOS 自帶的工具進(jìn)行流量統(tǒng)計(jì),也可以利用 tcpdump逾滥、Wireshark 和 Fiddler 等網(wǎng)絡(luò)分析工具峰档。
    Android:/proc/net/dev目錄下存儲(chǔ)網(wǎng)絡(luò)流量信息;ADB工具獲取實(shí)時(shí)流量信息寨昙;輕量級(jí)性能監(jiān)控小工具Emmagee
    iOS:Xcode自帶的Network Activity
    但是讥巡,流量測(cè)試的最終目的,并不是得到 App 的流量數(shù)據(jù)舔哪,而是要想辦法減少 App 產(chǎn)生的流量欢顷。雖然,減少 App 消耗的流量不是測(cè)試工程師的工作尸红,但了解一些常用的方法吱涉,也將有助于你的測(cè)試日常工作:

  • 啟用數(shù)據(jù)壓縮刹泄,尤其是圖片外里;

  • 使用優(yōu)化的數(shù)據(jù)格式怎爵,比如同樣信息量的 JSON 文件就要比 XML 文件小盅蝗;

  • 遇到既需要加密又需要壓縮的場景鳖链,一定是先壓縮再加密;

  • 減少單次 GUI 操作觸發(fā)的后臺(tái)調(diào)用數(shù)量墩莫;

  • 每次回傳數(shù)據(jù)盡可能只包括必要的數(shù)據(jù)芙委;

  • 啟用客戶端的緩存機(jī)制;

第四狂秦,耗電量測(cè)試

耗電量測(cè)試通常從三個(gè)方面來考量:

  • App 運(yùn)行但沒有執(zhí)行業(yè)務(wù)操作時(shí)的耗電量灌侣;
  • App 運(yùn)行且密集執(zhí)行業(yè)務(wù)操作時(shí)的耗電量;
  • App 后臺(tái)運(yùn)行的耗電量裂问。

耗電量檢測(cè)既有基于硬件的方法侧啼,也有基于軟件的方法。
關(guān)于軟件的方法堪簿,Android 和 iOS 都有各自自己的方法:
Android 通過 adb 命令“adb shell dumpsys battery”來獲取應(yīng)用的耗電量信息痊乾;
iOS 通過 Apple 的官方工具 Sysdiagnose 來收集耗電量信息,然后椭更,可以進(jìn)一步通過 Instrument 工具鏈中的 Energy Diagnostics 進(jìn)行耗電量分析哪审。

第五,弱網(wǎng)絡(luò)測(cè)試

移動(dòng)應(yīng)用的測(cè)試需要保證在復(fù)雜網(wǎng)絡(luò)環(huán)境下的質(zhì)量虑瀑。具體的做法就是:在測(cè)試階段湿滓,模擬這些網(wǎng)絡(luò)環(huán)境,在 App 發(fā)布前盡可能多地發(fā)現(xiàn)并修復(fù)問題舌狗。

在這里叽奥,作者推薦一款非常棒的開源移動(dòng)網(wǎng)絡(luò)測(cè)試工具:Facebook 的 Augmented Traffic Control(ATC)。
具體可以參考官方網(wǎng)站把夸。

第六而线,邊界測(cè)試

邊界測(cè)試是指,移動(dòng) App 在一些臨界狀態(tài)下的行為功能的驗(yàn)證測(cè)試恋日,基本思路是需要找出各種潛在的臨界場景膀篮,并對(duì)每一類臨界場景做驗(yàn)證和測(cè)試。 主要的場景有:

  • 系統(tǒng)內(nèi)存占用大于 90% 的場景岂膳;
  • 系統(tǒng)存儲(chǔ)占用大于 95% 的場景誓竿;
  • 飛行模式來回切換的場景;
  • App 不具有某些系統(tǒng)訪問權(quán)限的場景谈截,比如 App 由于隱私設(shè)置不能訪問相冊(cè)或者通訊錄等筷屡;
  • 長時(shí)間使用 App涧偷,系統(tǒng)資源是否有異常,比如內(nèi)存泄漏毙死、過多的鏈接數(shù)等燎潮;
  • 出現(xiàn) ANR 的場景;
  • 操作系統(tǒng)時(shí)間早于或者晚于標(biāo)準(zhǔn)時(shí)間的場景扼倘;
  • 時(shí)區(qū)切換的場景确封;

總結(jié)

  1. 移動(dòng)應(yīng)用根據(jù)技術(shù)架構(gòu)不同,分為三大類再菊。所用的測(cè)試方法本質(zhì)上都屬于GUI測(cè)試的范疇爪喘。
  2. 從業(yè)務(wù)角度來看,移動(dòng)端的測(cè)試用例設(shè)計(jì)和傳統(tǒng)PC端的GUI自動(dòng)化測(cè)試策略相似纠拔,只是測(cè)試框架不同秉剑。
  3. 各種專項(xiàng)測(cè)試是移動(dòng)應(yīng)用的測(cè)試重點(diǎn),有別于傳統(tǒng)GUI測(cè)試稠诲。包括:交叉事件測(cè)試侦鹏、兼容性測(cè)試、流量測(cè)試吕粹、耗電量測(cè)試种柑、弱網(wǎng)絡(luò)測(cè)試和邊界測(cè)試。

【心得】
關(guān)于專項(xiàng)測(cè)試的總結(jié)很棒匹耕,尤其是作者列出的場景聚请,可以根據(jù)自己所測(cè)產(chǎn)品的具體情況,參考之后整理成一份針對(duì)自己所負(fù)責(zé)產(chǎn)品的專項(xiàng)測(cè)試點(diǎn)稳其,并據(jù)此編寫測(cè)試用例驶赏。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市既鞠,隨后出現(xiàn)的幾起案子煤傍,更是在濱河造成了極大的恐慌,老刑警劉巖嘱蛋,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚯姆,死亡現(xiàn)場離奇詭異,居然都是意外死亡洒敏,警方通過查閱死者的電腦和手機(jī)龄恋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凶伙,“玉大人郭毕,你說我怎么就攤上這事『伲” “怎么了显押?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵扳肛,是天一觀的道長。 經(jīng)常有香客問我乘碑,道長挖息,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任蝉仇,我火速辦了婚禮旋讹,結(jié)果婚禮上殖蚕,老公的妹妹穿的比我還像新娘轿衔。我一直安慰自己,他們只是感情好睦疫,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布害驹。 她就那樣靜靜地躺著,像睡著了一般蛤育。 火紅的嫁衣襯著肌膚如雪宛官。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天瓦糕,我揣著相機(jī)與錄音底洗,去河邊找鬼。 笑死咕娄,一個(gè)胖子當(dāng)著我的面吹牛亥揖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播圣勒,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼费变,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了圣贸?” 一聲冷哼從身側(cè)響起挚歧,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吁峻,沒想到半個(gè)月后滑负,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡用含,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年矮慕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耕餐。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凡傅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肠缔,到底是詐尸還是另有隱情夏跷,我是刑警寧澤哼转,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站槽华,受9級(jí)特大地震影響壹蔓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜猫态,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一佣蓉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧亲雪,春花似錦勇凭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至灌砖,卻和暖如春璧函,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背基显。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工蘸吓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撩幽。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓库继,卻偏偏與公主長得像摸航,于是被迫代替她去往敵國和親酱虎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,736評(píng)論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理排监,服務(wù)發(fā)現(xiàn),斷路器舆床,智...
    卡卡羅2017閱讀 134,628評(píng)論 18 139
  • 夜晚寂靜,喧鬧前的沉寂挨队,明天就要離開這生我養(yǎng)我的小縣城去很大的城市,心中懷著滿滿的激情與斗志湿弦,我不知道我能堅(jiān)持多久...
    嘉園閱讀 133評(píng)論 0 0
  • 隔了兩天沒有記錄自己的心情,因?yàn)橹苣┠銇砗贾萘税嗬阏f:我知道你不會(huì)跟我回去肥败,但我就是想見見你,想再勸勸你皿哨,然后...
    YAYA_badgirl閱讀 168評(píng)論 0 0
  • Map和FlatMap的區(qū)別 如何實(shí)現(xiàn)線程并發(fā) subscribeOn和observeOn 背壓的原理
    SMSM閱讀 219評(píng)論 0 0