軟體測試 - 可行路徑
軟體測試透過黑盒測試、白盒測試和灰盒測試方法進行。黑盒測試側重於驗證從各種輸入資料集中獲得的輸出,而白盒測試則驗證原始碼、演算法、邏輯和資料流。它還測試程式碼的語句、決策、條件和路徑。最後,灰盒測試透過結合黑盒測試和白盒測試流程的功能來工作。
什麼是軟體的可行路徑?
可行路徑是可以執行的路徑,前提是有可用的輸入資料的邏輯組合,迫使程式選擇該特定路徑。程式程式碼包含多個路徑。在測試開始時,目標是至少執行和驗證所有路徑一次。但可以看出,其中一些路徑是不可行的,任何資料集都無法執行。
軟體可行路徑分析
白盒測試過程用於評估軟體程式碼的可行路徑。白盒測試用例是藉助程式碼生成的,以滿足以下驗證:
語句覆蓋率 (Statement Coverage)
在此驗證中,主要焦點是至少觸及程式原始碼中的所有語句和節點一次。它有助於識別程式碼中錯誤的部分。
分支覆蓋率 (Branch Coverage)
在此驗證中,主要焦點是至少觸及程式原始碼中所有決策點的所有分支一次。
條件覆蓋率 (Condition Coverage)
在此驗證中,主要焦點是觸及程式原始碼中的每個條件。
多條件覆蓋率 (Multiple Conditions Coverage)
在此驗證中,主要焦點是至少觸及程式原始碼中條件可能結果的所有組合一次。
路徑覆蓋率 (Path Coverage)
在此驗證中,首先建立控制流圖,然後測量程式程式碼的圈複雜度。它識別可以從程式原始碼中每個獨立路徑設計的最小測試數量。
迴圈測試 (Loop Testing)
在此驗證中,主要焦點是觸及所有迴圈,以識別其開頭和結尾處的問題。
軟體的不可行路徑
不可行路徑是不可能被任何輸入組合執行和驗證的路徑。每個原始碼都包含多個路徑。一開始,每個路徑的目標都是執行和測試。但在某些情況下,觀察到一些路徑是不可行的,因此根本無法遍歷。這些被稱為不可行路徑。
軟體不可行路徑的缺點
軟體不可行路徑的缺點如下:
- 軟體不可行路徑導致測試人員浪費時間、精力和金錢。
- 軟體不可行路徑使自動化效率低下。
- 軟體不可行路徑在白盒測試時會帶來很多問題。
軟體可行路徑和不可行路徑示例
讓我們以以下程式碼片段為例,來確定軟體的不可行路徑和可行路徑。
- 下單,金額為特定金額。
- 如果訂單金額少於五百盧比。
- 則不給予折扣。
- 否則給予25%的折扣。
- 如果訂單金額大於一千盧比。
- 則給予35%的折扣。
- 結束
透過評估上述程式碼段及其控制流圖,我們可以推斷路徑1 → 2 → 3 → 5 → 6 → 7 指向不可行路徑,因為不可能執行節點或語句6。但是,路徑1 → 2 → 4 → 5 → 6 → 7和1 → 2 → 4 → 5 → 7都是準確且可行的。
結論
本教程對軟體可行路徑的全面講解到此結束。我們從描述什麼是軟體的可行路徑、軟體可行路徑的分析、什麼是軟體的不可行路徑、軟體不可行路徑的缺點以及軟體可行路徑和不可行路徑的示例開始。這使您能夠深入瞭解軟體可行路徑。明智的做法是繼續練習您所學的內容,並探索與軟體測試相關的其他內容,以加深您的理解並拓寬您的視野。