
1
Testing

2
M c íchụ đ
•Giúp hi u v :ể ề
•Internal testing
•External testing
•General testing strategies
•Vì sao?
•Khó có th kh ng nh 1 CT l n có làm vi c chu n hay ể ẳ đị ớ ệ ẩ
không
•Khi XD 1 CT l n,ớ 1 LTV chuyên nghi pệ s dành th i ẽ ờ
gian cho vi c vi tệ ế test code không ít h n tg dành cho ơ
vi t b n thân CTế ả
•LTV chuyên nghi p là ng i có kh n ng, ki n th c ệ ườ ả ă ế ứ
r ng v các k thu t và chi n l c testingộ ề ỹ ậ ế ượ

3
Testing and debugging
•Testing & debugging i cùng v i nhau nh 1 c p:đ ớ ư ặ
•Testing tìm errors; debugging nh v và đị ị s aử chúng.
•Ta có mô hình “testing/debugging cycle”: Ta test, r i ồ
debug, r i l p l i.ồ ặ ạ
•B t k 1 debugging nào nên c ti p theo là 1 s áp ấ ỳ đượ ế ự
d ng l i c a hàng lo t các tests liên quan, c bi t là ụ ạ ủ ạ đặ ệ
các bài tests h i quy. i u này giúp tránh n y sinh các ồ Đ ề ả
l i m i khi debugging. ỗ ớ
•Testing & debugging không nên c th c hi n b i đượ ự ệ ở
cùng 1 ng i (th ng là không nên).ườ ườ

4
Khái ni m Testingệ
•Beizer: Vi c th c hi n test là ệ ự ệ để ch ng minh tính úng ứ đ
n gi a 1 ph n t và các c t c a nó.đắ ữ ầ ử đặ ả ủ
•Myers: Là quá trình th c hi n 1 CT ự ệ v i m c ích tìm ra ớ ụ đ
nh ng l i.ữ ỗ
•IEEE: Là quá trình ki m tra hay ánh giá 1 h th ng hay 1 ể đ ệ ố
thành ph n h th ng m t cáchầ ệ ố ộ th côngủ hay t ngự độ để
ki m ch ng r ng nó th a mãn nh ng yêu c u c thùể ứ ằ ỏ ữ ầ đặ
ho c ặ để xác nh s khác bi t gi a k t qu mong i và đị ự ệ ữ ế ả đợ
k t qu th c tế ả ự ế

5
Program Verification
•Lý t ng: Ch ng minh c r ng CT c a ta là ưở ứ đượ ằ ủ
chính xác, úng nđ đắ
•Có th ch ng minh các thu c tính c a CT?ể ứ ộ ủ
•Có th CM i u ó k c khi CT k t thúc?!!!ể đề đ ể ả ế
Program
Checker
program.c
Right/Wrong
Specification
?