Kiểm thử hộp trắng – White Box Testing

white box testing kiem thu hop trang

White Box Testing là gì?

Kiểm thử hộp trắng (White Box Testing) là một kỹ thuật xác minh giúp các Tester có thể sử dụng để kiểm tra mã code của họ hoạt động như dự kiến. Có 2 hoạt động kiểm thử hộp trắng:

  • Kiểm thử luồng điều khiển
  • Kiểm thử dòng dữ liệu

white box testing kiem thu hop trang

Các kỹ thuật White Box Testing phổ biến

Để thực hiện được kiểm thử hộp trắng, ta cần tuân thủ các bước cơ bản sau:

  • Hiểu được mã nguồn: Đây là việc cần thiết cần làm đầu tiên, vì kiểm thử hộp trắng liên quan đến kiểm tra các hoạt động bên trong nên bắt buộc phải hiểu được mã nguồn mà ta cần kiểm tra. Ngoài ra, ta cần phải thực hiện chặt chẽ vấn đề mã hóa an toàn vì bảo mật là cốt lỗi của việc kiểm thử này.

  • Tạo và thực hiện các trường hợp kiểm thử: Việc viết thêm các đoạn mã để kiểm tra đoạn mã nguồn của ứng dụng sẽ là việc tiếp theo cần làm. Cần phải phát triển các thử nghiệm nhỏ cho từng quy trình hoặc cho từng chuỗi quy trình trong ứng dụng (có thể tìm hiểu thêm ở đây)

Một ví dụ đơn giản với đoạn mã như sau:

Printme (int a, int b) {                       ------------  Printme is a function
    int result = a+ b;
    If (result> 0)
    	Print ("Positive", result)
    Else
    	Print ("Negative", result)
}          

Mục tiêu đặt ra là xác định tất cả các nhánh, các vòng lặp và câu lệnh trong đoạn mã trên.

Và các trường hợp thử nghiệm của White Box Testing sẽ là

A = 1, B = 1

A = -1, B = -3

Các trường hợp thử nghiệm trên sẽ bao phủ được các điều kiện, các nhánh cũng như các lệnh trong đoạn mã.

Các loại kiểm thử hộp trắng

  • Unit testing: đây là phương pháp kiểm thử đầu tiên được thực hiện để kiểm tra một ứng dụng. Phương pháp này khá quan trọng nên ta sẽ bàn về nó ngay sau khi đọc xong phương pháp kiểm thử Black box testing.
  • Testing for Memory Leaks (kiểm tra rò rỉ bộ nhớ): Rò rỉ bộ nhớ là nguyên nhân hàng đầu khiến cho việc chạy ứng dụng trở nên chậm chạp hơn. Và khi có hiện tượng như trên thì cần phải nghĩ ngay đến trường hợp này.

Ngoài ra cũng có một số phương pháp khác như: White Box Penetration Testing và White Box Mutation Testing

Ưu điểm của White Box Testing:

  • Tối ưu hóa mã nguồn bằng cách tìm ra các lỗi ẩn.
  • Dễ dàng thực hiện tự động nhưng cũng kỹ lưỡng hơn
  • Và việc kiểm tra có thể bắt đầu sớm ngay cả khi GUI không khả dụng.

Nhược điểm của White Box Testing:

  • Thực hiện khá phức tạp và tốn kém chi phí.
  • Đòi hỏi người kiểm thử phải thực sự chuyên nghiệp và hiểu biết về lập trình.
  • Tốn rất nhiều thời gian