Facebook Facebook Facebook Facebook

Kiểm thử hộp trắng 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 kỹ sư phần mềm có thể dùng để rà mã code của họ hoạt động như dự định thường được dùng trong kiểm thử thủ công. 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

Trong bài viết này, tôi trình diễn.# qua loa về kiểm thử luồng điều khiển. Để tìm hiểu về kiểm thử luồng điều khiển trước tiên ta phải hiểu về đường cơ sở (basic path testing).
Đường cơ sở (basic path testing):

Là con đường thể nghiệm căn bản, một thể nghiệm có cấu trúc hoặc kỹ thuật kiểm thử hộp trắng được dùng cho việc thiết kế trường hợp thể nghiệm nhằm kiểm tra ắt các đường dẫn có thể thực hành chí ít một lần. Tạo và thực hành các thí điểm cho quờ các đường dẫn kết quả tốt ở khi 100% đậy nhánh. Ví dụ đoạn mã:

Các bước để xây dựng nên đường cơ sở được chia như sau:
Bước 1: Vẽ đồ thị biểu lộ dòng điều khiển

Bước 2: Xác định các đường tuyến tính độc lập:

Sau đó chúng ta thực hiện tạo từng test case cho từng đường thi hành tuyến tính căn bản rồi so sánh kết quả có được với kết quả được kỳ vọng.
Các kĩ thuật kiểm thử hộp trắng

Khi thực hiện kiểm thử bằng whitebox testing thì ta phải có một bộ test cho chương trình đó. Tuy nhiên làm sao để biết chắc chắn được là bộ test của chúng ta đã đầy đủ cho vơ các trường hợp hay chưa? Lúc này ta sẽ áp dụng các kiến thức của coverage tesing để đo đạc kết quả của chương trình khi thực hiện bộ kiểm thử.

Coverage testing có thể hiểu nôm na là tỉ lệ (tính theo %) test case đã được thực hành trên tổng số test case cần thiết cho ứng dụng. Nếu tỉ lệ này càng cao thì ứng dụng càng được test kỹ. mặc dầu việc đảm bảo áp dụng có test coverage là 100% trong một số trường hợp là bất khả thi, nhưng ta vẫn sẽ luôn nắm để đạt được kết quả gần với con số đó nhất.

Có 3 kĩ thuật


bao phủ câu lệnh(Statement Coverage): Kiểm thử sao cho mỗi câu lệnh được thực thi ít nhất 1 lần. thí dụ đọan mã:

Public int foo(int x, int y) Int z = 0; If (x > 0 && y > 0) z = x; Return z;

Nếu ta gọi foo(1,1) thì dòng z = x sẽ được thực hành, còn nếu gọi foo(0,1) thì dòng z = x sẽ không được thực hiện, lúc đó test case của ta sẽ không thỏa điều kiện tủ câu lệnh.

lấp điều kiện(Branch Coverage, Decision coverage): Kiểm thử đòi hỏi phải đủ trường hợp thể nghiệm như thế mà mỗi điều kiện trong một quyết định có trên vớ các kết quả có thể ít ra một lần. Đó là các nhánh (quyết định) lấy cả 2 trường hợp đúng và sai. Nó giúp trong việc chứng thực tất cả các ngành có mã đảm bảo rằng đó không có chi nhánh dẫn đến hành vi thất thường của vận dụng. thí dụ đoạn mã:

Ta có thể sinh các test case che các điều kiện của nhánh:

bao phủ nhánh(Path Coverage): Trong các trường hợp kiểm thử được thực hiện trong một cách mà mọi con đường được thực hành ít nhất một lần. tất tật các con đường kiểm soát có thể được thực hiện, bao gồm toàn bộ những con đường vòng lấy bằng không, một lần, và nhiều (lý tưởng là tối đa) các trường hợp thí điểm được chuẩn bị dựa trên các biện pháp phức tạp logic của một thiết kế thủ tục. Để hoàn thiện lấp nhánh, chúng ta phải xét thêm 2 trường hợp bug(a) khi đúng và khi sai.

Tổng kết
Coverage testing giúp ta xem xét tỉ lệ các test case dùng để thực thi cho mã nguồn đã đủ hay còn thiếu, giúp tìm ra lỗi tìm tàng trong sản phẩm phần mềm và giúp xây dựng các test case chất lượng để tăng độ phủ của bộ test.

0 nhận xét:

Đăng nhận xét