Tải bản đầy đủ (.pdf) (56 trang)

Bài giảng kiểm chứng, thẩm định và kiểm thử

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (285.65 KB, 56 trang )

KiểmChứng, Thẩm Định và KiểmThử
(Verification, Validation, and Testing)
2
Mục đích
z Sau buổihọc sinh viên phảinắm được:
− Hiểu các khái niệm: verification, valdation, và
testing
− Nắm được các nguyên lý về kiểmthử
− Hiểu khái niệmca kiểmthử (test case)
− Các phương pháp thiếtkế test case
− Làm thế nào để kiểmthử chương trình
− Làm thế nào để kiểmthử hệ thống
3
Nội dung
z Giớithiệu
− Verification,Validation, và Testing
z Các nguyên lý về kiểmthử
z Ca kiểmthử (test case)
z Các kỹ thuậtkiểmthử chương trình
− Kiểmthử chứcnăng
− Kiểmthử cấutrúc
z Các giai đoạnvàchiếnlượckiểmthử
4
Tài liệu
z Pressman, Software Engineering,
McGraw Hill (chapter 18 & 19)
z Sommerville, Software Engineering,
Addison-Wesley (chapter 22 & 23)
z Giáo trình kỹ nghệ phầnmềm(chương 5)
z Các tài liệu điệntử khác
5


Verification,Validation, và Testing
z Kiểmchứng (Verification)
− có đúng đặctả không, có đúng thiếtkế không
− phát hiệnlỗilậptrình
z Thẩm định (Validation)
− có đáp ứng nhu cầungười dùng không
− có hoạt động hiệuquả không
− phát hiệnlỗi phân tích, lỗithiếtkế (lỗimứccao)
z V&V = Verification and Validation
− mụctiêulàpháthiệnvàsửalỗiPM, đánh giá tính dùng
đượccủaPM
z Thứ tự thựchiện: Verification -> Validation
6
Kiểmchứng/Thẩm định tĩnh và động
z Kiểmchứng/Thẩm định tĩnh
− không thựchiệnchương trình
− xét duyệtyêucầu, thiếtkế, mã nguồn
− tiến hành ở mọicôngđoạnpháttriển
− khó đánh giá tính hiệuquả củasảnphẩm
z Kiểmchứng/Thẩm định động (kiểmthử - Testing)
− thựchiệnchương trình
− cầncómãnguồn
− phát hiệnlỗilậptrình
− đánh giá tính hiệuquả phầnmềm
− là cách duy nhất để kiểmtrayêucầuphi chứcnăng
7
Mô hình phát triển“V”
Đặctả
yêu cầu
Đặctả hệ

thống
Thiếtkế hệ
thống
Thiếtkế chi
tiết
Mã hóa mô
đun & kiểm
thử mô đun
Kiểmthử tích
hợpcáchệ
thống con
Kiểmthử tích
hợphệ thống
Kiểmthử
chấpnhận
Dịch vụ
Kế hoạch
kiểmthử
chấpnhận
Kế hoạch
kiểmthử
tích hợpHT
Kế hoạch kiểm
thử tích hợp
HT con
8
Kiểmthử phầnmềm(Testing)
z Tập các hoạt động vớimục đích khám phá các
lỗivàkhuyếttật/khiếmkhuyết
z Mục đích củakiểmthử:

− Thiếtkế các ca kiểmthử (test cases) vớikhả năng tìm
kiếmcáclỗi/khuyếttật
− Thựchiệnchương trình vớimục đích tìm các
lỗi/khuyếttật
z Mỗi phép kiểmthử (a test) chỉ thành công khi
− mộtlỗi được phát hiện
− mộtkếtquả chỉ ra sự thấtbạicủathủ tụckiểmthử
đượctrả lại
9
Các loạikiểmthử phầnmềm
z Kiểmthử tìm khuyếttật
− tìm lỗilậptrình
− tiến hành dựa trên phân tích đặctả chứcnăng,
− phân tích mã nguồn
z Kiểmthử thống kê
− đánh giá tính dùng đượccủasảnphẩm
− sử dụng dữ liệuthực(dựatrênthống kê)
− số ngườitruycập
− số giao tác
− cơ sở dữ liệulớn
10
Yêu cầu đốivớikiểmthử
z Tính lặplại
− kiểmthử phảilặplại được(kiểmtraxemlỗi
đã đượcsửa hay chưa)
− dữ liệu/trạng thái phảimôtảđược
z Tính hệ thống
− đảmbảokiểmtrahếtcáctrường hợp
(coverage)
z Đượclậptàiliệu

