You are on page 1of 22

KIỂM THỬ PHẦN MỀM – SOFTWARE TESTING

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

1
Contents
 What is Database Testing?
 Why is Database Testing?
 Database Testing Contents
 Demo

2
What is Database Testing Types?
 Database Testing là quá trình kiểm tra độ chính xác
và tính toàn vẹn của cơ sở dữ liệu (CSDL). Đảm
bảo rằng các dữ liệu là chính xác và duy nhất.
 Lỗi do CSDL có thể gây ra một số vấn đề nghiêm
trọng: deadlock, hỏng dữ liệu, hiệu suất kém, không
thống nhất, vv…

3
What is Database Testing Types?
Kiểm thử dữ liệu thực Kiểm thử ràng buộc dữ
(Actual Data Testing) liệu (Database Integrity
Testing)
 Kiểm tra nội dung của dữ  Các hoạt động kiểm thử
liệu có chính xác hay nhằm đảm bảo dữ liệu
không. không bị hỏng, các
schema dữ liệu là đúng
đắn và các chức năng
của các ứng dụng CSDL
hoạt động đúng

4
Why is Database Testing?
 Đảm bảo tính thống nhất của dữ liệu (Data
mapping)
 Là việc xác định dữ liệu của một bảng này tương ứng
với dữ liệu nào trong bảng khác.
 Vấn đề này có ý nghĩa quan trọng trong các quá trình:
 Di chuyển dữ liệu
 Phân tích dữ liệu
 Hợp nhất các dữ liệu

5
Why is Database Testing?
 Đảm bảo các thuộc tính ACID (ACID properties)
 Tính nguyên tố (Atomicity)
 Tính nhất quán (Consistency)
 Tính độc lập (Isolation)

 Tính bền vững (Durability)

=> Ý nghĩa: Đảm bảo các tính chất ACID để tránh trường hợp
dữ liệu tại các bước của một giao dịch không khớp, không
liên kết với nhau dẫn đến tình trạng thất thoát hoặc sai dữ
liệu.

6
Why is Database Testing?
 Đảm bảo tính toàn vẹn dữ liệu (Data Integrity)
 Là việc duy trì và đảm bảo tính chính xác và nhất quán của
dữ liệu trên toàn bộ vòng đời của nó, và là một khía cạnh
quan trọng đối với việc thiết kế, thực hiện và ứng dụng của
bất kỳ hệ thống nào có thể lưu trữ, xử lý, hoặc lấy dữ liệu.
 Đảm bảo dữ liệu được ghi lại một cách chính xác như
mong muốn, nhằm ngăn chặn những thay đổi có chủ ý đến
các thông tin.

7
Why is Database Testing?
 Đảm bảo tuân thủ quy tắc nghiệp vụ (Bussiness rule
conformity)
 Sử dụng quy tắc nghiệp vụ để cung cấp sự kiểm soát
chính xác và nhất quán trong quá trình truy cập dữ liệu của
ứng dụng.
 Quy tắc nghiệp vụ thường tập trung vào các vấn đề về
kiểm soát truy cập
 Mỗi role của user được quy định có những quyền truy cập, hoạt động
