Nhập môn công nghệ học phần mềm - Introduction to Software Engineering - Phần IV
Phương pháp kiểm thử: Khái niệm kiểm thử
Phương pháp thử
Kỹ thuật thiết kế trưòng hợp thử
Phương pháp thử các môđun
Nhập môn
Công nghệ học Phần mềm
Introduction to Software Engineering
Department of Software Engineering
Faculty of Information Technology
Hanoi University of Technology
TEL: 04-8682595 FAX: 04-8692906
Email: [email protected]
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.1
Phần V
Kiểm thử và Bảo trì
Test and Maintenance
Chương 9: Phương pháp kiểm thử
9.1 Khái niệm kiểm thử
9.2 Phương pháp thử
9.3 Kỹ thuật thiết kế trưòng hợp
thử
9.4 Phương pháp thử các môđun
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.2
9.1 Khái niệm kiểm thử
Định nghĩa kiểm thử:
• Là mấu chốt của đảm bảo chất lượng
phần mềm
• Là tiến trình (và là nghệ thuật) nhằm
phát hiện lỗi bằng việc xem xét lại đặc
tả, thiết kế và mã hoá.
• Kiểm thử thành công là phát hiện ra
lỗi; kiểm thử không phát hiện ra lỗi là
kiểm thử dở (Sue A.Conger- The New
SE)
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.3
Những khó khăn khi kiểm thử
• Nâng cao chất lượng phần mềm nhưng
không vượt quá chất lượng khi thiết
kế: chỉ phát hiện các lỗi tiềm tàng và
sửa chúng
• Phát hiện lỗi bị hạn chế do thủ công là
chính
• Dễ bị ảnh hưởng tâm lý khi kiểm thử
• Khó đảm bảo tính đầy đủ của kiểm
thử
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.4
6 điểm lưu ý khi kiểm thử
(1) Chất lượng phần mềm do khâu thiết
kế quyết định là chủ yếu, chứ không
phải khâu kiểm thử
(2) Tính dễ kiểm thử phụ thuộc vào cấu
trúc chương trình
(3) Người kiểm thử và người phát triển
nên khác nhau
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.5
6 điểm lưu ý khi kiểm thử
(tiếp)
(4) Dữ liệu thử cho kết quả bình thường thì
không có ý nghĩa nhiều, cần có những dữ
liệu kiểm thử mà phát hiện ra lỗi
(5) Khi thiết kế trường hợp thử, không chỉ dữ
liệu kiểm thử nhập vào, mà phải thiết kế
trước cả dữ liệu kết quả sẽ có
(6) Khi phát sinh thêm trường hợp thử thì nên
thử lại những trường hợp thử trướcđó để
tránh ảnh hưởng lan truyền sóng
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.6
Tương ứng giữa vòng đời dự án và
kiểm thử
Đối tượng và phạm vi Kiểm thử chấp nhận
Đặc tả chức năng/
Thiết kế lô gíc Kiểm thử hệ thống
Kiểm
Thiết kế Vật lý Kiểm tích hợp hồi quy
Cấu trúc CT
và đặc tả môđun Kiểm ĐVCT
Mã hoá môđun CT
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.7
9.2 Phương pháp thử: thử tĩnh
• Kiểm thử trên bàn hay Kiểm thử tĩnh:
giấy và bút trên bàn, kiểm tra logic, lần
từng chi tiết ngay sau khi lập trình
xong
• Đi xuyên suốt (walk through)
• Thanh tra (inspection)
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.8
Kiểm thử trên máy
• Gỡ lỗi bằng máy (machine debug) hay
kiểm thử động: Dùng máy chạy
chương trình để điều tra trạng thái
từng động tác của chương trình
• 9 bước của trình tự kiểm thử bằng
máy
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.9
Trình tự kiểm thử bằng máy
(1) Thiết kế trường hợp thử theo thử
trên bàn
(2) Trường hợp thử phải có cả kết quả
kỳ vọng sẽ thu được
(3) Dịch chương trình nguồn và tạo
môđun tải để thực hiện
(4) Khi trường hợp thử có xử lý tệp vào-
ra, phải làm trước trên bàn việc xác
định miền của các tệp
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.10
Trình tự kiểm thử bằng máy
ế kế
(tiết p) cho trường hợp
(5) Nhập dữ liệu đã thi
kiểm thử
(6) Điều chỉnh môi trường thực hiện môđun tải
(tạo thủ tục đưa các tệp truy cập tệp vào
chương trình)
(7) Thực hiện môđun tải và ghi nhận kết quả
(8) Xác nhận kết quả với kết quả kỳ vọng
(9) Lặp lại thao tác (5)-(8)
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.11
9.3 Kỹ thuật thiết kế trường hợp
thử
• Kỹ thuật thiết kế trường hợp thử dựa trên
đặc tả bề ngoài của chương trình: Kiểm thử
hộp đen (Black box test): WHAT ?
• Kỹ thuật thiết kế trường hợp thử dựa trên
đặc tả bên trong của chương trình: Kiểm
thử hộp trắng (white box test): HOW ?
• Kiểm thử Top-Down hay Bottom-Up
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.12
Kiểm thử hộp đen
• Phân đoạn tương đương
• Phân tích giá trị biên
• Đoán lỗi
Input Results
Black Box
Black box Data Testing Strategy
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.13
Phương pháp phân đoạn tương đương
(Equivalence Partition)
• Mục đích: giảm số lượng test bằng cách chọn
các tập dữ liệu đại diện
• Thực hiện: Chia dữ kiệu vào thành các đoạn,
mỗi đoạn đại diện cho một số dữ liệu => việc
kiểm thử chỉ thực hiện trên đại diện đó
• ưu điểm: Test theo mức trừu tượng hơn là
trường. áp dụng: màn hình, menu hay mức quá
trình
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.14
Phương pháp phân tích giá trị biên
(Boundary value analysis)
• Là 1 trường hợp riêng của phân đoạn
• Thí dụ: nếu miền dữ liệu là tháng thì
giá trị 0 hay >12 là không hợp lệ
• Thường sử dụng trong kiểm thử
môđun
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.15
Phương pháp đoán lỗi
(Error Guessing)
• Dựa vào trực giác và kinh nghiệm
• Thí dụ lỗi chia cho 0. Nếu môđun có
phép chia thì phải kiểm thử lỗi này
• Nhược điểm: không phát hiện hết lỗi
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.16
Phương pháp đồ thị nguyên nhân - kết
quả (Cause-effect Graphing)
Mã tuần tự
Phủ định and
Or Do
Until
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.17
Kiểm thử hộp trắng
• Bó các lệnh
• Bó các rẽ nhánh
• Bó các điều kiện
• Bó các điều kiện - rẽ nhánh
Input Results
White Box Data Testing Strategy
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.18
Trình tự thiết kế
• Kiểm thử môđun
• Kiểm thử tích hợp
- Kiểm thử tích hợp trên xuống
- Kiểm thử tích hợp dưới lên
- Kiểm thử hồi qui
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.19
9.4 Kỹ thuật kiểm thử môđun
• Kiểm thử tích hợp môđun
– Kiểm thử dưới lên (Bottom-up Test)
– Kiểm thử trên xuống (Top-down Test)
– Kiểm thử cột trụ (Big bung Test)
– Kiểm thử kẹp (Sandwich Test)
HUT, Falt. of IT © Dept. of SE, 2001 SE-V.20