Tải bản đầy đủ (.pdf) (72 trang)

Sinh ca kiểm thử theo cặp cho mô hình đặc trưng có rằng buộc số

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 (1.95 MB, 72 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

NGÔ THỊ LAN HOA

SINH CA KIỂM THỬ THEO CẶP CHO
MÔ HÌNH ĐẶC TRƯNG CÓ RÀNG BUỘC SỐ

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

HÀ NỘI - 2016


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

NGÔ THỊ LAN HOA

SINH CA KIỂM THỬ THEO CẶP CHO
MÔ HÌNH ĐẶC TRƯNG CÓ RÀNG BUỘC SỐ
CHUYÊN NGÀNH : KHOA HỌC MÁY TÍNH
MÃ SỐ:

0

60.48.01.01

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)


NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. ĐỖ THỊ BÍCH NGỌC

HÀ NỘI - 2016


i

LỜI CAM ĐOAN
Luận văn này là thành quả của quá trình học tập nghiên cứu của tôi cùng sự
giúp đỡ, khuyến khích của các quý thầy cô sau 2 năm tôi theo học chương trình đào
tạo Thạc sĩ, chuyên ngành Khoa học máy tính của trường Học viện Công nghệ Bưu
chính Viễn thông.
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi. Nội dung của luận
văn có tham khảo và sử dụng một số thông tin, tài liệu từ các nguồn sách, tạp chí
được liệt kê trong danh mục các tài liệu tham khảo và được trích dẫn hợp pháp.
TÁC GIẢ

Ngô Thị Lan Hoa


ii

LỜI CÁM ƠN
Tôi xin gửi lời cảm ơn và tri ân tới các thầy cô giáo, cán bộ của Học viện
Công nghệ Bưu chính Viễn thông đã giúp đỡ, tạo điều kiện tốt cho tôi trong quá
trình học tập và nghiên cứu chương trình Thạc sĩ.
Tôi xin gửi lời cảm ơn sâu sắc tới Tiến sĩ Đỗ Thị Bích Ngọc đã tận tình
hướng dẫn, giúp đỡ và động viên tôi để hoàn thành tốt nhất Luận văn “Sinh ca kiểm
thử theo cặp cho mô hình đặc trưng có ràng buộc số”.
Do vốn kiến thức lý luận và kinh nghiệm thực tiễn còn ít nên luận văn không

tránh khỏi những thiếu sót nhất định. Tôi xin trân trọng tiếp thu các ý kiến của các
thầy, cô để luận văn được hoàn thiện
Trân trọng cám ơn.
Tác giả.


iii

MỤC LỤC
MỞ ĐẦU
...........................................................................................................1
Tính cấp thiết của đề tài ..........................................................................................1
Tổng quan về vấn đề nghiên cứu ............................................................................2
Mục đích, đối tượng, phạm vi và phương pháp nghiên cứu ...................................2
Cấu trúc luận văn ....................................................................................................3
CHƯƠNG 1.

SINH CA KIỂM THỬ DỰA TRÊN .................................................4

CÂY ĐẶC TRƯNG ....................................................................................................4
1.1 Sinh ca kiểm thử tự động ...............................................................................4
Khái niệm ca kiểm thử ............................................................................4
1.2

Sinh ca kiểm thử hộp đen ...............................................................................4
Một số kỹ thuật tiêu biểu .........................................................................4
Kỹ thuật kiểm thử theo cặp .....................................................................5

1.3


Cây đặc trưng .................................................................................................9

1.4

Cây đặc trưng trong kiểm thử phần mềm ....................................................11

1.5

Kết luận chương ...........................................................................................12

CHƯƠNG 2. CÂY ĐẶC TRƯNG CÓ RÀNG BUỘC SỐ VÀ SINH CA KIỂM
THỬ THEO CẶP ......................................................................................................14
2.1 Cây đặc trưng có ràng buộc số .....................................................................14
Hạn chế của cây đặc trưng.....................................................................14
Mở rộng cây đặc trưng với ràng buộc số ...............................................14
2.2

Sinh ca kiểm thử theo cặp cho cây đặc trưng có ràng buộc số ....................16
Hướng tiếp cận ......................................................................................16
Phẳng hóa cây đặc trưng có ràng buộc số .............................................18
Dùng PICT để sinh ra ca kiểm thử ........................................................38

2.3

Kết luận chương ...........................................................................................39

CHƯƠNG 3. CÀI ĐẶT VÀ THỬ NGHIỆM HỆ THỐNG PnF ..........................40
3.1 Hệ thống PnF ...............................................................................................40
Giới thiệu ...............................................................................................40
Giao diện hệ thống.................................................................................41

Đặc tả dữ liệu đầu vào ...........................................................................42
3.2

Cài đặt chương trình.....................................................................................43
Thêm cây đặc trưng ...............................................................................43


iv

Phẳng hóa cây đặc trưng........................................................................45
Dùng tool PICT để sinh ra ca kiểm thử .................................................47
3.3

Kết quả thử nghiệm ......................................................................................49
Kết quả thử nghiệm ...............................................................................55

