軍規(guī)六 設(shè)計通知和消息展示
使用App過程中砌创,最煩的莫過于接收到各種已安裝的App發(fā)送的各類通知蚕钦,而這些通知的行為和觸發(fā)的方式又各有不同温艇,讓用戶感到無所適從。
1像吻,測試App安裝時是否明確申明在用戶使用App時需要用到的權(quán)限峻黍,否則App在提交到操作系統(tǒng)官方應用商店時會被拒絕复隆,或者在用戶安裝App的時候被拒絕。
2姆涩,測試App在用戶使用過程中是否有合適的通知和消息顯示挽拂,例如GPS、藍牙骨饿、用戶照片或短信亏栈、用戶位置等資源。如果測試人員在使用App過程中改變權(quán)限獲取本不該得到的權(quán)限時宏赘,在iOS上App會訪問不到它想獲得的資源绒北,在Android平臺上,操作系統(tǒng)會彈出安全性異常的提示框察署,并強制關(guān)閉App闷游。
在此時,如何才能提高向用戶申請訪問權(quán)限的成功率箕母?不妨檢查一下App在需要用戶授權(quán)時是否遵循以下的設(shè)計原則和實踐:
第一點储藐,App向用戶申請訪問權(quán)限的第一次很關(guān)鍵
第一次申請訪問權(quán)限的契機很重要,一旦用戶點擊了“不允許”后很難再改變用戶的想法嘶是,例如iOS系統(tǒng)設(shè)置中如需改變權(quán)限需要較為繁瑣的步驟钙勃。因此,不要在用戶第一次打開App時候直接申請訪問權(quán)限聂喇,過于突然辖源,安全考慮,用戶更傾向于選擇“不允許”希太。而是先向用戶講述授權(quán)后的便利克饶,用戶有所了解后再次申請訪問權(quán)限。
第二點誊辉,給用戶更多機會了解App之后再次申請權(quán)限
在申請權(quán)限時矾湃,“Not Now”比“Don't Allow”更有效,可以等用戶對App有更多了解后再次詢問堕澄。雖然這種方法會向用戶詢問兩次邀跃,但是避免了第一次被用戶直接拒絕。另外蛙紫,也可在第一次申請時使用圖片等形式更形象地展示授權(quán)的好處拍屑。
第三點,讓用戶來觸發(fā)什么時候?qū)pp進行訪問權(quán)限的授權(quán)
讓用戶來觸發(fā)什么時候?qū)pp進行訪問權(quán)限的授權(quán)坑傅,因為只有用戶在清楚自己下一步想要做什么的時候僵驰,才會對App申請的訪問權(quán)限作出正確的判斷。但是這種方式在考量和設(shè)計方面最為復雜。
可以看出蒜茴,對于用戶越是友好和便利的App申請訪問權(quán)限的方式星爪,測試用例的設(shè)計也就越復雜,因此測試用例中需要覆蓋能觸發(fā)每種App申請訪問權(quán)限的方式的測試路徑矮男。
3移必,測試App在后臺運行時是否有合適的通知和消息顯示,由于用戶可以在iOS的通知中心中對App的通知方式進行單獨設(shè)置毡鉴,如果為App設(shè)置了不同通知方式崔泵,測試人員需要對這幾種通知方式都進行測試,來避免出現(xiàn)諸如用戶關(guān)閉了鎖屏頁面的App消息通知猪瞬,但是卻看到了App通知的狀況憎瘸。
還有兩個測試點需要注意:
第一點,iOS的狀態(tài)欄在通話陈瘦、導航幌甘、錄音、使用熱點等情況下會變?yōu)殡p倍寬度顯示痊项,需要測試人員在使用App中狀態(tài)欄從標準寬度變?yōu)殡p倍寬度锅风,還有從雙倍寬度變?yōu)闃藴蕦挾鹊那闆r進行測試。另外鞍泉,根據(jù)App展示通知和消息時皱埠,需要思考用戶可以對App進行什么樣的操作,比如點擊通知或消息咖驮,進入App等边器。
第二點,iOS允許App在其圖標右上角顯示未讀信息的計數(shù)托修。值得注意的是忘巧,計數(shù)顯示是由iOS操作系統(tǒng)處理的,但是計數(shù)的數(shù)字卻是App提供的睦刃。這樣會出現(xiàn)一個問題:已經(jīng)通過通知欄等方式讀取了信息砚嘴,但是并沒有從App計數(shù)中減去,導致App圖標右上角未讀信息的計數(shù)顯示和真實的計數(shù)不一致涩拙。
4枣宫,測試App的消息推送功能,針對不同的推送消息方式吃环,測試人員需要為它們單獨設(shè)計測試用例。
對App自己完成消息推送的情況洋幻,測試人員需要測試關(guān)閉App自身服務或App后臺服務器時郁轻,App是否會崩潰,App對于新消息的處理,以及App消息推送的性能等好唯。
對App采用推送通知框架的情況竭沫,測試人員可以讓推送通知框架的提供商關(guān)注后臺服務器出錯的場景,但是依然需要測試在App接收到錯誤的推送通知骑篙,推送通知框架服務不可用時App會如何處理蜕提。
5,測試App在出錯時是否有合適的通知和消息顯示靶端。在測試正常功能的消息顯示之外谎势,測試人員還需要測試在出錯的場景中App是否給用戶顯示了恰當?shù)男畔ⅰo@然杨名,給用戶只顯示便于技術(shù)人員定位問題的錯誤代碼并不能解決用戶的問題脏榆;給用戶顯示很長或者步驟很多的解決方法或提示也不能解決用戶的問題;給用戶顯示的提示信息里打印出log就更不可取了台谍。在信息過剩的時代须喂,用戶不會一直停留在App中關(guān)注消息的變化,所以我們需要通過消息的推送和展示趁蕊,增加用戶對于App的粘性坞生。
軍規(guī)七 支持操作系統(tǒng)特性
只有了解iOS和Android操作系統(tǒng)的不同設(shè)計理念,才能更好地設(shè)計測試用例掷伙,更全面地測試App是己。
1,Android的App測試設(shè)備的碎片化
對于iOS操作系統(tǒng)炎咖,App只需要支持有限的設(shè)備和分辨率赃泡,不需要像Android測試App時操心設(shè)備的碎片化對App的影響。Google公司采用的是開放的策略乘盼,所以很多廠商都會對Android進行訂制升熊,使得采用Android操作系統(tǒng)的設(shè)備鋪天蓋地,Android的碎片化也很嚴重绸栅。
2级野,Android App更容易受到惡意軟件的攻擊
開放策略下導致App的apk安裝文件被破解的幾率比iOS要高一些,所以更需要確保App的安全粹胯。
3蓖柔,iOS和Android對于App間通信的處理方式不一樣
iOS操作系統(tǒng)對于App的運行機制做出了限制,絕大多數(shù)情況下App進入后臺后會馬上進入suspend或terminate狀態(tài)风纠,也就是說不能執(zhí)行代碼况鸣;iOS中也沒有類似Android中Service的概念,但存在某些例外竹观。
某些重要的任務镐捧,例如保存用戶數(shù)據(jù)潜索、網(wǎng)絡下載等,可以申請一小段限定時間的后臺運行時間懂酱,長度大概在600s左右竹习,所以在短時間段內(nèi)能進行的操作非常有限。
某些特點類型的App可以獲得沒有時間限制的后臺運行列牺,包括音樂播放類整陌,音頻錄制類,定位/導航類瞎领,VoIP類泌辫,下載類,定期更新類默刚。
Apple公司提供了iOS內(nèi)的App調(diào)用協(xié)議URL Schema來處理甥郑。
4,Android和iOS就是否支持擴展存儲有所不同
5荤西,iOS和Android對Widget的實現(xiàn)和使用不同
6澜搅,測試Android App對于Dalvik和ART運行環(huán)境(RunTime)的兼容性
7,測試iOS App在特定設(shè)置下的行為
軍規(guī)八 及時顯示和同步消息
對于消息顯示邪锌,測試人員在測試過程中不能只是簡單地驗證消息在各種情況下是否能正常的顯示勉躺,還需要考慮到App中各種緩存對于消息顯示的影響。
一般在以下的環(huán)境中觅丰,我們才會在App中使用緩存機制:
1饵溅,App需要提供網(wǎng)絡服務;
2妇萄,App中至少有一部分數(shù)據(jù)不需要實時更新蜕企,哪怕是很短時間(3~5min)的緩存也是有好處的;
3冠句,App可以針對某種數(shù)據(jù)設(shè)定固定的過期時間轻掩,而不會導致其功能和用戶體驗出現(xiàn)問題;
App使用緩存機制有哪些好處呢懦底?
1唇牧,對用戶來說可以減少流量的消耗;
2聚唐,減少由于網(wǎng)速過慢而導致用戶長時間等待的狀況丐重,App的響應速度變快了;
3杆查,App因從網(wǎng)絡加載數(shù)據(jù)而出錯的情況會大大減少扮惦,提高了App的穩(wěn)定性;
4亲桦,App在一定程度上可以算是支持離線瀏覽径缅;
5掺栅,對App開發(fā)和維護團隊來說,則可以減輕App請求對服務器進行大量訪問的壓力纳猪。
我們在設(shè)計App的過程中一般都會采用“內(nèi)存”、“文件”桃笙、“網(wǎng)絡”的順序結(jié)構(gòu)來設(shè)計App的緩存機制氏堤。
在測試時需要考慮另外幾點:
1,對于同時支持iOS和Android的App搏明,需要在這兩種操作系統(tǒng)平臺上安裝App鼠锈,測試App消息的同步顯示;
2星著,在同一種操作平臺上也需要在多個設(shè)備上安裝App购笆;
3,需要選取App支持消息同步顯示的不同版本進行測試虚循;
4同欠,對于App在安裝和登錄后被關(guān)閉了的情況,測試在別的App消息都被同步了之后横缔,再次打開這個App铺遂,觀察是否會接收到別的App上被同步的消息。
軍規(guī)九 適應特定用戶界面對功能和顯示的影響
同一個App在不同設(shè)備廠商所提供的用戶界面上顯示效果會各有不同茎刚。例如:
1襟锐,三星的TouchWiz用戶界面;
2膛锭,HTC的Sense用戶界面粮坞;
3,LG的UX用戶界面初狰;
4莫杈,小米的米柚MIUI用戶界面;
5跷究,魅族的Flyme用戶界面姓迅;
6,Sony的Xperia UI用戶界面俊马;
對于iOS App而言丁存,在iOS 8出現(xiàn)之前Apple公司對于產(chǎn)品的升級,都會考慮到不同設(shè)備上分辨率的不一致柴我,但是隨著iOS 8和iPhone 6以及6Plus的推出解寝,iPhone 6以及6Plus上具備的放大顯示的功能會讓App在標準顯示和放大顯示的模式下,顯示效果有所不同艘儒,所以測試人員需要對這兩種模式下的顯示效果進行測試聋伦。
軍規(guī)十 支持多種文件格式
1夫偶,App支持Office文件
App如果需要支持微軟Office的各種文件格式,測試人員在測試的時候就需要對每一種文件格式進行驗證觉增,確保App在打開這些文件時對應的功能都能正常工作兵拢,數(shù)據(jù)也能正常顯示。
2逾礁,App支持圖片文件
如果App需要處理圖片文件说铃,測試人員首先需要確定哪些圖片格式是需要支持的,然后根據(jù)優(yōu)先級來測試相應的圖片功能嘹履。圖片的格式很多腻扇,通常如果不是有特殊要求,一般只需要支持幾種通用的圖片格式:BMP砾嫉,JPEG幼苛,PNG,GIF和TIFF焕刮。另外舶沿,需要App至少能對圖片進行簡單的放大和縮小,尤其是對于GIF圖片進行展示時济锄,App需要展示GIF的動態(tài)變化暑椰,而不是只顯示GIF第1幀的內(nèi)容。
3荐绝,App支持視頻和音頻文件
常見的視頻文件格式有MP4一汽,3GP,AVI低滩,RMVB召夹,MKV和MOV;常見的音頻有MPEGI恕沫,WAV监憎,AAC,OGG和APE婶溯;而編碼方式又有MPEG系列和H.26X系列鲸阔。在測試App對這些視頻或者音頻文件格式的支持,以及對這些編碼方式的支持時迄委,需要對這些因素進行組合褐筛,并確定測試的優(yōu)先級,保證最重要的功能的完備叙身。
軍規(guī)十一 支持多語言和地區(qū)設(shè)置
iOS操作系統(tǒng)不論在什么國家和地區(qū)發(fā)布渔扎,都會支持多語言和地區(qū)設(shè)置。App不支持多語言和地區(qū)設(shè)置會影響用戶輸入信轿;App不支持多語言和地區(qū)設(shè)置的影響有:
1晃痴,時間和日期格式残吩;
2,App同時支持多語言顯示時倘核,還需要注意不同語言文字對于顯示的影響泣侮,比如如果把英文單詞按照中文處理,認為每一個字符都是獨立的笤虫,然后把單詞拆開旁瘫,就有可能會導致?lián)Q行顯示不正常;
3琼蚯,除了多語言文字的顯示,對于多語言文字的復制和粘貼惠况,測試人員也需要進行測試遭庶,哪怕App只支持單一語言,測試人員也需要考慮用戶有可能無意粘貼別的語言文字到了輸入框的情況稠屠。