1. 程式人生 > >Android平臺jieahoa

Android平臺jieahoa

快捷 res 電信 序號 自定義 匹配 比較 占用空間 加密

一、Android平臺介紹

什麽是智能手機

具有獨立的操作系統,獨立的運行空間,可以由用戶自行安裝軟件、遊戲、導航等第三方應用程序,並可以通過移動通訊網絡來實現無線網絡接入的手機類型總稱。

智能手機操作系統

Android、IOS、Windows Phone、BlackBerry、Symbian

什麽是Android

Android是一種基於Linux的開源操作系統,主要使用於移動設備,例如智能手機、平板電腦、智能手表、智能電視等等。由Google公司和開放手機聯盟領導及開發。Android操作系統最初由Andy Rubin開發,主要支持手機。2005年8月由Google收購註資,逐漸擴展到平板電腦及其他領域上。

Android發展歷史

Android 4.1Jelly Bean(果凍豆):2012年6月28日

新特性:更快、更流暢、更靈敏;特效動畫的幀速提高至60fps,增加了三倍緩沖;增強通知欄;全新搜索;搜索帶來全新的UI、智能語音搜索和Google Now三項新功能;桌面插件自動調整大小;加強無障礙操作;語言和輸入法擴展。

Android 4.2Jelly Bean(果凍豆):2012年10月30日

Photo Sphere全景拍照功能;鍵盤手勢輸入功能;改進鎖屏功能,包括鎖屏狀態下支持桌面掛件和直接打開照相功能等;可擴展通知,允許用戶直接打開應用;Gmail郵件可縮放顯示;Daydream屏幕保護程序;用戶連點三次可放大整個顯示頻,還可用兩根手指進行旋轉和縮放顯示,以及專為盲人用戶設計的語音輸出和手勢模式導航功能等;支持Miracast無線顯示共享功能

Android 4.3 Jelly Bean

提升了性能,更加流暢,提升反應速度。新增脫機語音輸入、更多的平板優化(主要針對小尺寸平板)、強化Voice Search語音搜索。大幅改變用戶界面設計。增強惡意軟件的保護措施。

Android 4.4 KitKat“奇巧”

在閱讀電子書、玩遊戲、看電影時支持全屏模式。優化存儲器使用,在多任務處理時有更佳工作的表現。支持Google Cloud Print服務,讓用戶可以利用戶中或辦公室中連接至Cloud Print的打印機,打印文件。全新的原生計步器。全新的NFC付費集成

全新的非Java虛擬機運行環境ART(Android Runtime)

什麽是Dalvik:

Dalvik是Google公司自己設計用於Android平臺的Java虛擬機。dex格式是專為Dalvik應用設計的一種壓縮格式,適合於內存和處理器速度有限的系統。Dalvik允許同時運行多個虛擬機的實例,並且每一個應用作為獨立的Linux進程執行。獨立的進程可以防止在虛擬機崩潰的時候所有程序都被關閉。

什麽是ART:

在Dalvik下,應用每次運行都需要通過即時編譯器(JIT)將字節碼轉換為機器碼,即每次都要編譯加運行,這一機制並不高效,但讓應用安裝比較快,而且更容易在不同硬件和架構上運行。

ART完全改變了這種做法,在應用安裝時就預編譯字節碼到機器語言,在移除解釋代碼這一過程後,應用程序執行將更有效率,啟動更快。

Dalvik與ART的區別

1. 在Dalvik下,應用每次運行都需要通過即時編譯器(JIT)將字節碼轉換為機器碼,即每次都要編譯加運行,這雖然會使安裝過程比較快,但是會拖慢應用以後每次啟動的效率。而在ART 環境中,應用在第一次安裝的時候,字節碼就會預編譯(AOT)成機器碼,這樣的話,雖然設備和應用的首次啟動(安裝慢了)會變慢,但是以後每次啟動執行的時候,都可以直接運行,因此運行效率會提高。

2. ART占用空間比Dalvik大(字節碼變為機器碼之後,可能會增加10%-20%),這也是著名的“空間換時間大法"。

3. 預編譯也可以明顯改善電池續航,因為應用程序每次運行時不用重復編譯了,從而減少了 CPU 的使用頻率,降低了能耗。

Android 5.0 Lollipop