3.4

Kết luận chương ...........................................................................................56

KẾT LUẬN

.........................................................................................................57

PHỤ LỤC

.........................................................................................................58

TÀI LIỆU THAM KHẢO .........................................................................................63



v

DANH MỤC TỪ VIẾT TẮT
STT
1

Từ viết tắt
FTT

Ý nghĩa tiếng Anh
Feature tree for testing

Ý nghĩa tiếng Việt
Cây đặc trưng cho kiểm thử

2

SPL

Software product line

Dòng sản phẩm phần mềm

3

FOT

Feature oriented testing


Kiểm thử hướng đặc trưng

PICT

Pairwise Independent

Công cụ sinh tổ hợp các ca

Combinatorial Testing

kiểm thử theo cặp

4

tool
PnF

5

Pairwise numberical

Công cụ sinh ca kiểm thử

Feature Tree for Testing

theo cặp cho cây đặc trưng
ràng buộc số

6


CTC

Cross Tree Constraint

Ràng buộc trên cây


vi

DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1 Đầu vào của phần mềm đặt hàng xe oto .............................................................. 7
Bảng 1.2 Các cặp kết hợp của 2 tham số đầu vào ............................................................... 7
Bảng 1.3 Các cặp kết hợp của 3 tham số đầu vào ............................................................... 8
Bảng 1.4 Các cặp kết hợp của tất cả các tham số đầu vào.................................................. 9
Bảng 4.1 Kết quả thử nghiệm đối với cây Volume ............................................................ 59
Bảng 4.2 Kết quả thử nghiệm đối với cây Hardware ........................................................ 60
Bảng 4.3 Kết quả thử nghiệm đối với cây Computer ........................................................ 61
Bảng 4.4 Kết quả thử nghiệm đối với cây TV .................................................................... 61
Bảng 4.5 Kết quả thử nghiệm đối với cây Laptop ............................................................. 62


vii

DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Một quy trình kiểm thử cơ bản ............................................................................. 4
Hình 1.2 So sánh số ca kiểm thử giữa kiểm thử đầy đủ và kiểm thử theo cặp .................. 6
Hình 1.3 Cây đặc trưng cho dòng sản phẩm phần mềm Laptop ...................................... 10
Hình 2.1 Quá trình sinh ca kiểm thử cho mô hình đặc trưng .......................................... 17
Hình 2.2 Cây sau khi phẳng hóa với c là Maldatory, p bất kỳ.......................................... 21
Hình 2.3 Cây sau khi phẳng hóa với c là Optional, p là Maldatory ................................. 23

Hình 2.4 Cây sau khi phẳng hóa với c là Optional, p là Optional.................................... 25
Hình 2.5 Cây sau khi phẳng hóa với c là Alternative group, c là Maldatory................... 27
Hình 2.6 Cây sau khi phẳng hóa với c là Alternative group, p là Optional ..................... 29
Hình 2.7 Cây sau khi phẳng hóa với c là Or group, p là Optional ................................... 33
Hình 2.8 Cây Laptop sau khi phẳng hóa ........................................................................... 36
Hình 2.9 File đầu vào cho PICT ........................................................................................ 37
Hình 2.10 Chạy PICT bằng Command Prompt ................................................................ 38
Hình 3.1 Giao diện hệ thống .............................................................................................. 41
Hình 3.2 File đầu vào của chương trình cài đặt ............................................................... 42
Hình 3.3 Thêm các Node cho cây đặc trưng ..................................................................... 43
Hình 3.4 Thêm các ràng buộc cho cây đặc trưng ............................................................. 44
Hình 3.5 Cây đặc trưng Laptop hoàn chỉnh ...................................................................... 44
Hình 3.6 Cây đặc trưng sau khi được phẳng hóa ............................................................. 46
Hình 3.7 Cây đặc trưng sau khi phẳng hóa được chuyển thành đầu vào cho PICT ...... 47
Hình 3.8 Ca kiểm thử theo cặp được sinh ra bằng PICT ................................................. 48
Hình 3.9 Ca kiểm thử cho cây đặc trưng ban đầu ............................................................ 49
Hình 3.10 Cây đặc trưng cho dòng sản phẩm Volume ..................................................... 50
Hình 3.11 File đầu vào của cây đặc trưng Volume........................................................... 50
Hình 3.12 Cây đặc trưng cho dòng sản phẩm Hardware ................................................. 51
Hình 3.13 File đầu vào của cây đặc trưng Hardware ....................................................... 52
Hình 3.14 Cây đặc trưng cho dòng sản phẩm Computer ................................................. 53
Hình 3.15 File đầu vào của cây đặc trưng Computer ....................................................... 54
Hình 3.16 Cây đặc trưng cho dòng sản phẩm TV ............................................................. 54
Hình 3.17 File đầu vào của cây đặc trưng TV .................................................................. 55


1

MỞ ĐẦU
Tính cấp thiết của đề tài

