Tìm hiểu về Database Testing

Tram Ho

Database Testing là gì?

Cơ sở dữ liệu là một trong những phần tất yếu của một ứng dụng phần mềm. Khi độ phức tạp của một ứng dụng tăng lên, nhu cầu về một Cơ sở dữ liệu mạnh mẽ và an toàn xuất hiện.
Database Testing – Kiểm tra cơ sở dữ liệu là một loại kiểm thử phần mềm nhằm kiểm tra các bảng, lược đồ của Cơ sở dữ liệu (Database). Nó cũng kiểm tra tính toàn vẹn và nhất quán của dữ liệu, kiểm tra hoạt động của Cơ sở dữ liệu trước những luồng dữ liệu đầu vào bất thường.

Tầm quan trọng của Database Testing

Kiểm thử Cơ sở dữ liệu vô cùng quan trọng trong kiểm thử phần mềm vì:

  • Đảm bảo các dữ liệu đầu vào có được lưu trữ một cách hợp lệ trong Cơ sở dữ liệu hay không.
  • Giúp tránh việc mất mát dữ liệu, lưu lại dữ liệu các giao dịch bị hủy bỏ
  • Ngăn việc truy cập trái phép vào Cơ sở dữ liệu

Các mục tiêu trong kiểm thử cơ sở dữ liệu

1. Sự kết nối dữ liệu

Trong hệ thống phần mềm, dữ liệu sẽ được truyền từ UI đến backend và ngược lại. Vì vậy, ta cần kiểm tra một số khía cạnh trong việc kết nối dữ liệu như:

  • Kiểm tra các trường trong biểu mẫu gửi dữ liệu có được liên kết tới đúng trường trong Database hay không. Thông thường các thông tin này sẽ được xác định trong file tài liệu của dự án. Việc QA cần làm là đảm bảo mọi thứ rõ ràng và chuẩn xác.
  • Khi một hành động CRUD (Create/Tạo – Read/Lấy – Update/Cập nhật – Delete/Xóa) được thực hiện ở fron-end của ứng dụng, một hành động tương ứng sẽ được truyền tới back-end. QA sẽ tiến hành kiểm tra xem hoạt động đó có thực hiện thành công và lưu lại kết quả trong database hay không

2. Kiểm tra các thuộc tính ACID


Mọi hoạt động trong database đều cần phải tuân theo 4 thuộc tính:

  • Atomicity – Tính bảo toàn: có nghĩa là một hoạt động thành công hoặc thất bại. Tính chất này đảm bảo khi một hành động liên quan đến hai hay nhiều xử lý, ngay cả khi một phần của hành động không thành công – thì có nghĩa là toàn bộ hành động đã thất bại. Thông thường, đây được gọi là quy tắc “tất cả hoặc không có gì”.
  • Consistancy – Tính nhất quán: đảm bảo rằng một hành động không bao giờ được thông qua cơ sở dữ liệu trong trại thái dở dang, tức là một hành động luôn dẫn đến một trạng thái hợp lệ trong cơ sở dữ liệu
  • Isolation – Tính độc lập: đảm bảo rằng nếu có nhiều giao dịch và chúng được thực hiện tất cả cùng một lúc, kết quả trong cơ sở dữ liệu phải giống như khi nó được thực hiện lần lượt
  • Durability – Tính bền vững: đảm bảo rằng sau khi một giao dịch được hoàn tất, không có một yếu tố bên ngoài nào như mất điện hoặc sự cố có thể thay đổi nó

3. Tính toàn vẹn dữ liệu

