Database Testing

1. Database Testing là gì?

Data testing là kiểm tra lược đồ, bảng, trigger, … của cơ sở data kiểm tra. Nó có thể quan hệ đến việc tạo các truy vấn phức tạp để load/stress test data và kiểm tra phản ứng của nó. Nó kiểm tra tính toàn vẹn và tính nhất quán của data.

2. Sự khác biệt cơ bản giữa User Interface và Data Testing

2.1. User Interface

Loại chạy thử này còn được gọi là chạy thử Giao diện người sử dụng hoặc kiểm tra Front-end. Loại chạy thử này chủ yếu đề cập đến tất cả các mục có thể kiểm tra được mở cho người sử dụng về người xem và tương tác như Biểu mẫu, Trình diễn, Biểu đồ, Menus, và Báo cáo,… (tạo qua VB, VB.net, VC ++, Delphi – Frontend Tools) Loại chạy thử này bao gồm xác nhận hộp văn bản, chọn list thả xuống, lịch và nút, điều dẫn từ trang này sang trang khác, hiển thị hình ảnh hay là nhìn và cảm nhận của app tổng quát. Tester phải có kiến thức sâu rộng về các yêu cầu kinh doanh hay là việc dùng các công cụ phát triển và cách dùng khuôn khổ và công cụ tự động hóa.

2.2. Data Testing

Loại chạy thử này còn được gọi là kiểm tra Back-end hoặc kiểm tra data. Loại chạy thử này chủ yếu đề cập đến tất cả các mục kiểm tra được thường ẩn từ người sử dụng cho người xem. Chúng bao gồm các quy trình nội bộ và lưu trữ như Assembly, DBMS như Oracle, SQL Server, MYSQL, v.v. Loại chạy thử này bao gồm việc xác nhận các giản đồ, các bảng cơ sở data, các cột, các phím và chỉ mục, các thủ tục lưu trữ, các trình khởi tạo, xác nhận máy chủ cơ sở data, xác nhận việc copy data. Tester để có thể làm kiểm tra ngược lại phải có platform vững chắc trong máy chủ cơ sở data và các khái niệm ngôn ngữ truy vấn có cấu trúc.

3. Các loại Database Testing

3.1. Structural Testing

Là kiểm tra cấu trúc của hệ thống hay thành phần Còn được gọi là kiểm tra hộp trắng vì trong kiểm tra kết cấu sẽ quan tâm đến những gì đang diễn ra bên trong hệ thống / app ‘ Trong Structural Testing, tester phải có kiến thức về việc làm nội bộ của mã. Ở đây các xét nghiệm yêu cầu kiến thức về cách phần mềm được làm, nó làm việc như thế nào. Chủ yếu được làm ở cấp độ Unit test Các loại Structural Testing là: Statement testing
Example:
READ A
READ B
C = A + 2 * B
IF C> 50 THEN
PRINT “large C”
ENDIF
=> 100% statement coverage: A = 20, B = 25 Decision (Branch) testing
Example:
z = 0;
if (a > b) then
z = 12;
x = 72 / z
Statement coverage may miss bugs
One test needed for statement coverage
(a = 5, b = 4) => Passes
Select inputs to force each decision to execute both possible ways (T/F)
Now two test cases are needed for coverage
(a = 5, b = 4) => Passes
(a = 4, b = 5) => Finds bug Condition testing Path testing
Example:
READ A
READ B
C = A + 2 * B
IF C> 50 THEN
PRINT “large C”
ENDIF
Path coverage:
Path 1: 1, 2, 3, 4, 5, 6, 7
A = 20, B = 25
Path 2: 1, 2, 3, 4, 6
A = 20, B= 10

3.2. Functional Testing

Việc kiểm tra Function database như được xác định bởi yêu cầu đặc điểm kỹ thuật cần cam kết hầu như các trao đổi và làm việc được làm bởi người sử dụng cuối là phù hợp với yêu cầu kỹ thuật.
Sau đây là các điều kiện cơ bản cần được quan sát để xác nhận cơ sở data.

Cho dù trường đó là yêu cầu trong khi cấp quyền các giá trị NULL trên trường đó. Cho dù độ dài của mỗi trường có kích thước phù hợp không? Cho dù tất cả các mảng giống như có cùng tên trên bảng? Cho dù có bất kỳ mảng tính toán hiện tại trong database?
Quá trình này đặc sắc là xác nhận hợp lệ các ánh xạ trường từ quan điểm của người sử dụng cuối. Trong kịch bản cụ thể này, người thử sẽ làm một làm việc ở mức cơ sở data và tiếp nữa sẽ điều dẫn tới mục giao diện người sử dụng có quan hệ để quan sát và xác nhận liệu các xác nhận hợp lệ có được làm hay không.
Các điều kiện ngược lại, theo đó đầu tiên một làm việc được làm bởi người kiểm tra tại giao diện người sử dụng và tiếp nữa cùng được xác nhận từ phía sau hoàn thành cũng được coi là một chọn lựa hợp lệ.

3.3. Non-functional Testing

3.3.1. Performance Testing

Là kiểm tra hiệu suất xác định hoặc xác nhận tốc độ, tuyệt kỹ mở rộng, hoặc tính ổn định của hệ thống hoặc app đang thử. Hiệu suất chủ yếu quan hệ đến việc đạt được thời gian cung ứng các đối tượng hiệu suất cho dự án hoặc sản phẩm. Thời gian cung ứng của một quá trình chuyển biến cá nhân là một yêu cầu làm điển hình.

**3.3.2. Load Testing **

chạy thử nhắm vào việc xác định hoặc xác nhận các đặc tính làm việc của hệ thống hoặc app đang được kiểm tra khi phải chịu tải công việc và tải trọng cố ý định trong quá trình sản xuất.
gắn kết với nhiều người sử dụng hệ thống

3.3.3. Stress Testing
chạy thử nhắm vào việc xác định hoặc xác nhận các đặc tính làm việc của hệ thống hoặc app đang được kiểm tra khi chịu các điều kiện căng thẳng khác, chẳng hạn như:
người sử dụng đồng thời tối đa
Bộ nhớ giới hạn
Không đủ dung lượng đĩa

3.3.4. Volume Testing
Khối lượng chạy thử đề cập đến việc chạy thử một app phần mềm với số lượng data nhất định. Số tiền này có thể là kích thước cơ sở data hoặc nó cũng có thể là kích thước của một tập tin được tải lên hệ thống
Tài liệu tham khảo:
https://www.guru99.com/data-testing.html#2
Cám ơn mọi người đã đọc!

Nguồn viblo.asia