0

KIỂM THỬ CƠ SỞ DỮ LIỆU

1. Tổng quan

Đối với một ứng dụng thì giao diện (Graphic User Interface) là phần giao tiếp trực tiếp với người dùng nên luôn được đội phát triển và đội kiểm thử chú trọng. Nhưng phần quan trọng nhất của ứng dụng chính là thông tin, nó được coi như là trái tim của ứng dụng. Có rất nhiều lý do để thực hiện Database Testing. Trong kiểm thử, cần thiết phải kiểm tra tính toàn vẹn dữ liệu, tính hợp lệ của dữ liệu và kiểm tra tính thống nhất của dữ liệu dựa trên cơ sở dữ liệu. Hệ thống back-end chịu trách nhiệm lưu giữ dữ liệu và truy xuất dữ liệu cho nhiều mục đích khác nhau. Dưới đây là một số lý do phổ biến :

  • Để giảm bớt sự phức tạp khi truy xuất cơ sở dữ liệu, các lập trình viên thường hay sử dụng View và Stored Procedures
  • Stored Procedures và View chứa các tác vụ quan trọng như; chèn thông tin chi tiết khác hàng ( tên, thông tin liên lạc...) và dữ liệu bán hàng. Những task vụ này được sử dụng ở nhiều nơi, nhiều cấp nên cũng cần phải được test ở nhiều cấp.
  • Blackbox testing thực hiện trên giao diện người dùng là rất quan trọng, nhưng khó để kiểm thử dữ liệu cô lập ở bên trong. Kiểm thử backend làm tăng độ tin cậy của dữ liệu. Đó là lý do tại sao cần thực hiện database testing ở backend Trong cơ sở dữ liệu, dữ liệu đến từ nhiều ứng dụng khác nhau và có khả năng dữ liệu độc hại hoặc không chính xác được lưu trong cơ sở dữ liệu. Vì vậy cần phải thường xuyên kiểm tra các thành phần trong cơ sở dữ liệu. Ngoài ra, nên kiểm tra tính toàn vẹn và thống nhất của dữ liệu.

2. Sự khác nhau giữa kiểm thử cơ sở dữ liệu và kiểm thử giao diện

Database Testing UI Testing
Là kiểm thử tính toàn vẹn và hợp lệ dữ liệu hoặc back-end Là kiểm thử giao diện ứng dụng hay front-end
Liên quan đến việc kiểm tra các thành phần back-end, mà không hiển thị cho người dùng. Bao gồm các thành phần CSDL và các hệ thống DBMS như My SQL, Oracle Liên quan đến kiểm tra chức năng của ứng dụng và các thành phần của nó như biểu mẫu, đồ thị, menu, bao cáo...
Bao gồm kiểm tra thủ tục lưu trữ, khung nhìn, lược đồ trong CSDL, các bảng, các mục,..và tính nhất quán của dữ liệu Liên quan tới việc kiểm tra tính năng của ứng dụng, các nút, các hình thức và các trường, lịch và hình ảnh, chuyển trang và các chức năng của ứng dụng
Để kiểm tra DB người kiểm tra cần có kiến thức sâu về các quy trình, chức năng của CSDL, các khung nhìn, các chỉ mục, các phím và SQL thực hành tốt Để thực hiện kiểm ta người dùng cần hiểu dõ về các yêu cầu nghiệp vụ, kiến thức về ứng dụng, mã hoá..
Dữ liệu đến từ nhiều nguồn dữ liệu không đồng nhất trên các ứng dụng web, ứng dụng Intranet và các ứng dụng khác. Dữ liệu được nhập bằng tay vào các ứng dụng. Nó bao gồm kiểm tra chức năng của các ứng dụng front-end

3. Các kiểu thử nghiệm cơ sở dữ liệu

Dựa vào chức năng và cấu trúc của một cơ sở dữ liệu, kiểm tra CSDL có thể được phân thành ba loại:

  • Structural Database Testing: đề cập tới việc kiểm thử bảng, cột, các thủ tục lưu trữ, trình kích hoạt,...
  • Functional Testing: kiểm tra các chức năng của CSDL từ quan điểm của người dùng. Hâu hết là các loại kiểm thử hộp trắng và kiểm thử hộp đen.
  • Nonfunctional Testing: kiểm thử tải, kiểm thử rủi ro trong CSDL, stress testing, yêu cầu tối thiểu với hệ thống, vấn đề về hiệu suất của CSDL.

