資料驅動測試
資料驅動測試是測試方法,其中測試的輸入和輸出值會與程式碼分開。 這種型式原則通常表示讓測試程式碼更泛型的小型投資,只允許藉由識別涉及的資料來撰寫大量的測試案例。
資料驅動測試非常適合用於一組可定義其行為的輸入值測試區域,例如,測試 API 時,輸入和輸出參數可以定義為數據源,而測試程式碼會取用資料、進行 API 呼叫並驗證結果。
TAEF 中的資料驅動測試支援
TAEF 提供各種撰寫資料驅動測試的選項。 讓我們瞭解這些選項,讓您可以選擇最適合測試案例的選項。
資料表型資料驅動測試 解決方案可讓您更精細地控制資料參數變化,以及定義參數類型。 在此情況下,DataSource 是 XML 檔案中定義的資料表。 您可以指定參數類型 (int、unsigned int、size_t、bool、double、DWORD、__int64等和其同質陣列 variant) ,或將類型預設為 WEX::Common::String (原生) 或字串 (Managed) 。 資料表中的每個資料列都是參數值的一組變化。 系統會針對資料表中的每個 Row 重新叫用測試方法。 以下是 XML DataSource 的程式碼片段,用於資料表型資料驅動測試:
1 <?xml version="1.0"?>
2 <Data>
3 <Table Id ="Table1">
4 <ParameterTypes>
5 <ParameterType Name="Size">Int32</ParameterType>
6 <ParameterType Name="Color">String</ParameterType>
7 </ParameterTypes>
8 <Row>
9 <Parameter Name="Size">12</Parameter>
10 <Parameter Name="Color">Blue</Parameter>
11 </Row>
12 <Row>
13 <Parameter Name="Size">4</Parameter>
14 <Parameter Name="Color">White</Parameter>
15 </Row>
16 <Row>
17 <Parameter Name="Size">9</Parameter>
18 <Parameter Name="Color">Black</Parameter>
19 </Row>
20 </Table>
21 </Data>
若要深入瞭解: 資料表型資料驅動測試。
輕量型資料驅動測試支援不提供資料表型資料驅動測試解決方案所提供的完整精確度。 為了厘清:輕量資料驅動測試會將資料參數限制為 WEX::Common::String (原生) 或 String (Managed) ,如同資料表型資料驅動測試解決方案所支援的各種類型。 但是,如果您要尋找低成本且快速的資料變化, (假設有一或兩個參數) 來建立測試方法資料驅動,並且新增 XML 檔案,因為 DataSource 似乎不值得問題,輕量型資料驅動測試可能確實是您想要的。 其中一個絕佳的範例是撰寫 API 單元測試的開發人員,例如 OpenThemeData (...) ,並想要針對 「Button」、「Listbox」 和 「ScrollBar」 驗證 API。 建立此專案的 XML DataSource 檔案可能太多,但使用輕量型資料驅動測試支援,這可以在原始程式碼本身有效率地完成。 如果指定多個參數,TAEF 會在幕後產生參數的 n 向組合式擴充,並針對每個組合叫用測試方法。 若要深入瞭解: 輕量型資料驅動測試。
輕量型資料驅動測試所提供的 N 向組合式擴充,可能會耗費大量成本,並提供降低的傳回,因為測試案例變得更複雜。 在這類複雜的測試案例中, PICT 型資料驅動測試 解決方案所提供的配對獨立撰寫測試 (PICT) ,可能是您要尋找的專案。 PICT 藉由產生一組精簡的參數結果來取得參數的完整涵蓋範圍,以提供許多價值。 深入瞭解 PICT 的連結,以及如何在 PICT 型資料驅動測試 解決方案上使用此解決方案。
使用 WMI 型資料驅動測試 支援,您也可以在測試中新增前置條件,並根據測試電腦上可用的資源取得 (資料) 資訊。 例如,如果您想要只在電腦已加入網域時執行測試,而且在執行測試時也需要功能變數名稱資訊。 在此情況下,DataSource 是 WQL 查詢。 深入瞭解如何在測試案例中運用 WMI 型資料驅動測試 。
請注意上述所有選項,您可能也會提出一個設計,其中上述選項的組合可能很適合。 例如,您可能想要使用 WMI 查詢來取得連接到測試機器之所有印表機的相關資訊,但可能有另一組參數,這些參數可以使用資料表型資料驅動測試建構預先定義。 如果您想要測試的資料來自兩個不同的資料表,因此讓每個資料表可以重複使用其他測試,則多個 DataSource規格可能很有用。 閱讀如何指定測試的多個 DataSource 以及執行此動作時套用哪些條件約束的詳細資料: 指定多個資料來源