iOS APP的測(cè)試經(jīng)歷
要產(chǎn)出一個(gè)優(yōu)秀的伴箩,穩(wěn)定安全的的 APP,少不了測(cè)試人員這種 bug 探尋者和開發(fā)人員的配合可岂。我們?nèi)绻芎芎玫牧私鉁y(cè)試人員是如何從多方面陡蝇,多維度的蹂躪我們開發(fā)的 APP,我們就更更好的在開發(fā)過(guò)程中踩萎,去考慮的更周全和更清晰正罢。一般 APP 的測(cè)試可以歸結(jié)為下面幾項(xiàng):
1.非功能測(cè)試
app測(cè)試的一個(gè)重要方面是app的非功能需求。移動(dòng)app在推出市場(chǎng)或進(jìn)行進(jìn)一步開發(fā)前驻民,測(cè)試人員有一定的職責(zé)做該類需求的跟蹤工作翻具。早期開發(fā)階段要進(jìn)行的第一個(gè)測(cè)試應(yīng)該是實(shí)用性測(cè)試。例如很多公司正式推出新版本或者新 APP 的時(shí)候回还,會(huì)有一批試用客戶裆泳,或者一定的市場(chǎng)調(diào)研,競(jìng)品分析等柠硕。前期收集到試用用戶的反饋很重要工禾,能在開始就完善符合用戶習(xí)慣的功能。
測(cè)試方法:這屬于前期一些數(shù)據(jù)收集的工作蝗柔,主要是人員調(diào)研闻葵,問(wèn)卷調(diào)研,現(xiàn)場(chǎng)體驗(yàn)感受癣丧,反饋匯總等槽畔。這個(gè)階段對(duì)于產(chǎn)品是否受歡迎,是否切合用戶喜好胁编,是否易操作和黏性等都至關(guān)重要厢钧,不能輕視。
2.功能測(cè)試
不管是新立項(xiàng)的項(xiàng)目嬉橙,還是迭代的項(xiàng)目早直,每次開發(fā)只要有新功能模塊,就都需要測(cè)試市框。測(cè)試人員應(yīng)該或者說(shuō)很必要進(jìn)行手動(dòng)測(cè)試和后期的自動(dòng)化測(cè)試維護(hù)霞扬。剛開始測(cè)試的時(shí)候,測(cè)試應(yīng)該如“黑盒”一樣進(jìn)行手動(dòng)測(cè)試枫振,看看功能和產(chǎn)品設(shè)計(jì)是否正確并且一致喻圃。一般功能測(cè)試會(huì)測(cè)試以下:
- 功能
主要的功能是否實(shí)現(xiàn)(根據(jù)需求,這里就不一一展開)
測(cè)試手法: 前期手工過(guò)濾一遍所有主要功能蒋得,后期開始編寫自動(dòng)化測(cè)試用例级及,節(jié)省代碼和功能越來(lái)越大的時(shí)間消耗。彈出窗口有無(wú)额衙,取消或確定按鈕的功能饮焦。測(cè)試手法: 腳本錄制怕吴,帶截屏驗(yàn)證
有可滑動(dòng)的列表視圖的時(shí)候,一定要將內(nèi)容填充超過(guò)一屏县踢,上下滑動(dòng)查看有無(wú)問(wèn)題转绷。測(cè)試手法: 初期手動(dòng)多次反復(fù)上拉下拉驗(yàn)證,后期編寫單元測(cè)試硼啤,模擬返回的數(shù)據(jù)议经,調(diào)用刷新和加載的方法。
操作/狀態(tài)類統(tǒng)計(jì)點(diǎn)上報(bào)正確谴返。測(cè)試方法: 只能人工驗(yàn)證某些狀態(tài)點(diǎn)煞肾,特別是 UI 的部分。對(duì)于簡(jiǎn)單邏輯的嗓袱,可以通過(guò) UI Test 搜索控件狀態(tài)驗(yàn)證籍救。
后臺(tái)云配置軟件功能是否成功。重啟系統(tǒng)后渠抹,是否恢復(fù)蝙昙。測(cè)試方法: 人工驗(yàn)證,對(duì)照后臺(tái)配置一一檢查
信息查詢梧却、搜索等功能奇颠,結(jié)果是否正確,有無(wú)錯(cuò)漏放航。測(cè)試方法: 人工測(cè)試烈拒,視圖顯示方面,數(shù)據(jù)方面可以 log 結(jié)合單元測(cè)試的數(shù)據(jù) log 匹配三椿。
讀取缺菌、傳輸含有特殊符號(hào)的數(shù)據(jù)時(shí),是否會(huì)出現(xiàn)亂碼搜锰。測(cè)試方法: 單元測(cè)試覆蓋,邊界條件和異常條件的斷言判斷
數(shù)據(jù)的計(jì)算是否準(zhǔn)確耿战,如流量蛋叼、內(nèi)存等數(shù)據(jù)。不好說(shuō)剂陡,只能結(jié)合第三方軟件來(lái)驗(yàn)證是否偏差過(guò)大狈涮。
- 界面
按鈕位置是否一致,名稱顯示完整與否鸭栖,按鈕名字是否與其功能相對(duì)應(yīng)歌馍。測(cè)試方法: 人工測(cè)試,參照產(chǎn)品原型和 UI 設(shè)計(jì)界面晕鹊。
界面(整體風(fēng)格松却,界面切換暴浦,處于不同界面相對(duì)應(yīng)的菜單欄選項(xiàng)顯示)測(cè)試方法: 人工測(cè)試,是否風(fēng)格統(tǒng)一晓锻,跟產(chǎn)品預(yù)期是否一致歌焦。
輸入信息時(shí)鍵盤的的模式,彈出位置是否一致砚哆。測(cè)試方法: 人工測(cè)試独撇,視覺驗(yàn)證。
除了整個(gè)手動(dòng)測(cè)試過(guò)程躁锁,測(cè)試自動(dòng)化對(duì)移動(dòng)app也很重要纷铣。每個(gè)代碼變化或新功能都可能影響現(xiàn)存功能及它們的狀態(tài)。通常手動(dòng)回歸測(cè)試時(shí)間不夠战转,所以測(cè)試員不得不找一個(gè)工具去進(jìn)行自動(dòng)化回歸測(cè)試」亓叮現(xiàn)在市面上有很多自動(dòng)化測(cè)試工具,有商業(yè)的也有開源的匣吊,面向各個(gè)不同平臺(tái)儒拂,iPhone需要根據(jù)開發(fā)策略和結(jié)構(gòu),品質(zhì)管理測(cè)試專家需找出最適合他們環(huán)境的自動(dòng)化工具色鸳。
3.客戶端性能測(cè)試
一個(gè)App做的好不好社痛,不僅僅只反應(yīng)在功能上。被測(cè)的app在中低端機(jī)上的性能表現(xiàn)也很重要命雀。例如老機(jī)型4s蒜哀,5 ,5c吏砂,5s 等是否流暢撵儿,老版本的系統(tǒng),iOS7狐血,8淀歇,9的系統(tǒng)上是否沒(méi)有異常或者特別耗時(shí)耗資源等匈织±四考量是:CPU ,內(nèi)存,耗電量缀匕,流量纳决,F(xiàn)PS 等。具體細(xì)化到測(cè)試方面如下:
- 性能:是一個(gè)優(yōu)化 APP 用戶體驗(yàn)比較重要的指標(biāo)乡小。主要通過(guò)人工測(cè)試阔加,體驗(yàn)式內(nèi)測(cè)等方式來(lái)開展此類設(shè)置。關(guān)于满钟,CPU,耗電量胜榔,F(xiàn)PS 等硬件指標(biāo)胳喷,用三方的云平臺(tái)或者 Xcode自帶的檢測(cè)工具。
- 連接網(wǎng)絡(luò)苗分、頁(yè)面刷新時(shí)是否有轉(zhuǎn)圈等待厌蔽,等待時(shí)間是否過(guò)長(zhǎng),有沒(méi)有超時(shí)提示異常等摔癣。
- 多次點(diǎn)擊(或滑動(dòng)奴饮,拖動(dòng))某控件(按鈕,圖片等)是否會(huì)異常择浊,是否會(huì)崩潰戴卜。
- 按鈕點(diǎn)擊的有沒(méi)有做響應(yīng)阻隔,過(guò)快點(diǎn)擊是否會(huì)出現(xiàn)事件異常琢岩,是否會(huì)崩潰投剥。
- 界面的刷新率,是否會(huì)卡頓等担孔。
- 多次切換頁(yè)面是否會(huì)出現(xiàn)程序崩潰或者耗時(shí)導(dǎo)致的程序反映變慢江锨。
- 程序使用,操作時(shí)間較長(zhǎng)會(huì)不會(huì)卡住糕篇,反應(yīng)慢啄育,甚至出現(xiàn)死機(jī)。
- APP 里的動(dòng)效效果是否與需求無(wú)異拌消,是否多次運(yùn)行出現(xiàn)性能問(wèn)題挑豌。
- 易用性:額,只能人工了墩崩,而且需要審美比較好的
- APP的觸控性氓英,操作性是否符合用戶行為習(xí)慣,是否反人性
- 程序加載圖片時(shí)是否有風(fēng)格合適的占位圖鹦筹,整個(gè)界面讓人舒服铝阐,不突兀
- 一些控件的風(fēng)格和功能是否符合蘋果的的特點(diǎn),整體的統(tǒng)一性盛龄。
- 屏幕旋轉(zhuǎn)的視覺效果饰迹,有沒(méi)有控件或者顯示錯(cuò)位。
4.兼容性測(cè)試
蘋果 產(chǎn)品這幾年的快速迭代余舶,出現(xiàn)了大量的機(jī)型和系統(tǒng)版本,屏幕適配和系統(tǒng)適配已經(jīng)成了iOS開發(fā)者比較頭痛的問(wèn)題了锹淌,在越來(lái)越多的機(jī)型上匿值,問(wèn)題也是越發(fā)明顯。一般兼容性測(cè)試囊括以下:
- 系統(tǒng)兼容性赂摆,從目前市場(chǎng)占有率來(lái)說(shuō)挟憔,最低要從 iOS9.0開始測(cè)試钟些,iOS 10.0, iOS 11.0等都進(jìn)行測(cè)試绊谭,是否有異常政恍。
- 機(jī)型適配,市面上現(xiàn)在已經(jīng)淘汰32位系統(tǒng)的機(jī)型了达传,所以測(cè)試的時(shí)候5S 以上的機(jī)型都要測(cè)試篙耗,看看適配有沒(méi)有異常。
- 安裝同類型競(jìng)品產(chǎn)品宪赶,相關(guān)功能是否會(huì)被搶占宗弯,快捷圖標(biāo)、浮窗等是否重疊搂妻,替代蒙保,亂屏等。
- 在不同的機(jī)型上的安裝欲主、拉起邓厕、點(diǎn)擊和卸載是否正常
- 在不同的系統(tǒng)版本上的安裝、拉起扁瓢、點(diǎn)擊和卸載是否正常
- 覆蓋安裝详恼、升級(jí)安裝都要進(jìn)行測(cè)試,注意覆蓋安裝后的各種數(shù)據(jù)涤妒、開關(guān)单雾、配置和升級(jí)前一致等
兼容性測(cè)試最佳的方式是投放到機(jī)型數(shù)量和種類齊全,版本豐富的云平臺(tái)進(jìn)行測(cè)試她紫,一般幾十分鐘就可以拿到測(cè)試報(bào)告
5.弱網(wǎng)絡(luò)測(cè)試
App在使用的過(guò)程中硅堆,難免會(huì)遇到弱網(wǎng)絡(luò)環(huán)境,例如在公車上贿讹、在地鐵里渐逃。在這種情況下,常常會(huì)出現(xiàn)網(wǎng)絡(luò)抖動(dòng)民褂、上行或下行超時(shí)茄菊,導(dǎo)致應(yīng)用中出現(xiàn)丟包。測(cè)試會(huì)對(duì)app在上線前做一定場(chǎng)景的弱網(wǎng)絡(luò)環(huán)境模型赊堪,并查看app在弱網(wǎng)絡(luò)環(huán)境下是否存在某些未知的問(wèn)題面殖。下面是我們常用的弱網(wǎng)絡(luò)環(huán)境場(chǎng)景:
- 3G弱網(wǎng)絡(luò)信號(hào)場(chǎng)景模擬;
- 市區(qū)低速移動(dòng)場(chǎng)景模擬哭廉;
- 郊區(qū)高速移動(dòng)場(chǎng)景模擬脊僚;
- 請(qǐng)求回應(yīng)超時(shí)_上行超時(shí)場(chǎng)景模擬;
- 請(qǐng)求回應(yīng)超時(shí)_下行超時(shí)場(chǎng)景模擬遵绰;
- 網(wǎng)絡(luò)抖動(dòng)場(chǎng)景模擬
弱網(wǎng)絡(luò)測(cè)試辽幌,在應(yīng)用環(huán)境不復(fù)雜的情況下增淹,測(cè)試人員可以通過(guò)真機(jī)的開發(fā)者模式里面模擬網(wǎng)絡(luò)變化來(lái)測(cè)試 APP 在各種網(wǎng)絡(luò)狀態(tài)和弱網(wǎng)或者無(wú)網(wǎng)的環(huán)境下的表現(xiàn)及異常。對(duì)于測(cè)試全面性和可靠性乌企,建議投放到比較大的云平臺(tái)進(jìn)行測(cè)試虑润,結(jié)果更全面和細(xì)致。
6.耗電量測(cè)試
App在手機(jī)上的表現(xiàn)加酵,除了功能外拳喻,app是否耗電,也是測(cè)試過(guò)程中重點(diǎn)要關(guān)注的一項(xiàng)虽画。手機(jī)設(shè)備在滿電的時(shí)候舞蔽,這個(gè)App能玩多久;App每小時(shí)的耗電是多少码撰;App在某個(gè)場(chǎng)景掛機(jī)10分鐘耗電量是多少渗柿;這些都是我們平時(shí)在耗電量測(cè)試中比較關(guān)注的點(diǎn)。
國(guó)內(nèi)各大平臺(tái)都支持這項(xiàng)測(cè)試脖岛,只需要選擇有 iOS 設(shè)備的平臺(tái)朵栖,投放測(cè)試。
7.協(xié)議測(cè)試
通過(guò)抓包或者 postman 等工具柴梆,模擬客戶端直接發(fā)送數(shù)據(jù)協(xié)議包給服務(wù)器陨溅,看看服務(wù)器是否有一定的校驗(yàn),能否接收客戶端發(fā)來(lái)的數(shù)據(jù)绍在。協(xié)議測(cè)試主要是為了處理用戶發(fā)送惡意協(xié)議到服務(wù)器门扇,騙過(guò)服務(wù)器校驗(yàn),造成數(shù)據(jù)異常等偿渡。
這項(xiàng)測(cè)試只能是專業(yè)測(cè)試人員臼寄,懂代碼,會(huì)腳本溜宽,熟悉網(wǎng)絡(luò)協(xié)議的人員進(jìn)行測(cè)試吉拳,配合服務(wù)器端的開發(fā)人員一起驗(yàn)證。
8.安全測(cè)試
APP 在上線前适揉,會(huì)進(jìn)行必要和詳細(xì)的安全測(cè)試留攒。主要測(cè)試應(yīng)用是否容易被外界反編譯,被破解嫉嘀,是否會(huì)被劫持炼邀,注入惡意代碼,外掛風(fēng)險(xiǎn)等剪侮。
專業(yè)的事情交給專業(yè)的人去做汤善,Testin云測(cè),阿里MQC都有安全測(cè)試的服務(wù),我們應(yīng)該提交帶這些云測(cè)平臺(tái)進(jìn)行全面細(xì)致的安全性測(cè)試票彪。
9.中斷測(cè)試
針對(duì)應(yīng)用的服務(wù)等級(jí)劃分方式及實(shí)時(shí)特性所提出的測(cè)試方法红淡,如:App在前臺(tái)和后臺(tái)運(yùn)行狀態(tài)時(shí)與來(lái)電、文件下載降铸、音樂(lè)收聽等關(guān)鍵運(yùn)用的交互情況測(cè)試等在旱。測(cè)試電話,短信推掸,彩信桶蝎,微博或其他通知進(jìn)來(lái)時(shí)app的反應(yīng)。
這個(gè)測(cè)試可以由測(cè)試人員手工模擬各種場(chǎng)景來(lái)測(cè)試 APP 的反應(yīng)和表現(xiàn)谅畅,但是可能會(huì)有遺漏登渣,考慮不全面等,這需要測(cè)試人員有比較豐富的經(jīng)驗(yàn)和測(cè)試場(chǎng)景的熟悉毡泻。個(gè)人建議還是分發(fā)到云平臺(tái)進(jìn)行測(cè)試胜茧,由測(cè)試經(jīng)理綜合考慮再選擇合適的平臺(tái)。
10.壓力測(cè)試
壓力測(cè)試包括仇味,服務(wù)器壓力和終端壓力呻顽。大量數(shù)據(jù)請(qǐng)求的時(shí)候,能否快速響應(yīng)丹墨。瘋狂點(diǎn)擊請(qǐng)求的時(shí)候廊遍,會(huì)不會(huì)崩潰等。還有邊界壓力贩挣,邊界條件的操作喉前,會(huì)不會(huì)沒(méi)有容錯(cuò)處理,導(dǎo)致應(yīng)用 crash 等王财。
最佳方式是提測(cè)云平臺(tái)卵迂,進(jìn)行 Monkey測(cè)試,邊界壓力,響應(yīng)壓力等專家測(cè)試團(tuán)隊(duì)等測(cè)試搪搏。
以上測(cè)試就是大概測(cè)試會(huì)對(duì)我們APP所做的一些測(cè)試流程狭握,我們?cè)陂_發(fā) APP 的時(shí)候,只要按照這些方面去開發(fā)疯溺,能更好的避過(guò)很多坑论颅,減少 bug的產(chǎn)生。
參考: