Một trong những nguyên nhân chính dẫn đến việc kiểm thử chương trình
trở nên kém đó là hầu hết các lập trình viên thường có suy nghĩ không
đúng về kiểm thử. Họ thường nói rằng:
- “Testing is the process of demonstrating that errors are not present.”
- “The purpose of testing is to show that a program performs its intended functions correctly.”
- “Testing is the process of establishing confidence that a program does what it is supposed to do.”
Khi bạn kiểm thử một chương trình, bạn muốn thêm vào một vài giá trị
cho nó. Việc thêm vào giá trị theo như kiểm thử thì nó mang ý nghĩa là
tăng chất lượng hoặc độ tin cậy của sản phẩm. Việc tăng cường độ tin cậy
của sản phẩm đồng nghĩa với việc tìm và gỡ bỏ các lỗi (error).
Hơn nữa, đừng kiểm thử một chương trình để cho thấy rằng nó làm việc
đúng đó, thay vào đó bạn nên nghĩ rằng chương trình đó có lỗi và sau đó
kiểm thử chương trình để tìm càng nhiều lỗi càng tốt.
Vì thế, định nghĩa chính xác hơn vể kiểm thử được phát biểu như sau:
“Testing is the process of executing a program with the intent of finding errors.”
Mặc dù khái niệm này nghe có vẻ như là chơi chữ nhưng nó
thực tế gần như là vậy. Việc hiểu đúng khái niệm của kiểm thử phần mềm
có thể tạo nên sự khác biệt lớn. Khái niệm này có rất nhiều ý nghĩa.
Chẳng hạn, nó có ý rằng việc kiểm thử là một tiến trình “phá hoại”, thậm
chí là tiến trình “thô bạo” giải thích tại sao hầu hết mọi người thấy
nó rất là khó thực hiện.Định nghĩa này cũng có những ý nghĩa về cách
thiết kế các test case (test data) và ai sẽ là người nên và không nên
kiểm thử một chương trình được đưa ra.
Một cách khác để nhấn mạnh về định nghĩa ở trên là nhận
biết cách dùng ưừ “thành công” (successful) và “không thành công”
(unsuccessful) – Thông thường, những người quản lý dự án sử dụng chúng
trong việc phân loại các kết quả của các test case. Hầu hết những người
quản lý dự án gọi một test case mà không tìm thấy lỗi nào là một
“successful run”, bất kì đâu mà phát hiện ra một lỗi mới thì được gọi là
“unsuccessful”.
Một test case mà tìm ra một lỗi mới hiếm khi có thể được
coi là “không thành công”. Một test case “không thành công” là một test
case làm cho chương trình dưa ra kết quả đúng mà không thấy bất kì lỗi
nào.
Xem xét trường hợp một người khách đến gặp một bác sĩ vì
anh ta cảm thấy rất khó chịu trong người. Nếu bác sĩ thực hiên vài xét
nghiệm mà không tìm ra nguyên nhân ở đâu, khi đó chúng ta gọi những xét
nghiệm đó là “không thành công”. Tuy nhiên, nếu một xét nghiệm xác định
được bệnh nhân đó bị loét dạ dày chảng hạn, thì khi đó xét nghiệm này là
“thành công”.
(Tham khảo sách “The Art of Software Testing”)
0 comments:
Post a Comment