ADB移動端測試

Mr. Bigglesworth發表於2020-12-28

1. 手機端常規測試

對於手機端測試,按照平臺來分,分為Android和IOS兩大主流系統
對於ios和Android,二者有區別,Android開源導致碎片化比較嚴重,(手機品牌眾多,系統版本各異,解析度不統一,主流手機型號上千。無法保證應用、遊戲對於所有手機的適配相容。)bug比較多,而IOS通常bug會少一些。
Android手機長按home建,會撥出應用列表和切換應用,右滑擇會終止應用。
還有解析度測試,Android手機解析度有20多種,IOS較少一些
再就是手機作業系統,Android系統太多了,IOS較少,但是升級之後不能夠降級

功能測試
對於手機app來說,各種測試方式都需要考慮進來,比如說邏輯功能測試,隨著移動端市場逐漸升溫,大家用的軟體越來越多,對軟體也越來越挑剔,公司在開發移動端的時候,肯定是有相應的需求文件和UI所設計的產品效果圖,我們做邏輯功能測試,就是根據這些資料,當然也可以根據我們正常人的邏輯思維進行邏輯功能測試。

安裝與解除安裝測試
軟體安裝後是否可以正常執行,安裝過程中是否可以取消,安裝空間不足時,是否有相應提示,是否可以解除安裝應用(可通過桌面解除安裝,也可以通過軟體解除安裝。曾發現在IOS手機上有個應用安裝時未完全安裝,終止安裝後,未完成安裝的應用圖示一直顯示在手機上,並且無法成功刪除),解除安裝是否支援取消功能,單擊取消後軟體解除安裝功能是否正常,解除安裝後檔案是否全部刪除所有的安裝資料夾,從不同的應用市場下載進行安裝測試,比如測試小米市場,華為市場,應用寶,安卓市場,安智市場的安裝測試。

軟體升級測試
當客戶端有新版本時,是否有更新提示,當版本為非強制升級版時,使用者可以取消更新,老版本能正常使用,使用者在下次啟動app時,仍能出現更新提示;當版本為強制升級版時,當給出強制更新後使用者沒有做更新時,退出客戶端,下次啟動app時,仍出現強制升級提示,當然現在強更已經很少出現了。檢查更新後各個功能是否能正常使用;線上跨版本升級後能否正常使用,當然現在主流的安裝更新方式開始向熱更新熱部署方式轉變,就是在使用者不需要手動更新的情況下,完成版本的靜默更新,這個技術是有難度的,需要看公司中程式設計師的技術能力還有就是是否有這樣的產品需求。

登入測試
對於登入測試,基本上每一款app都有登入註冊功能,所以在測試App的時候,登入測試是必不可少的一項。
我們做登入測試的時候,往往包含這麼些項,登入使用者名稱和密碼錯誤時,介面有提示資訊
使用者主動退出登陸後,下次進入app時,應該進入登陸介面
密碼更改後,登入時是否做到了有效資料的校驗,對於未登入狀態時,一些頁面的操作,是否做了控制
切換賬號登入,檢驗登入的資訊是否做到及時更新,對於多個端(web、iso、android等)進行操作時,確保資料庫操作無誤,且每個端可以及時看到資料的更新,一個賬號只允許一臺機器登陸的軟體,需要賬號登入多個手機時,是否將原使用者踢下線,且能夠給出提示資訊,使用者登入狀態太久,session會過期,會出現“雖然是登入狀態,系統會提示使用者沒有登陸”

安全性測試——許可權測試
對於手機許可權,如果我們是剛開發不知名的app,許可權這塊儘量少一些,這些許可權在安裝的時候都必須使用者同意。在Android 6.0之後,許可權需要動態的申請,我們測試的時候,需要測試在使用到這些許可權的時候,程式設計師是否做邏輯判斷,使用者同意許可權應該怎麼操作,不同意許可權又應該怎麼操作。

訊息推送測試
訊息推送,是移動端的一大特色。我就說一下訊息推送我們所做的這些方面吧,
未鎖屏時,應用後臺執行,訊息推送是否可正常接收,未鎖屏時,APP客戶端使用過程中,可以收到訊息提醒,且點選可檢視。
鎖屏時,手機訊息欄是否可以接收到訊息提醒。且點選可檢視。點選後訊息欄中消失。

精準推送
當推送訊息是針對登入使用者的時候,需要檢查收到的push與使用者身份是否相符,沒有錯誤的將其他人的訊息推送過來
push推送訊息是是否能有針對性的推送,如相應內容推送給相應使用者(精準推送)
退出登入後,是否接受push推送(根據需求來)

