Blog

[ETL/Data Warehouse Testing Tutorial] – Hướng Dẫn Kiểm Thử Kho Dữ Liệu Qua Ví Dụ | Kiểm Thử ETL

Hướng dẫn này trình bày chi tiết các Mục tiêu & Tầm quan trọng của Kiểm thử Kho dữ liệu, Kiểm thử ETL, những lỗi trong Triển khai DWH và ETL:

Hướng dẫn này sẽ cung cấp cho bạn sự hiểu biết về cách có thể thực hiện Kiểm thử kho dữ liệu trong một tổ chức. Bạn cũng sẽ biết về các mục tiêu của kiểm thử DWH, cách thức và loại kiểm thử có thể được thực hiện ở phần phụ trợ, những người tham gia vào quá trình này, lỗi DWH và triển khai ETL một cách chi tiết.

Đối tượng mục tiêu

  • Nhà phát triển và kiểm thử Data Warehouse / ETL.
  • Các chuyên gia cơ sở dữ liệu với kiến ​​thức cơ bản về các khái niệm cơ sở dữ liệu.
  • Quản trị viên cơ sở dữ liệu / Chuyên gia dữ liệu lớn muốn hiểu khái niệm Kho dữ liệu / ETL.
  • Sinh viên tốt nghiệp đại học / Người làm mới đang tìm việc làm Kho dữ liệu.
Big Data Testing Solutions - Data Warehousing & BI Applications Testing

Kiểm Thử Kho Dữ Liệu (ETL)

Ý nghĩa của việc kiểm thử hệ thống Kho dữ liệu (Data Warehouse) và Hệ thống kinh doanh thông minh (Business Intelligence)  là gì?

Kiểm thử đóng một vai trò quan trọng trong sự thành công của bất kỳ hệ thống nào trong số hai hệ thống trên, bằng cách đảm bảo tính chính xác của dữ liệu, xây dựng niềm tin của người dùng cuối.

Nói chung, một lỗi được tìm thấy ở giai đoạn sau của vòng đời phát triển phần mềm sẽ tốn nhiều chi phí hơn để sửa chữa lỗi đó. Tình hình này trong DWH có thể trở nên tồi tệ hơn vì dữ liệu sai được tìm thấy ở giai đoạn sau có thể đã được sử dụng trong các quyết định kinh doanh quan trọng vào thời điểm đó.

Do đó, việc sửa chữa trong DWH tốn kém hơn về quy trình, con người và thay đổi công nghệ. Bạn có thể bắt đầu kiểm thử DWH ngay từ giai đoạn thu thập yêu cầu.

Một ma trận truy xuất nguồn gốc các requirement(RTM) được thực hiện, và điều này chủ yếu ánh xạ các đặc điểm của DWH với các yêu cầu kinh doanh tương ứng của chúng. Ma trận xác định nguồn gốc đóng vai trò như một đầu vào cho kế hoạch kiểm tra DWH do người kiểm tra chuẩn bị. Kế hoạch thử nghiệm mô tả các thử nghiệm sẽ được thực hiện để xác nhận hệ thống DWH.

Nó cũng mô tả các loại kiểm thử sẽ được thực hiện trên hệ thống. Sau khi kế hoạch kiểm thử đã sẵn sàng, tất cả các trường hợp kiểm thử chi tiết sẽ được chuẩn bị cho các tình huống DWH khác nhau. Sau đó, tất cả các trường hợp kiểm thử sẽ được thực thi và các lỗi sẽ được ghi lại.

Có một tiêu chuẩn trong việc duy trì các môi trường khác nhau: development, testing, và production. Trong việc phát triển DWH, cả nhà phát triển và người thử nghiệm sẽ đảm bảo rằng môi trường phát triển và thử nghiệm có những bản backup của dữ liệu production trước khi bắt đầu công việc.

Các nhà phát triển phát triển code của họ trong môi trường của nhà phát triển và cung cấp nó cho người thử nghiệm.

Người thử nghiệm sẽ kiểm tra code được cấp trong môi trường thử nghiệm để đảm bảo tất cả các hệ thống có hoạt động hay không. Sau đó, code sẽ được chạy trong môi trường production. Duy trì nhiều môi trường và phiên bản mã giúp xây dựng một hệ thống chất lượng tốt.

Mục tiêu của Kiểm tra Kho dữ liệu (ETL)

Hãy cùng xem các Mục tiêu của Kiểm thử Kho dữ liệu.