采用全新Material Design界面。支持64位處理器。全面由Dalvik轉用ART(Android Runtime)編譯,性能可提升四倍。預載省電及充電預測功能。新增自動內容加密功能。新增多人設備分享功能,可在其他設備登錄自己賬號,並獲取用戶的聯系人、日歷等Google雲數據。強化網絡及傳輸連接性,包括Wi-Fi、藍牙及NFC。強化多媒體功能,例如支持RAW格式拍攝。提供低視力的設置,以協助色弱人士。

Android 6.0 Marshmallow(棉花糖)

新系統的整體設計風格依然保持扁平化的MeterialDesign。Android6.0在對軟件體驗與運行性能上進行了大幅度的優化。Doze電量管理,Android6.0可使設備續航時間提升30%。鎖屏下語音搜索、指紋識別、更完整的應用權限管理、Now on Tap功能、Android Pay進一步強化移動支付。

Android 7.0 Nougat(牛軋糖)

分屏多任務,全新下拉快捷開關頁,通知消息快捷回復,通知消息歸攏,夜間模式,流量保護模式,全新設置樣式,改進的Doze休眠機制,系統級電話黑名單功能,菜單鍵快速應用切換

Android各個版本對自動化測試的支持

1.0 instrumentation (android.test)

2.2 robotium

2.3 monkeyrunner

4.1 input text 更新

4.4 uiautomator

幾種操作系統的對比

Android智能手機操作系統。基於Linux平臺的開源手機操作系統。它包括操作系統、用戶界面以及應用程序

優點:目前大部分軟件及遊戲不花錢,系統可以自定義,自由度較高。開發可擴展性非常好。

缺點:硬件使用效率不高,優化的不夠。遊戲軟件質量沒有IOS高,安全性稍差。

IOS操作系統是蘋果操作系統,用iPhone可以一鍵登錄App Store,輕松下載到你需要的應用程序。

優點:IOS優化好,很流暢,兼容性好,人性化,上手簡單,易於操作,安全性相對來說較高。

缺點:比較封閉,自定義程度不高,不能對系統進行深層次的改造。

Window Phone是微軟發布的一款手機操作系統,他將微軟旗下的遊戲、音樂與獨特的視頻體驗整合至手機中。

優點:流暢性穩定性好(相對安卓而言)

缺點:硬件配置高、耗電量大、電池續航時間短、硬件成本高,目前應用App、遊戲都比較少。

Android平臺優勢

比Symbian更先進

全新開源系統,系統發展更具前景

快速增長的海量第三方免費軟件

無“證書”限制,安裝軟件更自由

比IOS更開放

風格更自由,簡潔

開源系統,更多第三方免費軟件

軟件安裝卸載更方便,無需第三方平臺軟件

Android系統的結構

Linux內核層

硬件和其他軟件之間的一個抽象隔離層

提供安全機制、內存管理、進程管理、網絡協議堆棧、驅動程序等

中間件層

由函數和Android runtime構成

函數庫主要提供一組基於C/C++的函數庫

Surface Manager,支持顯示子系統的訪問,提供應用程序與2D、3D圖像層的平滑連接

Media Framework 實現音視頻的播放和錄制功能

SQLite 輕量級的關系數據庫引擎

OpenGL ES 基於3D圖像技術

FreeType位圖與矢量字體渲染

Webkit瀏覽器引擎

SGL 2D圖像引擎

SSL 數據加密與安全傳輸函數庫

libc標準C運行庫 Linux系統中底層應用程序開發接口

Android runtime

核心庫提供Android系統的特有函數功能和Java語言函數功能

Dalvik虛擬機實現基於Linux內核的線程管理和底層內存管理

應用程序框架

Resource Manager 允許應用程序使用非代碼資源

Location Manager 管理與地圖相關的服務功能

Notification Manager 允許應用程序在狀態欄中顯示提示信息

Package Manager 管理應用程序安裝包

Window Manager 管理應用程序窗口

應用程序

系統出廠自帶的一些應用程序

Android 對測試的挑戰

混亂的Android

2013年的某統計數據

開發者95萬

機型3500種

用戶4億

應用150萬

設備屏幕分辨率不同

廠商對API的實現不同

手機的性能差異化

底層功能潛在的問題

1.同一API的不同體現----crash、ANR(55.8%)

2.嚴重的功能性問題,如聯網、短信、藍牙等(20.7%)

