QUAN ĐIỂM TEST ĐỐI VỚI CHỨC NĂNG IMPORT/UPLOAD CSV

0
45
Rate this post

Khi cần nhập hoặc đăng ký thông tin từ một hệ thống vào hệ thống khác, việc làm thủ công có thể mất rất nhiều thời gian và có thể dẫn đến sai sót. Để giải quyết vấn đề này, chúng ta cần có các chức năng import/upload hoặc chạy batch tự động để nhập liệu hoặc liên kết dữ liệu từ hệ thống này sang hệ thống khác.

Tuy nhiên, để đảm bảo chức năng hoạt động chính xác, cần thực hiện công đoạn kiểm thử và mỗi khách hàng đòi hỏi xử lý khác nhau. Trong bài viết này, chúng ta sẽ giới thiệu về các quan điểm test cần phân tích để thực hiện kiểm thử chức năng import dữ liệu từ file CSV vào hệ thống (hoặc cơ sở dữ liệu).

I. Các quan điểm cần phân tích đối với chức năng upload/import file CSV

Trong quá trình phát triển phần mềm, việc phân tích spec sớm nhằm hiểu rõ yêu cầu và các trường hợp test là rất quan trọng. Dựa trên spec, khi phân tích, chúng ta cần:

  • Xác định input và output.
  • Xác định các vấn đề không rõ ràng, mâu thuẫn trong spec và chia sẻ với bộ phận phát triển sớm để triển khai từ đầu.

Đối với chức năng Import CSV, chúng ta sẽ phân tích theo các bước sau:

tester

Chia nhỏ quy trình này để phân tích: CSV –> Read (Kiểm tra tệp và nội dung) –> Submit –> Database (gọi tắt là DB)

1. Các quan điểm test liên quan đến việc kiểm tra đầu vào file CSV

  • Tồn tại/tồn tại không.
  • Quy định đặt tên file: file có tên đúng/sai.
  • Giới hạn dung lượng file import.

2. Các quan điểm test liên quan đến nội dung file CSV

  • Yêu cầu về nội dung trong file CSV:
    • Template của file CSV có tiêu đề hay không?
    • Mỗi bản ghi dữ liệu có bao nhiêu trường và được phân cách nhau bằng ký tự gì?
    • Quy định về cách lưu trữ bản ghi dữ liệu. Ví dụ:
      • Mỗi dòng là một bản ghi dữ liệu.
      • Tất cả các bản ghi là một dòng và được phân cách nhau bằng ký tự được quy định.
    • Xử lý tệp null như thế nào?
    • Xử lý tệp CSV không đúng template (thiếu hoặc dư thông tin) như thế nào?

Các quan điểm test đối với từng trường cụ thể trong file CSV

Tùy thuộc vào yêu cầu của từng spec, quan điểm test đối với từng trường cụ thể có thể khác nhau. Tuy nhiên, có những quan điểm chung cần phân tích, ví dụ:

quan diem test 2

quan diem test 3

  • Tính bắt buộc/không bắt buộc.
  • Kiểu dữ liệu, định dạng, độ dài tối thiểu/tối đa.
  • Kiểm tra tính thống nhất giữa mô tả trường trong CSV và định nghĩa trường trong DB để đảm bảo tính chính xác và không mâu thuẫn, xung đột.
    • Kiểm tra kiểu dữ liệu.
    • Kiểm tra ràng buộc null/không null.
    • Kiểm tra trường trong CSV nhưng không có trong DB.
    • Kiểm tra trường không có trong CSV nhưng có trong DB.

Vì sao phải phân tích tính thống nhất? Hãy xem hai ví dụ sau để hiểu rõ hơn:

Ví dụ 1: Trường giá của sản phẩm trong [CSV import item] được mô tả là số có 10 chữ số. Tuy nhiên, trong [Database Design], kiểu [int(8) unsigned] chỉ cho phép giá trị từ 0 đến 4,294,967,295. Nếu trường giá trong file CSV có 10 chữ số (9,000,000,000), việc nhập dữ liệu vào cơ sở dữ liệu sẽ gặp lỗi vì vượt quá giới hạn 0 đến 4,294,967,295.

Picture4

Ví dụ 2: Trường giá trong file CSV cho phép giá trị null, nhưng trong [Database Design] lại định nghĩa trường giá không được null. Cần xác định xử lý khi giá trị null được nhập từ file CSV. Ví dụ: khi giá trị null được nhập, có thể đăng ký giá trị 0 vào cơ sở dữ liệu.

  • Phân tích logic xử lý từng trường:
    • Dữ liệu mới thêm: dữ liệu nào được coi là dữ liệu mới thêm (ví dụ: product_id trong file CSV không tồn tại trong bảng…).
    • Dữ liệu cập nhật: dữ liệu nào được coi là dữ liệu cập nhật (ví dụ: product_id trong file CSV có tồn tại trong bảng…).
    • Dữ liệu xóa: dữ liệu nào được coi là dữ liệu xóa (ví dụ: product_id không tồn tại trong file CSV nhưng tồn tại trong bảng).

3. Các quan điểm test liên quan đến xử lý khi Submit dữ liệu

  • Submit với dữ liệu bình thường:

    • Tệp chỉ chứa các bản ghi dữ liệu mới.
    • Tệp chỉ chứa các bản ghi dữ liệu cập nhật.
    • Tệp chỉ chứa các bản ghi dữ liệu xóa.
    • Tệp chứa cả ba loại dữ liệu trên.
  • Submit với dữ liệu lỗi và dữ liệu bình thường được trộn lẫn:

    • Xử lý lỗi dừng lại nếu một trường bị lỗi hoặc tiếp tục xử lý trường tiếp theo.
    • Xử lý tệp chứa bản ghi lỗi và bản ghi bình thường theo mong muốn của khách hàng: bỏ qua bản ghi lỗi, đăng ký bản ghi bình thường và dừng lại, hoặc đăng ký bản ghi bình thường và dừng lại khi gặp bản ghi lỗi.
  • Submit với số lượng bản ghi lớn (ví dụ: 10,000 bản ghi).

  • Xử lý lỗi khi gặp sự cố về mạng hoặc thiết bị trong quá trình import.

Kết luận

Mặc dù chủ đề này không mới, hi vọng bài viết này mang lại giá trị cho mọi người. Cảm ơn bạn đã đọc bài viết và chúng tôi mong nhận được đóng góp và chia sẻ từ mọi người để làm phong phú hơn chủ đề này.

Phần tiếp theo, chúng tôi sẽ giới thiệu tiếp về 2 nội dung sau:

  • Định nghĩa testcase đối với các quan điểm đã phân tích.
  • Cách test với dữ liệu lớn.

HỢI TT, CO-WELL Asia


Đọc thêm các bài viết thú vị từ CO-WELL Asia tại Dnulib.

Cập nhật các thông tin hữu ích về kiểm thử phần mềm tại Dnulib.