# 1) Tính đầy đủ của Dữ liệu: Đảm bảo rằng tất cả dữ liệu từ nhiều nguồn khác nhau đều được tải vào Kho Dữ liệu. Nhóm kiểm tra xác nhận nếu tất cả các bản ghi được tải vào từ các dữ liệu nguồn và các tệp Flat theo kịch bản sau.

  • Tổng số bản ghi được tải lên từ hệ thống nguồn phải khớp với tổng số bản ghi được tải vào DWH. Nếu có sự khác biệt thì bạn có thể nghĩ đến những bản ghi bị loại bỏ.
  • So sánh dữ liệu được tải vào từng trường của DWH với các trường dữ liệu của hệ thống nguồn. Điều này sẽ đưa ra các lỗi dữ liệu nếu có.

# 2) Chuyển đổi dữ liệu: Trong khi tải dữ liệu nguồn lên Kho dữ liệu, một số trường có thể được tải trực tiếp từ dữ liệu nguồn nhưng một số trường sẽ được tải với dữ liệu đã được chuyển đổi theo logic nghiệp vụ. Đây là phần phức tạp của thử nghiệm DWH (ETL).

Dưới đây là các kịch bản mẫu để kiểm tra điều này:

  • Bạn có thể kiểm tra bằng cách tạo và so sánh dữ liệu trong bảng tính. Tải dữ liệu được chuyển đổi nguồn và dữ liệu DW vào bảng tính và thực hiện so sánh. Không nên có bất kỳ sự sai lệch nào.
  • Người kiểm tra nên viết các truy vấn theo logic chuyển đổi để so sánh dữ liệu DW với dữ liệu nguồn. Thực thi truy vấn sẽ đảm bảo rằng việc xác thực dữ liệu cho bất kỳ trường nào không bị thiếu.

# 3) Chất lượng Dữ liệu: Hệ thống kho dữ liệu (ETL) phải đảm bảo chất lượng của dữ liệu được tải vào đó bằng cách loại bỏ (hoặc) điều chỉnh lại cho phù hợp.

DWH có thể loại bỏ một số dữ liệu hệ thống nguồn dựa trên logic yêu cầu nghiệp vụ. 

Ví dụ: Loại bỏ một bản ghi nếu một trường có dữ liệu không phải là số. Tất cả các bản ghi bị loại bỏ được tải vào bảng loại bỏ để tham khảo.

Dữ liệu bị loại được báo cáo cho khách hàng vì không thể biết về dữ liệu bị bỏ sót này, vì nó sẽ không được tải vào hệ thống DWH. DWH có thể điều chỉnh lại dữ liệu bằng cách tải số 0 thay cho giá trị null, v.v.

# 4) Khả năng mở rộng và Hiệu suất: Kho dữ liệu phải đảm bảo khả năng mở rộng của hệ thống với lượng tải ngày càng tăng. Với điều này, sẽ không có bất kỳ sự suy giảm nào về hiệu suất trong khi thực hiện các truy vấn. Do đó, kiểm tra hiệu suất phát hiện ra bất kỳ vấn đề nào và khắc phục nó trước khi đưa lên môi trường production.

Dưới đây là các kịch bản mẫu cho Kiểm tra hiệu suất và khả năng mở rộng:

  • Thực hiện kiểm tra hiệu suất bằng cách tải một lượng lớn dữ liệu production và đảm bảo rằng các khung thời gian không bị sai lệch.
  • Xác thực hiệu suất của từng truy vấn với dữ liệu hàng loạt. Kiểm tra hiệu suất bằng cách sử dụng các phép join đơn giản và nhiều phép join với nhau.
  • Tải gấp đôi (hoặc) gấp ba vào khối lượng dữ liệu dự kiến ​​để tính toán dung lượng của hệ thống.
  • Kiểm tra bằng cách chạy các job cho tất cả các báo cáo cùng một lúc.

# 5) Kiểm thử Tích hợp: Kho dữ liệu nên thực hiện Kiểm tra Tích hợp với các ứng dụng upstream và downstream khác. Nếu có thể, tốt hơn là sao chép dữ liệu từ môi trường production  vào môi trường kiểm thử để Kiểm thử tích hợp.

# 6) Kiểm thử đơn vị: Điều này được thực hiện bởi các nhà phát triển cá nhân trên các sản phẩm của họ. Các nhà phát triển sẽ chuẩn bị các kịch bản kiểm thử đơn vị dựa trên sự hiểu biết của họ về các yêu cầu, chạy kiểm thử đơn vị và ghi lại kết quả. Điều này giúp các nhà phát triển sửa bất kỳ lỗi nào nếu được tìm thấy, trước khi gửi mã cho nhóm thử nghiệm.

