Kỹ thuật kiểm thử hộp trắng phân tích cấu trúc bên trong, cấu trúc dữ liệu được sử dụng, thiết kế bên trong, cấu trúc mã và hoạt động của phần mềm thay vì chỉ chức năng như trong kiểm thử hộp đen. Nó còn được gọi là thử nghiệm hộp kính hoặc thử nghiệm hộp trong hoặc thử nghiệm cấu trúc. Kiểm thử hộp trắng còn được gọi là kiểm thử minh bạch hoặc kiểm thử hộp mở.
Kiểm thử hộp trắng là một kỹ thuật kiểm thử phần mềm liên quan đến việc kiểm tra cấu trúc bên trong và hoạt động của một ứng dụng phần mềm. Người kiểm tra có quyền truy cập vào mã nguồn và sử dụng kiến thức này để thiết kế các trường hợp kiểm thử có thể xác minh tính chính xác của phần mềm ở cấp độ mã.
Kiểm thử hộp trắng còn được gọi là kiểm thử cấu trúc hoặc kiểm thử dựa trên mã và nó được sử dụng để kiểm thử logic, luồng và cấu trúc bên trong của phần mềm. Người kiểm tra tạo các trường hợp kiểm thử để kiểm tra đường dẫn mã và luồng logic nhằm đảm bảo chúng đáp ứng các yêu cầu đã chỉ định.
Quy trình kiểm thử hộp trắng
- Đầu vào: Yêu cầu, Thông số chức năng, Tài liệu thiết kế, mã nguồn.
- Xử lý: Thực hiện phân tích rủi ro để hướng dẫn trong toàn bộ quá trình.
- Lập kế hoạch kiểm tra phù hợp: Thiết kế các trường hợp kiểm thử bao trùm toàn bộ mã. Thực hiện rửa-lặp lại cho đến khi đạt được phần mềm không có lỗi. Ngoài ra, kết quả được truyền đạt.
- Đầu ra: Lập báo cáo cuối cùng của toàn bộ quá trình thử nghiệm.
Các loại kiểm thử hộp trắng:
- Unit test: Hãy tưởng tượng bạn đang chế tạo một chiếc xe đạp. Kiểm thử đơn vị sẽ giống như kiểm tra từng bộ phận riêng biệt – kiểm tra phanh, bánh răng, bàn đạp, v.v. để đảm bảo tất cả chúng đều hoạt động chính xác trước khi lắp ráp toàn bộ xe đạp.
- Static analysis: Điều này giống như việc hiệu đính một cuốn sách trước khi nó được xuất bản. Bạn đang tìm kiếm các lỗi về ngữ pháp, dấu câu và cấu trúc câu. Tuy nhiên, bạn cần phải đọc toàn bộ cuốn sách để hiểu câu chuyện (giống như phân tích động hơn).
- Dynamic analysis: Điều này giống như lái thử một chiếc ô tô. Bạn không chỉ nhìn vào các bộ phận (như trong phân tích tĩnh) mà còn đang lái xe để xem nó hoạt động như thế nào trên đường.
- Statement coverage: Hãy tưởng tượng bạn là giáo viên đang kiểm tra bài tập về nhà của học sinh. Bảo hiểm câu lệnh sẽ giống như đảm bảo học sinh đã trả lời mọi câu hỏi trong bài tập.
- Branch testing: Điều này giống như khám phá tất cả các tuyến đường có thể có trên GPS. Nếu bạn đang ở một ngã tư, việc kiểm tra nhánh bao gồm việc đi thẳng, rẽ trái và rẽ phải để đảm bảo tất cả các lối đi đều dẫn đến điểm đến hợp lệ.
- Path testing: Điều này giống như một người đưa thư đảm bảo rằng họ có thể chuyển thư đến mọi ngôi nhà trên tuyến đường của mình. Họ cần đảm bảo mọi con đường có thể đều được che chắn.
- Loop testing: Điều này giống như kiểm tra danh sách phát lặp lại. Bạn muốn đảm bảo nó lặp lại bài hát đầu tiên một cách chính xác sau khi bài hát cuối cùng kết thúc
Ưu điểm của thử nghiệm hộp trắng
- Kiểm tra kỹ lưỡng: Kiểm tra hộp trắng là kỹ lưỡng vì toàn bộ mã và cấu trúc đều được kiểm tra.
- Tối ưu hóa mã: Nó giúp tối ưu hóa việc loại bỏ mã và giúp loại bỏ các dòng mã bổ sung.
- Phát hiện sớm các khiếm khuyết: Nó có thể bắt đầu ở giai đoạn sớm hơn vì nó không yêu cầu bất kỳ giao diện nào như trong trường hợp kiểm thử hộp đen.
- Tích hợp với SDLC: Có thể dễ dàng bắt đầu kiểm thử hộp trắng trong Vòng đời phát triển phần mềm.
- Phát hiện các lỗi phức tạp: Người kiểm tra có thể xác định các lỗi không thể phát hiện được thông qua các kỹ thuật kiểm tra khác.
- Các trường hợp thử nghiệm toàn diện: Người thử nghiệm có thể tạo các trường hợp thử nghiệm toàn diện và hiệu quả hơn bao gồm tất cả các đường dẫn mã.
- Người kiểm thử có thể đảm bảo rằng mã đáp ứng các tiêu chuẩn mã hóa và được tối ưu hóa về hiệu suất.
Nhược điểm của kiểm thử hộp trắng
- Kiến thức lập trình và khả năng truy cập mã nguồn: Người kiểm thử cần có kiến thức lập trình và khả năng tiếp cận mã nguồn để thực hiện kiểm thử.
- Nhấn mạnh quá mức vào hoạt động bên trong: Người kiểm tra có thể tập trung quá nhiều vào hoạt động bên trong của phần mềm và có thể bỏ sót các vấn đề bên ngoài.
- Thiên vị trong kiểm thử: Người kiểm thử có thể có cái nhìn thiên vị về phần mềm vì họ đã quen với hoạt động bên trong của nó.
- Chi phí kiểm thử: Việc thiết kế lại mã và viết lại mã cần phải viết lại các trường hợp kiểm thử.
- Phụ thuộc vào chuyên môn của người kiểm thử: Người kiểm thử bắt buộc phải có kiến thức chuyên sâu về mã và ngôn ngữ lập trình thay vì kiểm tra hộp đen.
- Không có khả năng phát hiện các chức năng bị thiếu: Không thể phát hiện các chức năng bị thiếu khi mã tồn tại đã được kiểm tra.
Source: White box Testing – Software Engineering – GeeksforGeeks