− kiểm soát tiếntrình/kếtquả
11
Các nguyên lý kiểmthử PM
z Các phép kiểmthử phảitương ứng vớicác
yêu cầucủaHT
z Mỗi phép kiểmthử nên đượclậpkế hoạch từ
rấtsớmtrướckhitiến hành kiểmthử
z Qui luật Pareto hay qui luật 80/20 (qui luật
thiểusố quan trọng và phân bố nhân tố)
− khoảng 80% kếtquả là do 20% nguyên nhân gây
ra
− “80% of all errors uncovered during testing will
likely be traceable to 20% of all program modules
or classes”
12
Ca kiểmthử (test case)
z Ca kiểmthử: dữ liệu để kiểmtrahoạt
động củachương trình
z Ca kiểmthử tốt
− đượcthiếtkếđểphát hiệnmộtlỗicủa
chương trình
z Kiểmthử thành công: phát hiệnralỗi
z Mục đích:
− Chứng minh đượcsự tồntạicủalỗi
− Không chứng minh đượcsự không có lỗi
13
Nôi dung của test case
z Tên mô đun/chứcnăng muốnkiểmthử
dữ liệuvào
− dữ liệuthôngthường: số, xâu kí tự, file,

− môi trường thử nghiệm: phầncứng, OS,
− thứ tự thao tác (khi kiểmthử giao diện)
z Kếtquả mong muốn
− thông thường: số, xâu kí tự, file,
− màn hình, thờigianphảnhồi
z Kếtquả thựctế
14
Các kỹ thuậtkiểmthử chương trình
z Kiểmthử chứcnăng (functional testing)
− dựatrênđặctả chứcnăng
− phát hiệncácsaisótvề chứcnăng
− không quan tâm đếncáchcàiđặt
z Kiểmthử cấu trúc (structured testing)
− kiểmthử có nghiên cứumãnguồn
− phân tích thứ tự thựchiệncáclệnh
15
Kiểmthử chứcnăng
Functional testing / Black box testing
Dựatrênđặctả chứcnăng
•Test case đượcthiếtkếđểkiểmtrachứcnăng
•Pháthiệncáckhiếm khuyếtso với đặctả
• Không quan tâm đếncáchcàiđặt (mã nguồn)
-Pháthiện sai sót, thiếusótchứcnăng
-Saisótvề giao diệncủamôđun
-Kiểmtratínhhiệuquả
-Pháthiệnlỗikhởitạo, lỗikết thúc,…
16
Phân hoạch tương đương
• Không thể kiểmthử mọitrường hợp
•Chiadữ liệu thành các miền có cùng hành vi

•Tạomột test case cho từng miền
•Tạo test case cho biên củacácmiền
- nhiềulỗixuấthiệnvớigiátrị biên
Equivalence partitioning
17
Phân hoạch tương đương - Ví dụ
Hàm tính trị tuyệt đối
-miềndữ liệu ≥ 0
-miềndữ liệu< 0
100
20
0
100
-20
0
Expected
Output
Input
18
Tạo test case cho các trường hợp
đặcbiệt
-biêncủasố trong máy tính
(vd. 32767, -32768)
-số không (0)
-số âm, số thập phân
-dữ liệusaikiểu
-dữ liệungẫu nhiên
Mở rộng các test case
19
Kiểmthử cấutrúc

• Xây dựng ca kiểmthử dựatrênphântíchmãnguồn
•Xâydựng bộ test case để kiểmtramọidònglệnh
• Phân tích các lệnh rẽ nhánh, vòng lặp
•Phùhợpvớicácmôđun nhỏ
•Làsự bổ sung cho kiểmthử chứcnăng
Structural testing / White box testing
20
Đường đi trong mô đun
• Phân tích mô đun để xác định đường đi
• Đường đilàthứ tự thựchiệncáclệnh từđiểm
bắt đầu đến điểmkết thúc củamôđun
•Thiếtkế các test case để kiểmthử mọi đường đi
21
Xác định đường đi
• Đánh số các khốilệnh
- đánh số các khốilệnh, câu lệnh điềukiện
- đánh số các hợp điểmcủaluồng lệnh
•Rútgọn flow chart (đồ thị)
-cáckhốituầntựđược tích hợpthànhmột
khối
- tích hợpkhốituầntự vào câu lệnh điềukiện
kế tiếp
22
1
2
3
4
5
6
7 8

9
10
11
Start
End
0
23
1
2
4
65
7
8
3
9
đường đi:
1-2-3-8-1-9
1-2-4-6-7-8-1-9
24
Đường đi độclập
• Không thể chọnmọi đường đi
-chọncácđường đi độclập
• Đường đi độclập
-cóítnhấtmộtcặpkhốilệnh (mộtcạnh của đồ thị)
chưaxuấthiện trong các đường đi đãcó
•Bộ các đường đi độclậplàmộttậphợpthỏamãn
-mọikhốilệnh đều đượcthựchiệnítnhấtm
ộtlần
-mọi điềukiện đều đượckiểmthử với hai trường
hợp true và false

25
1
2
4
65
7
8
3
9
1-9
1-2-3-8-1-9
1-2-4-6-7-8-1-9
1-2-4-5-7-8-1-9
Đường đi độclập:

×