§¹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 CAO HOC
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
VÀ KiỂM THỦ
NguyÔn V¨n Vþ
Email:
[email protected], mobile: 0912.505.291
Hà nội - 2005
Phần II
Nguyễn Văn Vỵ
KIỂM THỬ PHẦN MỀM
2005
Bộ môn CNFM – Đại học Công nghệ
2
Nội dung – Tài liệu
Nguyễn Văn Vỵ
Khái niệm kiểm thử
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
2005
Bộ môn CNFM – Đại học Công nghệ
3
A. Khái niệm về kiểm thử phần mềm
Nguyễn Văn Vỵ
Kiểm thử FM là yếu tố quyết định của SQA, là khâu
điển hình của rà soát đặc tả, thiết kế, lập mã.
kiểm thử theo Glen Myers: Là quá trình vận hành
chương trình để tìm ra lỗi.
Cần vận hành như thế nào để:
hiệu suất tìm ra lỗi là cao nhất ?
chí phí (thời gian, công sức) ít nhất?
Câu hỏi: Lý do? Vai trò? Mục tiêu? Quan niệm? Lợi
ích khác? Loại-mức? Dòng thông tin? Tiến trình ?
2005
Bộ môn CNFM – Đại học Công nghệ
4
a. Lý do kiểm thử phần mềm
Nguyễn Văn Vỵ
Muốn nhìn thấy phần mềm như một phần tử của
hệ thống hoạt động (xem sản phẩm)
Hạn chế chi phí cho các thất bại do lỗi gây ra sau
này (hiệu quả)
Có kế hoạch tốt nâng cao chất lượng suốt quá
trình phát triển (giải pháp).
2005
Bộ môn CNFM – Đại học Công nghệ
5
b.Vai trò kiểm thử phần mềm
Nguyễn Văn Vỵ
Chi phí của kiểm thử chiếm:
40%
tổng công sức phát triển
≥ 30% tổng thời gian phát triển
Với các phần mềm có ảnh hưởng tới sinh mạng, chi
phí có thể gấp từ 3 đến 5 lần tổng các chi phí khác
cộng lại.
Kiếm thử tốt sẽ:
Giảm chi phí phát triển
Tăng độ tin cậy của sản phẩm phần mềm
2005
Bộ môn CNFM – Đại học Công nghệ
6
c. Mục tiêu kiểm thử phần mềm
Nguyễn Văn Vỵ
Mục tiêu trước mắt: tạo ra các ca kiểm thử để
chỉ ra lỗi của phần mềm (tức là “đánh đổ” phần
mềm)
Nghe ra có vẻ mang tính “phá hoại”,
những vấn đề về tâm lý.
dễ gây ra
Mục đích cuối cùng: có một chương trình tốt, chi
phí ít
xây dựng
2005
Bộ môn CNFM – Đại học Công nghệ
7
d. Quan niệm về một kiểm thử tốt
Nguyễn Văn Vỵ
Khi kiểm thử, ta tiến hành những ca kiểm thử
khác nhau:
Ca kiểm thử tốt có xác suất cao tìm ra một lỗi chưa
được phát hiện.
Ca kiểm thử thắng lợi làm lộ ra ít nhất một lỗi còn
chưa được phát hiện.
2005
Bộ môn CNFM – Đại học Công nghệ
8
e. Lợi ích khác của kiểm thử
Nguyễn Văn Vỵ
Ca kiểm thử thắng lợi làm lộ ra khiếm khuyết, đồng
thời mang lại các lợi ích phụ là thuyết minh:
Chức năng tương ứng với đặc tả (xác minh),
Thực thi phù hợp yêu cầu & đặc tả (thẩm định, xác
minh)
Cung cấp các chỉ số độ tin cậy & chất lượng
(thẩm định).
Tuy nhiên, kiểm thử không thể khẳng định rằng phần
mềm không có khiếm khuyết
2005
Bộ môn CNFM – Đại học Công nghệ
9
g. Mô hình chữ V - Các mức kiểm thử
Nguyễn Văn Vỵ
Phân tích
yêu cầu
test chấp
nhận
Đặc tả
phần mềm
test hệ
thống
test tích
hợp
Thiết kế
kiến trúc
Thiết kế
chi tiết
test đơn
vị
Lập
trình
2005
Thẩm
định
Xác
minh
rà soát
mã
Bộ môn CNFM – Đại học Công nghệ
10
g. Các mức – loại hình kiểm thử
Nguyễn Văn Vỵ
Kiểm thử đơn vị (unit testing)
Kiểm thử tích hợp (integration testing)
Kiểm thử hệ thống (system testing)
KT chức năng (functional test: system&interface)
KT phục hồi (recovery test)
KT chịu tải (extra: stress & load test)
KT thi hành (performance test)
KT an ninh (security test)
2005
Bộ môn CNFM – Đại học Công nghệ
11
g. Các loại hình kiểm thử (t)
Nguyễn Văn Vỵ
Kiểm thử chấp nhận (aceptance testing)
Kiểm thử alpha (alpha testing)
Người dùng thực hiện
Trong môi trường được quản lý
Kiểm thử beta (beta testing)
Người dùng thực hiện
Trong môi trường thực
2005
Bộ môn CNFM – Đại học Công nghệ
12
h. Phương pháp và chiến lược kiểm thử
Nguyễn Văn Vỵ
Hai phương pháp phổ biến:
Kiểm thử hộp trắng (white box)
Kiểm thử hộp đen (black box)
Các chiến lươc Kiểm thử
Ứng dụng cho các mức & loại kiểm thử #.
Một số chiến lược:
Kiểm thử từ trên xuống/dưới lên/lai (tích hợp)
Kiểm thử vụ nổ lớn (big bang –tích hợp)
Kiểm thử hồi quy (tích hợp)
Kiểm thử luồn sợi (hệ thời gian thực)
2005
Bộ môn CNFM – Đại học Công nghệ
13
i. Biểu đồ dòng thông tin kiểm thử
Nguyễn Văn Vỵ
Sơ đồ dòng thông tin của tiến trình kiểm thử
Đặc tả
phần mềm
Cấu hình
kiểm thử
kiểm thử
gỡ lỗi
đánh giá
xây dựng
Mô hình
đô tin cậy
Phần mềm
chỉnh sửa
Dự đoán
độ tin cậy
Phần
mềm
chưa
tin
cậy
Phần mềm
tin cậy
2005
Bộ môn CNFM – Đại học Công nghệ
14
k. Tiến trình thực hiện kiểm thử
Nguyễn Văn Vỵ
Kế hoạch
kiểm thử
Lập kế kế
hoạch KT
Yêu cầu,
mã nguồn
2005
Các ca
kiểm thử
Thiết kế
Ca kiểm thử
Dữ liệu
kiểm thử
Kết quả
kiểm thử
Chuẩn bị
dữ liệu,đk
Tiến hành
kiểm thử
Báo cáo
kiểm thử
So sánh,
đánh giá
Nhật ký
Bộ môn CNFM – Đại học Công nghệ
15
m. Khái niệm về thiết kế ca kiểm thử
Nguyễn Văn Vỵ
Mục tiêu thiết kế ca kiểm thử nhằm:
tìm ra nhiều sai nhất
với nỗ lực & thời gian nhỏ nhất.
Trong các thập kỷ 80-90 đã nghiên cứu nhiều
loại phương pháp thiết kế ca kiểm thử.
Các phương pháp tốt phải cho một cơ chế:
bảo đảm tính đầy đủ (không sót phần nào) và
cung cấp khả năng thật sự phát hiện được các sai
2005
Bộ môn CNFM – Đại học Công nghệ
16
B. Kiểm thử hộp trắng
Nguyễn Văn Vỵ
a. Khái niệm kiểm thử hộp trắng
Đối tượng: mã nguồn
Mức: các mô đun đơn vị
Nội dung là Khám xét:
các chi tiết thủ tục (thuật toán)
con đường logic (luồng điều khiển)
các trạng thái của chương trình (dữ liệu).
2005
Bộ môn CNFM – Đại học Công nghệ
17
a. Khái niệm kiểm thử hộp trắng
Nguyễn Văn Vỵ
Vấn đề, trở ngai:
Số con đường lôgíc là rất lớn: một chương trình
nhỏ:
với 100 dòng PASCAL
với một vòng lặp
• số con đường logic có thể tới:1014.
• cần 3170 năm để kiểm thử tất mọi con đường
và mọi ràng buộc lôgic trên nó!
Nhiều trạng thái dữ liệu khác nhau: đại lượng, giá
trị, sự thay đổi trong tiến trình, sự kết hợp
2005
Bộ môn CNFM – Đại học Công nghệ
18
b. Nội dung cần kiểm thử hộp trắng
Nguyễn Văn Vỵ
kiểm thử cái gì?
a.
b.
c.
d.
e.
mọi lệnh (đầy đủ)
mọi điều kiện lôgic có thể (rẽ nhánh)
mọi chu trình trong chương trình (lặp lại)
mọi cấu trúc dữ liệu được dùng (dữ liệu)
mọi tiến trình từ đầu
kết thúc(từng luồng điều khiển)
Câu hỏi: Yêu cầu? Lý do? Các kỹ thuật dùng và nội
dung của nó? Chiến lược sử dụng?
2005
Bộ môn CNFM – Đại học Công nghệ
19
c. Yêu cầu kiểm thử hộp trắng
Nguyễn Văn Vỵ
Yêu cầu đặt ra:
Mọi con đường độc lập trong một môđun cần
được thực hiện ít nhất một lần.
Mọi ràng buộc logic được thực hiện cả hai phía
đúng (true) & phía sai (false).
Tất cả các vòng lặp ở biên của nó & cả các biên
vận hành phải được thực hiên.
Mọi cấu trúc dữ liệu nội tại được dùng để bảo
đảm hiệu lực thi hành của nó
2005
Bộ môn CNFM – Đại học Công nghệ
20