Tải bản đầy đủ (.ppt) (39 trang)

Phương pháp kiểm thử hộp trắng (white box testing)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (564.75 KB, 39 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Đề tài:
Phương pháp kiểm thử hộp trắng
(white box testing)

1


Nội dung trình bày
Các khái niệm của phương phương
pháp kiểm thử hộp trắng
 Các kỹ thuật được sử dụng khi xây
dựng các ca kiểm thử theo phương
pháp kiểm thử hộp trắng


Ưu, nhược điểm của phương pháp.
 Giải pháp


2


Đặt vấn đề


Bài toán về chất lượng phần mềm luôn được đặt ra
trong mọi dự án phần mềm với mong muốn là ngày
càng sản suất ra được những phần mềm có chất
lượng tốt hơn với chi phí thấp hơn.





Việc đảm bảo chất lượng phần mềm mềm liên
quan đến rất nhiều yếu tố như: chuẩn và quy trình
quản lý của công ty, môi trường và công cụ phát
triển, mô hình phát triển phần mềm được lựa chọn,
kĩ năng của nhân viên,…



Xác minh và thẩm định là tên gọi chung của các
hoạt động đảm bảo chất lượng phần mềm.
3


Đặt vấn đề


Kiểm thử phần mềm là một phần quan trọng trong
hoạt động đảm bảo chất lượng phần mềm nhằm
tạo ra những sản phẩm có chất lượng tốt, góp phần
tạo nên thành công của các dự án phần mềm



Công việc mã hóa một chương trình theo đúng
thiết kế là một trong những giai đoạn quan trọng
trong quá trình sản xuất phần mềm.




Đề tài: “Phương pháp kiểm thử hộp trắng” là một
trong những phương pháp dùng để thiết kế các ca
kiểm thử nhằm kiểm tra xem các đoạn mã chương
trình có vận hành đúng như thiết kế hay không.
4


Đặt vấn đề
Nội dung chính của tiểu luận:


Tìm hiểu về phương pháp kiểm thử hộp trắng
đang rất phổ biến hiện nay trong ngành công
nghệ phần mềm.



Trên cơ sở kiến thức kiểm thử tiếp thu được sẽ
giúp cho bản thân tạo ra những sản phẩm phần
mềm có chất lượng cao hơn trong tương lai.

5


Các khái niệm
Kiểm thử hộp trắng:
 kiểm tra các đoạn mã chương
trình xem nó có vận hành

đúng như thiết kế hay không.


Kiểm thử hộp trắng dựa trên
việc xem xét cấu trúc bên
trong của chương trình theo
cấu trúc điều khiển và hoạt
động của chúng
6


Các khái niệm (tiếp)






Các tên gọi khác: kiểm thử cấu trúc (structural testing),
kiểm thử hộp kính (glass box), kiểm thử rõ ràng (clear
box testing).
Đối tượng chính của kiểm thử hộp trắng là tập trung vào
cấu trúc bên trong chương trình và tìm ra tất cả những
lỗi bên trong chương trình.
Việc kiểm tra tập trung chủ yếu vào:
 Cấu trúc chương trình: Những câu lệnh và các nhánh,
các loại đường dẫn chương trình.
 Logic bên trong chương trình và cấu trúc dữ liệu.
 Những hành động và trạng thái bên trong chương
trình.

7


Các khái niệm về phương pháp
kiểm thử hộp trắng


Yêu cầu đặt ra cho các ca kiểm thử hộp trắng ít nhất
phải đảm bảo:
 Mọi con đường độc lập trong một mô-đun cần được
thực hiện ít nhất một lần
 Mọi ràng buộc logic cần được thực hiện hai phía
đúng và sai
 Tất cả các vòng lặp ở biên của nó và biên vận hành
phải được thực hiện
 Mọi cấu trúc dữ liệu nội tại được dùng để đảm bảo
tính hiệu lực của nó
8


Các kỹ thuật trong phương
pháp kiểm thử hộp trắng
1.
2.
3.
4.
5.

Đồ thị luồng
Ma trận kiểm thử

Kiểm thử điều kiện
Kiểm thử luồng dữ liệu
Kiểm thử vòng lặp

9


1. Đồ thị luồng
a)

Cấu trúc của đồ thị luồng

-

Đồ thị luồng (flow graph) là một kỹ thuật kiểm
thử hộp trắng được Tom McCabe đề xuất năm
1976
Đồ thị luồng được xây dựng từ đồ thị luồng điều
khiển của chương trình bằng cách gộp các lệnh
tuần tự liên tiếp và lệnh rẽ nhánh sau nó thành một
nút, thay các lệnh rẽ nhánh (độc lập) hay điểm
hợp nhất của các đường rẽ nhánh bằng một nút.

-

10


a) Cấu trúc của đồ thị luồng (tiếp)



cấu trúc của một đồ thị luồng bao
gồm:








Mỗi nút (hình tròn) biểu thị một vài
(có thể là 0) câu lệnh thủ tục.
Mỗi cạnh biểu diễn dòng điều khiển
nối hai nút với nhau.
Miền là phần mặt phẳng giới hạn bởi
các cung và nút của đồ thị.
Những nút biểu thị sự phân nhánh
hoặc hội nhập của các cung được gọi
11
là nút vị từ.


a) Cấu trúc của đồ thị luồng (tiếp)


Các cấu trúc lệnh cơ bản của chương trình tương
ứng với các cấu trúc trong đồ thị luồng:

12



b) Độ phức tạp chu trình






Là số đo sự phức tạp logic của chương
trình.
Là số các đường đi độc lập cơ bản trong
tập các con đường độc lập của một
chương trình.
Là số đường độc lập nhỏ nhất phủ hết các
cạnh của đồ thị luồng.
Số đo này là giới hạn trên của số ca kiểm
thử cần phải tiến hành để đảm bảo rằng,
tất cả các câu lệnh trong chương trình đều
được thực hiện ít nhất một lần.
13


