天天看點

《騰訊iOS測試實踐》一一1.4 測試分析

本節書摘來自華章計算機《騰訊ios測試實踐》一書中的第1章,第1.4節,作者:丁如敏 王琳 等著

  更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

1.4.1 黑盒測試分析

“黑盒測試是軟體測試的主要方法之一,也可以稱為功能測試、資料驅動測試或基于規格說明的測試。測試者無須了解程式的内部情況,無須掌握應用程式的代碼、内部結構和程式設計語言的知識,隻要知道程式的輸入、輸出和系統的功能即可。這是從使用者的角度針對軟體界面、功能及外部結構進行測試,而不考慮程式内部邏輯結構。”這段關于黑盒測試的定義參考自維基百科。

黑盒測試也是應用最廣的方法之一,不少公司都是以黑盒測試為主。那麼黑盒測試有什麼不足呢?我們先看看《微軟的軟體測試之道》對黑盒測試的分析,如圖1-9所示。

圖1-9中的a代表黑盒測試的沒覆寫部分,b代表黑盒測試的備援部分,c代表黑盒測試的有效部分。

從業界的統計資料來看,有效測試部分的百分比範圍為35%~65%。從圖1-9來看,要提升有效測試部分比例,就要把右邊的圓(b+c)往左移動,盡可能使兩個圓重合面積(c)增大。可以看出優化測試政策有兩個方向:一是增加有效測試,二是減少備援測試或者無效測試。

1.增加有效測試

增加有效測試的方法有兩種:一是加強相關評審,二是應用業界的測試方法或者測試模組化思想。

加強相關評審是從源頭的需求抓起,加強對需求的評審,多從使用者角度思考相關可用性及可能場景等。測試用例設計的評審,以及加強對産品開發等角色用例的評審。

應用業界的測試方法或者測試模組化思想(詳細方法參考第3章的内容),需要在測試用例設計的時候盡可能地覆寫更多功能,這就需要大家充分利用業界各種先進的測試模型來設計測試用例,這樣可以更科學、更高效地擴大有效測試範圍。如果有條件的話,可以通過閱讀開發代碼來梳理相關邏輯,這樣用例設計的覆寫面會更全。

2.減少備援測試

減少備援測試可以通過減少無效用例或者低成效的用例、優化精簡測試用例等方式進行。

減少無效用例或者低成效的用例,詳細方法可以參考1.6節的資料反推。根據用例子產品化劃分,對bug根據子產品(tapd上相應的子產品選項)進行分類,統計每個子產品出現bug的個數,如果多次執行後bug個數少的子產品,優先級就降低。如果用戶端架構穩定後,對于後續新功能沒有涉及的這些子產品,則可以考慮不執行相關用例。後續在每次內建測試後,測試結果都必須儲存,統計經常出現bug的相關用例,優化和增加相關測試用例,并且同步到各個平台。

優化精簡測試用例,可以借助代碼覆寫率作為标準,執行原來的用例和精簡優化後的用例,如果兩者的代碼覆寫率差不多,那就達到目的了。通過代碼覆寫率測試,還可以找出沒有執行過的備援代碼,這樣可以減少安裝包的大小。借助精準測試方法,通過精準測試系統,分析測試用例以及代碼映射關系,可以進一步确定測試用例的覆寫情況。這樣就可以選擇适當的測試用例保證合理的覆寫度。詳細的原理方法可以參見第10章。

1.4.2 白盒測試分析

上文提到的優化測試政策都是從黑盒的角度進行分析的,因為黑盒測試有局限性,測試有效代碼覆寫率隻有35%~65%,那麼如何保證黑盒測試沒有測試到的部分代碼的穩定性和可靠性,就需要進行白盒測試。業界通常采用的是單元測試。通過合适的單元測試,可以讓代碼覆寫率達到75%以上。但是由于單元測試的工作量比較大,剛開始不可能對全部代碼進行單元測試,是以可以考慮先用黑盒測試,借助代碼覆寫率工具,找出黑盒測試沒有覆寫到的代碼或子產品(有可能某些代碼屬于備援或者死代碼),然後對這部分代碼進行單元測試,這樣可以最大限度地提高覆寫率,更好地保證代碼品質。

繼續閱讀