Ngày nay, kiểm thử đóng vai trò quan trọng trong việc phát triển phần mềm.
Kiểm thử giúp đảm bảo chất lượng phần mềm đồng thời giúp giảm thời gian và chi
phí phát triển dự án. Để kiểm thử được tốt thì yếu tố quan trọng nhất vẫn là sinh ca
kiểm thử. Đối với những bài toán nhỏ, việc sinh ca kiểm thử không gặp quá nhiều
khó khăn. Tuy nhiên, đối với những bài toán có dữ liệu đầu vào phức tạp, đặc biệt là
khi khách hàng thay đổi yêu cầu thì việc sinh ca kiểm thử sẽ tốn rất nhiều thời gian,
công sức và chi phí. Do vậy, một yêu cầu đặt ra là phải tự động hóa quá trình sinh
ca kiểm thử để tiết kiệm thời gian, công sức và dễ dàng cập nhật khi yêu cầu thay
đổi.
Trong quá trình kiểm thử hệ thống, thiết kế ca kiểm thử đóng vai trò quan
trọng để đảm bảo chất lượng của phần mềm. Thiết kế ca kiểm thử tốt sẽ giúp phát
hiện được nhiều lỗi hơn và đảm bảo phủ được nhiều trường hợp hơn.
Phương pháp Feature-Tree for Testing (FTT)[4] đã được phát triển với mục
đích là thiết kế và tự động sinh đầu vào ca kiểm thử dựa trên kỹ thuật phân vùng.
Tuy nhiên FFT chỉ có thể áp dụng để sinh ca kiểm thử với các đặc trưng kiểu
boolean và các ràng buộc là biểu thức logic. FTT không thể áp dụng cho trường hợp
các ràng buộc có chứa số. Để tăng tính linh hoạt và khả năng áp dụng của FTT, [5]
đã nghiên cứu và đưa ra một mở rộng của FTT với các đặc trưng số và ràng buộc
số. Hệ thống ràng buộc số này sẽ được giải tự động để sinh tất cả ca kiểm thử tương
ứng với cây ban đầu.
Kiểm thử theo cặp là kỹ thuật sinh ca kiểm thử hiệu quả dựa trên một thực tế
là lỗi phần mềm thường được gây ra bởi sự tương tác của hai tham số. Kiểm thử
theo cặp chỉ tạo các ca kiểm thử phủ hết các cặp giá trị của 2 tham số thay vì các bộ
giá trị của tất cả các tham số. Nhờ vậy, số ca kiểm thử giảm đi rất nhiều so với kiểm
thử tất cả các trường hợp nhưng vẫn đảm bảo phát hiện được nhiều lỗi phần mềm.
Tuy nhiên kiểm thử theo cặp chưa được áp dụng cho cây FTT có ràng buộc số.


2


Để đáp ứng những bài toán đặt ra, ngoài ra giúp giải quyết các mục tiêu nêu
trên học viên đã nghiên cứu và phát triển đề tài “SINH CA KIỂM THỬ THEO
CẶP CHO MÔ HÌNH ĐẶC TRƯNG CÓ RÀNG BUỘC SỐ”.

Tổng quan về vấn đề nghiên cứu
- Các nghiên cứu trước đây:
 Sinh ca kiểm thử theo cặp
 Mô hình đặc trưng có ràng buộc số
- Vấn đề nghiên cứu hiện tại:
 Kết hợp sinh ca kiểm thử theo cặp và mô hình đặc trưng có ràng buộc số.

Mục đích, đối tượng, phạm vi và phương pháp nghiên cứu
Mục đích nghiên cứu:
- Nghiên cứu kỹ thuật sinh ca kiểm thử theo cặp.
- Nghiên cứu cây đặc trưng để hiểu và áp dụng vào bài toán sinh ca kiểm thử cho
cây đặc trưng và cây đặc trưng mở rộng.
- Nghiên cứu phẳng hóa cây đặc trưng có ràng buộc số và ràng buộc logic để sinh
ca kiểm thử theo cặp nhằm thu nhỏ số ca kiểm thử
Đối tượng nghiên cứu:
- Quy trình kiểm thử phần mềm
- FTT và FTT mở rộng với ràng buộc số
- Kiểm thử theo cặp (Pairwise testing)
Phương pháp nghiên cứu:
Tìm hiểu về những đề tài nghiên cứu trước đây để có cái nhìn tổng quan về vấn
đề nghiên cứu.


3

- Nghiên cứu lý thuyết: Nghiên cứu lý thuyết về các vấn đề sinh ca kiểm thử theo

cặp và mô hình đặc trưng có ràng buộc số. Đồng thời cũng nghiên cứu lý thuyết về
các kỹ thuật kiểm thử tiêu biểu như kiểm thử phần mềm theo cặp và các ràng buộc
khi kiểm thử.
- Nghiên cứu thực tiễn: Đầu tiên, luận văn đưa ra phương án kết hợp hai phương
pháp trước đây là “Sinh ca kiểm thử theo cặp” và “mô hình đặc trưng có ràng buộc
số”. Sau đó sẽ nghiên cứu và đưa ra phương án thu nhỏ số ca kiểm thử 1 cách hiệu
quả cho mô hình đặc trưng có ràng buộc số dựa trên kỹ thuật kiểm thử theo cặp.