a) Structural Database Testing

Bao gồm việc xác minh các thành phần của CSDL, mà người dùng cuối không được tiếp xúc. Nó bao gồm tất cả các thành phần của kho, được sử dụng để lưu trữ dữ liệu và không được thay đổi bởi người dùng cuối. Admin của CSDL cần hiểu biết về các thủ tục lư trữ SQL. Các thành phần thông thường được kiểm tra liên quan đến Structural Database Testing: Schema / Mapping Testing: bao gômg việc xác nhận các đối tượng của ứng dụng đầu cuối với việc lập bản đồ đối tượng CSDL.

  • Đôi khi xảy ra trường hợp đối tượng ứng dụng người dùng cuối không được ánh xạ chính xác hoặc tương thích với các đối tượng cơ sở dữ liệu. Do đó, kiểm tra tính hợp lệ của các định dạng lược đồ khác nhau liên kết với cơ sở dữ liệu là bắt buộc.
  • Cần phải tìm các đối tượng chưa được khai thác trong cơ sở dữ liệu, như bảng, khung nhìn, cột...là bắt buộc. Stored Procedures and Views Testing: đảm bảo rằng việc thực hiện thủ công thủ tục lưu trữ và quan điểm đúng yêu cầu.
  • Cho phép kích hoạt yêu cầu được thực hiện như mong đợi hay không.
  • Nhóm phát triển đã bao phủ tất cả các vòng lặp và điều kiện bằng cách chuyển đầu vào cho các ứng dụng trong thủ tục.
  • Có bất kỳ thủ tục lưu trữ không sử dụng trong CSDL hay không.
  • Các thao tác TRIM đã được áp dụng đúng khi dữ liệu được lấy ra từ các bảng bắt buộc trong CSDL chưa.
  • Xác nhận sự tích hợp tổng thể của các module thủ tục lưu trữ theo yêu cầu của ứng dụng đang được kiểm tra.
  • Cơ chế xử lí ngoại lệ và lỗi. Trigger Testing: trong trigger testing, người kiểm thử cần đảm bảo:
  • Các quy ước mã hoá tuân theo giai đoạn mã hoá của trình kích hoạt.
  • Các trình kích hoạt có đáp ứng được các điều kiện yêu cầu không.
  • Trình kích hoạt cập nhật dữ liệu chính xác, một khi chúng được thựcthi
  • Xác nhận của cập nhật/ chèn/ xoá các ứng dụng yêu cầu chức năng WRT theo thử nghiệm. Tables and Column testing: những vấn đề chính trong thử nghiệm là:
  • Xác nhận kiểu dữ liệu trong cơ sở dữ liệu để các giá trị trường trong ứng dụng đầu cuối.
  • Xác nhận độ dài của trường dữ liệu trong cơ sở dữ liệu đến độ dài của các kiểu dữ liệu trong ứng dụng.
  • Kiểm tra nếu có bất kỳ bảng hoặc cột chưa được định dạng trong cơ sở dữ liệu từ các đối tượng trường ứng dụng.
  • Công ước đặt tên của bảng và cột cơ sở dữ liệu được xác minh, nếu chúng phù hợp với yêu cầu kinh doanh hay không.
  • Xác nhận khoá và chỉ mục trong cơ sở dữ liệu, nghĩa là các khoá chính và khoá ngoại trong các bảng được xác định theo yêu cầu.
  • Kiểm tra xem các khóa chính và khóa nước ngoài tương ứng của chúng có giống nhau ở hai bảng.
  • Kiểm tra tính năng Unique và NOT NULL của các phím được duy trì.
  • Chiều dài và kiểu dữ liệu của các khoá và chỉ mục được duy trì theo yêu cầu. Database Server Check: liên quan đến xác minh
  • Nếu máy chủ cơ sở dữ liệu có thể xử lý số lượng giao dịch dự kiến theo yêu cầu kinh doanh.
  • Nếu chi tiết cấu hình của máy chủ cơ sở dữ liệu đáp ứng yêu cầu kinh doanh.
  • Nếu ủy quyền của người dùng được duy trì theo yêu cầu.

