Về mặt đối nội, nó làm việc thông tin trong tổ chức được hiệu quả hơn, giúp nhân viên các cấp theo dõi, đánh giá tình hình chính xác hơn, từ đó có những hành động phù hợp để nâng cao năn
Trang 1ĐẠI HỌC DUY TÂN
TRƯỜNG KHOA HỌC MÁY TÍNH
Báo cáo môn học
KIỂM THỬ VÀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
DATABASE TESTING
Thực hiện : Bùi Thanh Tú
Nguyễn Văn Quốc
Lê Hoàng Hải
Nguyễn Đình Chiến
Đà nẵng, tháng 02 năm 2023
Trang 2MỤC LỤC
MỞ ĐẦU 3
1 Lý do chọn đề tài 3
2 Mục tiêu nghiên cứu 3
3 Phương pháp nghiên cứu 3
4 Bố cục tiểu luận 3
Chương 1 TỔNG QUAN 4
1 Dữ liệu là gì? 4
2 Quản lý dữ liệu 4
2.1 Hệ thống quản lý bằng file 4
2.2 Hệ thống quản lý bằng CSDL 4
3 Cơ sở dữ liệu là gì? 4
4 Tính chất của CSDL 5
5 Các mô hình CSDL 5
5.1 Mô hình dữ liệu file 5
5.2 Mô hình dữ liệu phân cấp 6
5.3 Mô hình dữ liệu mạng 6
5.4 Mô hình dữ liệu quan hệ 7
5.5 Mô hình dữ liệu phi quan hệ 7
5.6 Mô hình dữ liệu hướng đối tượng 8
6 Hệ quản trị CSDL 9
6.1 Chức năng của hệ quản trị CSDL 9
7 Các hệ quản trị CSDL nổi tiếng 11
7.1 MySQL 11
7.2 MariaDB 12
7.3 Oracle 12
7.4 MongoDB 13
7.5 PostgreSQL 13
7.6 Microsoft SQL Server 14
7.7 Redis 14
7.8 Elasticsearch 15
7.9 Firebase 15
7.10 SQLite 16
Trang 3Chương 2 Kỹ thuật kiểm thử Cơ sở dữ liệu 17
1 Khái niệm 17
2 Tầm quan trọng của Database Testing 17
3 Mục tiêu của việc kiểm thử Database 17
4 Quy trình kiểm thử Database 17
5 Các loại kiểm thử cơ sơ dữ liệu 18
5.1 Kiểm thử cấu trúc cơ sở dữ liệu 18
5.2 Kiểm thử chức năng 20
5.3 Kiểm thử phi chức năng 22
Chương 3 Ứng dụng kiểm thử Cơ sở Dữ liệu 25
1 Kiểm tra tính hợp lệ của cơ sở dữ liệu 25
1.1 Datatype: varchar, nvarchar, ntext 25
1.2 Datatype: int, tinyint, float 27
1.3 Datatype: datetime 29
1.4 Datatype: bit 29
1.5 Upload file 29
2 Kiểm tra tính toàn vẹn của cơ sở dữ liệu 30
2.1 Constraint 30
2.2 Trigger 31
3 Kiểm tra hiệu năng 32
3.1 Vì sao cần phải thực hiện kiểm tra hiệu năng (performance) 32
3.2 Trường hợp cần phải kiểm tra performance 32
3.3 Cách thực hiện 32
4 Kiểm tra thủ tục 33
4.1 Định nghĩa 33
4.2 Cấu trúc 33
4.3 Chức năng 33
4.4 Cú pháp 33
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 34
TÀI LIỆU THAM KHẢO 35
Trang 4MỞ ĐẦU
1 Lý do chọn đề tài
Trong cuộc sống, chúng ta thường phải làm việc, trực tiếp hay gián tiếp với các cơ sở dữliệu (CSDL): mua hàng hóa siêu thị, tra cứu kết quả học tập, đặt mua vé tàu hỏa, tìm kiếm thôngtin trên Google, so sánh các sản phẩm, rút tiền từ ATM CSDL giúp thực hiện những việc có liênquan với thông tin, đặc biệt là tìm kiếm thông tin nhanh hơn, nhiều hơn, với chất lượng tốt hơn.Đối với một tổ chức, việc thu thập và quản lý dữ liệu một cách hiệu quả đóng một vai tròquan trọng đến thành công của tổ chức ấy Về mặt đối ngoại, nó tạo nên sự thuận lợi, dễ dàngcho các đối tác, góp phần tạo nên hình ảnh của mình Về mặt đối nội, nó làm việc thông tin trong
tổ chức được hiệu quả hơn, giúp nhân viên các cấp theo dõi, đánh giá tình hình chính xác hơn, từ
đó có những hành động phù hợp để nâng cao năng suất và hiệu suất của tổ chức
Cơ sở dữ liệu là một thành phần thiết yếu và không thể thiếu trong hầu hết các ứng dụngphần mềm hiện nay Đặc biệt đối với các ứng dụng chuyên ngành đặc thù, phần mềm nghiệp vụlớn như giáo dục, y tế Điều đó đặt ra vấn đề đối với các nhà phát triển phần mềm phải thiết kế,kiểm thử cấu trúc cơ sở dữ liệu một cách nghiêm túc và chất lượng Để sản phẩm phần mềmchạy tốt thì trước tiên phải đảm bảo được chất lượng của CSDL theo các yêu cầu của hệ thống
Do đó, vấn đề tìm hiểu “Kiểm thử cơ sở dữ liệu” (Database testing) là đề tài đầy thu hútđối với nhóm chúng em, và đó lý do chính để thực hiện đề tài này
2 Mục tiêu nghiên cứu
Tiếp cận tổng quan kiến thức về cơ sở dữ liệu và các kỹ thuật kiểm thử CSDL Dựa vàokiến thức các môn đã học khác cũng như việc tìm hiểu thêm các ứng dụng và kỹ thuật kiểm thửvào việc xây dựng bài toán kiểm thử CSDL thực tế
3 Phương pháp nghiên cứu
Tìm hiểu khái niệm chung về cơ sở dữ liệu
Tìm hiểu các kỹ thuật kiểm thử CSDL
Trang 5Chương 1 TỔNG QUAN
1 Dữ liệu là gì?
Một cách tổng quát, dữ liệu (data), là tập hợp các giá trị có liên quan đến một hay một sốđối tượng nào đó Giá trị này có thể là định lượng hay định tính.Dữ liệu được mô tả dưới nhiềudạng khác nhau (các ký tự, ký số, hình ảnh, ký hiệu, âm thanh…) Mỗi cách mô tả gắn với mộtngữ nghĩa nào đó.Dữ liệu về đối tượng có thể khác nhau, tùy thuộc vào ngữ cảnh
Ví dụ: dữ liệu về đối tượng sinh viên có thể khác nhau tùy vào mục đích quản lý.Quản lý điểm: Tên, mã sinh viên, điểm môn 1, điểm môn 2, điểm môn 3 Trong khi đóquản lý nhân thân: Tên, địa chỉ, ngày sinh, quê quán, lớp
2 Quản lý dữ liệu
Quản lý dữ liệu là quản lý một số lượng lớn dữ liệu, bao gồm cả việc lưu trữ và cung cấp
cơ chế cho phép Thao tác (thêm, sửa, xóa dữ liệu) và truy vấn dữ liệu Hai phương pháp quản lý
dữ liệu: Hệ thống quản lý bằng file và Hệ thống quản lý bằng CSDL
2.1 Hệ thống quản lý bằng file
Dữ liệu được lưu trữ trong các file riêng biệt Ví dụ: các chương trình lưu trữ thông tinbằng hệ thống các file dạng text
Nhược điểm của việc quản lý bằng file:
Dư thừa và mâu thuẫn dữ liệu
Kém hiệu quả trong truy xuất ngẫu nhiên hoặc xử lý đồng thời
Dữ liệu lưu trữ rời rạc
Trang 6Hình 1: minh họa cơ sở dữ liệu.
4 Tính chất của CSDL
Qua phần trình bày trên, ta có thể rút ra một số tính chất của CSDL:
CSDL tương ứng với một phần nào đó của thế giới thực (miniworld hay universe ofdiscourse UoD) Khi phần thế giới thực ấy có sự thay đổi thì nội dung của CSDL phảithay đổi theo
Các nội dung trong CSDL phải có một ý nghĩa nhất định để thể hiện phần thế giới thựctương ứng với nó Nói cách khác, giữa CSDL và phần thế giới thực ấy có những quan hệchặt chẽ với nhau
CSDL được thiết kế, xây dựng để đáp ứng những mục đích xác định, phục vụ cho nhữngđối tượng (người dùng – user) xác định
5 Các mô hình CSDL
5.1 Mô hình dữ liệu file
CSDL dạng file phẳng thường là file kiểu văn bản chứa dữ liệu dạng bảng Ví dụ một filephẳng thể hiện thông tin về Customer (Khách hàng) dưới dạng bảng của công ty NorthwindTraders
Trang 7ID Name Name Name
6 Company F Francisco Pérez-Olaeta Purchasing Manager Milwaukee WI
5.2 Mô hình dữ liệu phân cấp
Tổ chức theo hình cây, mỗi nút biểu diễn một thực thể dữ liệu Liên hệ dữ liệu thể hiệntrên liên hệ giữa nút cha và nút con Mỗi nút cha có thể có một hoặc nhiều nút con, nhưng mỗinút con chỉ có thể có một nút cha
Hình 2: Mô hình dữ liệu phân cấp
5.3 Mô hình dữ liệu mạng
Các file riêng biệt trong hệ thống file phẳng được gọi là các bản ghi Tập hợp bản ghicùng kiểu tạo thành một kiểu thực thể dữ liệu Các kiểu thực thể kết nối với nhau thông qua mốiquan hệ cha-con Mô hình dữ liệu mạng biểu diễn bởi một đồ thị có hướng, và các mũi tên chỉ từkiểu thực thể cha sang kiểu thực thể con
Trang 8Hình 3: Mô hình dữ liệu mạng
5.4 Mô hình dữ liệu quan hệ
Trong mô hình dữ liệu quan hệ, không có các liên kết vật lý Dữ liệu được biểu diễn dưới dạng bảng với các hàng và các cột: CSDL là tập hợp các bảng (còn gọi là quan hệ) Mỗi hàng là một bản ghi (record), còn được gọi là bộ (tuple) Mỗi cột là một thuộc tính, còn được gọi là trường (field)
Hình 4: Mô hình dữ liệu quan hệ
5.5 Mô hình dữ liệu phi quan hệ
Cơ sở dữ liệu phi quan hệ (thường được gọi là NoSQL database) là cơ sở dữ liệu không
Trang 9cần quy định trước cấu trúc, mỗi dữ liệu có thể có các trường thông tin khác nhau (lưu trữ cấutrúc khá giống với json) Cơ sở dữ liệu phi quan hệ thì không dùng ngôn ngữ truy vấn Một số cơ
sở dữ liệu phi quan hệ có thể kể đến như MongoDB, CouchDB…
Để quản lý các cơ sở dữ liệu này, ta sử dụng các hệ quản trị cơ sở dữ liệu hay còn gọi làDBMS (Database Management System) Các hệ quản trị này cung cấp cho chúng ta các tiện ích
để tương tác với cơ sở dữ liệu và hầu hết thời gian là chúng ta làm việc với DBMS để quản lý cơ
sở dữ liệu
Trong môn học Cơ sở dữ liệu trên đại học, chúng ta sẽ được học cơ sở dữ liệu quan hệ
Từ những kiến thức đó, chúng ta có thể dễ dàng tự học thêm cơ sở dữ liệu phi quan hệ, vì cơ sở
dữ liệu phi quan hệ thao tác dễ dàng hơn nhiều so với cơ sở dữ liệu quan hệ
Hình 5: Mô hình dữ liệu phi quan hệ
5.6 Mô hình dữ liệu hướng đối tượng
Mỗi đối tượng bao gồm các thuộc tính, phương thức (hành vi) của đối tượng Các đối tượng trao đổi với nhau thông qua các phương thức Một đối tượng có thể được sinh ra từ việc
Trang 10thừa kế từ đối tượng khác, nạp chồng (hay định nghĩa lại) phương thức của đối tượng khác…
Hình 6: Mô hình dữ liệu hướng đối tượng
6 Hệ quản trị CSDL
Các mô hình CSDL đề cập đến các hình thức tổ chức lưu trữ và truy cập dữ liệu Hệ quảntrị CSDL (DataBase Management System – DBMS) là các phần mềm giúp tạo các CSDL vàcung cấp cơ chế lưu trữ, truy cập theo các mô hình CSDL
Quản trị các CSDL và cung cấp giao diện truy cập để che dấu các đặc tính phức tạp vềmặt cấu trúc tổ chức dữ liệu vật lý Hỗ trợ các ngôn ngữ giao tiếp Ví dụ: Ngôn ngữ mô tả, địnhnghĩa dữ liệu – DDL Ngôn ngữ thao tác dữ liệu – DML Ngôn ngữ truy vấn dữ liệu có cấu trúc –SQL Có cơ chế an toàn, bảo mật cao
6.1 Chức năng của hệ quản trị CSDL
Bên cạnh việc tìm hiểu hệ quản trị cơ sở dữ liệu là gì thì việc nắm rõ các chức năng của
hệ quản trị cơ sở dữ liệu cũng rất quan trọng Cụ thể, một số chức năng điển hình như:
6.1.1 Chức năng quản lý Data Dictionary
Data Dictionary chính là nơi mà hệ quản trị cơ sở dữ liệu thực hiện lưu trữ những địnhnghĩa của các phần tử dữ liệu Ngoài ra, chúng còn lưu trữ cả các mối quan hệ của chúng –
Trang 11metadata DBMS sử dụng chức năng này nhằm tra cứu những cấu trúc cũng như mối quan hệgiữa những thành phần dữ liệu được yêu cầu trong khi những chương trình truy cập dữ liệu ởtrong hệ quản trị
Về cơ bản thì chúng sẽ đi qua DBMS và hàm này sẽ tiến hành loại bỏ những sự phục thuộc vềcấu trúc và cả dữ liệu Từ đó, hệ quản trị sẽ mang đến cho người dùng tính trừu tượng hóa các dữliệu Và chức năng này thường sẽ bị ẩn khỏi user và sẽ được sử dụng bởi những admin của hệquản trị cơ sở dữ liệu
6.1.2 Kiểm soát truy cập nhiều người dùng
Chức năng tiếp theo được nhắc đến chính là khả năng kiểm soát và truy cập nhiều ngườidùng Tính toàn vẹn cũng như sự nhất quán của dữ liệu Điều này sẽ cho phép nhiều người sửdụng có thể truy cập cơ sở dữ liệu trong cùng một lúc Chúng không làm ảnh hưởng đến tínhtoàn vẹn của cơ sở dữ liệu
6.1.3 Chức năng chuyển đổi và trình bày dữ liệu
Đây là một chức năng có thể chuyển đổi bất cứ dữ liệu nào khi được nhập vào cấu trúc
dữ liệu bắt buộc Thông qua việc sử dụng chức năng trình bày và biến chuyển đổi dữ liệu thì hệquản trị có thể xác định được sự khác biệt ở giữa những hai loại định dạng là: định dạng dữ liệulogic và physical
6.1.4 Chức năng quản lý tình toàn vẹn của dữ liệu
Ngôn ngữ truy vấn chính là một non procedural language Ví dụ cho chức năng này làSQL và là một ngôn ngữ truy vấn tương đối phổ biến và được rất nhiều nhà cung cấp DBMS hỗtrợ
Khi sử dụng ngôn ngữ đặc biệt này sẽ giúp cho người dùng có thể xác định được những việc mà
họ cần làm một cách dễ dàng nhất Bên cạnh đó, bạn cũng không cần phải đau đầu về việc giảithích những cách thực hiện cụ thể
6.1.5 Database Access Languages và giao diện lập trình dụng
Đây là cách mà một hệ quản trị cơ sở dữ liệu chấp nhận những yêu cầu khác nhau đến từngười dùng cuối Điều này sẽ được thực hiện thông qua những môi trường mạng khác nhau Ví
dụ như sau: DBMS có thể cung cấp cho người dùng quyền truy cập vào cơ sở dữ liệu thông quaInternet bằng trình duyệt web (có thể là Mozilla Firefox, Internet Explorer hay Netscape,…)
6.1.6 Chức năng quản lý về bảo mật
Đây là một chức năng cực kỳ quan trọng của hệ quản trị csdl Chức năng này sẽ giúp
Trang 12quản lý sự bảo mật và đặt ra các quy tắc nhằm xác định người dùng có thể truy cập vào cơ sở dữliệu đó hay không
Các người dùng sẽ được cấp username và cả password Một số trường hợp có thể thông quaviệc xác thực bằng sinh trắc học (bằng vân tay hoặc võng mạc) Tuy nhiên, những loại như thếnày thì sẽ có phần tốn kém hơn Chức năng này cũng có một số các hạn chế cụ thể mà bất cứngười dùng nào cũng có thể xem và quản lý
6.1.7 Quản lý Data Storage
Chức năng này sẽ được sử dụng với mục đích là lưu trữ dữ liệu cùng với các biểu mẫukhác có liên quan Cụ thể như: Định dạng báo cáo, các quy tắc về data validation, procedure code
và cả cấu trúc xử lý những định dạng video và hình ảnh
Người sử dụng sẽ không cần thiết phải biết dữ liệu sẽ được lưu trữ hoặc được thao tác thế nào
Có cùng liên quan đến cấu trúc này chính là một thuật ngữ có tên là Performance Tuning Chúng
có liên quan đến hiệu suất cơ sở dữ liệu cùng với tốc độ lưu trữ lẫn truy cập
6.1.8 Transaction Management
Hệ quản trị cơ sở dữ liệu sẽ cung cấp cho người dùng một phương thức Chúng sẽ đảmbảo được các cập nhật ở trong một transaction sẽ được thực hiện hoặc không Những Transaction
sẽ cần phải tuân theo các thuộc tính ACID
7 Các hệ quản trị CSDL nổi tiếng
Hình 7: Hệ quản trị CSDL MySQLĐược phát hành lần đầu tiên vào năm 1995 và MySQL đang được phát triển bởi tập đoànOracle, có thể nói MySQL là một trong những hệ quản trị cơ sở dữ liệu được sử dụng phổ biếnnhất hiện nay.MySQL được viết bởi ngôn ngữ C/C++ nên có hiệu năng cao, dễ sử dụng, có tínhkhả chuyển và hỗ trợ nhiều nền tảng hệ điều hành (Windows, Linux, MacOS).MySQL cũng
Trang 13tương thích với nhiều ngôn ngữ lập trình phổ biến như Java, Python, NodeJS…MySQL được xâydựng theo kiến trúc Client-Server, bao gồm một máy chủ đa luồng hỗ trợ nhiều máy khách khácnhau.
7.2 MariaDB
Hình 8: Hệ quản trị CSDL MySQLMariaDB thực chất là một nhánh được tách ra từ quá trình phát triển MySQL với mụcđích phi thương mại, có nghĩa là nó sẽ hoàn toàn miễn phí cho người sử dụng Cũng như MySQLthì MariaDB được viết bằng ngôn ngữ C/C++, Perl nhưng được tối ưu khá nhiều về mặt hiệunăng truy vấn dữ liệu Hiện tại thì MariaDB cũng hỗ trợ hầu hết các hệ điều hành phổ biến nhưWindows, Linux và MacOS…
Trang 147.4 MongoDB
Hình 10: Hệ quản trị CSDL MongoDB
Ở trên thì chúng ta đã đề cập đến 3 kiểu CƠ SỞ DỮ LIỆU CÓ QUAN HỆ, tiếp theo,chúng ta sẽ đến với MongoDB – đây là một hệ quản trị cở dữ liệu phi quan hệ (NoSQL) Hiện tạithì MongoDB cũng là một hệ quản trị cơ sở dữ liệu mã nguồn mở, tức là nó miễn phí MongoDBđược viết bằng nhiều ngôn ngữ lập trình khác nhau như C/C++, Go, JavaScript, Python và cũng
hỗ trợ trên hầu hết các nền tảng hệ điều hành (Windows, Linux, MacOS…) Đặc điểm của HỆQUẢN TRỊ DỮ LIỆU PHI QUAN HỆ là dữ liệu được lưu lại dưới dạng JSON (JavaScriptObject Notation) và gần như là các các bản ghi không nhất thiết phải giống nhau về cấu trúc
7.5 PostgreSQL
Hình 11: Hệ quản trị CSDL PostgreSQLTiếp tục với một hệ quản trị cơ sở dữ liệu có quan hệ mã nguồn mở đó là PostgreSQL.PostgreSQL được phát triển bởi khoa điện toán của trường đại học California tại Berkeley.PostgreSQL mở đầu nhiều khái niệm quan trọng cho các hệ quản trị cơ sở dữ liệu thương mạisau này mới có Được viết hoàn toàn bằng ngôn ngữ lập trình C nên tốc độ cũng như hiệu năngcủa PostgreSQL là rất tốt Đồng thời thì nó cũng hỗ trợ nhiều nền tảng như Windows, Linux,MacOS nên PostgreSQL đang ngày càng trở nên phổ biến hơn Với ưu điểm hỗ trợ nhiều truyvấn phức tạp thì PostgreSQL cũng đang là một ứng cử viên rất tiềm năng cho các hệ thống lớn
Trang 15sau này.
7.6 Microsoft SQL Server
Hình 12: Hệ quản trị CSDL Microsoft SQL Server
Là một hệ quản trị cơ sở dữ liệu quan hệ được xây dựng và phát triển bởi Microsoft, vớiphiên bản đầu tiên ra đời vào năm 1989 (SQL Server 1.0) đến nay đã là phiên bản SQL Server
2019, và cũng là phiên bản ổn định nhất Microsoft SQL Server được viết bằng ngôn ngữ C/C++nên hiệu năng cũng như tốc độ truy vấn rất tốt Ban đầu thì Microsoft SQL Server chỉ hỗ trợ hệđiều hành Windows, nhưng sau này nó đã được phát triển để hỗ trợ trên hầu hết các nền tảng hệđiều hành Linux và MacOS Tuy không phải là một hệ quản trị dữ liệu mã nguồn mở, songMicrosoft SQL được đánh giá khá cao là “tiền nào của nấy”
7.7 Redis
Hình 13: Hệ quản trị CSDL RedisRedis (viết tắt của cụm từ REmote DIctionary Server) là một mã nguồn mở được sử dụng
để lưu trữ dữ liệu có cấu trúc, có thể được sử dụng như một Database, bộ nhớ cache hoặc là mộtMessage Broker Redis lưu trữ dữ liệu dưới dạng Key-Value, hỗ trợ việc sắp xếp, query, backup
dữ liệu lên đĩa cứng để cho phép bạn có thể khôi phục hệ thống khi gặp sự cố Một vài kiểu dữliệu trong Redis như String, List, Set, Hash… Có thể nói Redis là một sự lựa chọn tuyệt vời khicần đến một Server lưu trữ dữ liệu đòi hỏi tính mở rộng cao, chia sẻ nhiều tiến trình, nhiều ứngdụng và nhiều server khác nhau
Trang 167.8 Elasticsearch
Hình 14: Hệ quản trị CSDL ElasticsearchChính xác thì Elasticsearch là một công cụ tìm kiếm mã nguồn mở Elasticsearch cungcấp bộ máy tìm kiếm dạng phân tán, có đầy đủ công cụ với giao diện web HTTP hỗ trợ dữ liệukiểu JSON Elasticsearch được viết bằng ngôn ngữ lập trình Java và nó được ra đời vào năm
2016 Hiện tại thì Elasticsearch hỗ trợ hầu hết các hệ điều hành Window, Linux, MacOS
7.9 Firebase
Hình 15: Hệ quản trị CSDL FirebaseĐược xây dựng và phát triển bởi Google, Firebase là một dịch vụ cơ sở dữ liệu dựa trênnền tảng công nghệ điện toán đám mây Sự ra đời của Firebase với mục đích hỗ trợ cho các lậptrình giảm thiểu thao tác với cơ sở dữ liệu, từ đó tập trung vào việc phát triển ứng dụng hơn Với
hệ thống server mạnh mẽ, sự tiện lợi cũng như việc bảo mật cực tốt đã giúp Firebase trở thành
Trang 17một trong những cái tên được nhiều nhà phát triển lựa chọn để xây dựng các hệ thống lớn.
7.10 SQLite
Hình 16: Hệ quản trị CSDL SQLiteSQLite là một hệ thống cơ sở dữ liệu quan hệ nhỏ, nó có đặc điểm là có thể tích hợp vàobên trong các trình ứng dụng khác SQLite được viết và phát triển bởi D Richard Hipp sử dụngngôn ngữ lập trình C, với mục đích không cần yêu cầu quản trị cơ sở dữ liệu mà vẫn có thể vậnhành ứng dụng Chúng ta có thể liên kết SQLite tĩnh hoặc động tới ứng dụng, chỉ khoảng 400KBvới cấu hình đầy đủ hoặc 259KB nếu bỏ qua một số tính năng tùy chọn thì SQLite thực sự rấtnhẹ để tích hợp vào ứng dụng
Trang 18Chương 2 Kỹ thuật kiểm thử Cơ sở dữ liệu
1 Khái niệm
Database Testing – Kiểm thử cơ sở dữ liệu là một loại kiểm thử phần mềm nhằm mụcđích kiểm tra các bảng, lược đồ quan hệ của Cơ sở dữ liệu (Database) Nó cũng kiểm tra tínhtoà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 thông thường và bất thường [3]
2 Tầm quan trọng của Database Testing
Kiểm thử Database đặc biệt quan trọng bởi các nguyên nhân sau đây:
Dữ liệu là phần quan trọng trong bất kì ứng dụng phần mềm nào [3]
Phần mềm càng nhiều chức năng, thiết kế cơ sở dữ liệu càng phức tạp, điều đó dẫn đếncàng dễ phát sinh các lỗi không mong muốn trong quá trình phát triển phần mềm [3]Chỉ cần một sự cố nhỏ trong database, hệ thống có thể chạy lỗi [3]
Đảm bảo dữ liệu đầu vào được kiểm soát và lưu trữ hợp lệ trong Database [3]Ngăn cản việc truy cập trái phép vào Database [3]
3 Mục tiêu của việc kiểm thử Database
Đảm bảo tính thống nhất của dữ liệu(Data mapping) [3]
Đảm bảo các thuộc tính ACID (ACID properties): Atomicity ( tính bảo toàn),Consistancy ( tính nhất quán), Isolation (tính độc lập), Durability ( tính bền vững) [3]Đảm bảo tính toàn vẹn dữ liệu (Data Integrity) [3]
Đảm bảo tuân thủ quy tắc kinh doanh (Bussiness rule conformity) [3]
4 Quy trình kiểm thử Database
Nhìn chung, quy trình kiểm thử database bao gồm các bước như sau: [3]
Bước 1: Xây dựng môi trường kiểm thử
Bước 2: Xây dựng kịch bản kiểm thử
Bước 3: Thực thi kiểm thử theo kịch bản
Bước 4: Kiểm tra và xác nhận kết quả kiểm thử
Bước 5: Báo cáo kết quả