Báo cáo đề tài DATABASE TEST VÀ HELP TEST Xử lý, thao tác trên CSDL CSDL quan hệ và ngôn ngữ truy vấn dữ liệu Phương pháp kiểm chứng CSDL Phân tích hệ thống trợ giúp Phương pháp kiểm chứng trợ giúp Một số lưu ý khi kiểm chứng trợ giúp Database và các quá trình xử lý dữ liệu. Các thao tác trên cơ sở dữ liệu. Cơ sở dữ liệu quan hệ. Ngôn ngữ truy vấn dữ liệu. Tính năng mở rộng của cơ sở dữ liệu. Ví dụ minh họa.
Trang 1DATABASE TEST VÀ
HELP TEST
Giảng viên: Nguyễn Đăng Khoa
Sinh viên thực hiện:
Trang 2Nội dung
2
Phân tích hệ thống trợ giúp
Phương pháp kiểm chứng trợ giúp
Một số lưu ý khi kiểm chứng trợ giúp
Trang 3DATABASE TEST
Database và các quá trình xử lý dữ liệu.
Các thao tác trên cơ sở dữ liệu.
Cơ sở dữ liệu quan hệ.
Ngôn ngữ truy vấn dữ liệu.
Tính năng mở rộng của cơ sở dữ liệu.
Ví dụ minh họa.
3
Trang 4DATABASE TEST
Database và các quá trình sử lý dữ liệu.
Database test: bao gồm việc kiểm tra độ chính xác, tính
đúng đắn, tính toàn vẹn của cơ sở dữ liệu.
Kho dữ liệu.
Cơ sở dữ liệu cục bộ.
Kho dữ liệu tổng hợp dữ liệu từ nhiều cơ sở dữ liệu cục
bộ Dữ liệu cục bộ cấu trúc theo từng nhóm công việc được định trước
Các quá trình sử lý dữ liệu
Online transaction processing.(OLTP)
Online analytical processing.(OLAP)
4
Trang 5 Tập hợp dữ liệu từ CSDL này sang cơ sở dữ liệu khác.
Các dữ liệu gửi đến CSDL khác có thể đã được tính toán hoặc giữ nguyên.
5
Trang 6DATABASE TEST
6
Trang 7DATABASE TEST
Cơ sở dữ liệu quan hệ
Hệ thống ngôn ngữ truy vấn dữ liệu (update, insert, select…)
Hệ thống quan hệ để có thể truy cập dữ liệu mạnh mẽ (primary key, foreign key)
Tính năng mở rộng của cơ sở dữ liệu
Thủ tục lưu trữ: Là tập các câu lệnh truy vấn được nhóm
lại để thực thi một công việc nào đó.
Trigger: Là một đối tượng gắn liền với một bảng và được
tự động kích hoạt khi có các thay đổi dữ liệu trên bảng.
7
Trang 8DATABASE TEST
Lưu trữ dữ liệu
Các quy tắc: Là các quy định về việc nhập dữ liệu
vào các bảng, các cột trong cơ sở dữ liệu
Giá trị mặc đinh: Khi dữ liệu nhập vào cơ sở dữ
liệu không rõ ràng thì giá trị mặc định sẽ được sử dụng
8
Trang 9Create Procedure tên_thủ_tục [danh_sách_các_biến]
Create Trigger tên_trigger
On tên_bảng For { [insert],[delete],[update] }
9
Trang 10DATABASE TEST
Ví dụ:
Tạo môt bảng STAFF.
CREATE TABLE staff (id INT, city CHAR(20), state CHAR(2), salary
INT, name CHAR(20))
Thêm dữ liệu vào bảng.
INSERT INTO staff (id, city, state, salary, name) VALUES
(13, ‘Phoenix’, ‘AZ’, 33000, ‘Bill’)
INSERT INTO staff (id, city, state, salary, name) VALUES
(44, ‘Denver’, ‘CO’, 40000, ‘Bob’)
INSERT INTO staff (id, city, state, salary, name) VALUES
(66, ‘Los Angeles’, ‘CA’, 47000, ‘Mary’)
10
Trang 11DATABASE TEST
Ví dụ:
Thêm dữ liệu bằng cách tạo procedure.
CREATE PROCEDURE add_staff (@P1 INT, @P2 CHAR(20),
@P3 CHAR(2), @P4 INT, @P5 CHAR(20))
AS INSERT INTO staff VALUES (@P1, @P2, @P3, @P4, @P5)
add_staff 13, ‘Phoenix’, ‘AZ’, 33000, ‘Bill’
add_staff 66, ‘Los Angeles’, ‘CA’, 47000, ‘Mary’
11
Trang 12DATABASE TEST
Ví dụ:
Hiển thị toàn bộ dữ liệu bảng.
SELECT * FROM STAFF
Truy vấn bằng Procedure
CREATE PROCEDURE all_staff
AS SELECT * FROM staff
Truy vấn theo điều kiện salary > 3500.
SELECT * FROM staff WHER salary>3500
Truy vấn hiển thị id, city với điều kiện salary
>3500.
SELECT id,city FROM staff WHERE salary>3500
12
Trang 13CREATE RULE salary_rule
AS @salary_type > 1000 and @salary_type < 6500 GO
13
Trang 14Các phương pháp kiểm chứng
Lỗi có thể xảy ra ở một số điểm tương tác: các tập lệnh, các chương trình máy khách; các tập lệnh, các chương trình máy chủ; các dịch vụ truy cập csdl; các
dữ liệu được lưu trữ,…
=> Việc kiểm tra có thể và nên được áp dụng tại các điểm đó
14
Trang 15Các loại lỗi thường gặp
Hai lớp phổ biến của các vấn đề được gây ra bởi các lỗi cơ sở dữ liệu là lỗi toàn vẹn dữ liệu
và lỗi output.
Ở cấp độ programing, một lỗi về toàn vẹn dữ liệu là lỗi bất kì gây ra các kết quả sai lệch được lưu trữ Dưới góc độ người dùng, điều này có nghĩa chúng ta có thể có dữ liệu bị mất hoặc không chính xác hoặc đã lỗi thời vì nó không được cập nhật đúng cách.
15
Trang 16Các loại lỗi thường gặp
Lỗi output được gây ra bởi một số lỗi trong việc lấy dữ liệu và thực hiện các lệnh thao tác, mặc dù dữ liệu nguồn là chính xác
Từ góc độ người dùng, các dấu hiệu nhìn thấy trong lỗi output có thể tương tự như lỗi toàn vẹn dữ liệu => thách thức đối với kiểm chứng hộp đen.
Sai sót trong các hoạt động csdl sẽ dẫn đến
lỗi toàn vẹn dữ liệu , lỗi output hoặc cả hai
16
Trang 17Các loại lỗi thường gặp
một số lỗi phổ biến trong các hoạt động csdl gồm:
thất bại trong việc tạo csdl
thất bại trong kết nối csdl
sai sót trong các lệnh thao tác với csdl(thủ tục lưu trữ, trigger,…)
17
Trang 19Ví dụ lỗi coding dư thừa
Một ví dụ đơn giản về lỗi dư thừa trong mã ASP:
Set RS = Conn.Execute (“Select * from STAFF”)
If NOT RS.EOF Then
Do while Not RS.EOF
…
Loop End If
Câu lệnh if này
không cần thiết
19
Trang 20Ví dụ lỗi coding kém hiệu quả
Dữ liệu sử dụng được lấy từ bảng nhân viên:
Giả sử ứng dụng cung cấp hai cách view trên trình duyệt web như sau:
20
Trang 21Ví dụ lỗi coding kém hiệu quả
View toàn bộ các trường và record:
View một phần(không hiển thị trường CITY):
21
Trang 22Ví dụ lỗi coding kém hiệu quả
Cả hai cách view, ứng dụng đều dùng câu lệnh truy vấn :
SELECT * FROM staff
Thay vì ở cách thứ hai nên dùng câu lệnh :
SELECT id, state, salary, name FROM staff
=> Lỗi không hiệu quả
22
Trang 23Thực hiện tuần tự các câu lệnh SQL
Unit Test so kết quả với kết quả mong đợi dễ dàng sửa lỗi
Tẻ nhạt + tốn công sức
Table
Store procedure: add_staff
23
Trang 24Thực hiện test lần lượt các store procedure
Test store procedure test Function
Phân tích các dữ liệu đầu vào, các ràng buộc và kết quả trả về của store procedure
tạo ra bộ test case thích hợp
Test case phải bao gồm cả trường hợp dữ liệu đầu vào hợp lệ và cả không hợp lệ.
Test so sánh kết quả thu được với kết quả dự kiến
24
Trang 25Ví dụ: Đầu vào hợp lệ
add_staff 13, ‘San Francisco’, ‘CA’, 33000, ‘Joe’
25
Trang 26Ví dụ: Đầu vào không hợp lệ
add_staff 13, ‘San Francisco’, ‘CA’, 33000, ‘Mary’s’
add_staff 14, ‘San Francisco’, ‘CA’, 33000, ‘Mary’’s’
26
Trang 27Ví dụ: thông số vào vượt quá miền giá trị quy định
add_staff 15, ‘Albany’, ‘New York’, 33000,
‘John’
“New York” bị rút gọn, trở thành “NE” (Nebraska).
Giới hạn chỉ 2 ký tự cho trường state
• Client-side: javascripte
• Server – side: PHP, ASP, Perl,…
Truyền sai đầu vào:
add_staff 15, ‘Albany’, ‘New York’, 33,000 , ‘John’
Không xử lý việc dùng dấu , trong số thập phân
add_staff 15, ‘Albany’, ‘New York’, ‘33,000’ , ‘John’
Truyền sai kiểu dữ liệu
27
Trang 28Testing Triggers
Xác định tất cả các trigger, phân tích và hiểu rõ điều kiện xảy ra trigger
Mục tiêu của việc Test trigger phải bao gồm:
• Store procedure hoặc trigger có đáp ứng được mục tiêu thiết kế?
• Mỗi câu lệnh điều kiện, việc xử lý có đúng?
• Input xác định trước, Output có như dự kiến?
• Xảy ra lỗi, trigger có phát hiện và xử lý một cách hợp lý chưa?
Thực hiện khi sự kiện nhất định xảy ra, chẳng
hạn như INSERT, DELETE và UPDATE
28
Trang 29Giao diện bên ngoài (External Interfacing )
Application (web-base)(C++, Visual Basic, JSP, ASP…)
29
Trang 30result validatewith expected result
Kiến thức SQL xây dựng bộ test có input không hợp lệ hoặc có khả năng gây ra lỗi (string có dấu ‘, vượt quá
miền giá trị,…)
Kiểm tra tương tác giữa SQL và thành phần khác (scripts)
Kiểm tra hợp lệ input, output và xử lý lỗi phải thực hiện ngoài procedure
30
Trang 31Testing Transaction Logic
Atomic actions: thực hiện như một hành động đơn lẻ (single action).
Mua hàng:
Hàng tồn kho giảm số lượng
Cập nhật lần mua hàng trong bảng khách hàng
Hóa đơn thanh toán cần được cập nhật
Cần phải test tất cả các transaction có thể xảy ra
Test điều kiện tiên quyết để thực hiện transactionĐăng
31
Trang 32Testing việc truy cập đồng thời
Giảm lượng hàng trong kho
Đặt hàng
Dead lock
Dữ liệu sai sót
32
Trang 33Chuẩn bị database cho testing
Tạo và liệt kê database tables, store procedures,
triggers Tạo lược đồ dữ liệu cho các bảng
Trường có thể NULL; có những ràng buộc nào; giá trị trong trường có phụ thuộc vào dữ liệu bảng khác; khóa chính, khóa ngoại, quan hệ giữa các bảng…
Phân tích các trigger, store procedure, default,…
Đọc dữ liệu hay lưu mới dữ liệu, hay cả hai; những thông số hợp lệ; giá trị trả về; store procedure gọi khi nào, bởi ai;
trigger kích hoạt khi nào…
Quản lý tiến trình cấu hình: thêm bảng, thêm (xóa,
sửa) trigger, procedure….
33
Trang 34 Dữ liệu gửi tới server có thể mất mát do mạng chậm
Hết bộ nhớ (hard disk) để lưu trữ database trong server
Local browser caching and Web server caching có thể gây ra lỗi trong việc tương tác giữa application với
database server
Vấn đề cần xem xét khi testing database
Hỗ trợ nhiều HĐH, Web server, database server, application server, and browsers
Testing Web application từ nhiều nước khác nhau với nhiều trình duyệt (ngôn ngữ) khác nhau
34
Trang 36PHÂN TÍCH HỆ THỐNG TRỢ GIÚP:
Trước khi kiểm chứng hệ thống hỗ trợ trực tuyến, cần phải hiểu được mục đích, chức năng của hệ thống, phương pháp thiết kế, công nghệ được dùng, và các lỗi tiểm ẩn
36
Trang 37THẨM ĐỊNH PHƯƠNG PHÁP THIẾT KẾ
Thẩm định thiết kế hệ thống cần nhiều người tham gia kiểm chứng Kiểm tra tất cả các khả năng có thể xảy ra khi đưa hệ thống vào hoạt động Yêu cầu giao diện dễ nhìn, dễ hiểu, đẹp
Trang 38Đơn cấp & Đa cấp
TÌM KIẾM : Tìm kiếm, kết hợp liên kết, sở thích.
Trang 39Các vấn đề cần sự nhất quán khi kiểm chứng: Cấu trúc,
các liên kết, thuật ngữ, phông chữ, định dạng văn bản, đồ họa,…
39
Trang 40NỘI DUNG CỦA HỆ THỐNG: Kiểm tra tính chính
xác của thông tin, lỗi chính tả và những thiếu xót của thông tin
NHỮNG LỖI LIÊN QUAN ĐẾN KĨ THUẬT: Hiệu suất
hoạt động và khả năng tương thích với phần mềm khác
LỖI CHỨC NĂNG: Đảm bảo mọi chức năng hoạt
động ổn định: Từ khóa, phím chức năng, các liên kết,…
NHỮNG CÂN NHẮC KHI KIỂM CHỨNG
ÁP DỤNG VÀO HỆ THỐNG: Cần tìm phương pháp
trợ giúp hiệu quả nhất, thông tin chính xác và đầy đủ cho mọi tình huống, giao diện hợp mắt nhất
40
Trang 41TÀI LIỆU THAM KHẢO CỦA HỆ THỐNG: Kiểm tra
các liên kết và cơ sở dữ liệu của liên kết Kiểm tra tính trực quan của tài liệu và tính tương thích với người dùng
HƯỚNG DẪN CỦA HỆ THỐNG: Phương pháp
khách hàng tìm kiếm thông tin nhanh nhất và phản hồi thông tin chính xác, hiệu quả
HỆ THỐNG TRỢ GIÚP BÁN HÀNG VÀ QUẢNG
CÁO: Thể hiện tối ưu chức năng và hoạt động với nhiều
đời máy của khách hàng
41
Trang 42ĐIỀU KIỆN VỀ MÔI TRƯỜNG KIỂM CHỨNG
Hệ thống mạng yêu cầu cao đối với cấu hình máy: Tương thích với hệ điều hành, đồ họa màn hình phù hợp và đủ trình duyệt yêu cầu
Yêu cầu với môi trường kiểm chứng:
Kiểm chứng trên môi trường đa nhiệm: Windows, Mac, Unix
Yêu cầu đồ họa mức phổ biến
Màn hình màu (ví dụ màn hình 16.8 triệu màu, hiển thị bảng mẫu 16 màu)
Màn hình có thể điều chỉnh độ phân giải
42