Gần đây tôi đã có bài kiểm tra cuối cùng cho một khóa học kỹ thuật phần mềm cho chương trình thạc sĩ của mình và một trong những câu hỏi trong bài kiểm tra là:
Unit Testing is considered:
a. White-box Testing
b. Black-box Testing
c. Either
Trong 7 năm kinh nghiệm phát triển phần mềm của tôi, kiểm thử đơn vị luôn áp dụng cách tiếp cận hộp trắng. Người kiểm tra luôn có kiến thức đầy đủ về việc thực hiện bài học trong khi viết bài kiểm tra. Kiểm thử hộp đen luôn xuất hiện sau trong các hình thức tích hợp, hệ thống và kiểm tra chấp nhận.
Tuy nhiên, câu trả lời chính xác cho bài kiểm tra (theo giáo sư) là kiểm tra đơn vị có thể là kiểm tra hộp trắng hoặc đen.
Tôi đã thực hiện một số nghiên cứu và có vẻ như nhiều trường hợp "thử nghiệm đơn vị hộp đen" được sử dụng để mô tả cách tiếp cận thử nghiệm đầu tiên trong đó các thử nghiệm đơn vị được viết trước khi mã. Tuy nhiên theo tôi đây vẫn là thử nghiệm hộp trắng. Mặc dù việc triển khai chưa tồn tại, nhưng bất cứ ai đang viết bài kiểm tra thường có một ý tưởng khá hay về cách mã nguồn sẽ được thực hiện.
Ai đó có thể vui lòng giải thích cho tôi cách thử nghiệm đơn vị hộp đen hoạt động (nếu nó thực sự là một thứ) và nó khác với thử nghiệm đơn vị hộp trắng như thế nào?
While the implementation does not yet exist, whoever is writing the test generally has a pretty good idea about how the source code is going to be implemented.
- Có, nhưng bản thân bài kiểm tra thì không. Kiểm thử hộp trắng có nghĩa là kiểm tra một cái gì đó bên trong phương thức hoặc lớp, như giá trị của một biến. Điều đó không có nghĩa là người viết bài kiểm tra biết đoạn mã được kiểm tra trông như thế nào.