對測試點分類後,測試建模之流程類測試設計

步驟1. 通過繪製業務流程圖來建模

由於每個流程類測試點都可以代表一個流程或者一些流程片段,所以可以從整體分析這些測試點,並繪製出這些測試點代表的流程圖。

需要特別注意的地方如下:

1)測試者要充分理解和測試點相關的功能業務流程,以確保流程圖的正確性。

2)測試者要和產品設計者充分交流,保證繪出的流程圖能夠正確覆蓋產品的設計。

3)如果開發已經提供了該功能的流程圖,測試者需要仔細審視流程圖的正確性,如有必要應重新繪製。

以“PC連接WiFi”爲例,前面已經分析出測試點1~測試點4爲流程類測試點。

現在爲測試點1~測試點4繪製業務流程圖,並建立測試模型。

步驟2. 路徑分析法

繪製好流程圖後,要用“路徑分析法”來覆蓋這個流程圖,即獲得測試條件和測試數據進而設計並生成測試用例。

所謂“路徑”完成一個功能時用戶所執行的步驟,也是程序代碼的一條運行軌跡。

所謂“路徑分析法”指對能夠覆蓋流程的各種路徑進行分析並得到一個路徑的集合。在測試時,只需要按照這個路徑集合進行測試。

不同的覆蓋策略,能夠得到不同的路徑集合。常見的覆蓋策略有語句覆蓋、分支覆蓋、最小線性無關覆蓋和全覆蓋

爲了便於後續敘述問題,對組成流程的元素進行定義如表。

1)語句覆蓋

語句覆蓋是指覆蓋系統中所有判定和過程的最小路徑的集合

仔細分析語句覆蓋的路徑,就會發現語句覆蓋的程度是比較弱的,它不會考慮流程中的判定以及這些判定與過程之間的關係。如果測試只按照語句覆蓋的方式來進行,很容易出現遺漏。

2)分支覆蓋

分支覆蓋指覆蓋系統中每個判定的所有分支所需的最小路徑數。

如圖60,滿足分支覆蓋的路徑集合和語句覆蓋的路徑集合是一樣的。路徑1覆蓋的是所有判定結果爲“真”的情況,路徑2覆蓋的是所有判定結果爲“假”的情況。分支覆蓋考慮了流程中的判定,但是也沒有考慮這些判定之間的關係。分支覆蓋的覆蓋度也較弱。

3)全覆蓋

全覆蓋指100%覆蓋系統所有可能路徑的集合。

如圖60,根據排列組合算法可知,它的“全路徑”一共有2×2×2=8條。

全覆蓋包含了所有可能的路徑,覆蓋能力最強,但是除非你測試的是一個微型的系統,不然隨着判定數量的增加,呈指數類型增長的路徑數會使需要測試的路徑數非常龐大,這完全超出了一個測試團隊能夠承擔的正常工作量。所以在實際工作中很難按全覆蓋來執行測試。

4)最小線性無關覆蓋

仔細分析全覆蓋就會發現,全覆蓋的路徑中有很多會被重複執行的片段。希望能有這樣的一種覆蓋方式,在保證流程圖中每個路徑片段都能夠被至少執行一次的情況下,得到的路徑組合是最少的,這就是最小線性無關覆蓋

步驟3.使用路徑分析來確定測試條件和測試數據

可以根據被測對象的優先級、測試階段來選擇合適的覆蓋策略,例如在單元測試階段,可以使用語句覆蓋或分支覆蓋來設計測試用例;在集成測試和系統測試階段,使用最小線性無關覆蓋;對系統中一些特別重要的部分,可以適當使用全覆蓋的策略。

在這些覆蓋方式中,因最小線性無關覆蓋得到的測試路徑數量適宜,覆蓋度也有保證,故推薦大家在測試設計中優先選用。

以“PC連接WiFi”中的測試點1~測試點4爲例,介紹使用最小線性無關覆蓋方式確定測試條件和測試數據,以得到測試用例的過程。

圖58流程圖,有兩個輸出,需要將這個流程圖拆成兩個子流程圖,保證每個子流程圖均只有一個輸入和一個輸出。

拆出子流程58-1,它包含的“邊”數爲9,“節點”數爲8,“判定”數爲2(注意,“備選WiFi是否可用”和“連接是否成功”這兩個判定,在子流程1中只有一個輸出,不屬於判定。)“區域”數爲2。該子流程包含的最小線性無關路徑數爲3。

使用最小線性無關覆蓋算法,對子流程1進行最小線性無關覆蓋,會得到3種路徑。

綜上所述分析過程,得到子流程1中的最小線性無關路徑的集合。

拆出子流程2,它包含的“邊”數爲7,“節點”數爲7,“判定”數爲1(注意,“首選WiFi是否可用”“是否加密”和“連接是否成功”這3個判定,在子流程2中均只有一個輸出,不屬於判定),“區域”數爲1。因此子流程2包含的最小線性無關路徑數爲2。

使用最小線性無關覆蓋算法,對子流程2進行最小線性無關覆蓋,得到子流程2中的最小線性無關路徑的集合。

最後,將子流程1和子流程2中包含的最小線性無關路徑集合在一起,就得到了系統整體的最小線性無關路徑組合。

步驟4.確定測試數據

接下來要爲測試路徑選擇一些測試數據(即輸入),使得測試路徑能夠都被執行到。

如果流程的輸入是一些參數,那我們確定可以覆蓋路徑的參數值即可。如果輸入是一個數據(取值範圍),就使用等價類/邊界值的方式來確定一個數值即可。

以“PC連接WiFi”中的測試點1~測試點4確定好的最小線性無關路徑集合確定測試數據。

對路徑1:加密方式爲“WPA”(根據測試點5選擇)。

對路徑2:加密方式爲“WPA”(根據測試點5選擇)。

對路徑3:無參數。

對路徑4:無參數。

對路徑5:無參數。

將測試條件和測試用例整合起來,這樣就完成了通過最小線性無關路徑法爲測試點1~測試點4設計測試用例。

步驟5.根據經驗補充測試路徑

只要不是使用全覆蓋策略,其他的路徑覆蓋方式都是有遺漏的。這就需要根據經驗,再補充一些測試路徑,具體包括:

·是否要增加一些其他需要覆蓋的路徑?

·是否要增加一些其他測試數據?

·有哪些地方是容易出問題的?是否還需要補充一些測試用例?


摘取自劉琛梅老師的《測試架構師修煉之道:從測試工程師到測試架構師 第2版》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章