專項(xiàng)測試
在功能測試之后,需要來說說專項(xiàng)測試了。專項(xiàng)測試是很多測試類型的統(tǒng)稱。在專項(xiàng)測試中,主要需要做性能測試、穩(wěn)定性測試、兼容性測試、電量測試和網(wǎng)絡(luò)測試。本文不會將這些測試類型的具體做法都進(jìn)行介紹。針對 iOS 的特點(diǎn),主要介紹性能測試中的內(nèi)存測試、電量測試和網(wǎng)絡(luò)測試方案。
內(nèi)存測試。內(nèi)存測試在 iOS 系統(tǒng)中特別重要。首先,iOS 系統(tǒng)會對應(yīng)用有內(nèi)存數(shù)限制,超過一定數(shù)量程序會被強(qiáng)行關(guān)閉。另外,不斷少量的內(nèi)存泄露會使程序卡頓,極大地影響了用戶體驗(yàn)。內(nèi)存測試需要有內(nèi)存測試工具,主要使用 Xcode 和 Instruments 這兩個(gè) Apple 提供的工具。在檢測內(nèi)存時(shí),首先推薦 Xcode 的代碼分析功能。選擇圖 3 中的 Analyze,Xcode 會對項(xiàng)目代碼進(jìn)行內(nèi)存分析,如果發(fā)現(xiàn)有循環(huán)引用等問題時(shí),Xcode 會給出提示,以及詳細(xì)的引用關(guān)系,如圖 4 所示。
圖 3. 選擇 analyze 分析
圖 4. analyze 結(jié)果
圖 5. Instruments 分析結(jié)果
圖 6. call tree 分析
選擇 Call Tree 后,勾選左側(cè)的 Invert Call Tree、Hide System Libraries 選項(xiàng),此時(shí)可以看到右側(cè)顯示程序中存在內(nèi)存泄露的方法,單擊左側(cè)箭頭可以展開內(nèi)存泄露下程序的調(diào)用樹,如圖 7 所示。在這里你可以詳細(xì)地看到代碼的調(diào)用過程,很清楚地定位到有問題的代碼位置。
圖 7. 泄露定位圖
電量測試。電量測試在專項(xiàng)測試的優(yōu)先級中,并沒有穩(wěn)定性和兼容性測試高。但是穩(wěn)定性和兼容性方面業(yè)內(nèi)已經(jīng)比較成熟了,在各種技術(shù)分享和一些技術(shù)文章中也有大量的實(shí)踐討論。所以,本文不再針對穩(wěn)定性和兼容性測試進(jìn)行描述,直接開始電量測試相關(guān)的測試總結(jié)。iOS 的耗電量都是一些硬件設(shè)備造成的,當(dāng)然硬件的很多不合理和不必要的使用都是通過軟件程序來控制的。所以 Instruments 工具的電量分析會幫助你掃描在 iOS 應(yīng)用使用過程中各種耗電的硬件是打開還是關(guān)閉狀態(tài)。比如,需要格外關(guān)心 GPS 的使用、Wi-Fi 和手機(jī)網(wǎng)絡(luò)的使用頻度等。如圖 8 所示。此時(shí)的電量分析只能通過一些硬件的使用開發(fā)來定性地進(jìn)行分析。
圖 8. 電量分析
電量測試的過程中為了減小誤差保證測試數(shù)據(jù)的準(zhǔn)確,需要注意以下幾點(diǎn):
Case 要有重點(diǎn);
Case 要盡量的小;
Case 最好是可持續(xù)時(shí)間長的,比如導(dǎo)航計(jì)算,視頻播放和音頻播放;
Case 如果不可持續(xù),需要重復(fù)多次,取平均值。
轉(zhuǎn)載:
http://www.ibm.com/developerworks/cn/mobile/mo-cn-ios-testing/index.html
http://my.oschina.net/bluedreamjn/blog/536049
https://viktyz.gitbooks.io/iosnotebook/content/Notes/Note_00020_20151221.html