b) Độ phức tạp chu trình (tiếp)


Độ phức tạp chu trình của đồ thị luồng G được
kí hiệu là V(G) và có thể tính theo bốn cách sau:






V(G) = số miền phẳng
V(G) = E – N + 2
V(G) = P – 1
V(G) = C + 1

Trong đó: E là số cạnh, N là số nút của đồ thị, P
là số nút vị từ và C là số nút biểu thị sự phân
nhánh.
14


c)

Ví dụ
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.


đồ thị luồng điều khiển

i = 1;
total_input = total_valid = 0;
sum = 0;
while(value[i] != -999 &&
total_input < 100) {
total_input++;
if(value[i] >= min && value[i] <=
max) {
total_valid++;
sum += value[i];
} //Endif
i++;
} //Endwhile
if(total_valid > 0)
average = sum/total_valid;
else average = -999;
return average;

15


Từ đồ thị luồng điều khiển ta xây dựng được đồ thị
luồng tương ứng như sau:

16



Độ phức tạp chu trình V(G) của đồ thị này
bằng 4, là số miền phẳng của nó, hay có thể
tính theo các công thức khác dưới đây:
V(G) = E – N + 2 = 10 – 8 + 2 = 4
V(G) = P – 1 = 5 – 1 = 4
V(G) = C + 1 = 3 + 1 = 4
− 4 đường độc lập cơ bản tìm được (để lập
các ca kiểm thử) từ đồ thị luồng là: đường
1: 1 – 2 – 3 – 4 – 1; đường 2: 1 – 2 – 4 – 1;
đường 3: 1 – 5 – 6 – 8; đường 4: 1 – 5 – 7 –
8.


17


Kết luận: Để thiết lập các ca kiểm thử khi
sử dụng kỹ thuật đồ thị luồng, cần tiến
hành theo 5 bước sau:
1)
2)
3)
4)
5)

Từ thiết kế hoặc mã nguồn của môdun, ta lập
đồ thị luồng điều khiển.
Xây dựng đồ thị luồng tương ứng với đồ thị
luồng điều khiển.
Xác định độ phức tạp chu trình V(G) của đồ

thị luồng đó.
Xác định tập cơ bản của các con đường độc
lập.
Chuẩn bị các ca kiểm thử tương ứng mỗi con
18
đường cơ bản.


2. Ma trận kiểm thử


Được xây dựng dựa trên đồ thị luồng.



Là một ma trận vuông, có kích thước bằng số
các nút của đồ thị luồng:
+ Mỗi dòng/cột ứng với tên một nút.
+ Mỗi ô được ghi số 1 nếu có một cung
nối nút
dòng đến nút cột.



Dùng để tính độ phức tạp chu trình: cộng số 1
trên mỗi dòng rồi trừ đi 1, sau đó lấy tổng các
dòng cộng thêm 1 ta được kết quả.




Ma trận Ak: giá trị ghi trong mỗi ô cho số các con
đường có k cung đi từ nút dòng tới nút cột.
19


2. Ma trận kiểm thử (tiếp)


Để ma trận kiểm thử trở thành một công cụ mạnh,
người ta xác định thêm các trọng số sau đây cho các
cung cua ma trận kiểm thử:
+ Xác xuất cung đó được tiến hành.
+ Thời gian xử lý của đường đi qua cung đó.
+ Bộ nhớ yêu cầu của đường đi qua cung đó.
+ Nguồn lực đòi hỏi của đường đi qua cung đó.
 Với những tham số này, các ma trận kiểm thử
giúp ta lựa chọn những đường đi cơ bản có trọng số
quan trọng để thiết lập các ca kiểm thử.
20


2. Ma trận kiểm thử (tiếp)
Sau đây là 2 ma trận A và A4 đồ thị kiểm thử của
đồ thị luồng xét trong phần (1):

21


22



3. Kiểm thử điều kiện
Người ta đã đề xuất ra 2 chiến lược kiểm thử điều kiện:
 Kiểm thử rẽ nhánh (Branch testing).
 Kiểm thử miền (Domain testing).
a)

Kiểm thử rẽ nhánh



Là chiến lược tập trung vào kiểm thử từng điều
kiện rẽ nhánh có trong chương trình.
Đảm bảo kiểm tra mỗi nhánh ít nhất một lần.
Xác nhận tính đúng đắn của tất cả các rẽ nhánh
trong mã lệnh và khẳng định không có nhánh nào
dẫn tới một hành vi bất thường của ứng dụng.




23


a) Kiểm thử rẽ nhánh (tiếp)
− Ví dụ: kiểm thử đoạn mã sau:
1: function hello($sDate, $sTime) {
2: echo “Hello World!
”;
3: if ($sDate == "01-01-2010" &&
$sTime == "00:00:00") {

4: echo "Happy New Year
";
5: }
6: echo “The date is: $sDate >”;
7: echo “The time is: $sTime
”;
8: }

24


b)

Chiến lược kiểm thử BRO

Nhận xét: Khi một biểu thức điều kiện phức hợp
gồm n điều kiện đơn mà số n đủ lớn, thì việc
tiến hành đầy đủ 2n ca kiểm thử là rất khó thực
hiện.
− Là một kỹ thuật làm giảm số ca kiểm thử cần
tiến hành trong kiểm thử điều kiện.
− BRO dùng đến “ràng buộc điều kiện cho điều
kiện kiểm thử”.
− Tư tưởng kiểm thử của chiến lược BRO là cho
phép thử nhạy cảm sai của biểu thức bool.
25


×