12/08/2018, 16:17

Data Migration Testing Tutorial: A Complete Guide (Part 1)

Test Data Migration thường được thực hiện khi ứng dụng chuyển sang server khác, hay thay đổi công nghệ, cập nhật phiên bản hoặc chuyển sang cơ sở dữ liệu khác vv, Trên quan điểm của test, tất cả chức năng của ứng dụng phải được kiểm tra toàn diện khi hệ thống hiện tại chuyển sang hệ thống mới. ...

Test Data Migration thường được thực hiện khi ứng dụng chuyển sang server khác, hay thay đổi công nghệ, cập nhật phiên bản hoặc chuyển sang cơ sở dữ liệu khác vv,

Trên quan điểm của test, tất cả chức năng của ứng dụng phải được kiểm tra toàn diện khi hệ thống hiện tại chuyển sang hệ thống mới. Tester phải kiểm tra tất cả dữ liệu được sử dụng trong ứng dụng cũ và dữ liệu mới. Các chức năng hiện tại cần được xác minh xem có còn hoạt động tốt cùng với việc kiểm tra các chức năng mới hoặc là chức năng đã được thay đổi. Toàn bộ dữ liệu của người dùng sẽ được di chuyển sang một hệ thống mới nên data migration test bao gồm việc kiểm tra dữ liệu cũ và dữ liệu mới kết hợp với kiểm tra các tính năng cũ (các tính năng không thay đổi) và các tính năng mới.

Ứng dụng cũ thường được gọi là ứng dụng “kế thừa”. Cùng với ứng dụng mới / nâng cấp, ứng dụng kế thừa cũng bắt buộc phải test cho đến khi các ứng dụng mới / nâng cấp trở nên ổn định và nhất quán. Test migration sẽ phát hiện ra những vấn đề mới không tìm thấy trong ứng dụng kế thừa.

Migration Testing là một quá trình xác minh sự di chuyển (migration) của hệ thống kế thừa sang hệ thống mới bằng cách xác định sự gián đoạn / downtime, sự toàn vẹn dữ liệu, không mất mát dữ liệu, đồng thời đảm bảo rằng tất cả các khía cạnh chức năng và phi chức năng của ứng dụng đều được đáp ứng.

Sơ đồ đơn giản cho migraton:

Như chúng ta biết, việc di chuyển ứng dụng sang một hệ thống mới do nhiều lý do, có thể là do hợp nhất hệ thống, công nghệ được dùng đã lỗi thời cần chuyển sang công nghệ mới để tối ưu hóa hoặc bất kỳ lý do nào khác. Do đó khi hệ thống đang sử dụng được di chuyển sang một hệ thống mới, cần đảm bảo các điểm dưới đây:

  • Bất kỳ sự gián đoạn / sự bất tiện nào gây ra cho người dùng do việc di chuyển cần phải được tránh / giảm xuống mức tối thiểu. Ví dụ: thời gian chết, mất dữ liệu
  • Cần đảm bảo người dùng có thể tiếp tục sử dụng tất cả các tính năng của phần mềm, trong quá trình di chuyển không gây ra thiệt hại hoặc gây ra ở mức tối thiểu. Ví dụ: việc thay đổi chức năng, loại bỏ một chức năng cụ thể nào đó Do vậy ta cần phải thực hiện Migration Test trong Lab để dự đoán và loại trừ tất cả các trục trặc có thể có / trở ngại có thể xảy ra trong quá trình di chuyển thực tế của hệ thống đang được sử dụng.

Bài test này có tầm quan trọng riêng và nó đóng một vai trò then chốt khi dữ liệu di chuyển.

Về mặt kỹ thuật, ta cũng cần phải thực hiện data migration test vì:

  • Để đảm bảo tính tương thích của ứng dụng mới / nâng cấp với tất cả phần cứng và phần mềm mà ứng dụng cũ hỗ trợ. Ngoài ra, tính tương thích cũng nên được kiểm thử cho phần cứng mới, nền tảng phần mềm mới.
  • Để đảm bảo tất cả các chức năng hiện hoạt động như trong ứng dụng kế thừa. Không nên thay đổi cách ứng dụng hoạt động quá lớn.
  • Khả năng có một số lượng lớn bug do di chuyển là rất cao. Bug thường liên quan đến dữ liệu và do đó những bug này cần được xác định và sửa trong quá trình kiểm thử.
  • Để đảm bảo thời gian đáp ứng hệ thống của ứng dụng mới / nâng cấp là bằng hoặc nhỏ hơn so với thời gian đáp ứng của ứng dụng kế thừa.
  • Để đảm bảo kết nối giữa máy chủ, phần cứng, phần mềm vv, đều toàn vẹn, không bị phá vỡ trong khi thử nghiệm. Luồng dữ liệu giữa các thành phần khác nhau không bị phá vỡ dưới bất kỳ điều kiện nào.

