Chia sẻ kinh nghiệm test Batch processing

QA/QC Feb 19, 2021

Định nghĩa về Batch processing

Xử lý hàng loạt (Batch processing) là việc thực hiện hàng loạt công việc trong một chương trình trên máy tính mà không có sự can thiệp thủ công (không tương tác). Nói đúng ra, nó là một chế độ xử lý: thực hiện một loạt các chương trình mỗi ngày một bộ hay "mẻ" đầu vào, chứ không phải là một đầu vào duy nhất (mà thay vào đó sẽ là một công việc tùy chỉnh). Tuy nhiên, sự khác biệt này đã phần lớn bị mất, và hàng loạt các bước trong một quá trình hàng loạt thường được gọi là một "batch" hoặc "batch job".

Nguồn: https://vi.wikipedia.org/wiki/Batch

Test Batch processing như thế nào

Batch là một chức năng chạy ngầm trong hệ thống nên bạn sẽ không thể thao tác trên màn hình giống như enduser được. Nên bạn sẽ cần phải có kiến thức về SQL và kết hợp với bạn developer support kỹ thuật.

Bước 1: setup môi trường

Do không có button trên màn hình nên không thể thao tác bình thường để gọi chức năng Batch được, vậy nên chúng ta phải có cách khác để gọi. Mình hay dùng 2 cách dưới, mọi người có thể tham khảo nhé.

Cách 1: Nhờ dev gửi các câu lệnh và cấu hình trên máy để QC chúng ta tự gõ lệnh chạy Batch

Cách 2: Nhờ dev chế giúp một button trên giao diện web để chạy Batch (cách này thì QC sẽ nhàn hơn cách 1 rất nhiều)

Bước 2: Tìm hiểu yêu cầu của khách hàng về Batch

Bạn phải hiểu rõ khách hàng muốn tính năng chạy ngầm này sẽ thực hiện các công việc trong hệ thống, điều kiện như thế nào, chạy vào thời gian nào...

Ví dụ: Batch chạy hàng ngày lúc 2h sáng để tiến hành đóng các giao dịch của ngày hôm trước. Các bản ghi giao dịch của ngày hôm trước sẽ được gán cờ = 1.

Công việc Batch: Tìm các bản ghi giao dịch của ngày hôm trước và gán cờ = 1.

Điều kiện: phải là bản ghi giao dịch của today()-1

Thời gian chạy: 2h sáng hàng ngày

Bước 3: Tạo data test

Bước này thì cần bạn phải có kiến thức về database và SQL. Mục đích để truy cập vào database và tạo, sửa dữ liệu trực tiếp trong database sao cho phù hợp/không phù hợp với điều kiện Batch sẽ chạy.

Bước 4: Thực hiện test

Sau khi đã tạo datatest xong, tiến hành chạy lệnh để gọi Batch

Bước 5: Kiểm tra kết quả sau khi chạy Batch

Cần kiểm tra lại dữ liệu trên màn hình sau khi Batch chạy có đúng với yêu cầu không.

Hoặc có thể tiến hành check log của batch tạo ra (phải nhờ Developer hỗ trợ)

Cần chú ý điều gì khi test Batch processing

Các step bên trên thì chỉ test được Batch chạy có đúng yêu cầu khách hàng không. Nhưng còn một điểm chúng ta cần phải lưu ý rằng, Batch phải chạy liên tục và không được ngưng hoạt động. Vì nếu ngưng hoạt động là hệ thống cũng sẽ không tạo ra được dữ liệu và khi phát hiện ra chúng ta phải xử lý cover lại dữ liệu rất mệt và giảm niềm tin từ phía khách hàng.

Trên thực tế thì cũng không thể test hết được các trường hợp gây ra ngừng hoạt động Batch, nhưng có một cách để chúng ta biết khi nào ngừng bằng cách thêm tính năng gửi mail  đến admin khi Batch có xảy ra sự cố. Ngay khi biết Batch ngưng hoạt động là admin sẽ biết và tiến hành khởi động lại và giảm thiểu được rủi ro về vấn đề dữ liệu và business của khách hàng.

Lúc này, phía đội phát triển sẽ tiến hành tìm hiểu nguyên nhân và tiến hành khắc phục luôn.

Quan điểm test cho Batch processing

Khởi động bằng tay

  • Kiểm tra quá trình chạy của Batch
  • Kiểm tra dữ liệu có đúng đối tượng của Batch không
  • Kiểm tra dữ liệu sau khi kết thúc
  • Kiểm tra file log được save ở đâu trên server"

cần phải lưu lại file log để phục vụ quá trình điều tra sau khi xảy ra vấn đề

Khởi động tự động

  • Kiểm tra sau bao nhiêu phút Batch tự khởi động
  • Kiểm tra quá trình chạy của Batch
  • Kiểm tra dữ liệu có đúng đối tượng của Batch không
  • Kiểm tra dữ liệu sau khi kết thúc
  • Kiểm tra file log được save ở đâu trên server

Dữ liệu thiếu điều kiện để chạy batch

  • Kiểm tra batch có bỏ qua dữ liệu này và chạy tiếp không
  • phải check lần lượt với các điều kiện

Khởi động batch nhiều lần liên tiếp

  • Kiểm tra batch có chạy đủ số lần không
  • Dữ liệu các lần chạy batch có bị trùng nhau không

Chạy batch với số lượng dữ liệu lớn

  • Kiểm tra số lượng dữ liệu đã chạy

Hy vọng các nội dung trên sẽ giúp ích cho các bạn trong quá trình test liên quan đến tính năng Batch nhé.

Tags

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.