Tiếp nối phần 1 viết về các thuật ngữ cơ bản cần biết về ETL testing thì hôm nay sẽ nói sâu hơn về quy trình và cách tạo test cases để test ETL như thế nào.
Tại sao phải thực hiện test ETL?
ETL Testing (Extract, Transform, Load) là quá trình đảm bảo rằng dữ liệu được tải từ các nguồn đến các điểm đích sau khi chuyển đổi dữ liệu là chính xác. Và ETL testing cũng liên quan đến việc xác minh dữ liệu tại các giai đoạn đang được sử dụng ở giữa nguồn và đích.
Quy trình thực hiện test ETL
ETL testing được thực hiện trong 5 giai đoạn:
- Xác định yêu cầu và các nguồn dữ liệu
- Thu thập dữ liệu
- Triển khai logic nghiệp vụ và mô hình hóa kích thước
- Xây dựng và lấy dữ liệu
- Xây dựng báo cáo
Tạo test cases test ETL
Trong khi thực hiện kiểm thử ETL, có 2 tài liệu luôn được 1 Tester ETL sử dụng đó là:
1. Sơ đồ DB của nguồn và đích:
Cần được note rõ ràng cẩn thận để xác minh bất kỳ chi tiết nào trong các bảng ánh xạ
2. Bảng ánh xạ ETL:
Bảng ánh xạ ETL chứa tất cả thông tin các bảng nguồn và đích gồm mỗi cột và các tra cứu tương ứng. Nó giúp tester viết các câu truy vấn để xác minh dữ liệu. Tester ETL cần phải biết và hiểu rõ các truy vấn SQL. Test ETL có thể phải viết các câu truy vấn lớn với nhiều bảng để xác thực dữ liệu ở bất kỳ giai đoạn nào của ETL.
Testplan và test cases để thực hiện test ETL
Test plan | Test cases |
---|---|
Xác minh tài liệu ánh xạ | Xác minh tài liệu ánh xạ xem liệu thông tin ETL tương ứng có được cung cấp hay không. Thay đổi Log nên duy trì trong mọi tài liệu ánh xạ. |
Xác minh ràng buộc | Đảm bảo các ràng buộc được xác định cho bảng cụ thể là chính xác và đúng như mong muốn. |
Nhất quán dữ liệu | Kiểu dữ liệu và độ dài cho một thuộc tính cụ thể có thể khác nhau trong các tệp hoặc bảng mặc dù định nghĩa ngữ nghĩa là giống nhau. |
Xác nhận cấu trúc dữ liệu | Xác nhận cấu trúc bảng nguồn và đích dựa trên tài liệu ánh xạ tương ứng. Loại dữ liệu nguồn và dữ liệu đích nên giống nhau, độ dài của các loại phải bằng nhau,… Xác thực tên của các cột trong bảng dựa trên tài liệu ánh xạ. |
Các vấn đề về tính đầy đủ | 1. Đảm bảo rằng tất cả các dữ liệu mong đợi được tải vào bảng đích. 2. So sánh số lượng bản ghi giữa nguồn và đích. 3. Kiểm tra các bản ghi bất kỳ bị bỏ đi. 4. Kiểm tra dữ liệu không nên bị rút ngắn trong cột của các bảng mục tiêu. 5. Kiểm tra phân tích giá trị biên. 6. So sánh các giá trị duy nhất của các trường khóa giữa dữ liệu được tải vào WH và dữ liệu nguồn. |
Xác thực dữ liệu hoàn chỉnh | 1. Để xác thực tập dữ liệu hoàn chỉnh trong các bảng nguồn và đích trừ đi một truy vấn trong một giải pháp tốt nhất. 2. Cần lấy dữ liệu nguồn trừ dữ liệu đích và ngược lại. Nếu câu truy vấn trừ trả về bất kỳ giá trị nào thì những giá trị này nên được xem là các hàng không khớp. 3. Cần khớp các hàng giữa dữ liệu nguồn và đích sử dụng câu lệnh giao nhau. 4. Số lượng được trả về từ các câu lệnh giao nhau nên khớp với số lượng đơn lẻ của các bảng dữ liệu nguồn và đích. 5. Nếu câu truy vấn trừ trả về các hàng và số lượng đếm được từ câu lệnh giao nhau nhỏ hơn số lượng số lượng của bảng nguồn hoặc đích thì chúng ta có thể coi như có các hàng trùng lặp. |
Tính đúng đắn của dữ liệu | 1. Dữ liệu mà bị sai chính tả hoặc ghi không chính xác. 2. Dữ liệu null, không duy nhất hoặc ngoài phạm vi. |
Chất lượng dữ liệu | 1. Kiểm tra số liệu: Các con số cần kiểm tra và xác nhận. 2. Kiểm tra ngày tháng: Dữ liệu phải tuân theo định dạng ngày tháng và nó cần phải giống nhau ở tất cả. 3. Kiểm tra độ chính xác. 4. Kiểm tra dữ liệu. 5. Kiểm tra null |
Kiểm tra trùng lặp | 1. Cần xác thực khóa chính và cột bất kỳ nên là duy nhất theo yêu cầu nghiệp vụ đang có bất kỳ hàng trùng lặp nào. 2. Kiểm tra nếu bất kỳ giá trị nào trùng lặp tồn tại trong bất kỳ cột nào mà đang trích xuất từ nhiều cột ở dữ liệu nguồn và kết hợp chúng lại thành 1 cột. 3. Theo yêu cầu của khách hàng, cần đảm bảo rằng không có sự trùng lặp kết hợp nhiều cột trong mục tiêu. 4. Theo yêu cầu khách hàng, cần đảm bảo rằng không có giá trị trùng trong sự kết hợp của nhiều cột mục tiêu duy nhất. |
Độ sạch của dữ liệu | Các cột không cần thiết nên được xóa trước khi tải vào khu vực trung gian để tránh làm tốn bộ lưu trữ dẫn đến thời gian thực hiện quy trình xử lý lâu hơn và không cần thiết. |