Với bất kì một hành động CRUD nào, dữ liệu thay đổi phải được thực thi và hiển thị ở tất cả các màn hình hoặc biểu mẫu dữ liệu. Không nên chỉ cập nhật dữ liệu trên một màn hình và hiển thị các giá trị cũ hơn tại các màn hình khác.
Khi một ứng dụng đang trong giai đoạn phát triển, các hành động CRUD của người dùng cuối sẽ được giả định và kiểm thử bằng các công cụ của cơ sở dữ liệu

  • Create: Khi người dùng thực hiện “Lưu” bất kì một giao dịch mới nào
  • Read/Retrieve: Khi người dùng thực hiện các hành động “Tìm kiếm” hoặc “Xem” bất kì giao dịch đã lưu nào
  • Update: Khi người dùng thực hiện “Chỉnh sửa” một dữ liệu nào đó đã tồn tại
  • Delete: Khi người dùng thực hiện hoạt động “Xóa” dữ liệu khỏi hệ thống
    Bất kỳ hoạt động cơ sở dữ liệu nào được thực hiện bởi người dùng cuối luôn là một trong bốn thao tác trên.
    Vì vậy, hãy tạo ra các trường hợp thử nghiệm DB bằng cách bao gồm việc kiểm tra dữ liệu ở tất cả những nơi mà nó xuất hiện để xem liệu nó có nhất quán hay không.

4. Sự phù hợp với quy tắc chuyên môn

Một số thành phần phức tạp hơn có thể được lưu trữ trong database như ràng buộc quan hệ, thủ tục lưu trữ, đòi hỏi các truy vấn SQL thích hợp để có thể lấy ra được các dữ liệu này. Việc QA cần thực hiện là đảm bảo các logic nghiệp vụ được thực hiện đúng và hoạt động chính xác

Quy trình thực hiện Data Testing

Quy trình thực hiện Data Testing khá giống nhau đối với các loại ứng dụng khác nhau:

Bước 1: Chuẩn bị môi trường test

Bước 2: Chạy thử nghiệm

Bước 3: Kiểm tra kết quả thực hiện

Bước 4: Xác nhận kết quả

Bước 5: Thực hiện báo cáo

Một số cách thực hiện Data Testing

1. Tự viết các câu truy vấn:

Để kiểm tra Cơ sở dữ liệu một cách chính xác, người kiểm thử phải có kiến thức rất tốt về các câu lệnh SQL và DML (Ngôn ngữ truy vấn cấu trúc). Người kiểm thử cũng cần biết cấu trúc DB bên trong của hệ thống
Người kiểm thử có thể kết hợp GUI và xác minh dữ liệu trong các bảng tương ứng để có kết luận chính xác. Nếu người kiểm thử đang sử dụng máy chủ SQL thì có thể sử dụng Trình phân tích truy vấn SQL để viết các truy vấn, thực thi chúng và truy xuất kết quả.
Nếu ứng dụng rất phức tạp thì người kiểm thử có thể khó hoặc không thể viết tất cả các truy vấn SQL được yêu cầu. Đối với các truy vấn phức tạp, tester sẽ cần trợ giúp từ các developer, những người có hiểu biết sâu hơn về cơ sở dữ liệu.

2. Quan sát dữ liệu trong mỗi bảng

Tester có thể thực hiện xác minh dữ liệu bằng cách sử dụng kết quả của hoạt động CRUD. Điều này có thể được thực hiện thủ công bằng cách sử dụng giao diện người dùng ứng dụng khi bạn biết tích hợp cơ sở dữ liệu. Nhưng đây có thể là một nhiệm vụ tẻ nhạt và cồng kềnh khi có dữ liệu khổng lồ trong các bảng cơ sở dữ liệu khác nhau.
Khi thực hiện Data Testing thủ công, tester phải có kiến thức tốt về cấu trúc bảng cơ sở dữ liệu.

3. Lấy các câu lệnh truy vấn từ developer

Đây là một cách đơn giản để thực hiện kiểm thử dữ liệu. Tester có thể thực hiện bất kì hoạt động CRUD nào ở UI và xác minh tác động của nó bằng cách thực hiện các truy vấn SQL tương ứng từ các developer. Nó sẽ không yêu cầu người kiểm thử có kiến thức về SQL tốt cũng như kiến thức về cấu trúc cơ sở dữ liệu

4. Sử dụng các công cụ hỗ trợ Data Testing tự động

Tester có thể sử dụng một số công cụ có sẵn một cách thích hợp để thực hiện kiểm thử dữ liệu. Một số công cụ phổ biến như: SolarWind, Data Factory, MockupData,…

Tham khảo: https://www.softwaretestinghelp.com/database-testing-process/

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo