Import và Export CSV (Phần 2)
Ở bài viết trước, tôi đã giưới thiệu về những testcase thường có khi test chức năng Import file CSV. Ở bài viết này, tôi giới thiệu về những testcase thường có khi test chức năng export file CSV Link phần import CSV: https://viblo.asia/p/import-va-export-csv-phan-1-YWOZrMXPKQ0 B. XUẤT DỮ LIỆU RA ...
Ở bài viết trước, tôi đã giưới thiệu về những testcase thường có khi test chức năng Import file CSV. Ở bài viết này, tôi giới thiệu về những testcase thường có khi test chức năng export file CSV Link phần import CSV: https://viblo.asia/p/import-va-export-csv-phan-1-YWOZrMXPKQ0
B. XUẤT DỮ LIỆU RA FILE CSV
Khi gặp một chức năng “Xuất dữ liệu ra file CSV”, chúng ta phải tìm hiểu kỹ mục đích của yêu cầu, xác định cần phải test những gì, để đưa vào testcase. Chúng ta cần đi qua các bước phân tích như sau:
1. Trước tiên là bước tìm hiểu, phân tích tài liệu dựa vào yêu cầu đưa ra.
a. Yêu cầu về file CSV:
+ Cấu trúc file:
- Dòng tiêu đề
- Mỗi bản ghi có bao nhiêu cột
- Số dòng tối thiểu của file
- Số dòng tối đa của file
- Có tồn tài dòng trống không
+ Dữ liệu trên file: Với mỗi trường, điều kiệu dữ liệu sẽ như thế nào:
- Trường bắt buộc, trường không không bắt buộc
- Kiểu dữ liệu trên mỗi trường
- Format của từng trường
- Giới hạn nhỏ nhất của trường
- Giới hạn lớn nhất của trường
- Ký tự cho phép, ký tự cấm …..
- Các biến đổi dữ liệu đặc biệt nếu có
b. Xác nhận thống nhất giữa Database và file CSV
Căn cứ vào Cấu trúc bảng trong Database, và file CSV
- Các trường tương ứng trong DB-CSV có đầy đủ không?
- Với từng trường tương ứng, kiểu dữ liệu có thống nhất
- Dữ liệu từng trường trên DB có vượt max trường trên file CSV không?
2. Thực hiện Out file CSV
Thực hiện validation cho tất cả các trường tuỳ theo yêu cầu (hoặc không yêu cầu) để đảm bảo thực thi đúng, dữ liệu lấy ra chính xác cụ thể:
- Không có bản ghi nào
- Dữ liệu trên DB không hợp lệ ( Với trường hợp DB bị sửa bằng tay)
- Với mỗi bản ghi đưa lên file CSV: ' Thiếu trường ' Thừa trường ' Trường để blank (đối với trường bắt buộc) ' Trường để blank (đối với trường không bắt buộc) ' Số ký tự nhỏ hơn giới hạn nhỏ nhất của trường ' Số ký tự lớn hơn giới hạn lớn nhất của trường ' Dữ liệu của trường sai định dạng ' Dữ liệu của trường không được phép… ' Dữ liệu hợp lệ
VÍ DỤ BÀI TOÁN CỤ THỂ
Có bài toán như sau: Export dữ liệu mua hàng của khách ra file CSV để lưu trữ Giải đáp: Với yêu cầu trên, và cấu trúc dữ liệu trên Database, phân tích yêu cầu, phân tích cấu trúc dữ liệu trên bảng, file CSV Dựa vào Table trên Database xem xét:
- Khoá của bảng
- Kiểu dữ liệu trên từng trường
- Max của từng trường
Dựa vào yêu cầu file CSV, cần xác nhận lại xem:
- Số cột trên CSV có thống nhất với DB không?
- Maxlength của DB có vượt quá max của cột trên CSV không
- Có trường nào bất đồng kiểu dữ liệu với DB không
- Các trường có xử lý đặc biệt
- Các trường cần tính toán
Sau khi đã có đầy đủ thông tin xác nhận về DataBase và file CSV, chúng ta có tóm tắt Cấu trúc Table và file CSV như sau:
-
Cấu trúc Bảng
-
Cấu trúc file CSV và file CSVmẫu
-
Màn hình export CSV
1. TestCase check việc input dữ liệu trên màn hình
Test Case | Test Item | Trình tự thực hiện | Kết quả mong muốn |
---|---|---|---|
TC_001 | Start Date | - Start Date, End Date để trống (Blank) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “Start Date không được để trống” |
TC_002 | Start Date | - Start Date: Nhập vào ký tự chữ cái (VD: a…Z) - End Date: Nhập hợp lệ (VD: 20/07/2017) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “Start Date chỉ được nhập ký tự số 1 byte” |
TC_003 | Start Date | - Start Date: Nhập vào ký tự đặc biệt (VD: @##…) - End Date: Nhập hợp lệ (VD: 20/07/2017) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “Start Date chỉ được nhập ký tự số 1 byte” |
TC_004 | Start Date | - Start Date: Nhập vào ký tự 2 byte (VD: 対) - End Date: Nhập hợp lệ (VD: 20/07/2017) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “Start Date chỉ được nhập ký tự số 1 byte” |
TC_005 | Start Date | - Start Date: Nhập vào không đủ 8 ký tự số (VD: 20) - End Date: Nhập hợp lệ (VD: 20/07/2017) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “Start Date không hợp lệ” |
TC_006 | Start Date | - Start Date: Nhập vào không đủ 8 ký tự số (VD: 20/01) - End Date: Nhập hợp lệ (VD: 20/07/2017) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “Start Date không hợp lệ” |
TC_007 | Start Date | - Start Date: Nhập vào không đủ 8 ký tự số (VD: 07/18) - End Date: Nhập hợp lệ (VD: 20/07/2017) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “Start Date không hợp lệ” |
TC_008 | Start Date | - Start Date: Nhập vào không đủ 8 ký tự số (VD: 18/07/201) - End Date: Nhập hợp lệ (VD: 20/07/2017) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “Start Date không hợp lệ” |
TC_009 | Start Date | - Start Date: Nhập vào ngày lớn hơn ngày hiện tại - End Date: Nhập hợp lệ - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “Start Date không hợp lệ” |
TC_010 | Start Date | - Start Date: Nhập hợp lệ - Click vào button “Export CSV” |
- Không hiển thị thông báo lỗi cho Start Date |
TC_011 | Start Date | - Click button Date (bên cạnh textbox Start Date) - Chọn ngày bắt đầu |
- Ngày được chọn hiển thị trên textbox Start Date |
TC_012 | End Date | - Start Date: Nhập hợp lệ (Vd: 18/07/2017) - End Date để trống (Blank) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “End Date không được để trống” |
TC_013 | End Date | - Start Date: Nhập hợp lệ (Vd: 18/07/2017) - End Date: Nhập vào ký tự chữ cái (VD: a…Z) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “End Date chỉ được nhập ký tự số 1 byte” |
TC_014 | End Date | - Start Date: Nhập hợp lệ (Vd: 18/07/2017) - End Date: Nhập vào ký tự đặc biệt (VD: @##…) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “End Date chỉ được nhập ký tự số 1 byte” |
TC_015 | End Date | - Start Date: Nhập hợp lệ (Vd: 18/07/2017) - End Date: Nhập vào ký tự 2 byte (VD: 対) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “End Date chỉ được nhập ký tự số 1 byte” |
TC_016 | End Date | - Start Date: Nhập hợp lệ (Vd: 18/07/2017) - End Date: Nhập vào không đủ 8 ký tự số (VD: 20) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “End Date không hợp lệ” |
TC_017 | End Date | - Start Date: Nhập hợp lệ (Vd: 18/07/2017) - End Date: Nhập vào không đủ 8 ký tự số (VD: 20/01) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “End Date không hợp lệ” |
TC_018 | End Date | - Start Date: Nhập hợp lệ (Vd: 18/07/2017) - End Date: Nhập vào không đủ 8 ký tự số (VD: 07/18) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “End Date không hợp lệ” |
TC_019 | End Date | - Start Date: Nhập hợp lệ (Vd: 18/07/2017) - End Date: Nhập vào không đủ 8 ký tự số (VD: 18/07/201) - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “End Date không hợp lệ” |
TC_020 | End Date | - Start Date: Nhập hợp lệ - End Date: Nhập vào ngày lớn hơn ngày hiện tại - Click vào button “Export CSV” |
- Hiển thị thông báo lỗi: “End Date không hợp lệ” |
TC_021 | End Date | - Start Date: Nhập hợp lệ - End Date: Nhập hợp lệ - Click vào button “Export CSV” |
- Không hiển thị thông báo lỗi cho End Date |
TC_022 | End Date | - Click button Date (bên cạnh textbox End Date) - Chọn ngày kết thúc |
- Ngày được chọn hiển thị trên textbox End Date |
TC_023 | Start Date End Date |
- Nhập ngày Start Date lớn hơn End Date | - Hiển thị thông báo lỗi: “Hãy nhập ngày Start Date nhỏ hơn ngày End Date” |
2. TestCase check dữ liệu export lên file CSV
Test Case | Test Item | Trình tự thực hiện | Kết quả mong muốn |
---|---|---|---|
TC_001 | Button “Export CSV” | - Start Date: Nhập hợp lệ - End Date: Nhập hợp lệ - Click vào button “Export CSV” |
- Out file CSV tại thư mục setting |
TC_002 | File CSV | - Ngày được chọn không có dữ liệu | - File CSV chỉ có dòng tiêu đề |
TC_003 | File CSV | - Ngày được chọn có 1 bản ghi dữ liệu | - File CSV gồm: + Dòng tiêu đề + 1 dòng dữ liệu |
TC_004 | UserID | - Check UserID trên file CSV | - UserID lấy đúng dữ liệu trên DB |
TC_005 | Full Name | - FullName trên bảng UserInfomation của DB có độ dài dữ liệu <40 ký tự - Check “Full Name” trên file CSV |
- Full Name lấy đúng, đủ dữ liệu trường FullName trên bảng UserInfomation |
TC_006 | Full Name | - FullName trên bảng UserInfomation của DB có độ dài dữ liệu =40 ký tự - Check “Full Name” trên file CSV |
- Full Name lấy đúng, đủ dữ liệu trường FullName trên bảng UserInfomation |
TC_007 | Full Name | - FullName trên bảng UserInfomation của DB có độ dài dữ liệu > 40 ký tự - Check “Full Name” trên file CSV |
- Full Name chỉ lấy lấy 40 ký tự đầu của trường FullName trên bảng UserInfomation |
TC_008 | Gender | - Gender trên bảng UserInfomation của DB = 0 - Check “Gender” trên file CSV |
- Gender lấy lên file CSV có giá trị: Male |
TC_009 | Gender | - Gender trên bảng UserInfomation của DB = 1 - Check “Gender” trên file CSV |
- Gender lấy lên file CSV có giá trị: Female |
TC_010 | Phone Number | - Check PhoneNumber trên file CSV | - Phone Number lấy đúng dữ liệu trên DB |
TC_011 | - Check Email trên file CSV | - Email lấy đúng dữ liệu trên DB | |
TC_012 | Address | - Address trên bảng UserInfomation của DB có độ dài dữ liệu <100 ký tự - Check Address trên file CSV |
- Address lấy lên file CSV đúng, đủ giống trên DB |
TC_013 | Address | - Address trên bảng UserInfomation của DB có độ dài dữ liệu =100 ký tự - Check Address trên file CSV |
- Address lấy lên file CSV đúng, đủ giống trên DB |
TC_014 | Address | - Address trên bảng UserInfomation của DB có độ dài dữ liệu >100 ký tự - Check Address trên file CSV |
- Address lấy lên file CSV chỉ bao gồm 100 ký tự đầu |
TC_015 | Product ID | - Check Product ID trên file CSV | - Product ID lấy đúng dữ liệu trên bảng Product của DB |
TC_016 | Product Name | - ProductName trên bảng Product của DB có độ dài dữ liệu <30 ký tự - Check Product Name trên file CSV |
- Product Name lấy lên file CSV đúng, đủ giống trên DB |
TC_017 | Product Name | - ProductName trên bảng Product của DB có độ dài dữ liệu =30 ký tự - Check Product Name trên file CSV |
- Product Name lấy lên file CSV đúng, đủ giống trên DB |
TC_018 | Product Name | - ProductName trên bảng Product của DB có độ dài dữ liệu >30 ký tự - Check Product Name trên file CSV |
- Product Name lấy lên file CSV chỉ bao gồm 30 ký tự đầu |
TC_019 | Provider | - Provider trên bảng Product của DB có độ dài dữ liệu <50 ký tự - Check Provider trên file CSV |
- Provider lấy lên file CSV đúng, đủ giống trên DB |
TC_020 | Provider | - Provider trên bảng Product của DB có độ dài dữ liệu =50 ký tự - Check Provider trên file CSV |
- Provider lấy lên file CSV đúng, đủ giống trên DB |
TC_021 | Provider | - Provider trên bảng Product của DB có độ dài dữ liệu >50 ký tự - Check Provider trên file CSV |
- Provider lấy lên file CSV chỉ bao gồm 50 ký tự đầu |
TC_022 | Provider Address | - ProviderAddress trên bảng Product của DB có độ dài dữ liệu <50 ký tự - Check Provider Address trên file CSV |
- Provider Address lấy lên file CSV đúng, đủ giống trên DB |
TC_023 | Provider Address | - ProviderAddress trên bảng Product của DB có độ dài dữ liệu =50 ký tự - Check Provider Address trên file CSV |
- Provider Address lấy lên file CSV đúng, đủ giống trên DB |
TC_024 | Provider Address | - ProviderAddress trên bảng Product của DB có độ dài dữ liệu >50 ký tự - Check Provider Address trên file CSV |
- Provider Address lấy lên file CSV chỉ bao gồm 50 ký tự đầu |
TC_025 | Date Deal | - Check Date Deal trên file CSV | - Date Deal lấy ngày tại trường CreatedDate của bảng “Bill OF Sale” |
TC_026 | Quantity | - Check Quantity trên file CSV | - Quantity lấy đúng giá trị tại trường Quantity của bảng “Bill OF Sale” |
TC_026 | Price | - Check Price trên file CSV | - Price lấy đúng giá trị tại trường Price của bảng “Bill OF Sale” |
TC_026 | Total Price | - Check Total Price trên file CSV | - Total Price = Quantity * Price |
Trên đây là những case cơ bản liên quan đến việc test chức năng Export file CSV. Tuy nhiên còn phụ thuộc vào từng yêu cầu cụ thể mà ta có thêm những case khác. Rất mong nhận được sự góp ý của mọi người.