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 đị 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
?