3.設備屏幕分辨率(18.9%)

4.其他問題(4.6%)

結語:了解每一個操作系統新版本的新功能,根據新版本的特性更新測試用例以及測試側重點。

二、Android功能測試

需求

以產品需求為導向和前提開展測試工作

啟動和停止

首次啟動:

歡迎界面、啟動時間、信息拉取

二次啟動:

啟動時間、各種入口、再啟動狀態、信息拉取、登錄

退出應用:

各種退出的方式(手動、被動)、收拾殘局、再次啟動

程序功能模塊

文本輸入:

正常輸入、非正常輸入、邊界值,特殊字符

事件觸發:

滿足需求、嘗試點擊非點擊區域、檢查debug後門

權限安全

需要用戶確認的權限沒有授權,權限默認關閉

聯網權限被管家、系統安全類軟件限制情況下的聯網操作

權限敏感度,如通訊錄等為系統的絕密權限謹慎獲取

使用安全軟件進行安全漏洞、病毒掃描,看被測APP是否會被這些安全軟件提示有問題而影響用戶的對被測APP的使用或者印象

文件存儲

APP使用過程中產生的臨時文件存儲路徑、命名方式等

APP中涉及的下載操作產生的文件存儲方式

存儲的文件被鎖、占用

有外置SD、內置SD卡都要考察APP產生的文件是否正確

APP被安裝在SD卡或者手機存儲空間

磁盤空間不足、磁盤無權限(如讀、寫操作)

網絡與流量

網絡提示

網絡信號,尤其是弱網絡環境下應用的表現

不同運營商網絡:電信、聯通、移動,2G/3G/4G

網絡中斷、網絡恢復場景的邏輯處理(如重試)

首次啟動應用的流量是否符合預期

統計、異常上報對流量的影響

基於流量安全的特殊業務,如僅wifi聯網

接口容錯

前端測試後臺接口測試覆蓋不到的內容

請求網絡層錯誤:http response返回非200的狀態

請求業務層錯誤:接口返回內容為空、超長、字段類型不匹配

中斷測試

鎖屏中斷:停留在程序操作界面進行鎖屏,恢復後檢查操作是否正常

前後臺切換:停留在程序操作界面,通過Home鍵,進行程序的前後臺切換

加載中斷:頁面接口請求、界面框架加載時,通過Home鍵、返回鍵、快速切換操作進行中斷

系統異常中斷:如關機、斷電、來電

聲源占用:比如導航正在規劃完路線在導航,這時插入了U盤,程序將播放u盤裏的歌曲聲源優先級設置為最高,當拔掉u盤,導航的聲源占用優先級應恢復。

機型適配

分辨率適配:UI結構、對話框基於分辨率、屏幕大小進行適配

OS版本適配:涉及API調用如獲取SIM卡信息、外置SD卡設置等等

CPU硬件配置:X86機型、V5、V6、V7、V8

系統配置

進程管理:省電管理、後臺進程駐留管理

顯示管理:字體大小、字體類型

語言環境:語言環境

橫豎屏配置:是否支持橫豎屏自適應處理

升級覆蓋安裝

逐步升級:用戶數據、設置、狀態的保留,特別註意新版本已去掉的狀態或設置

跳級:即隔開版本覆蓋安裝(容易出現問題)

降級:覆蓋安裝更低版本

卸載安裝: 卸載安裝,安裝目錄清理,SD卡存儲數據不被清理

省流量升級:有些助手提供省流量升級的方式

在沒有更新或者網絡時,需要給予用戶正確的信息表達

強制升級

不升級無法使用

性能測試

性能: 核心操作的性能指標:如CPU/內存、響應時長、電量、流量

穩定性: 選擇某些場景做持續反復操作:Monkey穩定性操作,持續多個小時

流暢度: 列表滑動、返回進入、快速點擊

兼容性測試

通用軟件:例如輸入法

安全軟件:例如各種管家

競品軟件、同類軟件,是否出現沖突

三、Android專項測試

專項測試

根據測試過程中凸顯的問題,可以成立專項測試。通常專項測試有:內存、CPU、FPS、弱網絡、電量、流量、流暢度、加載速度、成功率、內存、響應速度、穩定性、規劃時間、內容推薦精準度、聲源驗證、競品對比測試、支持視頻格式