Cấu trúc luận văn
Nội dung của luận văn được trình bày trong ba phần chính như sau:
1. Phần mở đầu
2. Phần nội dung: bao gồm ba chương
Chương 1: Sinh ca kiểm thử dựa trên cây đặc trưng
- Các phương pháp sinh ca kiểm thử
- Giới thiệu về cây đặc trưng
- Sinh ca kiểm thử dựa trên cây đặc trưng
Chương 2: Cây đặc trưng có ràng buộc số và sinh ca kiểm thử theo cặp
- Hạn chế của cây đặc trưng
- Mở rộng cây đặc trưng với ràng buộc số
- Phẳng hóa cây đặc trưng có ràng buộc số
- Sinh ca kiểm thử theo cặp cho cây đặc trưng có ràng buộc số
Chương 3: Cài đặt và thử nghiệm
- Cài đặt
- Kết quả thử nghiệm
- Đánh giá
3. Phần kết luận


4


CHƯƠNG 1.

SINH CA KIỂM THỬ DỰA TRÊN CÂY ĐẶC
TRƯNG

1.1 Sinh ca kiểm thử tự động
Khái niệm ca kiểm thử
Trong quá trình phát triển dự án phần mềm, thông thường một quy trình
kiểm thử có các bước cơ bản như sau: lập kế hoạch, thiết kế ca kiểm thử, phát triển
test script, thực hiện kiểm tra và đánh giá.

Thực hiện
Kiểm tra
Lập kế

Thiết kế

Phát triển

hoạch

ca kiểm

test script

thử
Đánh giá

Hình 1.1 Một quy trình kiểm thử cơ bản


Ca kiểm thử (test case) là dữ liệu để kiểm tra hoạt động của chương trình. Ca
kiểm thử được thiết kế tốt là ca kiểm thử phát hiện được một lỗi của chương trình.
Giai đoạn thiết kế ca kiểm thử đảm bảo tất cả các tình huống kiểm tra “quét”
hết các yêu cầu cần kiểm tra. Vì vậy, việc tạo ca kiểm thử hiệu quả là đặc biệt quan
trọng để đảm bảo chất lượng phần mềm.

1.2 Sinh ca kiểm thử hộp đen
Một số kỹ thuật tiêu biểu
Một trong những chiến lược kiểm thử quan trọng là kiểm thử hộp đen, hướng
dữ liệu, hay hướng vào/ra. Kiểm thử hộp đen coi chương trình như một “hộp đen”
ta không quan tâm về cấu trúc bên trong chương trình. Thay vào đó, ta tập trung vào


5

tìm các trường hợp mà chương trình không thự hiện theo yêu cầu của đặc tả. Do
vậy, ca kiểm thử được xác định chỉ dựa vào đặc tả phần mềm.
Một số kỹ thuật kiểm thử hộp đen tiêu biểu:
 Phân lớp tương đương: là phương pháp kiểm thử hộp đen chia miền đầu vào
của một chương trình thành các lớp dữ liệu, từ đó suy dẫn ra các ca kiểm thử.
Phương pháp này cố gắng xác định ra một ca kiểm thử mà làm lộ ra một lớp
lỗi, do đó làm giảm tổng số các trường hợp kiểm thử phải được xây
dựng. Lớp tương đương biểu thị cho tập các trạng thái hợp lệ hay không hợp
lệ đối với điều kiện vào.
 Phân tích giá trị biên: Trong lĩnh vực phần mềm cho chúng ta biết rằng lỗi
thường nằm ở biên (đầu hay cuối) của 1 khoảng liên tục nào đó. Do đó ta sẽ
tập trung tạo các ca kiểm thử ứng với những giá trị ngay tại, trên và dưới các
cạnh của các lớp tương đương đầu vào và các lớp tương đương đầu ra. Kinh
nghiệm cho thấy các ca kiểm thử mà khảo sát tỷ mỷ các điều kiện biên có tỷ
lệ phần trăm xác định được lỗi cao hơn các ca kiểm thử khác.

 Kiểm thử theo cặp: Kiểm thử theo cặp là phương pháp luận văn áp dụng để
sinh ca kiểm thử cho cây đặc trưng. Kỹ thuật kiểm thử theo cặp sẽ trình bày
chi tiết ở phần 1.2.2 sau đây.

Kỹ thuật kiểm thử theo cặp
Kiểm thử theo cặp (pairwise testing) là một trong những phương pháp kiểm
thử hộp đen, kỹ thuật kiểm thử theo cặp dựa trên một thực tế là lỗi phầm mềm
thường gây ra bởi sự kết hợp của hai tham số. Kiểm thử theo cặp tạo ra các ca kiểm
thử phủ hết các giá trị của 2 tham số thay vì các bộ giá trị của tất cả các tham số.
Thực tế cho thấy, số ca kiểm thử giảm đi rất nhiều so với kiểm thử tất cả các trường
hợp nhưng vẫn đảm bảo phát hiện được 70% lỗi của phần mềm.
Lý do đằng sau của phương pháp này chính là lỗi thường được phủ bởi sự
tương tác của hai cặp tham số, và có thể bị bắt bởi bởi kiểm thử theo cặp. Kiểm thử
theo cặp cũng được gọi là kiểm thử 2-way. Chún ta cũng có khả năng thực hiện
kiểm thử 3-way (kiểm thử dựa trên sự kết hợp của 3 tham số đầu vào) hoặc 4 way


