
Các loại kiểm thử phần mềm
Một hoạt động mang tính sống còn trong các dự án sản xuất hoặc gia công phần mềm (PM), đó là kiểm thử (Software
Testing). Dân làm PM chắc hẳn không ai nghi ngờ vai trò quan trọng của nó, tuy nhiên không phải ai (cả trong ngành
và ngoài ngành) cũng hiểu rõ hoạt động này. Bản thân công việc kiểm thử phần mềm (KTPM) cũng là một lĩnh vực
hoạt động độc lập và khá “hấp dẫn”. Cùng với các dự án gia công sản xuất PM, hiện cũng có khá nhiều dự án mà nội
dung công việc chỉ là kiểm thử những PM đã được khách hàng phát triển sẵn.
Mặc dù công việc KTPM không xa lạ song những khái niệm và kỹ thuật lại khá rắc rối. Bài viết này sẽ nhằm cung cấp
một cái nhìn tương đối bao quát về lĩnh vực “tưởng cũ nhưng không cũ” này.
KIỂM THỬ PHẦN MỀM LÀ GÌ?
Thực ra KTPM là công việc mà bất cứ người nào từng tham gia phát triển phần mềm (PTPM) đều biết và từng làm.
Theo nghĩa thông thường nhất, KTPM bao gồm việc “chạy thử” PM hay một chức năng của PM, xem nó “chạy” đúng
như mong muốn hay không. Việc kiểm thử này có thể thực hiện từng chặng, sau mỗi chức năng hoặc module được
phát triển, hoặc thực hiện sau cùng, khi PM đã được phát triển hoàn tất.
KTPM đứng ở vị trí hết sức nhạy cảm, nó là bước đệm giữa giai đoạn xây dựng PM và sử dụng PM, trước khi giao sản
phẩm hoàn chỉnh cho khách hàng. Bạn có thể tham khảo bài “Tổng quan các mô hình phát triển phần mềm” trong
TGVT A số tháng 8/2005 (ID: A0508_106) để biết vị trí của KTPM trong các mô hình PTPM.
Hình 1: 4 mức độ cơ bản của kiểm thử phần mềm
CÁC MỨC ĐỘ CỦA KTPM
Thực tế, KTPM không đơn giản như nhiều người thường nghĩ, công việc này có nhiều mức độ khác nhau và có mối
tương quan với các chặng phát triển trong dự án PTPM. Hình 1 cho thấy 4 mức độ cơ bản của KTPM và hình 2 cho
thấy mối tương quan với các chặng PTPM trong mô hình V-model.
Phần sau sẽ làm rõ chi tiết về các mức độ KTPM, do một số thuật ngữ không có từ tương đương sát nghĩa trong tiếng
Việt, mặt khác để các bạn tiện tham khảo sau này, chúng tôi xin giữ nguyên một số thuật ngữ gốc tiếng Anh.
1. Unit Test – Kiểm thử mức đơn vị
Để có thể hiểu rõ về Unit Test, khái niệm trước tiên ta cần làm rõ: thế nào là một đơn vị PM (Unit)?
Một Unit là một thành phần PM nhỏ nhất mà ta có thể kiểm thử được. Theo định nghĩa này, các hàm (Function), thủ
tục (Procedure), lớp (Class), hoặc các phương thức (Method) đều có thể được xem là Unit.
Vì Unit được chọn để kiểm thử thường có kích thước nhỏ và chức năng hoạt động đơn giản, chúng ta không khó khăn
gì trong việc tổ chức, kiểm thử, ghi nhận và phân tích kết quả kiểm thử. Nếu phát hiện lỗi, việc xác định nguyên nhân
và khắc phục cũng tương đối dễ dàng vì chỉ khoanh vùng trong một đơn thể Unit đang kiểm thử. Một nguyên lý đúc kết