工具:GT

GT:在Android平臺上,可以下載GT的APK、安裝後直接使用,GT的APK提供了GT的絕大部分基礎功能;例如,基礎性能測試、日誌查看、網絡數據包抓取等等。

GT SDK:在Android平臺上,如果希望使用GT的高級功能,如“插樁”等,就必須將GT的SDK嵌入到被調測的應用的工程裏,再配合安裝好的GT使用。

adb常用命令

adb的全稱為Android Debug Bridge,就是起到調試橋的作用。通過adb我們可以在Eclipse中方便通過DDMS來調試Android程序,說白了就是debug工具。

adb install xxxx.apk安裝一個apk到電腦連接的默認手機

adb uninstall xxxx.apk卸載

adb devices 當前電腦連接了幾臺手機

adb kill –server殺掉服務

adb start –server啟動服務

adb reboot 重啟手機

adb shell 進入手機系統

am

pm

pm clear 清理app相關的信息恢復到剛安裝的狀態

service list 當前系統中運行的系統級的服務

dumpsys

input text

內存測試

命令:dumpsys meminfo [package name]

CPU

命令: dumpsys cpuinfo | grep<packagename>

流量

方法:從文件中獲取

/proc/uid_stat/<uid>/tcp_snd

/proc/uid_stat/<uid>/tcp_rcv

流量(抓包)

方法:

tcpdump–p –s 0 –vv–w filename

-s 0: 按包長,截取數據

-vv輸出詳細的報文信息

FPS

命令:

service call SurfaceFlinger 1013

adb shell dumpsysSurfaceFlinger --latency <window_activity>

SurfaceFlinger是一個系統服務,管理Android幀緩沖區

note: 需要root

電量

命令:/sys/class/power_supply/battery/uevent

電量(5.0系統之後手機)

命令:

adb shell dumpsysbatterystats> xxx.txt

adb shell dumpsysbatterystats> com.package.name > xxx.txt

結果分析:

python historian.py xxx.txt > xxx.html

穩定性測試

Monkey Test

運行在模擬器或設備上的一個工具,模擬用戶按鍵輸入,觸摸屏輸入,手勢輸入等。看手機多長時間會出異常

Android Monkey Test?

  • 對軟件進行漫無目的,隨機的,非常理的胡亂操作,以測試軟件的穩定性和健壯性
  • 應用程序開發者驗證自己應用的健壯性
  • 設備制造商對自己設備施行壓力測試,看設備能堅持多久
  • 集成adb shell裏面的一個命令,命令參數包括:

l 基本配置選項,如設置嘗試的事件數

l 運行約束選項,如設置只對單獨的一個包進行測試

l 事件類型和頻率,調試選項

弱網絡

所謂弱網環境簡單來說就是網絡質量較差導致丟包和延遲等現象

工具:fiddler等限速工具

四、bug根因分析

界面適配

問題:

1、手機分辨率為1920x1080的高分辨率手機,在調整手機字體大小時,會導致頁面顯示出現變形;

2、因用戶設置的特殊字體導致列表的字母條不顯示;

3、某些 banner 圖片在部分機型只能顯示一半。

預防方法:

1、文字或者圖片需要適配不同分辨率的機型時,建議使用dp方式進行開發,即使是使用dp,也需要考慮特殊分辨率的機型顯示;

2、適應寬度/適應高度/高寬均適應的;

3、針對程序需求,設定合適的適配機制。

系統適配

問題:

調用高版本API,導致某些機型進入主頁顯示空白頁面。

預防方法:

調用高版本API,需要考慮兼容性,開發團隊需要制定程序API調用規範。

交互適配(1)

問題:

1、在輸入框操作時,調出系統輸入法軟鍵盤後,沒有有效啟用鍵盤上的“下一項”、“確定”、“搜索”等按鍵;

2、系統軟鍵盤,在關閉當前頁面時沒有及時收起軟鍵盤。

預防方法:

1、需求設計過程中需要考慮輸入法操作鍵的使用細節,確保所有軟鍵盤的輸入鍵可使用;

2、設計規範:程序/頁面設計針對輸入法操作鍵的使用制定規範。

交互適配(2)

問題:

APP界面的“返回”操作與手機系統的“返回”按鍵操作效果不一致;或界面未提供“返回”,在無系統“返回”按鍵的手機上,無法返回。