b) Functional Testing

Kiểm thử chức năng của cơ sở dữ liệu được chỉ định bởi yêu cầu đặc tả cần để đảm bảo tất cả các giao dịch và thao tác được thực hiện bởi người dùng đầu cuối phù hợp với các yêu cầu trong tài liệu đặc tả. Kiểm thử hộp đen: Kiểm tra hộp đen liên quan đến việc xác minh sự tích hợp của cơ sở dữ liệu để kiểm tra các chức năng. Các trường hợp thử nghiệm rất đơn giản và được sử dụng để xác minh các dữ liệu đến và dữ liệu đi ra từ chức năng. Các kỹ thuật khác nhau như kỹ thuật lập đồ hiệu ứng nguyên nhân, phân chia tương đương và phân tích giá trị ranh giới được sử dụng để kiểm tra các chức năng của cơ sở dữ liệu. Lợi thế của nó như sau:

  • Nó khá đơn giản và được thực hiện trong giai đoạn phát triển ban đầu.
  • Chi phí phát triển các trường hợp thử nghiệm là ít hơn so với kiểm tra hộp trắng. Nhược điểm của nó như sau:
  • Không thể phát hiện một số lỗi
  • Không biết bao nhiêu chương trình cần phải được kiểm tra. Kiểm thử hộp trắng: Kiểm tra hộp trắng liên quan đến cơ cấu nội bộ của cơ sở dữ liệu và các chi tiết kỹ thuật được ẩn từ người dùng. Nó bao gồm việc thử nghiệm các trình kích hoạt cơ sở dữ liệu và các khung nhìn logic, sẽ hỗ trợ tái cấu trúc cơ sở dữ liệu. Nó thực hiện việc kiểm tra mô đun các chức năng cơ sở dữ liệu, trình kích hoạt, khung nhìn, truy vấn SQL ... Loại kiểm thử này xác nhận các bảng cơ sở dữ liệu, các mô hình dữ liệu, lược đồ cơ sở dữ liệu ... Nó kiểm tra các quy tắc về tính toàn vẹn Referential. Nó chọn các giá trị mặc định của bảng để kiểm tra tính nhất quán của cơ sở dữ liệu. Các kỹ thuật phổ biến nhất được sử dụng để thực hiện kiểm tra hộp trắng là điều kiện bao phủ, bảo hiểm quyết định, bảo hiểm tuyên bố,... Các lỗi mã hóa có thể được phát hiện trong kiểm tra hộp trắng, vì vậy lỗi nội bộ trong cơ sở dữ liệu có thể được loại bỏ. Hạn chế của việc kiểm tra hộp trắng là các câu lệnh SQL không được bảo vệ.

c) NonfunctionalTesting

Bao gồm: load testing, stress testing kiểm tra các yêu cầu nhỏ nhất của hệ thống khớp với yêu cầu nghiệp vụ, tìm rủi ro và tối ưu hoá hiệu năng của database Load Testing Mục tiêu chính của load testing là để kiểm tra xem hầu hết các giao dịch đang chạy có tác động đến hiệu quả trên cơ sở dữ liệu. Trong thử nghiệm tải, tester cần check

  • Thời gian phản hồi để thực hiện các giao dịch cho nhiều người dùng từ xa.
  • Thờigianthựchiệnbởicơsởdữliệuđểlấyhồsơcụthể Stress Testing Stress testing được thực hiện để xác định điểm ngắt của hệ thống.Trong thử nghiệm này, ứng dụng được nạp theo cách mà hệ thống không thành công tại một điểm. Điểm này được gọi là điểm ngắt của hệ thống cơ sở dữ liệu. Xác định trạng thái của các giao dịch cơ sở dữ liệu bao gồm một lượng đáng kể nỗ lực. Lập kế hoạch phù hợp là cần thiết để tránh bất kỳ vấn đề thời gian và chi phí nào. Các công cụ kiểm tra stress testing được sử dụng phổ biến nhất là LoadRunner và WinRunner .

Bài viết tham khảo từ nguồn: https://www.tutorialspoint.com/database_testing/database_testing_quick_guide.htm https://www.guru99.com/data-testing.html


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí