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%以上。但是由於單元測試的工作量比較大,剛開始不可能對全部**進行單元測試,所以可以考慮先用黑盒測試,借助**覆蓋率工具,找出黑盒測試沒有覆蓋到的**或模組(有可能某些**屬於冗餘或者死**),然後對這部分**進行單元測試,這樣可以最大限度地提高覆蓋率,更好地保證**質量。
《騰訊iOS測試實踐》一一1 2 工程效率
總體來說,工程效率就是研發效率 包含測試效率 這裡我們會把測試效率單獨提出來進行說明,因為這是與測試工程師相關度最大的工作。研發效率,其實就是讓產品上線的時間更快 在品質有保障的前提下 大多數時候是說與研發流程相關的 不侷限於敏捷流程,feature team研發模型 例如包含但不侷限於以下活動。需...
《騰訊iOS測試實踐》一一1 6 資料反推
1.6.1 測試過程中的資料 測試資料反推 充分利用各類測試資料的優化流程,進一步保障產品的質量。在各階段的測試過程中會產生大量資料,例如bug資料 測試通過率 回歸通過率等。那麼如何充分利用這些資料呢?前面已對已知bug以及未知bug進行了討論。現在換個角度,從bug產生的階段來分析,圖1 12是...
《騰訊iOS測試實踐》一一1 3 品質管理
圖1 4 瀏覽器品質體系 部分 關於產品品質的衡量,不少公司還是以bug來衡量的,下面先重點介紹bug維度。引用elisabeth hendrickson在文章 better testing worse quality?中的圖來說明 質量 的相關概念,如圖1 5所示。圖1 5 bug分析模型 圖1 ...