qileilove

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

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

          在當(dāng)今競(jìng)爭(zhēng)激烈的市場(chǎng)上一個(gè)APP的成功離不開(kāi)一個(gè)可靠的用戶界面(UI)。因此,對(duì)功能和用戶體驗(yàn)有一些特殊關(guān)注和照顧的UI的全面測(cè)試是必不可少的。當(dāng)涉及到安卓平臺(tái)及其提出的獨(dú)特問(wèn)題的數(shù)量(安卓就UI提出顯著挑戰(zhàn))時(shí),挑戰(zhàn)變得更加復(fù)雜。關(guān)鍵字“碎片化”象征著移動(dòng)應(yīng)用全面測(cè)試的最大障礙,還表明了發(fā)布到市場(chǎng)上的所有形態(tài)、大小、配置類型的安卓設(shè)備所引起的困難。本文將介紹安卓模擬器如何能通過(guò)使用一些技巧和簡(jiǎn)單的實(shí)踐提供覆蓋大量設(shè)備類型的廣泛測(cè)試。



          簡(jiǎn)介—分散裝置里的測(cè)試
            

          一般安卓開(kāi)發(fā)者在其日常工作中面臨的最大挑戰(zhàn)之一是:終端設(shè)備和[url=]操作系統(tǒng)[/url]版本的范圍太廣。OpenSignal進(jìn)行的一項(xiàng)研究表明,2013年7月市場(chǎng)上有超過(guò)11,828的不同安卓終端設(shè)備,所有設(shè)備在類型/大小/屏幕分辨率以及特定配置方面有所不同。考慮到前一年的調(diào)查僅記錄有3,997款不同設(shè)備,這實(shí)在是一個(gè)越來(lái)越大的挑戰(zhàn)障礙。


          圖1.    11,828 款安卓設(shè)備類型( OpenSignal研究, 2013年7月[ 1 ] )分布

            從一個(gè)移動(dòng)APP開(kāi)發(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.  常見(jiàn)的屏幕尺寸和密度的分布(谷歌研究,2013年4月)[2]

            如果這種多樣性在質(zhì)量保證過(guò)程中被忽略了,那么絕對(duì)可以預(yù)見(jiàn):bugs會(huì)潛入應(yīng)用程序,然后是bug報(bào)告的風(fēng)暴,最后Google Play Store中出現(xiàn)負(fù)面用戶評(píng)論。因此,目前的問(wèn)題是:你怎么使用合理水平的測(cè)試工作切實(shí)解決這一挑戰(zhàn)?定義測(cè)試用例及一個(gè)伴隨測(cè)試過(guò)程是一個(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],來(lái)幫助選擇使用最廣的設(shè)備。
            為了滿足好奇心,可以從安卓文件[5]將屏幕的尺寸和分辨率映射到上面數(shù)據(jù)的密度(“ldpi”,“mdpi”等)及分辨率(“小的”,“標(biāo)準(zhǔn)的”,等等)上。

          圖5.  多樣性及分布很高的安卓終端設(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中可見(jiàn))。

            “測(cè)試什么”
            移動(dòng)APP必須提供最佳用戶體驗(yàn),以及在不同尺寸和分辨率(關(guān)鍵字“響應(yīng)式設(shè)計(jì)”)的各種智能手機(jī)和平板電腦上被正確顯示(UI測(cè)試)。與此同時(shí),apps必須是功能性的和兼容的(兼容性測(cè)試),有盡可能多的設(shè)備規(guī)格(內(nèi)存,CPU,傳感器等)。加上先前獲得的“直接”碎片化問(wèn)題(關(guān)于安卓的版本和屏幕的特性), “環(huán)境相關(guān)的”碎片化有著舉足輕重的作用。這種作用涉及到多種不同的情況或環(huán)境,其中用戶正在自己的環(huán)境中使用的終端設(shè)備。作為一個(gè)例子,如果網(wǎng)絡(luò)連接不穩(wěn)定,來(lái)電中斷,屏幕鎖定等情況出現(xiàn),你應(yīng)該慎重考慮壓力測(cè)試[4]和探索性測(cè)試以確保完美無(wú)錯(cuò)。

          圖6.  測(cè)試安卓設(shè)備的各個(gè)方面


            有必要提前準(zhǔn)備覆蓋app最常用功能的所有可能的測(cè)試場(chǎng)景。早期bug檢測(cè)和源代碼中的簡(jiǎn)單修改,只能通過(guò)不斷的測(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ì)量中變化的方式來(lái)設(shè)定。然而,真實(shí)設(shè)備上的QA是不可缺少的。實(shí)踐中,用作參考的虛擬設(shè)備依然可以在一些小的(但對(duì)于某些應(yīng)用程序來(lái)說(shuō)非常重要)方面有所不同,比如安卓操作系統(tǒng)中沒(méi)有提供程序特定的調(diào)整或不支持耳機(jī)和藍(lán)牙。真實(shí)硬件上的性能在評(píng)價(jià)過(guò)程中發(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è)過(guò)程并確定何時(shí)執(zhí)行哪一個(gè)測(cè)試場(chǎng)景就至關(guān)重要了。因此,我們建議下面的兩級(jí)流程:
            1 .用虛擬設(shè)備進(jìn)行的回歸測(cè)試。
          這包括虛擬參考設(shè)備上用來(lái)在早期識(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ù)開(kāi)發(fā)過(guò)程中,這種自動(dòng)化測(cè)試為開(kāi)發(fā)人員和測(cè)試人員提供了一個(gè)安全網(wǎng)。日常測(cè)試運(yùn)行確保了核心功能正常工作,app的整體穩(wěn)定性和質(zhì)量由測(cè)試數(shù)據(jù)透明地反映出來(lái),認(rèn)證回歸可以輕易地與最近的變化關(guān)聯(lián)。這種測(cè)試可以很輕易地被設(shè)計(jì)并使用SaaS解決方案(如云中的TestObject的UI移動(dòng)app測(cè)試)從測(cè)試人員電腦上被記錄下來(lái)。
            當(dāng)且僅當(dāng)這個(gè)階段已被成功執(zhí)行了,這個(gè)過(guò)程才會(huì)在第二階段繼續(xù)勞動(dòng)密集測(cè)試。這里的想法是:如果核心功能通過(guò)自動(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è)試的工作流程或過(guò)程。測(cè)試一個(gè)移動(dòng)app是一個(gè)重大的挑戰(zhàn),但它可以用一個(gè)結(jié)構(gòu)化的方法和正確的工具集合以及專業(yè)知識(shí)被有效解決掉。

          posted on 2014-05-12 10:30 順其自然EVO 閱讀(5158) 評(píng)論(0)  編輯  收藏 所屬分類: android

          <2014年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 宁陕县| 柘荣县| 雷山县| 台安县| 昭觉县| 锡林郭勒盟| 同江市| 赤峰市| 丰顺县| 乐亭县| 濮阳县| 濮阳市| 赤水市| 偏关县| 集安市| 普陀区| 即墨市| 游戏| 寿阳县| 盐池县| 北川| 桃园市| 枣强县| 五指山市| 曲靖市| 黎川县| 湘阴县| 桃园市| 呼和浩特市| 上思县| 乌拉特中旗| 西藏| 中牟县| 玛沁县| 内乡县| 灌阳县| 佛教| 东宁县| 天津市| 额尔古纳市| 青河县|