6

(kiểm thử dựa trên sự kết hợp của 4 tham số đầu vào) nhưng tất nhiên kích thước
của bộ ca kiểm thử cũng tăng rất nhanh.
Theo R.Kuhn và M.J.Reilly thì hơn 70% số lỗi đã được tìm ra với hai điều
kiện hoặc ít hơn (trong đó 75% cho các trình duyệt và 70% cho các dịch vụ)
[]. Để có có cái nhìn rõ hơn về hiệu quả của kỹ thuật kiểm
thử theo cặp ta có thể nhìn vào biểu đồ sau:

Hình 1.2 So sánh số ca kiểm thử giữa kiểm thử đầy đủ và kiểm thử theo
cặp
Rõ ràng, số ca kiểm thử được sinh ra bởi kỹ thuật kiểm thử theo cặp ít hơn
rất nhiều so với kiểm thử tất cả các trường hợp. Như vậy, kiểm thử theo cặp là kỹ

thuật có thể giúp tiết kiệm được thời gian và công sức mà vẫn đảm bảo được chất
lượng phần mềm ở một mức độ cao.
Ta xét một ví dụ như sau:
Với phần mềm đặt hàng xe ôtô ở 3 nước Việt Nam, Mỹ và Singapor như
Bảng 1.1 dưới đây.


7

Loại đặt hàng

Mua

Bán

Bảo hành

Địa điểm

Việt Nam

Singapor

Mỹ

Loại xe

BMW

Audi


Mercedes

Số đăng ký xe

Valid

Invalid

Camry

Bảng 1.1 Đầu vào của phần mềm đặt hàng xe oto
Theo Bảng 1.1, thì (Mua, Việt Nam) là một bộ giá trị kết hợp của 2 tham số
(Loại đặt hàng, Địa điểm). Ta có 4x2x3x3 = 72 tổ hợp hai tham số cho Bảng 1.1.
Cũng có nghĩa là cần 72 ca kiểm thử để kiểm tra tất cả các trường hợp. Nhưng với
kỹ thuật sinh ca kiểm thử theo cặp thì ta có thể tạo ra số ca kiểm thử nhỏ hơn mà
vẫn đảm bảo phủ đầy đủ hết các cặp giá trị.
Đây là một ví dụ nhỏ mà chúng ta có thể thực hiện được bằng tay. Bây giờ,
hãy bắt đầu với một bảng dữ liệu chứa tất cả các tổ hợp của 2 tham số có giá trị dài
nhất là Địa điểm và Loại xe:
Loại đặt hàng

Địa điểm

Loại xe

Việt Nam

BMW


Singapor

BMW

Mỹ

BMW

Việt Nam

Audi

Singapor

Audi

Mỹ

Audi

Việt Nam

Mercedes

Singapor

Mercedes

Mỹ


Mercedes

Việt Nam

Camry

Singapor

Camry

Mỹ

Camry

Số đăng ký xe

Bảng 1.2 Các cặp kết hợp của 2 tham số đầu vào


8

Theo bảng 1.2 thì ta có 4x3 = 12 tổ hợp giá trị của 2 tham số Địa điểm và
Loại xe. Tiếp theo, chúng ta điền các giá trị của tham số Loại đặt hàng tương ứng
với các tổ hợp ở bảng 1-2 để phủ tất cả những cặp giá trị của nó với cả 2 tham số
Địa điểm và Loại xe cùng lúc như bảng 1.3 dưới đây.

Loại đặt hàng

Địa điểm


Loại xe

Mua

Việt Nam

BMW

Bán

Singapor

BMW

Bảo hành

Mỹ

BMW

Bán

Việt Nam

Audi

Bảo Hành

Singapor


Audi

Mua

Mỹ

Audi

Bảo Hành

Việt Nam

Mercedes

Mua

Singapor

Mercedes

Bán

Mỹ

Mercedes

Mua

Việt Nam


Camry

Bán

Singapor

Camry

Bảo Hành

Mỹ

Camry

Số đăng ký xe

Bảng 1.3 Các cặp kết hợp của 3 tham số đầu vào
Cuối cùng, ta điền các giá trị của tham số “Số đăng ký xe” vào cột cuối
cùng, sao cho phủ hết tất cả các trường hợp xảy ra giữa tham số “Số đăng ký xe” và
các tham số còn lại như bảng 1-4 dưới đây.
Loại đặt hàng

Địa điểm

Loại xe

Số đăng ký xe

Mua


Việt Nam

BMW

Valid

Bán

Singapor

BMW

Invalid

Bảo hành

Mỹ

BMW

Invalid

Bán

Việt Nam

Audi

Valid



9

Bảo Hành

Singapor

Audi

Valid

Mua

