熟悉測試理論的人都知道,路徑覆蓋是白盒測試中一種很重要的方法,廣泛應用於單元測試。那么基於路徑覆蓋的分析方法是不是只能應用於單元測試呢,能不能將其推而廣之呢。一般而言,在單元測試中,路徑就是指函數代碼的某個分支,而實際上如果我們將軟件系統的某個流程也看成路徑的話,我們將可以嘗試着用路徑分析的方法來設計測試用例。采用路徑分析的方法設計測試用例有兩點好處:一是降低了測試用例設計的難度,只要搞清了各種流程,就可以設計出高質量的測試用例來,而不用太多測試方面的經驗;二是在測試時間較緊的情況下,可以有的放矢的選擇測試用例,而不用完全根據經驗來取舍。下面就具體的介紹一下如何用路徑分析的方法編寫測試用例。
首先是將系統運行過程中所涉及到的各種流程圖表化,可以先從最基本的流程入手,將流程抽象成為不同功能的順序執行。在最基本流程的基礎上再去考慮次要或者異常的流程,這樣將各種流程逐漸細化,這樣既可以逐漸加深對流程的理解,還可以將各個看似孤立的流程關聯起來。完成所有流程的圖表化后就完成了所有路徑的設定。
找出了所有的路徑,下面的工作就是給每條路徑設定優先級,這樣在測試時就可以先測優先級高的,再測優先級低的,在時間緊迫的情況下甚至可以考慮忽略一些低優先級的路徑。優先級根據兩個原則來選取:一是路徑使用的頻率,使用越頻繁的優先級越高;二是路徑的重要程度,如果失敗對系統影響越大的優先級越高。將根據兩個原則所分別得到的優先級相加就得到了整個路徑的優先級。根據優先級的排序就可以更有針對性的進行測試。
為每條路徑設定好優先級后,接下來的工作就是為每條路徑選取測試數據,構造測試用例。一條路徑可以對應多個測試用例,在選取測試數據時,可以充分利用邊界值選取等方法,通過表格將各種測試數據的輸入輸出對應起來,這樣就完成了測試用例的設計。
對於測試人員而言,測試用例的設計是一件非常困難的工作,而同時測試用例的設計好壞又直接關系到整個系統的設計質量。本文介紹了一種更理論化的設計方法來盡量簡化這種工作,將一般應用於單元測試的路徑分析方法推廣到集成測試、系統測試等后續測試過程中,希望能給大家一點啟示。我會將自己嘗試過的一些感受以及具體例子跟在本貼之后。
如果想讓本方法很好的用在實際的工作中,那么流程就必須明確的規范的(就是有畫出相應業務或者功能走向圖),這樣就可以極大的加快了用例編寫的速度和質量,但是如果碰到沒有明確流程圖的時候,可能會花不少的時間去捉摸功能點的流程走向問題,這又讓工作進度慢了下來(流程不明確是因為需求沒有明確表述和設計沒有相應流程描述),所以在實際工作中想使用這種方法來加快和改進測試用例的進度和質量,還要說服項目組盡可能的規范需求和設計的文檔規范性,畢竟軟件質量的控制不是我們一組人就能做到的。
拿到這個流程時,第一眼看上去,是不是有點暈暈的呢,確實如此,因為這不能稱為標准的流程圖,我們需要做一些改進,不妨事先約定,畫流程圖時,在有判定條件處,就往下走,而就往左走,以下是簡化后的流程:
上面這個流程圖看上去是不是清晰很多,確實如此,從心理學的角度來講,正常人的思維是很難接受一個橫向很復雜的事物。而且上面的流程圖也更規范一點,所以建議大家以后這樣畫流程圖。下圖是作進一步的改進:這個流程圖是不是更方便你設計用例呢,尤其是用路徑分析法,是不是很方便就能找出其中的路徑。
這個流程圖是不是更方便你設計用例呢!尤其是用路徑分析法,是不是很方便就能找出其中的路徑。