Random Posts
randomposts
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ể dùng để kiểm tra 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 miêu tả dối 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í điểm cơ 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 sử 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 nhất một lần. Tạo và thực hiện các thử nghiệm cho bít tất 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ị mô 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 hành 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 kiên cố được là bộ test của chúng ta đã đầy đủ cho quờ 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 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 hiện trên tổng số test case cần thiết cho áp dụng. Nếu tỉ lệ này càng cao thì vận dụng càng được test kỹ. dù rằng việc bảo đảm vận 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 cầm cố để đạt được kết quả gần với con số đó nhất.

Có 3 kĩ thuật


che 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. tỉ 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.

che đ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 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 quơ 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 ứng dụng. thí dụ đoạn mã:

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

phủ nhánh(Path Coverage): Trong các trường hợp kiểm thử được thực hành trong một cách mà mọi con đường được thực hiện ít nhất một lần. bít tất các con đường kiểm soát có thể được thực hành, bao gồm ắt 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 phủ 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.
Share:

0 nhận xét:

Đăng nhận xét

Fanpage

Tổng số lượt xem trang