Mỹ

Audi

Invalid

Bảo Hành

Việt Nam

Mercedes

Invalid

Mua

Singapor


Mercedes

Valid

Bán

Mỹ

Mercedes

Valid

Mua

Việt Nam

Camry

Valid

Bán

Singapor

Camry

Valid

Bảo Hành


Mỹ

Camry

Invalid

Bảng 1.4 Các cặp kết hợp của tất cả các tham số đầu vào
Như vậy, bằng việc áp dụng kỹ thuật sinh ca kiểm thử theo cặp thì chúng ta
có tất cả 12 ca kiểm thử, ít hơn rất nhiều so với 72 ca kiểm thử sinh ra bằng việc kết
hợp tất cả các tham số đầu vào.

1.3 Cây đặc trưng
Một xu hướng trong phát triển phần mềm là phát triển nhiều sản phẩm phần
mềm tương tự thay vì chỉ là một sản phẩm cá nhân riêng lẻ. Có nhiều lý do cho việc
này. Đối với các sản phẩm được phát triển cho thị trường quốc tế phải được thiết kế
sao cho phù hợp với các nền văn hóa khác nhau, cũng như cho các ngôn ngữ khác
nhau, và phải cung cấp giao diện tương thích với người dùng. Do chi phí và thời
gian hạn chế thì việc phát triển một sản phẩm mới từ đầu cho mỗi khách hàng mới
là không thể, và do đó việc tái sử dụng phần mềm được tăng lên. Dòng sản phẩm
phần mềm - Software Product Line (SPL) cung cấp một giải pháp cho những vấn đề
này.
Dòng sản phẩm phần mềm thường được mô hình hóa bằng cây đặc trưng.
Hình 1.3 là một ví dụ về cây đặc trưng được lấy từ trang [] về dòng máy tính của hãng Dell, học viên đã lược bỏ bớt các đặc
trưng cho đơn giản và phù hợp với ví dụ của luận văn.


10

Hình 1.3 Cây đặc trưng cho dòng sản phẩm phần mềm Laptop

Cây đặc trưng được mô tả một tập các đặc trung trong dòng sản phẩm phần
mềm và các mỗi quan hệ, ràng buộc giữa các đặc trưng đó. Nói cách khác, cây đặc
trưng là mô hình đại diện cho thông tin của tất cả các sản phẩm của một dòng sản
phẩm phần mềm về đặc trưng và mối quan hệ giữa chúng.
Cây đặc trưng được biểu diễn dưới dạng phân cấp các đặc trưng và được tạo
bởi 2 yếu tố:
Mối quan hệ: mô tả mối quan hệ giữa các đặc trưng của cây.
Kiểu ràng buộc: mô tả các kiểu ràng buộc giữa các đặc trưng.
Có 4 loại đặc trưng là:
1, Đặc trưng Mandatory (Bắt buộc): Một đặc trưng con có quan hệ bắt
buộc với cha của nó khi đặc trưng con phải có trong mọi sản phẩm mà cha nó xuất


11

hiện. Như trong Hình 1.3 thì đặc trưng “HDD” là bắt buộc phải có trong 1 sản phẩm
máy tính xách tay.
2, Đặc trưng Optional (Tùy chọn): Một đặc trưng con có quan hệ tùy chọn
với cha của nó khi đặc trưng đó có thể có hoặc không có trong các sản phẩm mà cha
nó xuất hiện. Như trong Hình 1.3 thì đặc trưng “Connectivity” có thể tùy chọn trong
1 sản phẩm máy tính xách tay.
3, Nhóm đặc trưng Alternative (Thay thế): Một trong các đặc trưng con
phải được lựa chọn. Trong Hình 1.3 thì “HDD” có thể là “160”, “250”, “500” tức
là dung lương ổ cứng có thể là 160GB, 250GB hoặc 500GB nhưng chỉ được chọn
một trong các tùy chọn đó.
4, Nhóm đặc trưng Or (Hoặc): Một tập đặc trưng con có quen hệ hoặc với
đặc trưng cha khi một hoặc nhiều đặc trưng con được lựa chọn trong sản phẩm mà
đặc trưng cha được lựa chọn. Trong Hình 1.3, đặc trưng “Connectivity” có thể hỗ
trợ đặc trưng “Bluetooth” hoặc “Wifi” hoặc hỗ trợ cả hai tính năng này.
Có 2 loại ràng buộc là:

1, Ràng buộc Requires (Yêu cầu): Đặc trưng A yêu cầu đặc trưng B, tồn tại
A trong một sản phẩm thì mặc định B cũng phải có trong sản phẩm đó. Như trong
Hình 1.3 thì máy tính xách tay đã có “CellType” là cạc rời “Integration” thì phải
hỗ trợ “Monitor” là “GW10” .
2, Ràng buộc Excludes (Loại trừ): Đặc trưng A không bao gồm đặc trưng
B, tồn tại A trong một sản phẩm thì không tồn tại B trong một sản phẩm hay nói
cách khác A và B không thể cùng tồn tại trên một sản phẩm. Hình 1.3 cho thấy tính
năng “Bluetooth” và “GraphicCard” được tích hợp “Onboard” là không tương
thích trên một dòng máy tính xách tay.

