12/08/2018, 15:49

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 Email - 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.

0