# 7) Kiểm thử hồi quy: Xác nhận rằng hệ thống DWH không bị trục trặc sau khi sửa bất kỳ lỗi nào. Điều này được thực hiện nhiều lần với mỗi lần thay đổi mã mới.

# 8) Kiểm tra sự chấp nhận của người dùng: Thử nghiệm này được thực hiện bởi người dùng doanh nghiệp để xác nhận chức năng hệ thống. Môi trường UAT khác với môi trường QA. Dấu hiệu tắt từ UAT ngụ ý rằng chúng tôi đã sẵn sàng chuyển code sang production

Từ quan điểm của Kho dữ liệu và hệ thống Business Intelligence, người dùng doanh nghiệp có thể xác thực các báo cáo khác nhau thông qua Giao diện người dùng (UI). Họ có thể xác nhận các thông số kỹ thuật của báo cáo so với các yêu cầu, có thể xác nhận tính đúng đắn của dữ liệu trong báo cáo, có thể xác nhận hệ thống đang trả kết quả nhanh như thế nào, v.v.

Sơ đồ luồng kiểm tra DW:

Data Warehouse Testing Flow Diagram

Trách nhiệm kiểm thử kho dữ liệu

Dưới đây là các nhóm khác nhau tham gia vào việc cung cấp một hệ thống DWH thành công:

  • Nhà phân tích kinh doanh:  Thu thập tất cả các yêu cầu nghiệp vụ cho hệ thống và ghi lại những yêu cầu đó theo sở thích của mọi người.
  • Nhóm Cơ sở hạ tầng: Thiết lập các môi trường khác nhau theo yêu cầu cho cả nhà phát triển và người thử nghiệm.
  • Nhà phát triển: Phát triển mã ETL theo yêu cầu và thực hiện các bài kiểm tra đơn vị.
  • QA (Quality Assurance) / Người kiểm thử: Xây dựng kế hoạch kiểm thử, các trường hợp kiểm thử, v.v. Xác định các khiếm khuyết trong hệ thống bằng cách thực hiện các trường hợp kiểm thử. Thực hiện các cấp độ thử nghiệm khác nhau.
  • DBA: Các DBA chịu trách nhiệm chuyển đổi các kịch bản cơ sở dữ liệu ETL logic thành các kịch bản cơ sở dữ liệu ETL vật lý và cũng liên quan đến việc kiểm tra hiệu suất.
  • Người dùng Doanh nghiệp: Tham gia vào Kiểm tra sự chấp nhận của Người dùng, chạy các truy vấn và báo cáo trên bảng DW.

Lỗi trong Kho dữ liệu

Khi bạn đang trích xuất, chuyển đổi và tải (ETL) dữ liệu từ nhiều nguồn, rất có thể bạn sẽ nhận được dữ liệu không tốt có thể hủy bỏ các job đang hoạt động.

Sau đây là những nguyên nhân chính gây ra lỗi trong hệ thống DWH:

# 1) Vi phạm Business Rule (Lỗi logic): Dữ liệu sai về mặt logic vi phạm các business Rule. Dữ liệu như vậy có thể được xử lý hầu hết trong giai đoạn chuyển đổi hoặc tải.

# 2) Vi phạm Data Rule (Lỗi Dữ liệu): Lỗi dữ liệu xảy ra bên trong hệ thống cơ sở dữ liệu DWH như không khớp kiểu dữ liệu, lỗi ràng buộc dữ liệu, v.v.

Triển khai ETL

Đây là giai đoạn mà mọi nỗ lực của bạn đều đã đã đạt kết quả tốt. Tất cả các tài liệu hỗ trợ  cần được chuẩn bị.

Tài liệu sẽ cho những người khác biết về trình tự các công việc cần chạy, các kịch bản khôi phục lỗi, tài liệu đào tạo cho nhóm hỗ trợ DWH để giám sát hệ thống sau khi triển khai và cho nhóm hỗ trợ quản trị để thực hiện các báo cáo.

Kết Luận

Chúng ta đã tìm hiểu chi tiết về Mục tiêu của Kiểm thử Kho dữ liệu, Kiểm thử ETL, các lỗi trong Triển khai DWH và ETL trong hướng dẫn này.

Chúng tôi hy vọng bạn đã biết cách kiểm tra chi tiết trong Hệ thống Kho dữ liệu (ETL).

    Xin vui lòng điền vào form dưới đây. Chúng tôi sẽ liên hệ lại ngay cho bạn khi nhận được thông tin:


    Leave a Reply

    Your email address will not be published. Required fields are marked *