1.4 Cây đặc trưng trong kiểm thử phần mềm
Trong [5], tác giả đã đưa ra một phương pháp dựa trên kỹ thuật FOT
(Feature Oriented Testing). Phương pháp này nhằm hỗ trợ người kiểm thử thiết kế
các mô hình kiểm thử hiệu quả hơn.


12

a, Khái niệm
Cây đặc trưng cho kiểm thử (Feature Tree for Testing - FTT) là một cấu trúc
cây logic bao gồm 4 nút Mandatory-Althernative-Or-Optional. Trong đó, nút
Alternative được xem như tham số và con của nó là các giá trị của tham số đó. Nút
Alternative được xem như phân tách miền dữ liệu lớn ra thành các miền dữ liệu con.
Ngoài ra, FTT có 2 loại ràng buộc giữa các nút trên cây là “loại trừ”
(excludes – exe) và cần (requires – req) gọi là ràng buộc trên cây (cross-treeconstraint – CTC). Ràng buộc loại trừ (“a exc b”) là quan hệ có hướng giữa hai nút
trong một cây logic, tức là a và b không được cùng xuất hiện trong một ca kiểm thử.
Ràng buôc cần (“a req b”) là quan hệ có hương giữa hai nút trong một cây logic,
nếu a xuất hiện trong một ca kiểm thử thì b cũng cần xuất hiện trong ca kiểm thử
đó.
b, Sinh ca kiểm thử theo cặp cho cây đặc trưng

Kiểm thử theo cặp chỉ tạo các ca kiểm thử phủ hết các cặp giá trị của 2 tham
số thay vì các bộ giá trị của tất cả các tham số. Chính vì vậy mà kiểm thử theo cặp
là một trong những phương pháp hiệu quả để sinh ca kiểm thử cho mô hình đặc
trưng.
c, Đánh giá
Rõ ràng, việc sinh ca kiểm thử cho cây đặc trưng với ràng buộc logic đã làm
giảm đáng kể số lượng ca kiểm thử, giúp tiết kiệm thời gian và công sức kiểm thử.
Tuy nhiên, đối với bài toán có số ràng buộc càng lớn thì thời gian thực hiện càng
lâu. Đối với các ràng buộc số phức tạp thì không thể biểu diễn được dẫn đến một số
đầu vào ca kiểm thử bị trùng lặp hoặc không tồn tại.

1.5 Kết luận chương
Chương này đã nêu các khái niệm về kiểm thử cũng như các phương pháp
sinh ca kiểm thử nói chung và kiểm thử hộp đen nói riêng. Đồng thời, khái niệm về
phương pháp sinh ca kiểm thử theo cặp được trình bày. Kiểm thử theo cặp nhằm


13

giảm bớt số lượng các ca kiểm thử mà vẫn đảm bảo chất lượng phần mềm. Cuối
cùng, chương này giới thiệu khái niệm về cây đặc trưng, phương pháp biểu diễn cây
đặc trưng và phương thức ứng dụng cây đặc trưng vào kiểm thử.


14

CHƯƠNG 2.

CÂY ĐẶC TRƯNG CÓ RÀNG BUỘC SỐ VÀ
SINH CA KIỂM THỬ THEO CẶP


2.1 Cây đặc trưng có ràng buộc số
Hạn chế của cây đặc trưng
Cây đặc trưng truyền thống chỉ cho phép dùng các ràng buộc logic. Khi cần
xử lý các giá trị số, FTT với đặc trưng số ở mục trước có một số khó khăn: (1) cần
tính bằng tay để giải các ràng buộc số, (2) không thể biểu diễn các ràng buộc số
phức tạp dẫn đến ca kiểm thử bị lặp hoặc không tồn tại.
Ví dụ sau trình bày hạn chế của FTT chỉ có đặc trưng boolean:
- Với đầu vào ca kiểm thử FOT (HDD, GraphicCard) ta cần phải gán các
giá trị cụ thể ứng với HDD là một trong các giá trị {160, 250, 500} thì
GraphicCard = Removeable. Do cây đặc trưng chỉ biểu diễn được các ràng
buộc logic, nên ta phải giải các ràng buộc này bằng tay, ta sẽ thu được đầu
vào ca kiểm thử cụ thể.
- Với đầu vào ca kiểm thử FOT (HDD, Graphicard) ta có ràng buộc HDD là
một trong các giá trị {160, 250, 500} thì Monitor > 17inch. Do không thể
gán các giá trị Monitor > 17inch. Do vậy, đầu vào ca kiểm thử FOT này là
không hợp lệ.
Như vậy ta có nhận xét như sau:
- Cần tính bằng tay để giải các ràng buộc số để tìm ra giá trị cụ thể.
- Một số đầu vào ca kiểm thử FTT là không khả thi vì CTC (cross-treeconstraint) hiện tại không thể biểu diễn được đầy đủ các ràng buộc, đặc biệt
là ràng buộc số.