Việc kiểm tra phải được thực hiện trước và sau khi di chuyển.

Các giai đoạn thử nghiệm di chuyển khác nhau được thực hiện tại lab có thể được phân loại như sau:

  • Kiểm tra trước khi di chuyển
  • Kiểm tra sự di chuyển
  • Kiểm tra sau khi di chuyển Ngoài các bài kiểm tra trên, ta cần thực hiện các bài kiểm tra sau:
  • Kiểm tra tính tương thích
  • Thử nghiệm Rollback Trước khi test, tester phải hiểu rõ:
  • Những thay đổi xảy ra trong hệ thống mới (máy chủ, giao diện người dùng, DB, giản đồ, luồng dữ liệu, chức năng vv)
  • Hiểu chiến lược di chuyển thực tế do dev team tiến hành. Di chuyển như thế nào, thay đổi từng bước ra sao và vai trò của sự thay đổi ở mức nào với hệ thống. Do đó cần phải nghiên cứu kỹ lưỡng hệ thống cũ và hệ thống mới, sau đó lập kế hoạch và thiết kế testcase và test scenerio.

Thiết kế chiến lược kiểm tra sự di chuyển bao gồm bộ các hoạt động sẽ được thực hiện. Đây là những hoạt động để giảm thiểu các sai sót và rủi ro xảy ra do di chuyển và để thực hiện kiểm tra di chuyển một cách hiệu quả.

Các hoạt động trong bài kiểm tra này:

1) Xây dựng đội test:

Thành lập nhóm kiểm thử với các thành viên có kiến thức và kinh nghiệm cần thiết và được đào tạo về hệ thống cần được di chuyển.

2) Phân tích rủi ro, lỗi có thể xảy ra:

Business hiện tại không nên bị cản trở sau khi di chuyển, do đó phải tiến hành các cuộc họp "Phân tích rủi ro Kinh doanh" liên quan đến các bên liên quan (tester, BA, dev, Khách hàng, Chủ doanh nghiệp, ...) để xác định rủi ro cùng các biện pháp giảm nhẹ.

Đoán lỗi có thể xảy ra và sau đó thiết kế các trường hợp kiểm thử xung quanh các lỗi này.

3) Phân tích và xác định phạm vi di chuyển:

Phân tích phạm vi rõ ràng của việc kiểm thử di chuyển: khi nào thì thực hiện và cần phải được kiểm tra những gì.

4) Xác định công cụ di chuyển thích hợp:

Trong khi xác định chiến lược, xác định test tự động hoặc thủ công, xác định các công cụ sẽ được sử dụng. Ví dụ: Công cụ tự động để so sánh dữ liệu nguồn và đích.

5) Xác định môi trường thử nghiệm thích hợp:

Xác định các môi trường riêng biệt, môi trường trước và sau khi di chuyển. Hiểu về tài liệu kỹ thuật của hệ thống cũ và hệ thống mới để đảm bảo rằng môi trường thử nghiệm được thiết lập theo yêu cầu như vậy.

6) Tài liệu kiểm tra di chuyển:

Chuẩn bị tài liệu kiểm tra di chuyển, mô tả rõ cách tiếp cận, vùng kiểm tra, phương pháp kiểm thử (tự động, thủ công, hộp đen, kỹ thuật kiểm tra hộp trắng). Chu kỳ test, tiến độ, cách tạo dữ liệu và sử dụng dữ liệu trực tiếp (những thông tin nhạy cảm cần được ẩn đi), đặc tả của môi trường kiểm thử, biên bản các cuộc họp với các bên liên quan, ...

7) Quá trình di chuyển hệ thống:

Phân tích và ghi lại danh sách việc cần làm khi bắt đầu di chuyển hệ thống

http://www.softwaretestinghelp.com/data-migration-testing/

0