10/21/2019
THUẬT TOÁN
SINH TEST CASE BAO PHỦ CÂU LỆNH
SỬ DỤNG GIẢI THUẬT DI TRUYỀN
GIỚI THIỆU NHÓM
Nhóm 5 – VUWIT15 – 692508
IT4541 – Đảm bảo chất lượng phần mềm
21/10/2019
21/10/2019
1
2
GIỚI THIỆU NHÓM
Nhóm 5
•
•
•
•
•
Trần Minh Sơn (nhóm trưởng)
Hoàng Sơn
Cai Việt Hoàng
Phạm Quang Khuê
Phạm Thế Anh
BAO PHỦ CÂU LỆNH (STATEMENT COVERAGE)
21/10/2019
21/10/2019
IT4541 – Đảm bảo chất lượng phần mềm
3
4
10/21/2019
BAO PHỦ CÂU LỆNH
Định nghĩa
BAO PHỦ CÂU LỆNH
Định lượng
Bao phủ lệnh (Statement Coverage – SC) là một kỹ thuật kiểm thử hộp trắng,
bao gồm việc thực hiện tất cả các câu lệnh ít nhất một lần trong mã nguồn. Nó là
một số liệu, được sử dụng để tính toán và đo lường số lượng câu lệnh trong mã
nguồn đã được thực thi.
21/10/2019
21/10/2019
IT4541 – Đảm bảo chất lượng phần mềm
5
IT4541 – Đảm bảo chất lượng phần mềm
6
BAO PHỦ CÂU LỆNH
Ví dụ
GIẢI THUẬT DI TRUYỀN (GENETIC ALGORITHM)
a = 3, b = 9
Number of executed statements = 5,
Total number of statements = 7
Statement Coverage: 5/7 = 71%
21/10/2019
21/10/2019
IT4541 – Đảm bảo chất lượng phần mềm
7
8
10/21/2019
GIẢI THUẬT DI TRUYỀN
Định nghĩa. Phương pháp
Giải thuật di truyền (Genetic Algorithm - GA) là một kỹ thuật của khoa học máy
tính nhằm tìm kiếm giải pháp thích hợp cho các bài toán tối ưu tổ hợp
(combinatorial optimization). Giải thuật di truyền là một phân ngành của giải thuật
tiến hóa vận dụng các nguyên lý của tiến hóa như di truyền, đột biến, chọn lọc tự
nhiên, và trao đổi chéo.
Trong giải thuật di truyền cho một bài toán tối ưu hóa, ý tưởng là một tập hợp (gọi
là nhiễm sắc thể) của những giải pháp có thể (gọi là cá thể) sẽ được cho "tiến
triển" theo hướng chọn lọc những giải pháp tốt dần hơn.
THUẬT TOÁN: SINH TEST CASE BAO PHỦ CÂU LỆNH SỬ DỤNG GIẢI
THUẬT DI TRUYỀN
21/10/2019
21/10/2019
IT4541 – Đảm bảo chất lượng phần mềm
9
10
THUẬT TOÁN
Lưu đồ giải thuật di truyền
THUẬT TOÁN
Lưu đồ ứng dụng giải thuật di truyền trong sinh test case tự động (GA Execution)
21/10/2019
21/10/2019
IT4541 – Đảm bảo chất lượng phần mềm
11
IT4541 – Đảm bảo chất lượng phần mềm
12
10/21/2019
THUẬT TOÁN
GA Execution thu gọn
THUẬT TOÁN
Sơ đồ luồng điều khiển (Control Flow Graph – CFG)
21/10/2019
21/10/2019
IT4541 – Đảm bảo chất lượng phần mềm
13
IT4541 – Đảm bảo chất lượng phần mềm
14
THUẬT TOÁN
Các trường hợp bao phủ câu lệnh (Specifying Statement Coverage Paths - SSCP)
THUẬT TOÁN
Lưu đồ sinh test case SC sử dụng GA
CFG
SSCP
Path 1: S-1-2-3-5-7-E
Path 2: S-1-2-4-5-6-7-8-E
21/10/2019
21/10/2019
IT4541 – Đảm bảo chất lượng phần mềm
15
IT4541 – Đảm bảo chất lượng phần mềm
16
10/21/2019
THUẬT TOÁN
Ví dụ
THUẬT TOÁN
Ví dụ
Compare 2 integers function
Bước 1: Xây dựng CFG và SSCP
• CFG
21/10/2019
21/10/2019
IT4541 – Đảm bảo chất lượng phần mềm
17
IT4541 – Đảm bảo chất lượng phần mềm
18
THUẬT TOÁN
Ví dụ
THUẬT TOÁN
Ví dụ
Bước 1: Xây dựng CFG và SSCP
• SSCP
Bước 2: Chọn Path 1
Bước 3: Thực hiện Giải thuật di truyền
• Khởi tạo Test Case theo nguyên lí Ammann and Offutt
(Bộ các Test Case cùng < 0, > 0 hoặc = 0)
Path 1: 1,2-3-4-9
Path 2: 1,2-3-5-6-9
Path 3: 1,2-3-5-7,8-9
21/10/2019
b
-4
-5
Set 2
0
0
Set 3
6
10
21/10/2019
IT4541 – Đảm bảo chất lượng phần mềm
19
a
Set 1
IT4541 – Đảm bảo chất lượng phần mềm
20
10/21/2019
THUẬT TOÁN
Ví dụ
THUẬT TOÁN
Ví dụ
Bước 2: Chọn Path 1
Bước 3: Thực hiện Giải thuật di truyền
• Đánh giá tiêu chí theo nguyên tắc Korel’s Distance
Bước 2: Chọn Path 1
Bước 3: Thực hiện Giải thuật di truyền
• Sắp xếp các TC theo thứ tự tăng của BD
Set 3 -> Set 1 -> Set 2
a
b
BD
a
b
BD
Set 1
-4
-5
-1
Set 1
-4
-5
-1
Set 2
0
0
0
Set 2
0
0
0
Set 3
6
10
-4
Set 3
6
10
-4
21/10/2019
21/10/2019
IT4541 – Đảm bảo chất lượng phần mềm
IT4541 – Đảm bảo chất lượng phần mềm
21
22
THUẬT TOÁN
Ví dụ
THUẬT TOÁN
Ví dụ
Bước 2: Chọn Path 1
Bước 3: Thực hiện Giải thuật di truyền
• Trao đổi đơn các TC
Bước 2: Chọn Path 1
Bước 3: Thực hiện Giải thuật di truyền
• Đột biến giá trị (Thay đổi các giá trị ngẫu nhiên trong TC)
a
b
a
b
a
b
a
b
Set 3
6
10
Set 2
-4
0
Set 1
6
-5
Set 1
6
5
Set 1
-4
-5
Set 1
6
-5
Set 3
0
10
Set 3
-3
10
Set 2
0
0
Set 3
0
10
Set 2
-4
0
Set 2
-4
8
• Tiếp tục đánh giá TC và sắp xếp lại
• Quay lại bước Đánh giá tiêu chí (1)
a
b
BD
a
b
BD
Set 2
-4
0
-4
Set 1
6
-5
-11
Set 1
6
-5
-11
Set 3
0
10
-6
Set 3
0
10
-6
Set 2
-4
0
-4
• Chương trình kết thúc khi đảm bảo số lượng TC được generate đảm bảo SC.
21/10/2019
21/10/2019
IT4541 – Đảm bảo chất lượng phần mềm
23
IT4541 – Đảm bảo chất lượng phần mềm
24