(松勤軟件測試訊)在軟件測試過程中,經常會遇到一些異常的場景,我們需要檢測軟件是否能正確處理,不出現崩潰、閃退等嚴重情況。而這些場景在正常的測試中較少遇到,因此需要模擬這些場景,以確保軟件在異常條件下自身具有防護性的措施或者某種災難性恢復的手段。所做的這些測試,就是容錯性測試!


容錯性測試,簡單概括就是對于各種異常輸入,軟件都能正常響應。下面松勤程老師給大家介紹幾種需要考慮容錯的測試場景:

場景一:生成請求內容


客戶端發送請求前,會攜帶一系列的參數生成請求,這些參數有可能來源于數據庫,系統(通過調用系統API獲?。?,緩存等。在獲取這些參數的時候,我們要考慮如果參數獲取失敗的情況下,客戶端是否會出現異常。
常用的模擬方法:
1、將緩存清空;
2、將數據庫對應的參數字段清空或者設置為異常;
3、將應用的所有權限禁止掉。
操作實例:
測試目的:讀取參數信息時,讀取出來的信息為空或者異常,客戶端均不能出現嚴重的現象,即崩潰或者閃退。
具體操作:
①當我們在測試某條請求時,先明白該請求的各個參數來源(此時可以請教開發),若是來源于數據庫,那么此時下載一個數據庫操作軟件,用該軟件打開參數的存放地址,然后將參數值修改為空或者異常數據,然后再次觸發請求,查看客戶端是否出現異常。
②若是來源于緩存,我們可以進入到系統設置頁面或者第三方軟件,清除當前應用的數據緩存信息,然后再次啟動應用,觸發請求,查看客戶端是否出現異常。

場景二:存放數據庫


客戶端在接收到數據之后,如果涉及到存放數據庫的操作,我們要考慮獲取到的數據格式,數據類型與客戶端定義的不一致的情況下,客戶端是否會出現異常。
常用的模擬方法:
1、對客戶端接收到數據,將數據類型修改為與客戶端不一致的數據類型;
2、對客戶端接收的數據格式做異常處理,使得返回的數據格式不正確。
操作實例:
測試目的:客戶端將與數據庫不兼容的數據存放到數據庫中時,要么做數據兼容處理,要么直接丟掉,不能出現客戶端崩潰閃退等現象。
具體操作:當我們在測試某個邏輯時,接收到返回的數據信息時,先明白客戶端數據存儲的邏輯,若此時定義的某個字段為布爾型,那么我們就可以修改返回的數據信息中該字段為非布爾型,然后返回給客戶端,查看客戶端的反應。 

 

場景三:讀取數據庫


客戶端在處理某些邏輯時,涉及到數據的讀寫,將讀取出現來的數據展現在頁面內,如果涉及到數據庫數據的讀取,我們要考慮當數據庫數據讀取失敗的情況下,客戶端是否出現異常。
常用的模擬辦法:
1、將數據庫對應的字段設置為空或者異常數據;
2、將應用的所有權限禁止掉。
操作實例:
測試目的:客戶端從數據庫讀取到異常數據時,客戶端要確保不會出現閃退崩潰等現象。
具體操作:當我們在測試某個頁面時,頁面的內容來源于數據庫,那么此時我們可以下載一個數據庫操作軟件,用該軟件打開數據信息的存放地址,然后將數據信息修改為空或者異常數據,再次刷新頁面,查看頁面的顯示是否正常。

場景四:處理服務端數據返回


首先強調一點,這里說的服務端數據返回,指的是客戶端獲取到服務端數據之后直接展現,沒有數據庫操作等行為,這種情況下,我們要考慮當服務端返回的數據信息異常時,客戶端在解析數據展現時是否會出現異常。
常用的模擬辦法:
1、修改服務端返回的數據類型和格式為異常信息或者為空。
操作實例:
測試目的:客戶端接收到服務端返回的異常數據之后,要確保在展現時不出現閃退崩潰等現象。
具體操作:當我們在測試某個邏輯時,接收到服務端的數據信息時,直接修改返回的數據信息,將數據格式設置錯誤或者將數據類型做修改,然后返回給客戶端,查看客戶端的響應情況。

 

場景五:接收第三方接口或者SDK數據


在app的實現邏輯中,很多情況下會調用第三方的接口或者SDK,雖然我們無法直接測試第三方接口或者SDK內部的實現邏輯,但是我們要考慮當第三方接口或者SDK返回異常信息時,客戶端是否出現異常。
常用的模擬方法:
1、請開發同學強制修改第三方接口或者SDK的返回結果,結果可以設置為空,或者異常。(也可以借助mock、Fiddler等工具模擬,具體用法可以參考部落中對應文章)


特例:合理對待空數據
容錯測試中,我們經常會模擬空數據,以便驗證客戶端對空數據的處理情況,但是這里要注意的是,客戶端處理空數據無非兩種,處理或者不處理。如果涉及到邏輯狀態時,不能處理,如果涉及到特定的配置文件替換,則可以處理。
舉個例子:
客戶端在某種狀態下要彈一個對話窗,而對話窗是否彈出依靠數據庫中的一個狀態值。當服務端突然返回空數據時,我們要確??蛻舳瞬蛔鎏幚?,即不替換數據庫數據,否則,空數據會替換本地數據庫狀態數據,導致彈窗會一直彈出,影響用戶體驗。
若本地策略要動態調整生效性,尤其是某些邏輯的云端開關,有時為了產品方便操作,配置為空數據或者關閉開關均可以屏蔽邏輯的生效性。不過此時要具體情況具體分析。


總之:
容錯測試為考驗產品對于異常輸入的自我規避或者保護的處理,我們一方面要測試這種場景,但是更要注意的是,這種場景之后,如果下發的正常的數據,能否正常的恢復正常的產品運行,更是容錯測試的一個重要方面!

程老師這兒有免費的軟測0基礎課程,學習資料無償分享,回復暗號“資料”即可領取。

@松勤教育丨以工匠精神,專注IT在線教育(m.thefreeasianporn.com