Mở rộng cây đặc trưng với ràng buộc số
Để giải quyết 2 vấn đề nêu trên, đồng thời khắc phục được nhược điểm như
luận văn đã trình bày ở phần 2.4, [6] đã đề xuất một cây đặc trưng mới cho phép
biểu diễn các đặc trưng và các ràng buộc số. Nhờ vậy, ta có thể biểu diễn cả giá trị
boolean (như của FTT) và các giá trị số.


15


Với mô hình đặc trưng truyền thống, giá trị của các đặc trưng được biểu diễn
ở dạng logic (hay true-false). Tuy nhiên trong thực tế có nhiều bài toán đặt ra yêu
cầu cần giải quyết, nếu chỉ áp dụng mô hình đặc trưng cơ bản thì không thể thực
hiện được hết các yêu cầu của bài toán đặt ra (có thêm các ràng buộc số đi kèm). Do
đó việc mở rộng từ mô hình đặc trưng cơ bản này cùng các yêu cầu ràng buộc là cần
thiết, ví dụ sau đây tôi sẽ trình bày một bài toán trong thực tế mà mô hình đặc trưng
cơ bản chưa giải quyết được.
Ví dụ: Cấu trúc của máy tính xách tay (Laptop) được hình thành từ các bộ
phận như pin (Battery), thiết bị ngoại vi (IO), dung lượng ổ cứng tính theo GB
(HDD), cạc màn hình (GraphicCard), kết nối ngoại vi (Connectivity), kích thước
màn hình (Monitor). Ổ cứng (HDD) có các loại 160GB, 250GB, 500GB. Màn hình
có các kích cỡ GW17 inch, GW10 inch. Kết nối ngoại vi gồm wifi và bluetooth. Cạc
màn hình gồm cạc rời (Removeable) và tích hợp (Onboard). Với các điều kiện ràng
buộc như sau:
 Nếu (Connectivity) là (Bluetooth) thì bắt buộc (GraphicCard) phải là dạng
(Onboard).
 Nếu (HDD) là (160GB hoặc 250GB) thì (Monitor) phải là (GW10).
Rõ ràng, với bài toán Laptop trên, với các cách biểu diễn truyền thống thì các
điều kiện ràng buộc phức tạp không thể biểu diễn được. Chính vì thế, việc mở rộng
mô hình đặc trưng cùng các yêu cầu ràng buộc là cần thiết. Phần 2.1.2, học viên
nghiên cứu công thức mở rộng và các điều kiện kèm theo để mở rộng cho cây đặc
trưng như sau:
a, Ràng buộc “require”:
IF ( A Rnum "Ax") THEN ( B Rnum "Bx" )
Trong đó:
˗ A là một đặc trưng của cây, quan hệ của A và các đặc trưng con
là Alternative.
˗ Ax là 1 đặc trưng con dạng số của A.
˗ B là một đặc trưng của cây, B có các nút con là là các giá trị số,

quan hệ B với các đặc trưng con là quan hệ OR.


16

˗ Bx là 1 đặc trưng con của B
˗ Rnum là tập các quan hệ so sánh:
˗ Rnum ={≤ ; ≥ ; =; < ; > }
b, Ràng buộc “exclude”
NOT ( A Rnum "Ax") AND ( B Rnum "Bx" )
Trong đó:
˗ A là một đặc trưng của cây, quan hệ của A và các đặc trưng con
là Alternative.
˗ Ax là 1 đặc trưng con dạng số của A.
˗ B là một đặc trưng của cây, B có các nút con là là các giá trị số,
quan hệ B với các đặc trưng con là quan hệ OR.
˗ Bx là 1 đặc trưng con của B
˗ Rnum là tập các quan hệ so sánh:
˗ Rnum ={≤ ; ≥ ; =; < ; > }

2.2 Sinh ca kiểm thử theo cặp cho cây đặc trưng có ràng buộc số
Hướng tiếp cận
Dòng sản phẩm phần mềm được mô tả bằng mô hình đặc trưng có thể kết
hợp và tạo ra hàng triệu triệu cấu hình sản phẩm. Vì vậy để kiểm tra tất cả các cấu
hình sản phẩm là điều không thể. Do đó để xác định một bộ kiểm thử có khả năng
bao phủ tất cả các cấu hình của dòng sản phẩm phần mềm được mô tả bằng mô hình
đặc trưng, chúng ta cần phải mô tả đầy đủ các điều kiện mà nó sẽ cho phép giảm số
lượng cấu hình kiểm thử cần xử lý. Việc sinh cấu hình kiểm thử bao gồm việc phân
tích một mô hình đặc trưng để tạo ra một bộ cấu hình kiểm thử đáp ứng được việc
bao phủ cặp của đặc trưng. Như đã đề cập ở Chương 1, kiểm thử theo cặp chỉ tạo

các ca kiểm thử phủ hết các cặp giá trị của 2 tham số thay vì các bộ giá trị của tất cả
các tham số. Chính vì vậy mà kiểm thử theo cặp là một trong những phương pháp
hiệu quả để sinh ca kiểm thử cho mô hình đặc trưng.


×