ETL測試簡介


在將資料移動到生產資料倉庫系統之前完成ETL測試。它也稱為表平衡或產品協調。ETL測試與資料庫測試的範圍和測試期間遵循的步驟不同。ETL測試是為了確保轉換後從源載入到目標的資料是準確的。它涉及在源和目的地之間使用的各個階段的資料驗證。

ETL測試簡介

1. ETL測試的過程

與其他測試過程一樣,ETL測試也經歷了一些測試過程。

ETL測試的過程

ETL測試分五個階段進行,如下:

  • ETL測試可識別資料源和要求。
  • 資料恢復
  • 實現維度建模和業務邏輯。
  • 構建和填充資料
  • 構建報告

1. ETL測試的型別

ETL測試的型別是:

1. 新資料倉庫測試:它是從核心構建和驗證的。在此測試中,輸入取自客戶的要求和不同的資料源。但是,新的資料倉庫是在ETL工具的幫助下構建和驗證的。

以下是不同使用者群體的責任:

  • 業務分析師:業務分析師收集並記錄需求。
  • 基礎設施人員:這些人建立了測試環境。
  • QA測試人員:QA測試人員開發測試計劃和測試指令碼,然後執行這些測試計劃和指令碼。
  • 開發人員:開發人員為每個模組執行單元測試。
  • 資料庫管理員:資料庫管理員測試效能和壓力。
  • 使用者:使用者進行功能測試,包括UAT(使用者驗收測試)。

2. 生產驗證測試:當資料移動到生產系統時,對資料進行此測試。Informatica資料驗證選項提供ETL測試和管理功能的自動化,以確保資料不會危及生產系統。
3. 目標測試源(驗證):完成此類測試以驗證轉換了預期資料值的資料值。
4. 應用程式升級:自動生成此類ETL測試,從而節省測試開發時間。此類測試檢查從較舊的應用程式中提取的資料與新應用程式中的資料完全相同。
5. 後設資料測試:後設資料測試包括測量資料型別,資料長度和檢查索引/約束。
6. 資料準確性測試:完成此測試是為了確保資料按預期準確載入和轉換。
7. 資料轉換測試:在許多情況下完成資料轉換測試。通過編寫一個源SQL查詢並將輸出與目標進行比較無法實現。需要為每一行執行多個SQL查詢以驗證轉換規則。
8. 資料品質測試:資料品質測試包括語法和參考測試。為避免在業務流程期間由於日期或訂單號而導致的任何錯誤,資料品質已完成。語法測試:它將根據無效字元,字元模式,不正確的大寫或小寫順序等報告臟資料。參考測試:它將根據資料模型檢查資料。例如,客戶ID資料品質測試包括數位檢查,日期檢查,精確檢查,日期檢查等。

  • 設計和驗證測試
  • 設定測試環境
  • 執行驗證測試
  • 報告錯誤

12. 更改請求:在這種情況下,資料已新增到現有資料倉庫。可能存在客戶需要更改當前業務規則的情況,或者他們可以整合新規則。
13. 報告測試:資料倉庫的最終結果,報告測試。應通過驗證報告中的資料和布局來測試。報告是建立重要業務決策的重要資源。

2. ETL測試執行的任務

ETL測試涉及的任務是:

  • 了解資料,用於報告
  • 資料模型審查
  • 將源對映到目標
  • 檢查源資料中的資料
  • 驗證包和模式
  • 在目標系統中,應該進行資料驗證
  • 驗證聚合規則和資料轉換計算
  • 目標系統和資料源之間的資料比較
  • 對於目標系統,應檢查品質和資料完整性。
  • 資料的效能測試。

3. ETL和資料庫測試的區別

ETL和資料庫測試涉及資料驗證,但兩者都不相同。ETL測試通常對資料倉庫中的資料執行,而資料庫測試則在事務系統上執行。資料從不同的應用程式進入事務資料庫。

3.1. 在ETL測試中執行的操作

ETL測試涉及以下操作:

  • 驗證從源到目標系統的資料移動。
  • 源系統和目標系統中的資料計數驗證。
  • ETL測試根據要求和期望驗證轉換,提取。
  • ETL測試驗證表關係是否在轉換期間是否連線並且金鑰是保留者。

在資料庫測試中執行的操作

資料庫測試側重於資料準確性,資料的正確性和有效值。
資料庫測試執行以下操作:

  • 資料庫測試側重於驗證具有有效資料值的表中的列。
  • 要驗證是否維護主鍵或外來鍵,請使用資料庫測試。
  • 資料庫測試驗證列中是否缺少資料。在這裡,檢查列中是否有任何空值應具有有效值。
  • 我們驗證列中資料的準確性。

例如,月份數列的值不應大於12。

ETL和資料庫測試的區別如下:

功能/專案 ETL測試 資料庫測試
首要目標 執行ETL測試以進行BI報告的資料提取,轉換和載入。 執行資料庫測試以驗證和整合資料。
業務需求 ETL測試用於資訊,預測和分析報告。 資料庫測試用於整合來自多個應用程式和伺服器影響的資料。
適用系統 ETL測試包含無法在業務流環境中使用的歷史資料。 資料庫測試包含業務流程所在的事務系統。
建模 使用多維方法。 使用ER方法
資料庫型別 ETL測試適用於OLAP系統。 資料庫測試用於OLTP系統。
資料型別 ETL使用具有較少連線,更多索引和聚合的反規範化資料。 資料庫使用帶連線的規範化資料。
常用工具 使用QuerySurge,Informatica等工具。 QTP,Selenium工具用於資料庫測試。

4. ETL效能測試

ETL效能測試用於確保ETL系統是否可以處理多個使用者和事務的預期負載。效能測試涉及ETL系統上的伺服器端工作負載。

如何執行ETL測試效能?

以下是測試ETL測試效能的以下步驟:

第1步:找出生產中轉化的負荷。
第2步:將建立相同負載的新資料或將其從生產資料移動到本地伺服器。
第3步:禁用ETL,直到生成所需的程式碼。
第4步:從資料庫表中計算所需的資料。
第5步:記下ETL的最後一次執行並啟用ETL。它將獲得足夠的壓力來轉換已建立並執行它的整個負載。
第6步:完成ETL後,計算建立的資料。

應注意的基本表現:

  • 找出轉換負載所需的總時間
  • 找出已改進或刪除的效能。
  • 檢查是否提取並轉移了整個預期負載。

5. ETL測試的資料準確性

在ETL測試中,我們專注於資料準確性,以確保資料是否按照我們的預期準確載入到目標系統。
以下是執行資料準確性應遵循的步驟:

值比較:在值比較中,將源系統和目標系統中的資料與最小或無轉換進行比較。可以使用各種ETL工具進行ETL測試。例如,Informatica中的源限定符轉換。
表示式轉換也可以在資料準確性測試中執行。可以在SQL語句中使用一組運算子來檢查源和目標系統中的資料準確性。
檢查關鍵資料列:可以通過比較源系統和目標系統中的不同值來檢查關鍵資料列。

SELECT cust_name, order_id, city, count(*)  FROM customer GROUP BY cust_name, order_id, city;

6. 資料轉換中的ETL測試

執行資料轉換非常複雜,因為無法通過編寫單個SQL查詢並將輸出與目標進行比較來實現。要對資料轉換進行ETL測試,我們必須為每一行編寫多個SQL查詢以驗證轉換規則。

要為資料轉換執行成功的ETL測試,需要從源系統中選擇足夠的樣本資料以應用轉換規則。

執行ETL測試以進行資料轉換的重要步驟是:

第1步: 第一步是為輸入資料和預期結果建立方案。現在我們將與業務客戶驗證ETL測試。ETL測試是在設計期間收集需求的最佳方法,可用作測試的一部分。
第2步:第二步是根據場景建立測試資料。ETL開發人員將使用場景電子試算表自動化填充資料集的整個過程,以便在情況發生變化時提供多功能性和行動性。
第3步:利用資料分析,結果將比較源和目標資料之間每個欄位中的值的範圍和提交。
第4步:將驗證ETL生成欄位的準確處理。例如,代理鍵。
第5步:將驗證倉庫中與資料模型或設計中指定的資料型別相同的資料型別。
第6步:將在測試參照完整性的表之間建立資料的場景。
第7步:將驗證資料中的父對子關係。
第8步:最後,我們將執行查詢轉換。查詢查詢應該是直接的,沒有任何資料收集,並且預期根據源表只返回一個值。我們可以直接在源限定符中加入查詢表。如果不是這種情況,我們將編寫一個查詢,它將查詢表與源表中的主表連線,並將比較目標中相應列中的資料。

7. ETL測試用例

ETL測試的目的是確保業務轉換後從源到目標的載入資料是準確的。
ETL測試適用於資訊管理行業中的不同工具和資料庫。
在ETL測試效能期間,ETL測試程式始終使用的兩個文件是:

1. ETL對映表:ETL對映表包含源表和目標表的所有資訊,包括每個列及其在參照表中的查詢。ETL測試程式需要熟悉SQL查詢,因為ETL測試可能涉及編寫具有多個聯接的大查詢以在ETL的任何階段驗證資料。在編寫資料驗證查詢時,ETL對映表提供了重要幫助。
2. 源(目標)的DB模式:應該可以存取它以驗證對映表中的任何細節。

7.1. ETL測試場景和測試用例

