§¹i häc Quèc gia Hμ néi - §¹i häc c«ng nghÖ
Bé m«n C«ng nghÖ phÇn mÒm
BÀI GiẢNG
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
VÀ KiỂM THỬ
NguyÔn V¨n Vy
Email:
[email protected], mobile: 0912.505.291
Hà nội - 2005
Phần III
NguyÔn V¨n Vþ
THẨM ĐỊNH VÀ XÁC MINH
2005
Bộ môn CNFM – Đại học Công nghệ
2
Nội dung – Tài liệu
NguyÔn V¨n Vþ
Các loại kiểm thử
Thẩm định và xác minh
Roger S. Pressman. Software Engineering, a Practitioner’s
Approach. 3th Edition, McGraw-Hill, 1992, Bản dich của Ngô
Trung vIệt, Phần 4, tập 4 (Chương 17, 18, 23 –bản 2001)
Ian Sommerville. Software Engineering, Sixth Edition, Addion
Wesley, 2001, Phần 5 và 6. chương 20
E.M.Bennatan, Software Project Management : a practitioner’s
approach, McGRAW-HILL Book Company, 2001
Nguyễn Văn Vỵ, Nguyễn Việt Hà. Giáo trình kỹ nghệ phần mềm,
Đại học Công nghệ, ĐHQGHN, 2006.
2005
Bộ môn CNFM – Đại học Công nghệ
3
g. Kiểm thử hệ thống
NguyÔn V¨n Vþ
g1. Khái niệm kiểm thử hệ thống
Hệ thống dựa trên máy tính do nhiều bên xây dựng,
người phát triển phần mềm chỉ là một
Việc kiểm thử hệ thống dễ có nguy cơ các bên tham gia
“đổ lỗi cho nhau”.
Những sai có thể nảy sinh từ:
• Các dữ liệu qua giao diện của các thành phần được
kiểm thử
• Đường xử lý liên kết các thành phần
• Sự tích hợp lỗi từ các thành phần khác nhau
• Những hạn chế khác đến năng lực do ảnh hưởng từ các
thành phân: chịu lỗi, an toàn, thực thi
2005
Bộ môn CNFM – Đại học Công nghệ
4
g1. Khái niệm về kiểm thử hệ thống
NguyÔn V¨n Vþ
Yêu cầu đặt ra:
•
•
•
•
2005
mô phỏng các dữ liệu xấu & các sai tiềm tàng tại giao
diện phần mềm.
Kiểm thử kết quả của mỗi đường liên kết
Báo cáo các kết quả kiểm thử phân định từng phần, từng
loại làm chứng cứ phòng ngừa đổ lỗi cho nhau.
Việc hoạch định và thiết kế các ca kiểm thử hệ thống
theo những cách nhìn khác nhau sao cho bảo đảm phần
mềm được kiểm thử đầy đủ, chính xác các loại yêu cầu
Bộ môn CNFM – Đại học Công nghệ
5
g2. Mô hình kiểm thử hệ thống
NguyÔn V¨n Vþ
Phóng đại
sai?
Dữ liệu qua giao
diện có thể sai, gây
sai, phóng đại sai
Gây sai?
sai?
2005
sai?
Bộ môn CNFM – Đại học Công nghệ
6
g3. Các loại kiểm thử hệ thống
NguyÔn V¨n Vþ
1. Kiểm thử chức năng (mức hệ thống)
2. Kiểm thử phục hồi (chịu lỗi)
3. Kiểm thử an ninh (sức chịu tấn công)
4. Kiểm thử thi hành (thông suốt, kịp thời)
5. Kiểm thử chịu tải (qui mô, giá trị nhạy cảm)
2005
Bộ môn CNFM – Đại học Công nghệ
7
g4. Kiểm thử chức năng mức hệ thống
NguyÔn V¨n Vþ
Chức năng mức hệ thống bao gồm các chức
năng giao diện, các chức năng mức người
dùng hay đầu ra cuối cùng khỏi hệ thống
Các chức năng này thường mang tính tích hợp.
Nên sau khi phát hiện sai phải quay lại kiểm
thử từng phần cấu thành trước nó
Các giao diện (người dùng, hệ thống) được
xem như điểm phân định giữa các phần để
kiểm thử
2005
Bộ môn CNFM – Đại học Công nghệ
8
g4. Kiểm thử phục hồi
NguyÔn V¨n Vþ
Nhiều hệ thống cần phải phục hồi sau lỗi, để tiếp tục
xử lý trong một thời gian đã đặc tả trước, có thể:
hệ thống cần thứ lỗi: nghĩa là xử lý lỗi bắt buộc không
được làm ngừng hoạt động của toàn hệ thống.
lỗi phải được khắc phục dần theo chu kỳ đã đặc tả.
kiểm thử phục hồi là bắt phần mềm phải thất bại để
xem khả năng phục hồi của nó đến đâu.
Độ tin cây là một độ đo đánh giá khả năng phục hồi
2005
Bộ môn CNFM – Đại học Công nghệ
9
g4. Kiểm thử phục hồi
NguyÔn V¨n Vþ
Có 2 cách phục hồi:
Phục hồi tự động: bằng khởi động lại (cơ chế
checkpoint). Sau khi phục hồi dữ liệu, hệ thống tự tiếp
tục hay khởi động lại thì được đánh giá là đúng đắn.
Phục hồi có sự can thiệp của con người. Lúc này cần
đánh giá thời gian trung bình để sửa chữa trong giới
hạn cho phép hay không?
2005
Bộ môn CNFM – Đại học Công nghệ
10
g5. Kiểm thử an ninh
NguyÔn V¨n Vþ
Là kiểm tra mọi cơ chế bảo vệ được xây dựng trong
hệ thống xem có đạt hiệu quả đề ra trước các đột
nhập hay không?
Xét tất cả các loại đột nhập có thể “trước mặt”,
“ngang xườn” và “sau lưng”.
Khi thử nghiệm an ninh, người kiểm thử sẽ đóng vai
trò của kẻ đột nhập.
2005
Bộ môn CNFM – Đại học Công nghệ
11
g5. Kiểm thử an ninh
NguyÔn V¨n Vþ
Về nguyên tắc: Mọi đột nhập là có thể nếu đủ thời gian
và nguồn lực.
Bài toán thiết kế hệ thống an ninh đặt ra là:
làm cho việc đột nhập tốn phí nhiều hơn giá trị thu
được do đột nhập
Công sức bỏ ra xây dựng công cụ bảo vệ phải ít
hơn giá trị mất đi nếu bị đột nhập
Chi phí công cụ bảo vệ < lợi ich do bảo vệ khỏi đột nhập
Chi phí để đột nhập > lợi ích thu được từ đột nhập
2005
Bộ môn CNFM – Đại học Công nghệ
12
g6. Kiểm thử chịu tải
NguyÔn V¨n Vþ
Các kỹ thuật hộp trắng và hộp đen được dùng để đánh
giá chức năng và sự thi hành của chương trình ở mức
bình thường.
Kiểm thử chịu tải là vận hành hệ thống khi sử dụng
nguồn lực với số lượng, tần suất và cường độ dị
thường.
Một loại khác của thử nghiệm áp lực là kiểm thử độ
nhạy: cố gắng làm bộc lộ các tổ hợp dữ liệu (lớp dữ
liệu vào có hiệu lực) hay sự kiện mà có thể gây ra việc
xử lý không ổn định hoặc không chính xác.
2005
Bộ môn CNFM – Đại học Công nghệ
13
g7. Kiểm thử thi hành
NguyÔn V¨n Vþ
Với hệ nhúng & hệ thời gian thực, phần mềm cung
cấp chức năng nhưng không phù hợp với các yêu cầu
thi hành đều là không chấp nhận được.
kiểm thử thi hành được thiết kế để kiểm thử việc vận
hành (run-time) của phần mềm khi hệ thống được tích
hợp.
kiểm thử thi hành xuất hiện trong tất cả các bước của
quá trình kiểm thử, tuy nhiên chỉ khi tất cả các phần tử
của hệ thống đã được tích hợp thì kiểm thử mới thực
sự là chắc chắn.
Việc thi hành đúng bao gồm cả số lượng, chất lượng
(hoạt động và hiệu năng)
2005
Bộ môn CNFM – Đại học Công nghệ
14
g7. Kiểm thử thi hành
NguyÔn V¨n Vþ
Thường gắn liền với kiểm thử áp lực vì cả hai thường
đòi hỏi các dụng cụ phần cứng và phần mềm chuyên
dụng. Vì cần đo sự tổng hợp nguồn lực (trong, ngoài)
và Nhờ dụng cụ ngoại lai để giám sát các khoảng vận
hành, các sự kiện ngắt (log) khi nó xuất hiện, có thể
lấy mẫu các trạng thái máy.
Có thể làm bộc lộ các tình thế dẫn đến sự suy giảm
hiệu năng hoặc thất bại hệ thống tiềm ẩn.
2005
Bộ môn CNFM – Đại học Công nghệ
15
h. Kiểm thử chấp nhận- thẩm định
NguyÔn V¨n Vþ
h1. Khái niệm kiểm thử chấp nhận
Kết thúc kiểm thử tích hợp, phần mềm đã được lắp
ráp trong một gói, các sai giao diện đã chỉnh sửa,
Các kiểm thử cuối cùng bắt đầu - kiểm thử chấp
nhận hay thẩm định (acceptation/validation testing)
Thẩm định là thắng lợi nếu các chức năng phần mềm
ở một chừng mức nào đó là thoả mãn sự mong đợi
hợp lý của người đặt hàng
Mục tiêu thẩm định: xem phần mềm có đáp ứng được
yêu cầu khách hàng không?
2005
Bộ môn CNFM – Đại học Công nghệ
16
h1. Khái niệm kiểm thử chấp nhận
NguyÔn V¨n Vþ
Cái “mong đợi hợp lý” của khách hàng thể hiện:
•
Trong Đặc tả yêu cầu phần mềm bao gồm cả mô tả được
gọi là tiêu chuẩn kiểm thử phần mềm
•
Thông qua đánh giá trực tiếp khi sử dụng
Thẩm định phần mềm được thực hiện thông qua một
loạt các kiểm thử hộp đen để thuyết minh sự phù
hợp của nó với các yêu cầu.
2005
Bộ môn CNFM – Đại học Công nghệ
17
h1. Khái niệm kiểm thử chấp nhận
NguyÔn V¨n Vþ
Một kế hoạch phác ra những lớp kiểm thử cần tiến
hành và một thủ tục kiểm thử xác định các ca kiểm
thử sẽ thực hiện để thuyết minh sự phù hợp với các
yêu cầu.
Cả kế hoạch & thủ tục được thiết kế để bảo đảm rằng:
Tất cả các yêu cầu được thoả mãn,
Các yêu cầu thi hành đã chính xác,
Tài liệu đúng đắn và
Các yêu cầu khác là thoả đáng.
2005
Bộ môn CNFM – Đại học Công nghệ
18
h2. Tiêu chuẩn kiểm thử thẩm định
NguyÔn V¨n Vþ
Sau mỗi ca kiểm thử, phần mềm ở vào một trong hai
trường hợp sau:
Các đặc tính chức năng hoặc sự thực hiện phù
hợp với đặc tả và được chấp nhận.
Các lệch lạc so với đặc tả và mong đợi được phát
hiện và một danh sách các khiếm khuyết được tạo
ra.
Các sai sót không chỉnh sửa trong giai đoạn này.
Thường phải thảo luận lại với khách hàng để thiết
lập một phương pháp giải quyết các sai lệch này.
2005
Bộ môn CNFM – Đại học Công nghệ
19
h3. Kiểm thử Alpha và Beta
NguyÔn V¨n Vþ
Người phát triển không thể đoán trước được khách
hàng thực sự dùng một chương trình như thế nào:
Các chỉ dẫn sử dụng có thể bị hiểu lầm.
Các tổ hợp dữ liệu lạ có thể bị sử dụng định kỳ.
Đầu ra là rõ ràng đối với người kiểm thử nhưng
có thể lại khó hiểu đối với người dùng.
2005
Bộ môn CNFM – Đại học Công nghệ
20