Thứ Sáu, 2 tháng 3, 2018

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ể sử dụng để soát mã code của họ hoạt động như dự kiến thường được sử 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 biểu thị qua quýt 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 nhất 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 quờ các đường dẫn có thể thực hiện ít ra một lần. Tạo và thực hành các thí nghiệm cho thảy các đường dẫn kết quả tốt ở khi 100% che nhánh. tỉ 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ị tả 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ơ 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 kiên cố được là bộ test của chúng ta đã đầy đủ cho tất các trường hợp hay chưa? Lúc này ta sẽ ứng dụng các tri thức của coverage tesing để đo đạc kết quả của chương trình khi thực hành 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ấp thiết cho áp dụng. Nếu tỉ lệ này càng cao thì áp dụng càng được test kỹ. Mặc dù việc đảm bảo ứng 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


phủ câu lệnh(Statement Coverage): Kiểm thử sao cho mỗi câu lệnh được thực thi chí í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 hiện, còn nếu gọi foo(0,1) thì dòng z = x sẽ không được thực hành, lúc đó test case của ta sẽ không thỏa điều kiện đậy 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 hết thảy các kết quả có thể ít nhất 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 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 phủ các điều kiện của nhánh:

tủ 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 chí ít một lần. tuốt luốt các con đường kiểm soát có thể được thực hành, bao gồm vớ 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ử nghiệ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 đậy 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 coi 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.

Không có nhận xét nào:

Đăng nhận xét