預防方法:

設計規範:程序設計針對手機返回鍵制定使用規範;在設計中要綜合界面需求設定是否提供“返回”操作。

界面風格

問題:

1、對話框標點、英文字符出現全角、半角的不統一;

2、對話框、提示浮動框提示語風格不同,顯示位置均不同,產品友好度下降;

3、字體和字號要在app中是不同的風格。

預防方法:

建立統一的界面風格/語言文字提示規範(可參考微軟的標準)

全角字符和半角字符都要使用一個空格分開

英文和數字之間要有空格分開

漢字和英文、數字要有空格分開

帶有漢字的話要使用全角字符

語言中不要混用全角和半角標點

字體和字號要保持統一的風格

性能優化(1)

問題:

1、進入一些列表,若數量較多則會出現卡死;

2、界面顯示對象數量較多,某些會導致頁面操作卡頓,用戶體驗很差;

3、處理大量數據時,用戶等待時間過長,無進度條提示進度。

預防方法:

1、程序對耗時較多的操作邏輯、判斷邏輯,不放入UI主線程;

2、對數據庫記錄較多的操作,可以改成數據庫批量操作,或者調用批量接口;

3、程序在後臺處理用戶的輸入,則提供進度條或對話框。

性能優化(2)

問題:

1、後臺播放內存泄露;

2、程序後臺運行的時候,手機一直處於占用CPU的運行狀態;

3、頁面中的動態效果(如:馬燈滾動)次數無限制,導致界面不斷刷新消耗資源。

預防方法:

1、使用靜態分析工具或代碼檢查方式檢查內容的分配和釋放;

2、WakeLock機制是防回收技術,當沒有播放、下載等操作時,應該主動關閉後臺的喚醒鎖,減少耗電。當再次需要使用播放、下載功能時才去開啟喚醒;

3、對刷新消耗資源類操作,要有次數限制。

多服務、多進程

問題:

1、某些功能操作後,app 無法連接網絡;

2、進程被殺死後重啟,通知欄中顯示的信息不正確,沒有顯示正確的信息;

3、app未啟動,通過其他第三方app的調用入口調用app ,無法正常使用某些功能;

4、服務停止後,無法被啟動;

5、程序被手動退出後,進程仍然在後臺存在。

預防方法:

1、重新初始化時獲取值時讀取到空值,因此賦予一個默認值;

2、服務重啟被回收重啟時,初始化對象時要判斷當前是否已存在,若存在則復用並更新內容;

3、任務獨立,需要創建不同的服務,生命周期不會互相影響,服務獨立可以避免某個服務結束會影響到其他功能的正常使用;

總體,對有啟用多服務、多進程的程序,有需要做好服務、進程的一致性管理。

外部調用

問題:

1、某些機型啟動app之後一直在調用某些外部服務(通過後臺服務可以看到其他服務進程,退出app後,有些服務進程消失);

2、某些功能模塊被掃描成存在木馬病毒;

3、安全管家告警程序獲取絕密權限(通訊錄權限)。

預防方法:

調用第三方功能作為統計或者監控作用時,需要考慮該sdk是否會一直喚醒app導致耗電或者程序無法真正關閉問題,調用外部第三方SDK,要考慮被安全工具(上次有廣告被掃描到病毒)掃描的設計需求、及時關閉不需要的服務進程,在能滿足需求的情況下,盡量減少使用敏感的系統權限。

網絡機制(1)

問題:

1、網絡重試操作機制不統一,導致頁面超時體驗風格不統一;

2、某些應用頁面,訪問響應慢。

預防方法:

1、對底層網絡重試機制做統一封裝後,供上層調用;

2、固定好每次重試間隔(建議10s重試)和重試總次數(建議3次);

3、為使頁面提示可以區分網絡層與業務解析層不同錯誤,需對不同錯誤類型做分類的異常處理,並提示用戶原因或讓用戶重試;

4、對多個網絡請求的界面,網絡接口並行請求有利於提高響應速度。

網絡機制(2)

問題:

1、未加載完圖片時切換到相似tab,切回不再加載圖片;

2、進入一個tab,該頁面已經加載完成,選擇點擊某個詳細信息頁面返回時,頁面會閃一下。

預防方法:

1、一個頁面有多個tab頁時,用戶切換tab可不輕易取消線程,取而代之使用暫停線程,退出頁面時才回收清除;

2、啟動負載分攤機制的請求,可先保存請求地址,供返回時判斷避免重復加載。

網絡機制(3)

問題:

1、iOS弱網絡下獲取不到配置,導致啟動卡死;

2、sim卡未激活,無移動網絡,某些功能卡死;

3、斷網下啟動,登錄狀態丟失,某些功能信息未正確顯示。

預防方法:

1、啟動邏輯中的網絡類請求不能阻塞UI主線程,即網絡請求數據可不即時響應(可在下次啟動時生效);

2、按鈕的點擊事件不跟接口關聯,做成異步處理不管是否有返回,都可以正常進行點擊操作;

3、離線操作類,不因與當前網絡狀態有影響。

下載空間有效性判斷

問題:

1、空間不足時,無法保存信息時,沒有提示和提前判斷;

2、本地存儲空間不足時,保存文件時沒有相應提示;

3、空間不足時,文件下載不成功,導致重復不停下載,浪費用戶流量。

預防方法:

1、對磁盤剩余空間的判斷和自動清理邏輯可以做統一封裝,提供各不同下載業務使用;

2、可結合系統硬件配置的10%作為有效剩余空間閥值;

3、針對手機內外置SDCard,可以在空間不足情況下做分區切換機制。

下載文件完整性判斷

問題:

1、換膚圖片未下載完,就觸發換膚操作,導致換膚效果錯誤;

2、圖片無法下載完全,導致圖片展示不完整;

3、文件下載完成後,由於網絡錯誤與源文件不符,導致下載後無法播放;

4、上傳文件功能,目標物理文件不存在(界面缺顯示存在),導致傳送文件頁面一直處於等待中。

預防方法:

1、通過判斷下載前後文件的size或者文件內容簽名,確保下載文件完整後再觸發文件使用相關的邏輯;

2、文件傳輸時檢查文件是否存在,若不存在則視為傳輸失敗,不阻塞後續傳輸。

阻斷連續操作

問題:

1、連續快速切換界面,或者頻繁觸發某些功能操作,導致程序卡死;

2、連續多次點擊同一張圖片,導致該圖片下載錯誤。

預防方法:

使用間隔響應、延遲響應的方式,達到多次相同操作只的觸發一次有效邏輯,

操作一次後,可將按鈕等元素設定為禁用狀態,防止用戶多次點擊和請求。

有效統計邏輯

問題:

操作頁面某些元素,也會導致發送頁面使用的統計信息。

預防方法:

為確保統計數據上傳的有效性,只針對真正展示的界面做上報統計,對於展示不完整、非針對性展示不做統計上報。

程序健壯性判斷(1)

問題:

1、分享到新浪微博(手機未裝新浪微博客戶端),app崩潰;

2、後臺接口變更(返回值和類型發生變化),客戶端不兼容新格式判斷,拋出崩潰異常;

3、搜索默認操作崩潰;

4、使用外部第三方數據,出現空數據或者非標準格式,則app崩潰;

5、輸入框沒有限制字符長度,保存時導致溢出崩潰。

預防方法:

1、客戶端針對接口返回需做容錯處理,如返回為空、返回數據類型不一致;

2、任何文本框類型的需要限制輸入長度。

程序健壯性判斷(2)

問題:

1、某些功能的初始化邏輯沒有加入啟動邏輯,導致功能使用失敗;

2、退出重啟app,無法自動登錄。

預防方法:

1、制定啟動加載邏輯規範;

2、對於重要的業務建議加入啟動邏輯,並在業務實際使用時再根據狀態多一層判斷和加載;

3、產品人員需要考慮是否需要保存自動登錄功能,並明確告之開發和測試人員。

安全機制

安全考慮:

1、在URL中不要帶有明文的用戶信息寫代碼的時候,不要把密碼等敏感的用戶信息明文的顯示在url中;

2、即使要傳遞密碼參數也不要使用pwd、passpord這樣的參數名稱來進行傳遞,防止被截獲;

3、要在傳遞參數的操作中使用NoCache參數,防止將url參數進行緩存。

預防方法:

建立標準的數據傳輸和命名規範,並制作一些網頁開發模板或者規範供參考。

日誌調試管理

問題:

上線以後,調試日誌沒有關閉,影響程序性能。

預防方法:

1、日誌統一開關,編譯正式包需要關閉;

2、再程序界面有入口可以檢查是否關閉,方便及時校驗;

3、方便定位問題,可以做日誌動態開啟的隱藏開關;

4、方便收集問題,可以對問題類型做上報處理(典型如崩潰日誌上報)。

Bug預防總結

分析問題à找到具體原因à解決問題à總結問題à建立預防方法à規範流程和制度à監督執行

五、課堂練習用例匯總

序號 測試類型 測試項 測試點
1 功能測試 啟動和停止 首次啟動打開一個聊天窗口,再次啟動保留聊天窗口
2 退出從新登錄,聊天窗口是否保留
3 進程被殺掉後重新開啟程序聊天窗口是否保留
4 功能 內容(文本、語音、圖片、視頻、表情、位置、紅包、轉賬、卡券、名片、收藏)測試(正常輸入、非正常、邊界值、特殊字符)
5 聊天記錄的保留機制是否符合預期
6 消息撤回機制是否符合預期
7 語音轉文字是否符合預期
8 語音聽筒模式與揚聲器模式互相轉換是否符合預期
9 免打擾功能是否符合預期
10 同賬號不同設備信息同步是否符合預期
11 賬號異地登錄的處理符合預期
12 更換設備後登錄原賬號,聊天窗口是否保留,聊天記錄是否可以從服務端獲取
13 同一賬號先後登錄處理機制是否符合預期
14 編輯完信息未發送,信息的草稿保存機制是否符合預期
15 復制粘貼是否符合預期
16 UI 界面、輸入框、易用性、流暢性、用戶體驗
17 權限安全 拍照、讀取相冊、位置、存儲等功能是否申請權限
18 無權限時使用相關功能是否符合預期
19 無權限時應有友好提示並引導用戶如何授權
20 文件存儲 存儲空間不足給予有好提示,並引導清理文件
21 保存文件(圖片、語音、視頻等)
22 存儲空間不足或無讀寫權限聊天功能是否符合預期
23 網絡與流量 流量消耗是否符合預期
24 斷網時(友好提示)、網絡恢復時是否符合預期
25 wifi/非wifi(全網通 2g/3g/4g)是否符合預期
26 弱網表現是否符合預期
27 非wifi環境下是否有“是否允許4g使用”開關
28 發送文件時是否對不同的網絡情況作了不同處理
29 因網絡問題發送失敗的消息重新發送是否符合預期
30 接口容錯 接口返回錯誤時,反饋給用戶的信息是否符合預期
31 中斷測試 來電、鬧鐘、提醒、其他推送造成的系統中斷表現是否符合預期
32 鎖屏、解鎖後表現是否符合預期
33 前後臺切換表現是否符合預期
34 斷電、通電、關機、開機表現是否符合預期
35 造成發送中斷後重新發送是否符合預期
36 機型適配 指定品牌型號適配
37 指定分辨率適配
38 指定os版本適配
39 系統配置 修改系統的字體、字號設置後表現是否符合預期
40 改變系統語言環境後表現是否符合預期
41 橫豎屏切換是否符合預期
42 修改當前系統時間為錯誤時間,表現是否符合預期
43 升級安裝 逐步升級後表現是否符合預期
44 跳級後表現是否符合預期
45 降級後表現是否符合預期
46 卸載重新安裝表現是否符合預期
47 性能測試 cpu/內存、響應時間、電量等是否符合預期指標
48 典型場景長時間操作穩定性是否符合預期指標
49 整體操作的流暢度是否符合預期
50 兼容性 不同os交叉使用、不同os版本交叉使用是否符合預期
51 對常用輸入法的兼容
52 對常用安全軟件的兼容
53 對競品軟件的兼容
54 信息安全 敏感詞機制是否符合預期
55 用戶重要信息加密是否符合預期
56 數據庫加密是否符合預期
57 專項測試 隨機應變 根據測試過程中凸顯的問題,判斷是否需要成立專項測試。
58 測試項 內存、CPU、FPS、弱網絡、電量、流量、流暢度、加載速度、成功率、內存、響應速度、穩定性、規劃時間、內容推薦精準度、聲源驗證、競品對比測試、支持視頻格式

Android平臺jieahoa