App可靠性設計

2021-09-11 12:28:46 字數 2023 閱讀 7757

可靠性是軟體乙個重要的質量屬性,它關注的是軟體功能持續的可用性,以及出現故障之後是否能夠容錯,是否能快速的恢復使用。

1、故障應在第一時間被檢測和感知;

2、能避免的故障都不應該發生;

3、不可避免或無法**的故障,需進行容錯;

4、已發生故障,需在最短時間內得到恢復;

5、物件狀態和生命期都應該是完備的,閉合的;

6、資源必須合理和均衡地使用;

應用作為直接提供使用者服務,與使用者互動最多的環節,其可靠性對使用者體驗的影響巨大,甚至會高於系統對使用者造成的影響。

應用不響應(anr)

(1)應用將耗時操作或者同步呼叫放在ui執行緒,廣播接收器裡處理;

(2)應用資源異常,如記憶體,檔案,執行緒等的濫用、洩露;

(3)訊息、通知過載,忙不過來;

(4)獲取系統資源阻塞,比如訪問檔案系統,資料庫,網路,cpu等;

應用啟動不起來,介面卡住凍屏,黑屏,白屏

(1)應用啟動階段必現閃退;

(2)應用在啟動階段做了特殊的耗時、阻塞動作;

(3)應用事件處理bug,例如:應用接收事件但不做任何響應;

(4)應用資源異常,獲取系統資源阻塞;

(5)應用視窗狀態異常,或者使用定製的顯示繪製介面導致;

應用閃退或者頻繁閃退

(2)異常處理不閉合,不完備;

(3)版本相容性問題,硬體相容性問題;

一、應用資源異常

1、某輸入法軟體為了保證應用能常駐記憶體不被系統清理,在應用程序退出時,高頻率註冊1秒的定時器,定時器到時候,立即拉起該應用及關聯應用。如果系統反覆清理該應用,該應用會反覆自啟動,導致系統卡頓很嚴重。

3、某著名社交軟體收到訊息通知之前,需要獲取通話狀態。如果該應用短時間內收到通知訊息特別多,直接會將system_server的binder執行緒全部佔滿,導致其他應用和服務無法與system_server通訊,直接導致系統重啟。

二、應用的特殊行為

1、某社交軟體在自身公升級後的首次啟動過程中,長時間進入dex2oat優化過程,應用介面顯示黑屏。按back鍵無效,只能手殺,大量使用者反饋手機黑屏宕機。

2、某著名社交軟體收到訊息通知之前,需要獲取通話狀態。如果該應用短時間內收到通知訊息特別多,直接會將system_server的binder執行緒全部佔滿,導致其他應用和服務無法與system_server通訊,直接導致系統重啟。

3、某應用註冊加速度感測器以及近距離感測器監聽的邏輯:若兩個感測器的註冊有任何乙個失敗或者被拒,則會進行無限重試,直到兩者全成功,該邏輯會導致距離感測器被反覆執行註冊,致使system_server的fd數量急速增加,超過1024,導致system_server程序崩潰,系統重啟。

三、相容性問題

1、google 版本公升級導致。應用公升級n版本之後,應用頻繁閃退,功能缺失,應用無法使用,清除資料和快取也無效,系統負載高,使用者退機。

2、某應用推送最新版本異常。應用公升級之後,使用者無法使用。

3、rom公升級之後,導致應用無法使用。rom公升級之後,該應用讀取**薄失敗,應用頻繁crash,導致手機**過程中無法結束通話。

一、業務功能的可靠性設計

1、合理分配執行任務:哪些放在前台?哪些放在後台?

2、仔細設計任務同步&併發:採用同步還是非同步?多工併發?

3、任務負載的均衡:多個業務執行流有序執行;

4、物件生命週期的閉合;

二、應用資料來源可靠性設計

1、應用核心的資料/檔案應有備份和容錯設計

2、來自外部輸入裝置的資料,應用應能判別資料的合法性,例如被破壞的資料來源,非法的外部資料/命令

3、向外發起的服務請求,要有超時和有限重試設計,外部擾動不導致應用卡死

4、外部發起的攻擊性請求,例如通知,廣播,要有防護設計

三、應用的資源可靠性設計

1、分配的資源必須在確定的地方釋放;

2、使用資源必須有明確的上界,如記憶體,磁碟,檔案,執行緒。

四、優秀的編碼能力

優秀的編碼能力是應用可靠性設計的基礎;

五、完備的測試故障用例

事先考慮到應用內部、外部可能發生的故障,將故障的集合定義出來,針對性的設計故障用例。

App可靠性設計

可靠性是軟體乙個重要的質量屬性,它關注的是軟體功能持續的可用性,以及出現故障之後是否能夠容錯,是否能快速的恢復使用。1 故障應在第一時間被檢測和感知 2 能避免的故障都不應該發生 3 不可避免或無法 的故障,需進行容錯 4 已發生故障,需在最短時間內得到恢復 5 物件狀態和生命期都應該是完備的,閉合...

可靠性測試學習 可靠性測試理解

最近測試可靠性,參考了業界的一些思維,有些想法和建議 先說說軟體可靠性的定義,根據我測試的體會和思考,我覺得軟體的可靠性就是軟體系統發生故障後自動恢復或者人工干預使其能恢復到正常狀態的能力 業界的測試有些把容錯測試和可靠性測試搞混淆,其實兩者不一樣,容錯測試是通過模擬一些可能發生的已知的異常操作而檢...

產品可靠性

產品可靠性 影響產品可靠性的三個方面 1.電應力 2.機械應力 3.環境應力。下面從上述三個方面展開講述。應力 專案 內容 備註電應力 物料 1.pcb 商 2.pcb抽檢 3.元器件選型 元器件選型指導書 4.採購渠道 商資質a b c類 5.儲存 msl 6.領料 原理設計 1.電路方案 2.電...