前後臺切換測試
APP切換到後臺,再回到APP,檢查是否停留在上一次操作介面;檢查功能及應用狀態是否正常;程式是否崩潰,功能狀態是否正常,尤其是對於從後臺切換回前臺資料有自動更新的時候
手機鎖屏解屏後進入app注意是否會崩潰,功能狀態是否正常
當APP使用過程中有電話進來中斷後再切換到APP,功能狀態是否正常
當關閉APP程式後,在開啟APP,APP能否正常啟動
對於有資料交換的頁面,尤其是有視訊圖片之類的頁面,每個頁面都必須要進行前後臺切換、鎖屏的測試,這種頁面最容易出現崩潰

UI測試(介面測試)
確保產品UI符合產品經理制定的原型圖與效果圖
一般涉及介面(如選單、對話方塊、視窗和其他可視控制元件)佈局、風格、文字是否正確,頁面是否美觀,操作是否友好。
如:安裝app後的載入頁顯示,分享頁面的產品logo顯示

相容性測試
相容性測試主要考慮手機的版本,型號,解析度,現在手機碎片化比較嚴重,各個版本如Android4.0到Android8.0的版本它是不一樣的,各大手機廠商像華為,三星,小米,錘子,魅族,vivo這些廠商都修改了android原始碼,好多時候開發的軟體在三星上沒問題,但是華為,小米就不行。還有手機解析度,現在主流的可能是19201080,但是還有好多其他解析度,比如7201280,還有一些更大解析度的手機,都要考慮這些解析度的相容,不然使用者視覺體驗就不好。

相容測試,公司中會買好多測試機來太讓我們進行測試,一般是不同廠商的手機,當然還有第三方雲測平臺,比如testin還有騰訊wetest,就可以做相容性測試。可以一次性測試100臺測試機,同時會有相應的相容報告,bug報告。
對於IOS,ISO版本有7.1.2、8.3、9.1等;能否適配各種螢幕尺寸。

網路環境測試
測試2G、3G、4G、wifi、有網、無/網、弱網情況下應用的執行
網路不好時,提交資料是否一直處理提交中,是否會有延遲,資料交換失敗是否會有提醒
有網到無網再到有網環境時,資料是否可以自動恢復,正常載入
無網路時,各種提示資訊是否友好,資料本地化是否正確(比如提示當前已斷開網路,請檢查網路設定;還有從wifi環境切換到4G環境提示是否啟用4G網路,否則將產生扣費。

mokey測試
對於手機測試,除了我們一些常規的功能測試,我們還會做壓力測試,比如對於Android手機,我會使用adb指令進行一些相應的操作,比如通過adb檢視設定,進入裝置,抓取log,我們測試的時候,會使用adb logcat所抓出來的log日誌存到電腦,發給開發,方便他們快速解決bug。
另外,我還會使用monkey對app進行測試,可以使用monkey對app做壓力測試,主要就是測試操作app的時候,程式是否會崩潰。
我們使用adb shell monkey 指定對應的app,執行要測試的次數,指定要觸控的比率,超時時間和忽略崩潰資訊,就可以執行測試,將測試log存到某個位置,然後把測試出的bug 日誌傳送給開發。300000
我就簡單的說一下測試的指令吧,比如我上邊所說的邏輯,我們用 adb shell mokey -p 指定要測試的包名 --ignore-crashs 忽略崩潰 --ignore-timeout 忽略超時 --throttle 38指定延遲時間毫秒 -s 指定測試種子 指定測試次數,然後將檔案 >輸出到磁碟中。

效能測試
對於效能測試,(eclipse和Android studio中本身有檢測cpu和記憶體的工具,也有檢測手機記憶體洩漏的工具)靠工具來測試手機cpu佔用,記憶體佔用,電池溫度等,以及測試我們的app在後臺持續執行的流量消耗和電量消耗問題。

Android介紹

Android是一種基於Linux的自由及開放原始碼的作業系統,主要使用於移動裝置,如智慧手機和平板電腦,由Google公司和開放手機聯盟領導及開發。尚未有統一中文名稱,中國大陸地區較多人使用“安卓”。

安卓版本:
Android在正式發行之前,最開始擁有兩個內部測試版本,並且以著名的機器人名稱來對其進行命名,它們分別是:阿童木(AndroidBeta),發條機器人(Android 1.0)。後來由於涉及到版權問題,谷歌將其命名規則變更為用甜點作為它們系統版本的代號的命名方法。甜點命名法開始於Android 1.5釋出的時候。作為每個版本代表的甜點的尺寸越變越大,然後按照26個字母數序:
市場上最常見的版本andorid6.0至andorid10.0

Android的系統架構和其作業系統一樣,採用了分層的架構。
從架構圖看,Android分為四個層,從高層到低層分別是應用程式層、應用程式框架層、系統執行庫層和Linux核心層
在這裡插入圖片描述

Android之四大元件
Android四大元件分別為activity、service、content provider、broadcast receiver。
參考文獻: https://blog.csdn.net/shenggaofei/article/details/52450668

相關文章