ETL測試場景 測試用例
對映文件驗證 將驗證對映文件是否提供了ETL資訊,紀錄檔更改應保留在每個對映文件中。
驗證 1.將使用相應的對映文件驗證目標和源表結構。2.源表和目標表的資料型別應該相同。3.源和目標的資料型別的長度應該相同。4.我們將驗證資料欄位型別和指定的格式。4.源資料型別的長度不應小於目標資料型別的長度。
約束驗證 應根據使用者的期望為特定表定義約束。
資料一致性問題 1.資料型別和特定屬性的長度可以通過語意定義在檔案或表中變化。2.完整性約束的濫用。
完整性問題 1.在這裡,必須確保將所有預期的資料載入到目標表中。2.在源和目標之間比較記錄計數。3.將檢查被拒絕的記錄。4.不應在截斷表的列中截斷資料。5.檢查邊界值分析。6.將比較倉庫中載入的資料和源資料之間關鍵欄位的唯一值。
正確性問題 1.此方案用於更正拼寫錯誤或不準確記錄的資料。2.要更正資料,則為null,非唯一且超出範圍。
轉型/轉換 此方案用於檢查轉換。
資料品質 1.此方案用於檢查數位並驗證它。2.資料檢查:此方案將遵循日期格式,並且對於所有記錄應該相同。3.精確檢查。4.資料檢查。5. null檢查
Null驗證 此方案將驗證null值,其中為特定列指定not null值。
重複檢查 1.檢查唯一鍵,主鍵和任何其他列的驗證,根據具有任何重複行的業務需求,該列應該是唯一的。2.檢查從多個列源中提取的任何列中是否存在任何重複值,並將它們組合成一列。3.根據用戶端要求,需要確保在僅具有目標的多個列的組合中沒有重複項。
日期驗證 1.使用開發中的許多區域來了解行建立日期。2.根據ETL開發視角識別現有記錄。3.有時在日期值上,會生成更新和插入。
資料清潔度 在載入到臨時區域之前,應刪除不必要的列。

7.2. ETL錯誤的型別

ETL錯誤的類型

ETL錯誤的型別 描述
使用者介面錯誤 這些錯誤與應用程式的圖形化使用者介面有關,例如顏色,字型樣式,導航,拼寫檢查等。
輸入/輸出錯誤 在這種型別的錯誤中,應用程式開始使用無效值,並且拒絕有效值。
邊界值分析錯誤 這些錯誤檢查最小值和最大值。
計算錯誤 計算錯誤顯示數學錯誤,大多數時候最終輸出錯誤。
載入條件錯誤 這些型別的錯誤不允許多個使用者。它不允許使用者接受的資料。
競爭條件錯誤 在這種錯誤中,系統將無法正常執行。它開始崩潰或掛起。
等價類分割區錯誤 此類錯誤會導致無效或無效的型別。
版本控制錯誤 這些型別的錯誤通常出現在回歸測試中,並且不提供有關版本的任何資訊。
硬體錯誤 在這種型別的錯誤中,裝置不會按預期響應應用程式。
幫助源錯誤 這個錯誤將導致幫助文件中的錯誤。

8. ETL測試員的責任

ETL測試人員負責驗證資料源,應用轉換邏輯,並在目標表中載入資料,提取資料。

ETL測試人員的職責是:

  • 驗證源系統中的表。它涉及以下型別的操作:

    • 計數檢查
    • 資料型別檢查
    • 將記錄與源資料協調
    • 確保未載入垃圾郵件資料
    • 刪除重複資料
    • 檢查所有金鑰是否到位
  • 應用轉換邏輯。在載入資料之前應用轉換邏輯。它涉及以下操作:

    • 在檢查計數記錄之前和之後應用轉換邏輯。
    • 驗證從暫存區到中間表的資料流。
    • 檢查資料閾值驗證; 例如,年齡值不應超過100。
    • 檢查代理鍵
  • 資料載入。資料從暫存區域載入到目標系統。它涉及以下操作:

    • 檢查實際表中是否載入了聚合值和計算度量。
    • 在載入資料期間,我們將根據目標表檢查建模檢視。
    • 如果CDC已應用於增量載入表,我們將檢查。
    • 檢查資料維度表並檢視錶的歷史記錄。
    • 根據預期結果檢查基於載入的事實和維度表的BI報告。

9. ETL工具的測試

ETL測試人員也需要測試測試用例和工具。它涉及以下操作:

  • 測試ETL工具及其功能
  • 測試ETL資料倉庫系統
  • 建立,設計和執行測試用例和測試計劃
  • 測試平面檔案資料傳輸

10. ETL測試的優點

ETL測試的好處/優點如下:

  • ETL測試可以同時從任何資料源提取或接收資料。
  • ETL可以同時將來自異構源的資料載入到單個通用(頻繁)不同目標。
  • ETL可以同時載入不同型別的目標。
  • ETL能夠從各種來源提取所需的業務資料,並且可能需要將業務資料作為所需格式載入到不同的目標中。
  • ETL可以根據業務執行任何資料轉換。

11. ETL測試的缺點

ETL測試的缺點如下:

  • ETL測試的主要缺點之一是:必須是面向資料的開發人員或資料庫分析師才能使用它。
  • 當需要快速響應時,它不適合實時或按需存取。
  • ETL測試需要幾個月的時間才能放到任何地方。
  • 將資料保持在不斷變化的要求中具有挑戰性。

ETL測試人員也需要測試測試用例和工具。它涉及以下操作:

  • 測試ETL工具及其功能
  • 測試ETL資料倉庫系統
  • 建立,設計和執行測試用例和測試計劃
  • 測試平面檔案資料傳輸