qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問 http://qaseven.github.io/

          如何設(shè)計(jì)Android App測(cè)試用例

          在當(dāng)今競(jìng)爭(zhēng)激烈的市場(chǎng)上一個(gè)APP的成功離不開一個(gè)可靠的用戶界面(UI)。因此,對(duì)功能和用戶體驗(yàn)有一些特殊關(guān)注和照顧的UI的全面測(cè)試是必不可少的。當(dāng)涉及到安卓平臺(tái)及其提出的獨(dú)特問題的數(shù)量(安卓就UI提出顯著挑戰(zhàn))時(shí),挑戰(zhàn)變得更加復(fù)雜。關(guān)鍵字“碎片化”象征著移動(dòng)應(yīng)用全面測(cè)試的最大障礙,還表明了發(fā)布到市場(chǎng)上的所有形態(tài)、大小、配置類型的安卓設(shè)備所引起的困難。本文將介紹安卓模擬器如何能通過使用一些技巧和簡(jiǎn)單的實(shí)踐提供覆蓋大量設(shè)備類型的廣泛測(cè)試。
            簡(jiǎn)介—分散裝置里的測(cè)試
            一般安卓開發(fā)者在其日常工作中面臨的最大挑戰(zhàn)之一是:終端設(shè)備和操作系統(tǒng)版本的范圍太廣。OpenSignal進(jìn)行的一項(xiàng)研究表明,2013年7月市場(chǎng)上有超過11,828的不同安卓終端設(shè)備,所有設(shè)備在類型/大小/屏幕分辨率以及特定配置方面有所不同。考慮到前一年的調(diào)查僅記錄有3,997款不同設(shè)備,這實(shí)在是一個(gè)越來越大的挑戰(zhàn)障礙。
           
           圖1.11,828 款安卓設(shè)備類型( OpenSignal研究, 2013年7月[ 1 ] )分布
            從一個(gè)移動(dòng)APP開發(fā)角度出發(fā),定義終端設(shè)備有四個(gè)基本特征:
            1.操作系統(tǒng):由“API指標(biāo)”( 1 ?18 )專業(yè)定義的安卓操作系統(tǒng)版本( 1.1? 4.3 ),。
            2.顯示器:屏幕主要是由屏幕分辨率(以像素為單位),屏幕像素密度( 以DPI為單位),和/或屏幕尺寸(以英寸為單位)定義的。
            3.CPU:該“應(yīng)用程序二進(jìn)制接口” (ABI )定義CPU的指令集。這里的主要區(qū)別是ARM和基于Intel的CPU。
            4.內(nèi)存:一個(gè)設(shè)備包括內(nèi)存儲(chǔ)器( RAM)和Dalvik 虛擬存儲(chǔ)器( VM堆)的預(yù)定義的堆內(nèi)存。
            這是前兩個(gè)特點(diǎn),操作系統(tǒng)和顯示器,都需要特別注意,因?yàn)樗麄兪侵苯佑勺罱K用戶明顯感受,且應(yīng)該不斷嚴(yán)格地被測(cè)試覆蓋。至于安卓的版本, 2013年7月市場(chǎng)上有八個(gè)同時(shí)運(yùn)行導(dǎo)致不可避免的碎片的不同版本。七月,近90%這些設(shè)備中的34.1 %正在運(yùn)行Gingerbread版本( 2.3.3-2.3.7 ),32.3 %正在運(yùn)行Jelly Bean( 4.1.x版),23.3 %正在運(yùn)行Ice Cream Sandwich( 4.0.3 - 4.0.4 )。
            
          圖2.16款安卓版本分布(OpenSignal研究,2013年7月[1])
            考慮設(shè)備顯示器,一項(xiàng)TechCrunch從2013年4月進(jìn)行的研究顯示,絕大多數(shù)(79.9%)有效設(shè)備正在使用尺寸為3和4.5英寸的“正常”屏幕。這些設(shè)備的屏幕密度在“MDPI”(160 DPI),“hdpi”(240 DPI)和“xhdpi”(320 DPI)之間變化。也有例外, 一種只占9.5%的設(shè)備屏幕密度低“hdpi”(120 DPI)且屏幕小。
            
          圖3. 常見的屏幕尺寸和密度的分布(谷歌研究,2013年4月)[2]
            如果這種多樣性在質(zhì)量保證過程中被忽略了,那么絕對(duì)可以預(yù)見:bugs會(huì)潛入應(yīng)用程序,然后是bug報(bào)告的風(fēng)暴,最后Google Play Store中出現(xiàn)負(fù)面用戶評(píng)論。因此,目前的問題是:你怎么使用合理水平的測(cè)試工作切實(shí)解決這一挑戰(zhàn)?定義測(cè)試用例及一個(gè)伴隨測(cè)試過程是一個(gè)應(yīng)付這一挑戰(zhàn)的有效武器。
            用例—“在哪測(cè)試”、“測(cè)試什么”、“怎么測(cè)試”、“何時(shí)測(cè)試”?
            “在哪測(cè)試”
            為了節(jié)省你測(cè)試工作上所花的昂貴時(shí)間,我們建議首先要減少之前所提到的32個(gè)安卓版本組合及代表市場(chǎng)上在用的領(lǐng)先設(shè)備屏的5-10個(gè)版本的顯示屏。選擇參考設(shè)備時(shí),你應(yīng)該確保覆蓋了足夠廣范圍的版本和屏幕類型。作為參考,您可以使用OpenSignal的調(diào)查或使用手機(jī)檢測(cè)的信息圖[3],來幫助選擇使用最廣的設(shè)備。


          為了滿足好奇心,可以從安卓文件[5]將屏幕的尺寸和分辨率映射到上面數(shù)據(jù)的密度(“ldpi”,“mdpi”等)及分辨率(“小的”,“標(biāo)準(zhǔn)的”,等等)上。
            
          圖4.多樣性及分布很高的安卓終端設(shè)備的六個(gè)例子(手機(jī)檢測(cè)研究,2013年2月)[3]
            有了2013手機(jī)檢測(cè)研究的幫助,很容易就找到了代表性的一系列設(shè)備。有一件有趣的瑣事:30%印度安卓用戶的設(shè)備分辨率很低只有240×320像素,如上面列表中看到的,三星Galaxy Y S5360也在其中。另外,480×800分辨率像素現(xiàn)在最常用(上表中三星Galaxy S II中可見)。
            “測(cè)試什么”
            移動(dòng)APP必須提供最佳用戶體驗(yàn),以及在不同尺寸和分辨率(關(guān)鍵字“響應(yīng)式設(shè)計(jì)”)的各種智能手機(jī)和平板電腦上被正確顯示(UI測(cè)試)。與此同時(shí),apps必須是功能性的和兼容的(兼容性測(cè)試),有盡可能多的設(shè)備規(guī)格(內(nèi)存,CPU,傳感器等)。加上先前獲得的“直接”碎片化問題(關(guān)于安卓的版本和屏幕的特性), “環(huán)境相關(guān)的”碎片化有著舉足輕重的作用。這種作用涉及到多種不同的情況或環(huán)境,其中用戶正在自己的環(huán)境中使用的終端設(shè)備。作為一個(gè)例子,如果網(wǎng)絡(luò)連接不穩(wěn)定,來電中斷,屏幕鎖定等情況出現(xiàn),你應(yīng)該慎重考慮壓力測(cè)試[4]和探索性測(cè)試以確保完美無錯(cuò)。
            
          圖5. 測(cè)試安卓設(shè)備的各個(gè)方面
            有必要提前準(zhǔn)備覆蓋app最常用功能的所有可能的測(cè)試場(chǎng)景。早期bug檢測(cè)和源代碼中的簡(jiǎn)單修改,只能通過不斷的測(cè)試才能實(shí)現(xiàn)。
            “怎么測(cè)試”
            將這種廣泛的多樣性考慮在內(nèi)的一種務(wù)實(shí)方法是, 安卓模擬器 - 提供了一個(gè)可調(diào)節(jié)的工具,該工具幾乎可以模仿標(biāo)準(zhǔn)PC上安卓的終端用戶設(shè)備。簡(jiǎn)而言之,安卓模擬器是QA流程中用各種設(shè)備配置(兼容性測(cè)試)進(jìn)行連續(xù)回歸測(cè)試(用戶界面,單元和集成測(cè)試)的理想工具。探索性測(cè)試中,模擬器可以被配置到一個(gè)范圍廣泛的不同場(chǎng)景中。例如,模擬器可以用一種能模擬連接速度或質(zhì)量中變化的方式來設(shè)定。然而,真實(shí)設(shè)備上的QA是不可缺少的。實(shí)踐中,用作參考的虛擬設(shè)備依然可以在一些小的(但對(duì)于某些應(yīng)用程序來說非常重要)方面有所不同,比如安卓操作系統(tǒng)中沒有提供程序特定的調(diào)整或不支持耳機(jī)和藍(lán)牙。真實(shí)硬件上的性能在評(píng)價(jià)過程中發(fā)揮了自身的顯著作用,它還應(yīng)該在考慮了觸摸硬件支持和設(shè)備物理形式等方面的所有可能終端設(shè)備上進(jìn)行測(cè)試(可用性測(cè)試)。
            “何時(shí)測(cè)試”
            既然我們已經(jīng)定義了在哪里(參考設(shè)備)測(cè)試 ,測(cè)試什么(測(cè)試場(chǎng)景),以及如何( 安卓模擬器和真實(shí)設(shè)備)測(cè)試,簡(jiǎn)述一個(gè)過程并確定何時(shí)執(zhí)行哪一個(gè)測(cè)試場(chǎng)景就至關(guān)重要了。因此,我們建議下面的兩級(jí)流程:
            1 .用虛擬設(shè)備進(jìn)行的回歸測(cè)試。
            這包括虛擬參考設(shè)備上用來在早期識(shí)別出基本錯(cuò)誤的連續(xù)自動(dòng)化回歸測(cè)試。這里的理念是快速地、成本高效地識(shí)別bugs。
            2 .用真實(shí)設(shè)備進(jìn)行的驗(yàn)收測(cè)試。
            這涉及到:“策劃推廣”期間將之發(fā)布到Google Play Store前在真實(shí)設(shè)備上的密集測(cè)試(主要是手動(dòng)測(cè)試),(例如,Google Play[ 5 ]中的 alpha和beta測(cè)試組) 。
            在第一階段,測(cè)試自動(dòng)化極大地有助于以經(jīng)濟(jì)實(shí)惠的方式實(shí)現(xiàn)這一策略。在這一階段,只有能輕易被自動(dòng)化(即可以每日?qǐng)?zhí)行)的測(cè)試用例才能包含在內(nèi)。
            在一個(gè)app的持續(xù)開發(fā)過程中,這種自動(dòng)化測(cè)試為開發(fā)人員和測(cè)試人員提供了一個(gè)安全網(wǎng)。日常測(cè)試運(yùn)行確保了核心功能正常工作,app的整體穩(wěn)定性和質(zhì)量由測(cè)試數(shù)據(jù)透明地反映出來,認(rèn)證回歸可以輕易地與最近的變化關(guān)聯(lián)。這種測(cè)試可以很輕易地被設(shè)計(jì)并使用SaaS解決方案(如云中的TestObject的UI移動(dòng)app測(cè)試)從測(cè)試人員電腦上被記錄下來。
            當(dāng)且僅當(dāng)這個(gè)階段已被成功執(zhí)行了,這個(gè)過程才會(huì)在第二階段繼續(xù)勞動(dòng)密集測(cè)試。這里的想法是:如果核心功能通過自動(dòng)測(cè)試就只投入測(cè)試資源,使測(cè)試人員能夠?qū)W⒂谙冗M(jìn)場(chǎng)景。這個(gè)階段可能包括測(cè)試用例,例如性能測(cè)試,可用性測(cè)試,或兼容性測(cè)試。這兩種方法相結(jié)合產(chǎn)生了一個(gè)強(qiáng)大的移動(dòng)apps質(zhì)量保證策略[ 7 ] 。
            結(jié)論 - 做對(duì)測(cè)試
            用正確的方式使用,測(cè)試可以在對(duì)抗零散的安卓的斗爭(zhēng)中成為一個(gè)有力的工具。一個(gè)有效的測(cè)試策略的關(guān)鍵之處在于定義手頭app的定制測(cè)試用例,并定義一個(gè)簡(jiǎn)化測(cè)試的工作流程或過程。測(cè)試一個(gè)移動(dòng)app是一個(gè)重大的挑戰(zhàn),但它可以用一個(gè)結(jié)構(gòu)化的方法和正確的工具集合以及專業(yè)知識(shí)被有效解決掉。

          posted on 2014-12-08 20:35 順其自然EVO 閱讀(481) 評(píng)論(0)  編輯  收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄android

          <2014年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 古浪县| 宁河县| 威海市| 德令哈市| 湄潭县| 剑阁县| 枣强县| 兴城市| 会东县| 长兴县| 枝江市| 筠连县| 兴海县| 响水县| 石首市| 崇阳县| 寿宁县| 福州市| 曲沃县| 兴城市| 洛川县| 桂阳县| 临漳县| 固安县| 大姚县| 厦门市| 北京市| 北碚区| 东阿县| 元江| 宁德市| 沿河| 安达市| 旬阳县| 唐山市| 临沂市| 竹山县| 威信县| 兰州市| 和田市| 大宁县|