khác nhau…
 Tính toán nghiệp vụ (tính rate truy cập, tính % tham gia 1 khóa học…
và các chính sách của cơ quan tổ chức (trong trường hợp nào thì
user bị khóa, bị xóa, bị cảnh cáo…).

8
Database Testing Content
 Datatype: varchar, nvarchar, ntext:
 Kiểm tra Maxlength
 Phân biệt chữ hoa/chữ thường
 Phân biệt 全角/半角 (full-size / half size)
 Phân biệt ký tự unicode
 Cho phép null hay không
 Cho phép nhập ký tự đặc biệt hay không?
 Phân biệt chữ hoa / chữ thường
 Check bằng câu Select hoặc insert để check kiểu dữ liệu
được lưu trữ vào trong 1 trường trong DB

9
Database Testing Content
 Phân biệt ký tự Unicode
 Dùng câu lệnh insert để xác định dữ liệu được import
thành công hay không
 Cho phép null hay không
 Dùng câu lệnh insert để xác định dữ liệu được import
thành công hay không

10
Database Testing Content
 Datatype: int, tinyint, float
 Kiểm tra maxlength. Và đảm bảo các ký tự đều không
bị cắt.
 Kiểm tra giá trị max, min
 Có cho phép nhập ký tự chữ hay không?
 Cho phép nhập ký tự đặc biệt hay không?
 Có cho phép nhập ký tự số 2 byte hay không?
 Cho phép null hay không?

11
Database Testing Content
 Datatype: int, tinyint, float
 Không được phép nhập blank ở vị trí đầu tiên của field
số.
 Không được phép nhập blank ở vị trí cuối cùng của
field số.
 Kiểm tra lỗi chia cho 0
 Kiểm tra giá trị 0 cho tất cả các tính toán
 Kiểm tra giá trị trong giới hạn max,min
 Kiểm tra giá trị = giá trị max, min
 Kiểm tra giá trị vượt giới hạn giá trị max, min

12
Database Testing Content
 Datatype: datetime
 Kiểm tra maxlength
 Kiểm tra ngày hợp lệ
 Có cho phép nhập chữ hay không?
 Có cho phép nhập ký tự đặc biệt hay không?
 Có cho phép nhập ký tự số 2 byte hay không?
 Kiểm tra format theo kiểu nào?
 Kiểm tra đối với trường hợp năm nhuần có được tính
đúng không?

13
Database Testing Content
 Datatype: datetime
 Kiểm tra giá trị 00 và 13 đối với tháng
 Kiểm tra giá trị 00 và 32 đối với ngày
 Kiểm tra giá trị 28 , 29, 30 -Feb có được tính đúng
không?
 Datatype: bit
 Chỉ được phép nhập 0 hoặc 1
 Có cho phép null hay không?
 Kiểm tra nhập ký tự số 2 byte 0 hoặc 1

14
Database Testing Content
 Upload file
 File có định dạng đúng với spec: file tạo từ phần mềm
gốc, file tạo từ convert mp3 -> avi, word -> html, file
đổi extention
 File có định dạng không đúng với spec, file sai định
dạng, file không có định dạng
 File có size đúng với spec: size thường, size min max
 File có size không đúng với spec: file vượt quá giới
hạn cho phép, file 0 byte
 File có tên đúng với spec: độ dài, tên ký tự đặc biệt,
tiếng Anh, tiếng Nhật

15
Database Testing Content
 Upload file
 File có tên không đúng với spec: độ dài vượt quá giới
hạn cho phép, tên sai chuẩn
 File đang được lưu trữ ở các nguồn khác nhau: trên
local/online/share file/sub folder/ folder name đặc biệt..
 File có các quyền access khác nhau: write, read, view
 Upload với nhiều file, upload với folder: tồn tại cả file
chuẩn theo spec và file không chuẩn theo spec
 Thực hiện upload file có dung lượng lớn và trong khi
đang xử lý upload thì thực hiện cancel upload
 Thực hiện thao tác upload trên các môi trường khác
nhau: Windows, ubuntu, MAC v.v
16
Kiểm tra tính toàn vẹn của cơ sở dữ liệu

 Đảm bảo tính chính xác và nhất quán của dữ liệu


được lưu trữ trong quá trình thao tác (insert, update,
delete)
 Trong DB việc kiểm tra toàn vẹn của dữ liệu sẽ
thông qua 2 đối tượng quản lý Constraint và Trigger
 Hai đối tượng này được liên kết trực tiếp vào bảng
dữ liệu.

17
Kiểm tra tính toàn vẹn của cơ sở dữ liệu

 Constraint
 Kiểm tra tính duy nhất của dữ liệu
 PRIMARY KEY
 UNIQUE KEY CONSTRAINT
 Kiểm tra tồn tại dữ liệu
 Kiểm tra miền giá trị
 Trigger
 Định nghĩa
 Cách viết Trigger

18
Kiểm tra tính toàn vẹn của cơ sở dữ liệu

 Kiểm tra hiệu năng (performance)


 Vì sao cần phải thực hiện kiểm tra hiệu năng
 Các trường hợp cần phải kiểm tra performance
 Thao tác với màn hình search
 Thực hiện view list danh sách ( hàng trăm records, phân trang
nhiều)
 Thực hiện insert hoặc update 1 lượng dữ liệu lớn (xử lý batch)
 Kiểm tra thủ tục (Stored Procedure)
 Định nghĩa
 Cấu trúc
 Chức năng
 Cú pháp
19
Demo

20
References

1. http://hoctester.net/database-testing/

2. http://www.softwaretestinghelp.com/database-testing-process/

3. https://www.guru99.com/data-testing.html

4. https://viblo.asia/p/kiem-thu-co-so-du-lieu-vyDZOXrdlwj

5. https://viblo.asia/p/database-testing-tutorial-huong-dan-kiem-thu-co-so-
du-lieu-EoDGQOxzkbV

6. https://www.youtube.com/watch?v=e8El6HB48Tk

7. https://viblo.asia/p/huong-dan-kiem-thu-co-so-du-lieu-3OEqGjaKM9bL

21
Thank you for your
attention!

Q&A

You might also like