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

Kiểm thử dựa trên mô hình với cách tiếp cận mô hình hóa chuyên biệt miền

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 (7.12 MB, 161 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Chu Thị Minh Huệ

KIỂM THỬ DỰA TRÊN
MÔ HÌNH VỚI CÁCH TIẾP
CẬN MÔ HÌNH HÓA
CHUYÊN BIỆT MIỀN
LUẬN ÁN TIẾN SỸ CÔNG NGHỆ THÔNG TIN

Hà Nội - 2019


LỜI CAM ĐOAN
Tôi xin cam đoan luận án “Kiểm thử dựa trên mô hình với
cách tiếp cận mô hình hóa chuyên biệt miền” là công trình nghiên
cứu của riêng tôi. Các số liệu, kết quả được trình bày trong luận án là hoàn
toàn trung thực và chưa từng được công bố trong bất kỳ một công trình
nào khác.
Tôi đã trích dẫn đầy đủ các tài liệu tham khảo, công trình nghiên cứu
liên quan ở trong nước và quốc tế. Ngoại trừ các tài liệu tham khảo
này, luận án hoàn toàn là công việc của riêng tôi.
Trong các công trình khoa học được công bố trong luận án, tôi đã thể
hiện rõ ràng và chính xác đóng góp của các đồng tác giả và những gì
do tôi đã đóng góp.
Luận án được hoàn thành trong thời gian tôi làm Nghiên cứu sinh tại
Bộ môn Công nghệ phần mềm, Khoa Công nghệ Thông tin, Trường
Đại học Công nghệ, Đại học Quốc gia Hà Nội.
Tác giả:


Hà Nội:

i


LỜI CẢM ƠN
Trước hết, tôi muốn bày tỏ sự biết ơn đến PGS. TS. Nguyễn Ngọc Bình
và TS. Đặng Đức Hạnh, cán bộ hướng dẫn, các thầy đã trực tiếp giảng dạy
và định hướng tôi trong suốt thời gian học cao học, thực hiện luận văn thạc
sĩ cũng như luận án này. Một vinh dự lớn cho tôi được học tập, nghiên cứu
dưới sự hướng dẫn của các Thầy.
Tôi xin bày tỏ sự biết ơn sâu sắc đến các Thầy Cô trong Bộ môn
Công nghệ phần mềm vì sự giúp đỡ của các Thầy Cô về các đóng góp rất
hữu ích cho luận án.
Tôi xin trân trọng cảm ơn Khoa Công nghệ thông tin, Phòng Đào
tạo và Ban giám hiệu trường Đại học Công nghệ đã tạo điều kiện thuận lợi
cho tôi trong suốt quá trình thực hiện luận án.
Tôi cũng bày tỏ sự biết ơn đến Trường Đại học Sư phạm Kỹ thuật
Hưng Yên đã tạo điều kiện về thời gian và tài chính cho tôi thực hiện luận
án này. Tôi muốn cảm ơn đến Ban chủ nhiệm, các cán bộ, giảng viên Khoa
Công nghệ thông tin - Trường Đại học Sư phạm Kỹ thuật Hưng Yên đã cổ
vũ động viên và sát cánh bên tôi trong suốt quá trình nghiên cứu.
Tôi muốn cảm ơn đến tất cả những người bạn của tôi, những
người luôn chia sẻ, động viên tôi bất cứ khi nào tôi cần và tôi luôn ghi nhớ
điều đó.
Cuối cùng, tôi xin bày tỏ lòng biết ơn vô hạn đối với cha mẹ,
chồng, con và gia đình đã luôn ủng hộ và yêu thương tôi một cách vô điều
kiện. Nếu không có sự ủng hộ của gia đình và chồng con tôi không thể hoàn
thành được luận án này.


ii


iii

TÓM TẮT
Luận án này trình bày một số phương pháp cho phép sinh tự động
các ca kiểm thử chức năng mức hệ thống từ các ca sử dụng áp dụng các kỹ
thuật kiểm thử dựa trên mô hình với hướng tiếp cận mô hình hóa chuyên
biệt miền (Domain Specific Modeling - DSM ). Cụ thể, luận án quan tâm
đến phương pháp đặc tả rõ ràng các ca sử dụng và các ca kiểm thử bằng
các mô hình trong các ngôn ngữ mô hình hóa chuyên biệt miền và phương
pháp chuyển tự động các mô hình ca sử dụng sang mô hình ca kiểm thử
trong các ngôn ngữ đặc tả chuyên biệt miền. Các đóng góp chính của luận
án như sau.
Đề xuất ngôn ngữ USL (Use Case Specification Language) để đặc tả
rõ ràng các ca sử dụng, hướng đến khả năng sinh tự động các chế tác phần
mềm (software artifacts) khác nhau trong quy trình phát triển phần mềm
bằng các chuyển đổi mô hình. Ngôn ngữ được xây dựng với cách tiếp cận
mô hình hóa chuyên biệt miền.
Xây dựng ngôn ngữ TCSL (Test Case Specification Language) để đặc
tả rõ ràng các ca kiểm thử. Ngôn ngữ được xây dựng với cách tiếp cận mô
hình hóa chuyên biệt miền.
Đề xuất một phương pháp USLTG (USL-based Test Generation) để
sinh tự động các ca kiểm thử từ ca sử dụng bằng cách chuyển đổi tự động
các mô hình USL vào trong một mô hình TCSL.
Xây dựng bộ công cụ hỗ trợ USL để hiện thực hóa những đề xuất của
luận án. Bộ công cụ hỗ trợ USL cho phép tích hợp ngôn ngữ USL vào trong
phương pháp phát triển phần mềm hướng mô hình. Cụ thể, bộ công cụ cung
cấp trình soạn thảo để tạo các mô hình USL một các trực quan và cung cấp

các bộ sinh tự động các chế tác khác nhau từ mô hình. Trọng tâm chính của
luận án này là sinh các ca kiểm thử tự động từ các mô hình USL. Ngoài ra,
luận án cũng trình bày các ví dụ nghiên cứu được áp dụng cho các phương
pháp của luận án, cung cấp các đánh giá của ngôn ngữ USL với các ngôn
ngữ đặc tả khác, và so sánh phương pháp USLTG với một số phương pháp
sinh ca kiểm thử từ ca sử dụng khác.
Từ khóa: ca sử dụng, ca kiểm thử, sinh ca kiểm thử tự động, mô hình
hóa chuyên biệt miền, USL, TCSL, USLTG.


Mục lục
Lời cam đoan

i

Lời cảm ơn

ii

Tóm tắt

iii

Mục lục

iv

Danh mục các từ viết tắt

vii


Danh mục các bảng

ix

Danh mục các hình vẽ

x

Danh mục các thuật toán

xii

Danh mục các đặc tả

xiii

Chương 1. MỞ ĐẦU
1.1 Đặt vấn đề . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Mục tiêu nghiên cứu và các đóng góp chính của luận án . . .
1.3 Cấu trúc luận án . . . . . . . . . . . . . . . . . . . . . . . . . .
Chương 2. KIẾN THỨC CƠ SỞ
2.1 Kiểm thử dựa trên ca sử dụng . . . . . . . . . .
2.1.1 Kiểm thử phần mềm . . . . . . . . . . . .
2.1.2 Ca sử dụng . . . . . . . . . . . . . . . . .
2.1.3 Xây dựng các ca kiểm thử từ ca sử dụng
2.2 Mô hình hóa chuyên biệt miền . . . . . . . . . .
2.2.1 Một số khái niệm cơ bản . . . . . . . . .
2.2.2 Phương pháp xây dựng DSML . . . . . .
2.2.3 Xây dựng DSML trong Eclipse . . . . . .

2.3 Chuyển đổi mô hình . . . . . . . . . . . . . . . .
2.3.1 Chuyển đổi mô hình sang mô hình . . . .
iv

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.

1
1
5
9
11
11
11
22
25
27
27
28
31
32
32


v

Nội dung
2.3.2 Chuyển đổi mô hình sang văn bản
2.4 Ngôn ngữ ràng buộc đối tượng OCL . . .
2.4.1 Cơ bản về OCL . . . . . . . . . . .
2.4.2 Công cụ hỗ trợ OCL . . . . . . . .
2.5 Tổng kết chương . . . . . . . . . . . . . .

.
.

.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.

.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.

.
.
.

.
.
.
.
.

34
38
38
41
46

Chương 3. ĐẶC TẢ CA SỬ DỤNG THEO HƯỚNG MÔ
HÌNH HÓA CHUYÊN BIỆT MIỀN
3.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Các nghiên cứu liên quan . . . . . . . . . . . . . . . . . . . . .
3.3 Xác định miền cho ngữ cảnh đặc tả ca sử dụng . . . . . . . .
3.4 Cú pháp của USL . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Cú pháp trừu tượng của USL . . . . . . . . . . . . . . .
3.4.2 Các luật hợp lệ trên siêu mô hình của USL . . . . . . .
3.4.3 Cú pháp cụ thể của USL . . . . . . . . . . . . . . . . .
3.5 Ngữ nghĩa hình thức của mô hình USL . . . . . . . . . . . . .
3.6 Chuyển đổi mô hình USL . . . . . . . . . . . . . . . . . . . . .
3.6.1 Sinh các ca kiểm thử . . . . . . . . . . . . . . . . . . . .
3.6.2 Sinh các mô hình cấu trúc và mô hình hành vi . . . . .
3.6.3 Sinh TUCDs . . . . . . . . . . . . . . . . . . . . . . . .

3.7 Tổng kết chương . . . . . . . . . . . . . . . . . . . . . . . . . .

47
47
49
52
58
58
62
66
69
76
76
77
78
81

Chương 4. PHƯƠNG PHÁP SINH TỰ ĐỘNG CÁC CA KIỂM
THỬ TỪ MÔ HÌNH CA SỬ DỤNG VÀ MÔ HÌNH
82
KHÁI NIỆM MIỀN CỦA HỆ THỐNG
4.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.2 Các nghiên cứu liên quan . . . . . . . . . . . . . . . . . . . . . 85
4.3 Tổng quan phương pháp đề xuất . . . . . . . . . . . . . . . . . 88
4.4 Ngôn ngữ đặc tả các ca kiểm thử TCSL . . . . . . . . . . . . 89
4.4.1 Xác định miền cho ngữ cảnh đặc tả ca kiểm thử chức
năng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.4.2 Định nghĩa siêu mô hình TCSL . . . . . . . . . . . . . 92
4.5 Chuyển đổi mô hình từ USL sang TCSL . . . . . . . . . . . . 96
4.5.1 Xác định tiêu chí phủ . . . . . . . . . . . . . . . . . . . 96

4.5.2 Sinh các kịch bản ca sử dụng và các ràng buộc . . . . 97
4.5.3 Sinh các bộ dữ liệu đầu vào kiểm thử . . . . . . . . . . 101
4.5.4 Sinh mô hình TCSL . . . . . . . . . . . . . . . . . . . . 106
4.6 Tổng kết chương . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Chương 5. THỰC NGHIỆM VÀ ĐÁNH GIÁ

111


vi

Nội dung
5.1
5.2
5.3
5.4

Giới thiệu . . . . . . . . . . . . . .
Công cụ hỗ trợ USL . . . . . . . .
Ví dụ minh họa . . . . . . . . . . .
Đánh giá . . . . . . . . . . . . . .
5.4.1 Đánh giá ngôn ngữ USL . .
5.4.2 Đánh giá phương pháp sinh
5.5 Tổng kết chương . . . . . . . . . .

. . . .
. . . .
. . . .
. . . .
. . . .

các ca
. . . .

. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
kiểm thử USLTG
. . . . . . . . . . .

.
.
.
.
.
.
.

111
112
115
122
122
129
133

Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
134
6.1 Các đóng góp của luận án . . . . . . . . . . . . . . . . . . . . . 135

6.2 Hướng phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . 137
DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC

140

TÀI LIỆU THAM KHẢO

140


DANH MỤC CÁC TỪ VIẾT TẮT

Từ viết tắt Dạng đầy đủ
ATL

Diễn giải

ATLAS Transformation

Ngôn ngữ chuyển đổi ATLAS

Language
DSL

Domain-Specific Language

Ngôn ngữ chuyên biệt miền

DSM


Domain-Specific Modeling

Mô hình hóa chuyên biệt miền

DSML

Domain-Specific Modeling

Ngôn ngữ mô hình hóa

Language

chuyên biệt miền

EMF

Eclipse Modeling Framework

Khung mô hình hóa eclipse

GMF

Graphical Modeling

Khung mô hình hóa

Framework

đồ họa


Keyword-Driven Testing

Khung kiểm thử

Framework

hướng từ khóa

Labelled Transition System

Hệ thống chuyển được

KDTF
LTS

gán nhãn
MBT

Model-Based Testing

Kiểm thử dựa trên mô hình

MDD

Model-Driven Deverlop

Phát triển hướng mô hình

MDE


Model-Driven Engineering

Kỹ nghệ hướng mô hình

MOF

Meta-Object Facility

Phương tiện siêu đối tượng

M2M

Model to Model

Mô hình sang mô hình

M2T

Model to Text

Mô hình sang văn bản

NLP

Natural Language Processing Xử lý ngôn ngữ tự nhiên

vii


viii


Danh mục các từ viết tắt
NTD
RNL
RSL

Navigational Development

Các kỹ thuật phát triển

Techniques

điều hướng

Restricted-form of Natural

Định dạng bị giới hạn

Language

của ngôn ngữ tự nhiên

Requirements Specification

Ngôn ngữ đặc tả yêu cầu

Language
Restricted Use Case

Mô hình hóa ca sử dụng


Modeling

được giới hạn

OMG

Object Management Group

Nhóm quản lý đối tượng

OCL

Object Constraint Language

Ngôn ngữ ràng buộc đối tượng

TCSL

Test Case Specification

Ngôn ngữ đặc tả

Language

ca kiểm thử

TSL

Test Specification Language


Ngôn ngữ đặc tả kiểm thử

UCTM

Use Case Test Model

Mô hình kiểm thử ca sử dụng

UML

Unified Modeling Language

Ngôn ngữ mô hình hóa thống nhất

USL

Use Case Specication

Ngôn ngữ đặc tả ca sử dụng

RUCM

Language
USLTG

USL-based Test Generation

Sinh kiểm thử dựa trên
mô hình USL


XML

eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng


DANH MỤC CÁC BẢNG
2.1
2.2
2.3
2.4

Một mẫu mô tả ca sử dụng . . . . . . . . . . . . . . . . . . . .
Các kịch bản của ca sử dụng Đăng nhập . . . . . . . . . . . .
Các ca kiểm thử cho ca sử dụng Đăng nhập . . . . . . . . . .
Các ca kiểm thử của ca sử dụng Đăng nhập với các giá trị xác
định . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

Mô tả của ca sử dụng Lend book . . . . . . . . . . . . . . .
Các ký hiệu đồ họa của các khái niệm trong mô hình USL
Danh sách các hàm được định nghĩa trong D . . . . . . . .
Ngữ nghĩa dựa trên LTS của các khái niệm USL cơ bản .

.
.
.
.


54
66
72
74

4.1 Hai ca kiểm thử của ca sử dụng Lend book . . . . . . . . . . .

91

3.1
3.2
3.3
3.4

.
.
.
.

24
25
26

5.1 Mô tả ca sử dụng Withdraw . . . . . . . . . . . . . . . . . . . 115
5.2 Các biến đầu vào và các điều kiện gác đã được xử lý của các
kịch bản ca sử dụng Withdraw . . . . . . . . . . . . . . . . . . 119
5.3 Các đối tượng EV được sinh của các kịch bản ca sử dụng
Withdraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.4 Các ca kiểm thử được sinh của ca sử dụng Lend book . . . . . 120
5.5 So sánh khả năng diễn tả giữa các ngôn ngữ đặc tả ca sử dụng 124

5.6 Số các kịch bản được sinh trong một số nghiên cứu . . . . . . 130
5.7 Sự so sánh các thông tin được xác định và ngôn ngữ đặc tả
kiểm thử của các phương pháp . . . . . . . . . . . . . . . . . . 131

ix


DANH MỤC CÁC HÌNH VẼ
1.1 Ngữ cảnh nghiên cứu, phương pháp thực hiện, và các đóng
góp của luận án. . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Cấu trúc luận án. . . . . . . . . . . . . . . . . . . . . . . . . .
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13

Các pha kiểm thử và phát triển trong mô hình chữ V [50]. . .
Quy trình kiểm thử dựa trên mô hình [9]. . . . . . . . . . . .
Các ví dụ của biểu đồ hoạt động với các cấu trúc lặp [39]. . .
Ví dụ của biểu đồ hoạt động có chứa các hành động đồng
thời [39]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Biểu đồ ca sử dụng của hệ thống đăng ký khóa học đơn giản.
Các luồng sự kiện trong một ca sử dụng [26]. . . . . . . . . .
Một ví dụ về siêu mô hình. . . . . . . . . . . . . . . . . . . . .
Các kiểu chuyển mô hình: (a) chuyển ngoại sinh và (b) chuyển
nội sinh [9]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Một phần siêu mô hình của sWML và MVC [9]. . . . . . . .
Các mẫu, máy mẫu, và mô hình nguồn để cung cấp văn bản [9].
Các ca sử dụng thẩm định và kiểm chứng [18]. . . . . . . . . .
Đầu vào và đầu ra của các ca sử dụng [18]. . . . . . . . . . . .
Biểu đồ đối tượng OMfull . . . . . . . . . . . . . . . . . . . . . .

3.1 Mô hình ca sử dụng đơn giản và mô hình các khái niệm của
hệ thống Library. . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Biểu đồ hoạt động đặc tả luồng điều khiển của ca sử dụng
Lend book. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Siêu mô hình USL. . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Ví dụ thể hiện của siêu mô hình USL. . . . . . . . . . . . . . .
3.5 Đặc tả ca sử dụng Lend Book bằng một mô hình USL. . . . .
3.6 Một snapshot của ca sử dụng Lend Book. . . . . . . . . . . . .
3.7 Tệp TUCD được sinh của ca sử dụng Lend book. . . . . . . .
x

6
9
14
16
19
21
22
23

29
33
33
35
42
42
45
52
56
59
60
68
75
80


xi

Danh mục các hình vẽ
4.1
4.2
4.3
4.4
4.5

Tổng quan của cách tiếp cận USLTG. . . . . . . . . . . . . . .
Siêu mô hình của TCSL. . . . . . . . . . . . . . . . . . . . . .
Lưu đồ thuật toán của Thủ tục GenerateScenarios. . . . . . .
Lưu đồ thuật toán của Thuật toán GenTestInputData. . . . .
Biểu đồ lớp mô hình các khái niệm của hệ thống Library và

biểu đồ các đối tượng. . . . . . . . . . . . . . . . . . . . . . . .
4.6 Lưu đồ thuật toán của Thuật toán GenTCSLModel. . . . . .
4.7 Các ca kiểm thử trong Bảng 4.1 được đặc tả trong mô hình
TCSL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88
93
100
104

5.1
5.2
5.3
5.4
5.5
5.6

112
114
114
116
117
118

Các thành phần chính của công cụ USL. . . . . . . .
Kiến trúc của bộ sinh USLTG. . . . . . . . . . . . . .
Giao diện công cụ hỗ trợ USL. . . . . . . . . . . . . .
Mô hình USL của ca sử dụng Withdraw. . . . . . . .
Mô tả theo mẫu được sinh của ca sử dụng Withdraw.
Biểu đồ lớp của ATM và một hình chụp hệ thống. . .


.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.

.
.
.
.
.

105
107
108


DANH MỤC CÁC THUẬT TOÁN
4.1

GenScenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2

GenTestInputData . . . . . . . . . . . . . . . . . . . . . . . . . 102

4.3

GenTCSLModel . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

xii

98


DANH MỤC CÁC ĐẶC TẢ

2.1
2.2
2.3
2.4
2.5
2.6
2.7
3.1
3.2
5.1

Ví dụ một chương trình chuyển trong ATL [9]. . . . . . . . . 34
Ví dụ một chương trình chuyển trong Acceleo [9]. . . . . . . 37
Ví dụ mô hình Employee trong môi trường đặc tả dựa trên
UML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Mô hình lớp CM trong công cụ USE. . . . . . . . . . . . . . . 43
Tệp cấu hình CONF. . . . . . . . . . . . . . . . . . . . . . . . 44
Các ràng buộc bất biến INVS. . . . . . . . . . . . . . . . . . . 44
Các đối tượng và liên kết đã được xác định trong biểu đồ lớp
OMpartial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Chuyển USL2TUCD . . . . . . . . . . . . . . . . . . . . . . . 79
Chuyển libraryUCD . . . . . . . . . . . . . . . . . . . . . . . . 80
Tệp XML lưu mô hình TCSL của ca sử dụng Withdraw . . . 121

xiii


Chương 1
MỞ ĐẦU
1.1


Đặt vấn đề

Ngày nay, các hệ thống phần mềm càng ngày càng trở nên phức tạp và
được ứng dụng rộng rãi trong hầu hết lĩnh vực của đời sống xã hội. Để tăng
tính cạnh tranh của các sản phẩm phần mềm, chi phí phát triển phần mềm
cần phải được cắt giảm trong khi chất lượng phần mềm phải được nâng
cao. Kiểm thử phần mềm (software testing) là một hoạt động quan trọng
để đảm bảo chất lượng phần mềm. Hoạt động này chiếm nhiều thời gian
và chi phí trong phát triển phần mềm thường từ 30-60% [71]. Khi kiểm thử
một ứng dụng, các kiểm thử viên sẽ xây dựng các ca kiểm thử (test cases)
dựa trên tài liệu đầu vào, sau đó khi có chương trình phần mềm thì thực
thi các ca kiểm thử thủ công hoặc tự động bằng các công cụ thực thi kiểm
thử tự động.
Trong thực tế, các yêu cầu phần mềm thường hay thay đổi trong suốt
quy trình phát triển phần mềm. Khi các yêu cầu phần mềm thay đổi, các ca
kiểm thử liên quan phải được xây dựng và thực thi lại (kiểm thử hồi quy).
Vì vậy, những nỗ lực được yêu cầu để xác định, bảo trì, và thực thi các ca
kiểm thử khi các yêu cầu thay đổi là rất lớn. Đối với hoạt động kiểm thử
phần mềm, giải pháp sinh và thực thi các ca kiểm thử một cách tự động
giúp tiết kiệm rất nhiều thời gian và các nỗ lực cũng như giảm được số
lượng các lỗi và các sai sót trong hoạt động kiểm thử phần mềm. Do đó,
nhiều nghiên cứu đã đề xuất các giải pháp tăng tính tự động trong phát
triển phần mềm cũng như hoạt động kiểm thử phần mềm.
1


Mở đầu

2


Hiện tại trong thực tế, kiểm thử tự động tập trung vào thực thi kiểm
thử tự động, còn vấn đề sinh các ca kiểm thử tự động chưa được giải quyết
triệt để. Trong các quy trình kiểm thử phần mềm, quy trình kiểm thử dựa
trên mô hình (Model-Based Testing - MBT ) đẩy mạnh mức độ tự động hóa
cao hơn [71]. Quy trình này không chỉ tự động hóa trong thực thi kiểm thử
mà còn tự động hóa trong sinh các ca kiểm thử. Lợi ích chính của MBT là
tạo điều kiện thuận lợi cho việc duy trì bộ kiểm thử và phủ của bộ kiểm
thử. Khi tiến hóa phần mềm, các mô hình được cập nhật, sau đó bộ kiểm
thử được sinh cập nhật một cách tự động. Với ý nghĩa to lớn của MBT
trong công nghiệp phần mềm, phương pháp này đang là một giải pháp tối
ưu giúp tăng tính tự động, tăng năng suất, tăng chất lượng, và giảm chi
phí trong phát triển phần mềm nói chung và trong kiểm thử nói riêng. Quy
trình MBT gồm năm bước chính là (1) mô hình hóa, (2) sinh các ca kiểm
thử, (3) sinh các tập lệnh thực thi kiểm thử (test scripts), (4) thực thi kiểm
thử, (5) phân tích các ca kiểm thử được minh họa như Hình 2.2. Trong đó,
ba bước cuối cùng đã được giải quyết rất tốt bằng các công cụ thực thi kiểm
thử tự động thương mại hoặc miễn phí trên thị trường. Hai bước đầu tiên
là (1) mô hình hóa và (2) sinh các ca kiểm thử còn gặp nhiều thách thức
với cộng đồng nghiên cứu.
Trong hoạt động kiểm thử phần mềm, các yêu cầu chức năng (functional
software requirements) của phần mềm là đầu vào để xây dựng các ca kiểm
thử chức năng. Các yêu cầu chức năng phần mềm thường được cấu trúc và
biểu diễn bằng các ca sử dụng. Một mô hình ca sử dụng thường được đặc
tả bằng các biểu đồ ca sử dụng và các mô tả của các ca sử dụng ở dạng
văn bản có cấu trúc theo mẫu [53]. Với dạng thể hiện này thì mô hình ca
sử dụng sẽ tạo điều kiện thuận lợi cho các bên liên quan trong phát triển
phần mềm dễ dàng đọc, học, và sử dụng chúng. Tuy nhiên, các mô tả ca sử
dụng trong ngôn ngữ tự nhiên là rất khó để xác định tự động các thông tin
được mô tả trong nó. Vì vậy, bài toán sinh các ca kiểm thử chức năng tự

động từ mô hình ca sử dụng vẫn còn rất nhiều thách thức.
Nhiều nghiên cứu như trong [7, 11, 23, 24, 41, 43, 51, 58, 65, 67, 73] đã
chỉ dẫn các cách tiếp cận để sinh tự động các ca kiểm thử từ mô hình ca sử
dụng. Một số nghiên cứu như trong [58, 73] đã đề xuất phương pháp sinh tự
động các ca kiểm thử chức năng từ các đặc tả ca sử dụng trong ngôn ngữ tự
nhiên theo mẫu với các luật hạn chế và các từ khóa. Để sinh tự động được


Mở đầu

3

các ca kiểm thử, đầu tiên các nghiên cứu này sử dụng kỹ thuật xử lý ngôn
ngữ tự nhiên để sinh các mô hình trung gian. Sau đó, các mô hình trung
gian này được sử dụng để sinh các ca kiểm thử. Tuy nhiên, các ngôn ngữ
được sử dụng để đặc tả trong các nghiên cứu này là các ngôn ngữ không
hình thức (informal) (không có cú pháp trừu tượng). Vì vậy, việc đảm bảo
tính đúng đắn của các đặc tả cũng như sinh các mô hình trung gian phải
sử dụng các kỹ thuật xử lý ngôn ngữ tự nhiên vốn khó và chỉ được áp dụng
cho một ngôn ngữ cụ thể. Hơn nữa, các ràng buộc được mô tả trong ngôn
ngữ tự nhiên nên muốn sinh được dữ liệu kiểm thử cần phải đặc tả chính
xác lại các ràng buộc này.
Nhiều nghiên cứu đề xuất sử dụng biểu đồ hoạt động và tuần tự trong
UML để đặc tả các thông tin mô tả trong ca sử dụng, sau đó sinh các ca
kiểm thử như trong [24, 51, 67]. Tuy nhiên, các nghiên cứu này chủ yếu tập
trung đề xuất phương pháp để đặc tả phân biệt được hành động của tác
nhân và hệ thống bằng các biểu đồ trong UML cho mục đích sinh các ca
kiểm thử trừu tượng (kịch bản kiểm thử) mà không đề cập đến sinh tự động
dữ liệu cụ thể cho các ca kiểm thử.
Một số nghiên cứu khác đã đề xuất cách tiếp cận sinh tự động các ca

kiểm thử chức năng từ các mô hình ca sử dụng được đặc tả trong các ngôn
ngữ chuyên biệt miền (Domain-Specific Language - DSL). Như nghiên cứu
trong [23], các mô tả của ca sử dụng được đặc tả trong ngôn ngữ chuyên
biệt miền tên là NDT (Navigational Development Techniques) được đề xuất
trong [16]. Tuy nhiên, nghiên cứu không đề cập đến phương pháp xác định
các giá trị kiểm thử cho các kịch bản kiểm thử. Trong nghiên cứu [65], các mô
tả ca sử dụng được đặc tả trong ngôn ngữ RSL (Requirements Specification
Language) đã được đề xuất trong [63] để sinh các ca kiểm thử chức năng.
Các ca kiểm thử được sinh cũng được đặc tả rõ ràng trong ngôn ngữ đặc tả
kiểm thử tên là TSL (Test Specification Language). Tuy nhiên trong nghiên
cứu này, dữ liệu kiểm thử được xác định như các mô tả về điều kiện thay
vì là các giá trị cụ thể.
Như đã phân tích ở trên để sinh tự động các ca kiểm thử chức năng từ
mô hình ca sử dụng, đầu tiên các nghiên cứu đề xuất sử dụng một ngôn
ngữ đặc tả để đặc tả các thông tin mô tả trong ca sử dụng. Sau đó, các
nghiên cứu sử dụng các đặc tả này để sinh tự động các ca kiểm thử. Trong
quá trình khảo sát các phương pháp đặc tả các thông tin mô tả trong ca


Mở đầu

4

sử dụng, luận án nhận thấy rằng mô hình ca sử dụng là chế tác (artifact)
trung tâm trong phát triển phần mềm. Các mô hình ca sử dụng không chỉ
là đầu vào để xây dựng các ca kiểm thử chức năng mà còn là đầu vào để
xây dựng các mô hình cấu trúc (biểu đồ lớp, biểu đồ trạng thái, v.v.), các
mô hình hành vi (biểu đồ tuần tự, biểu đồ hoạt động, v.v.), và làm tài liệu
cho hệ thống. Để tăng tính tự động hóa trong phát triển phần mềm, các mô
hình ca sử dụng không chỉ cần được tích hợp vào phương pháp kiểm thử

hướng mô hình mà cũng cần được tích hợp vào trong phương pháp phát
triển hướng mô hình (Model-Driven Development - MDD). MDD cho phép
sử dụng mô hình ca sử dụng là mô hình trung tâm để sinh tự động các ca
kiểm thử, các mô hình cấu trúc, các mô hình hành vi. Vì vậy, các ca sử
dụng cần được đặc tả rõ ràng và đủ các thông tin cần thiết để sinh tự động
các chế tác khác nhau trong phát triển phần mềm. Trong các nghiên cứu
mà luận án đã khảo sát, có hai nghiên cứu đã đề xuất các ngôn ngữ đặc
tả RSL [63] và SelabReq [59] với mục đích cho phép tích hợp đặc tả ca sử
dụng vào trong phương pháp phát triển hướng mô hình. Tuy nhiên, thông
tin mô tả trong các ca sử dụng được đặc tả trong RSL không đủ chi tiết
để sinh được dữ liệu kiểm thử cụ thể như trong nghiên cứu [65] đã đề cập
ở trên. Ngôn ngữ SelabReq chỉ đề cập đến khả năng sinh các mô hình cấu
trúc và mô hình hành vi mà không đề cập đến việc sinh các ca kiểm thử.
Mặc dù đã có nhiều nghiên cứu quan tâm giải quyết bài toán sinh các
ca kiểm thử chức năng từ mô hình ca sử dụng, cũng như bài toán đặc tả
thông tin mô tả trong ca sử dụng để tích hợp vào trong phương pháp phát
triển hướng mô hình. Tuy nhiên, bài toán này vẫn còn một số thách thức
đặt ra như sau: thách thức thứ nhất là một ngôn ngữ đặc tả chuyên biệt
miền cho phép đặc tả các thông tin trong ca sử dụng rõ ràng và đủ chi tiết
để có thể tích hợp mô hình ca sử dụng vào trong phương pháp phát triển
hướng mô hình. Việc tích hợp mô hình ca sử dụng vào trong phương pháp
phát triển hướng mô hình cho phép sinh tự động các ca kiểm thử, mô hình
cấu trúc, mô hình hành vi, và làm tài liệu. Cụ thể trong luận án này, chúng
tôi tập trung vào hiện thực hóa khả năng sinh tự động các ca kiểm thử.
Thách thức thứ hai là một phương pháp sinh tự động các ca kiểm thử có
chứa các thông tin cần thiết để có thể sinh và thực thi tự động các tập lệnh
thực thi kiểm thử bằng các công cụ thực thi kiểm thử tự động. Thách thức
thứ ba là một ngôn ngữ đặc tả chuyên biệt miền để đặc tả rõ ràng và đầy



5

Mở đầu

đủ các thông tin của các ca kiểm thử được sinh. Thách thức cuối cùng là
một công cụ đủ tốt cho phép tích hợp ca sử dụng vào trong phương pháp
phát triển phần mềm hướng mô hình cho mục đích sinh tự động các chế tác
phần mềm khác nhau từ mô hình ca sử dụng, trong đó có sinh tự động các
ca kiểm thử chức năng.
Để giải quyết các thách thức ở trên, luận án hướng đến giải quyết bài
toán trong ngữ cảnh phát triển hướng mô hình và tập trung vào sinh tự
động các ca kiểm thử chức năng từ các ca sử dụng theo phương pháp kiểm
thử dựa trên mô hình. Đầu tiên, luận án đề xuất phương pháp đặc tả rõ
ràng các thông tin mô tả trong ca sử dụng và các ca kiểm thử bằng cách
tiếp cận mô hình hóa chuyên biệt miền (Domain-Specific Modeling - DSM ).
Sau đó, luận án đề xuất phương pháp sinh tự động các ca kiểm thử từ ca
sử dụng. Cuối cùng, luận án xây dựng các công cụ hỗ trợ cho các phương
pháp đã đề xuất để cho phép tích hợp ca sử dụng vào trong phương pháp
phát triển hướng mô hình và đánh giá các phương pháp đã đề xuất với các
phương pháp hiện tại khác.
Đối tượng nghiên cứu của luận án là các mô hình ca sử dụng, các ca kiểm
thử chức năng, và phương pháp xác định các ca kiểm thử chức năng từ ca
sử dụng, phương pháp tự động hóa trong kiểm thử phần mềm áp dụng cho
kiểm thử chức năng. Để thực hiện mục tiêu sinh tự động các ca kiểm thử
chức năng từ các ca sử dụng, luận án sử dụng phương pháp kiểm thử dựa
trên mô hình với hướng tiếp cận mô hình hóa chuyên biệt miền.

1.2

Mục tiêu nghiên cứu và các đóng góp chính

của luận án

Mục tiêu của luận án là đặt ca sử dụng vào trong ngữ cảnh của quy
trình kiểm thử dựa trên mô hình. Điều này cho phép tự động hóa hoạt động
kiểm thử chức năng mà đầu vào là các yêu cầu chức năng của phần mềm.
Hình 1.1 minh họa tổng quan nghiên cứu của luận án. Trong đó, các Bước
(1) mô hình hóa, Bước (2) sinh các ca kiểm thử, Bước (3) sinh các tập lệnh
thực thi kiểm thử, Bước (4) thực thi kiểm thử, và Bước 5 phân tích các ca
kiểm thử là năm bước chính trong quy trình kiểm thử dựa trên mô hình.
Luận án tập trung vào hai bước đầu tiên còn nhiều thách thức trong quy


Mở đầu

6

trình kiểm thử dựa trên mô hình cho bài toán kiểm thử chức năng từ các
ca sử dụng là Bước (1) mô hình hóa các yêu cầu và Bước (2) sinh các ca
kiểm thử tự động. Các Bước (3), (4), (5) đã được cung cấp đầy đủ bởi các
công cụ thực thi kiểm thử tự động được triển khai rộng rãi trong thực tế.
Để đạt được mục đích tự động hóa hoàn toàn, các ca kiểm thử được sinh
trong Bước (2) cần chứa đầy đủ các thông tin cần thiết để là đầu vào cho
Bước (3) sinh và Bước (4) thực thi tự động các tập lệnh thực thi kiểm thử
bằng các công cụ thực thi kiểm thử tự động. Ngoài ra mục tiêu hướng tới
của luận án là không chỉ đặt ca sử dụng vào trong ngữ cảnh của quy trình
kiểm thử dựa trên mô hình mà còn đặt ca sử dụng trong ngữ cảnh phát
triển hướng mô hình nói chung. Mục đích này cho phép sinh tự động các
đầu ra khác nhau từ mô hình ca sử dụng như các ca kiểm thử, các mô hình
cấu trúc, các mô hình hành vi, cũng như sử dụng làm tài liệu đặc tả yêu
cầu phần mềm. Để giải quyết bài toán này, luận án đã đạt được bốn đóng

góp chính như được thể hiện trong phần phía trên của Hình 1.1.

Hình 1.1: Ngữ cảnh nghiên cứu, phương pháp thực hiện, và các
đóng góp của luận án.


Mở đầu

7

Thứ nhất, luận án đề xuất một phương pháp đặc tả ca sử dụng với cách
tiếp cận mô hình hóa chuyên biệt miền. Để thực hiện mục tiêu này, luận
án đề xuất ngôn ngữ đặc tả chuyên biệt miền cho ca sử dụng tên là USL
(Use case Specification Language) với cú pháp trừu tượng, cú pháp cụ thể,
và tập các luật ràng buộc trên cú pháp trừu tượng. Để cung cấp một ngữ
nghĩa thực thi cho ngôn ngữ, luận án ánh xạ một mô hình USL sang một hệ
thống chuyển trạng thái được gán nhãn. Sự khác biệt của phương pháp đề
xuất đối với các nghiên cứu trước đây thể hiện ở khả năng đặc tả rõ ràng
và đủ các thông tin mô tả về cấu trúc và hành vi trong ca sử dụng bằng các
khái niệm chuyên biệt cho miền ca sử dụng. Vì vậy, USL đem lại khả năng
tích hợp ca sử dụng vào trong phương pháp phát triển hướng mô hình và
dễ hiểu với các bên liên quan phi kỹ thuật (non-technical stakeholders).
Thứ hai, luận án đề xuất một phương pháp đặc tả ca kiểm thử. Để thực
hiện ý tưởng này, luận án tiến hành khảo sát miền đặc tả các ca kiểm thử
chức năng. Các thông tin cần thiết để các ca kiểm thử chức năng để có thể
là đầu vào cho các công cụ kiểm thử tự động sinh và thực thi tự động các
tập lệnh thực thi kiểm thử. Kế tiếp, luận án đề xuất ngôn ngữ đặc tả chuyên
biệt miền tên là TCSL (Test Case Specification Language) với cú pháp trừu
tượng và tập các luật ràng buộc hợp lệ. Sự khác biệt của phương pháp đã đề
xuất với các nghiên cứu trước đây là ngôn ngữ TCSL cho phép đặc tả thông

tin của các ca kiểm thử rõ ràng và chi tiết hơn cho mục đích sử dụng là đầu
vào để sinh và thực thi tự động các tập lệnh thực thi kiểm thử. Ngôn ngữ
cho phép đặc tả các thông tin như các bước kiểm thử, đối tượng kiểm thử,
hành động trên đối tượng kiểm thử, loại điểm kiểm tra (checkpoint type),
dữ liệu đầu vào, dữ liệu đầu ra mong đợi, tiền và hậu điều kiện của các ca
kiểm thử. Trong khi các ngôn ngữ đặc tả ca kiểm thử của các nghiên cứu
khác chỉ đặc tả bước kiểm thử và dữ liệu kiểm thử. Ngoài ra, dữ liệu kiểm
thử được xác định dựa vào trạng thái bên trong của hệ thống trước khi ca
sử dụng được thực thi. Tuy nhiên, không có ngôn ngữ đặc tả ca kiểm thử
nào đã được đề xuất đặc tả các trạng thái bên trong của hệ thống trước khi
thực hiện kiểm thử, trong khi thông tin này được TCSL đặc tả.
Thứ ba, luận án đề xuất phương pháp USLTG (USL-based Test Generation) để chuyển tự động từ các mô hình ca sử dụng trong USL, và mô
hình lớp các khái niệm miền của hệ thống sang mô hình đặc tả ca kiểm thử
TCSL. Tại mức kiểm thử hệ thống, các yêu cầu chức năng phần mềm được


Mở đầu

8

sử dụng là đầu vào để xác định các ca kiểm thử chức năng. Để sinh tự động
các ca kiểm thử từ ca sử dụng, các thông tin mô tả trong các ca sử dụng
được đặc tả rõ ràng bằng các mô hình USL. Sau đó, các mô hình USL này
kết hợp với mô hình lớp đặc tả các khái niệm miền của hệ thống được sử
dụng là đầu vào để sinh các kịch bản, các trạng thái bên trong hệ thống
trước khi ca sử dụng được thực hiện, và các dữ liệu kiểm thử. Cuối cùng,
các thông tin của các ca kiểm thử đã được sinh được chuyển vào trong một
mô hình TCSL. Sự khác biệt của phương pháp đã đề xuất đối với các nghiên
cứu trước đây thể hiện, thông tin các ca kiểm thử chức năng được xác định
đủ chi tiết và rõ ràng để có thể là đầu vào cho các công cụ thực thi kiểm

thử tự động có thể sinh và thực thi tự động các tập lệnh thực thi kiểm thử.
Cụ thể thông tin các ca kiểm thử được xác định gồm: các bước kiểm thử,
kiểu của bước kiểm thử, hành động và đối tượng của bước kiểm thử, trạng
thái bên trong của hệ thống, dữ liệu kiểm thử cụ thể. Trong khi các nghiên
cứu khác chỉ xác định được thông tin mô tả các bước kiểm thử và dữ liệu
kiểm thử ở dạng mô tả. Hơn nữa, các ca kiểm thử được sinh được đặc tả rõ
ràng bằng một mô hình trong TCSL. Điều này tạo điều kiện thuận lợi để
thực thi và chuyển đổi giữa các định dạng khác nhau của các ca kiểm thử.
Cuối cùng, luận án xây dựng bộ công cụ hỗ trợ USL. Công cụ này cho
phép tích hợp ca sử dụng vào trong phương pháp phát triển hướng mô hình.
Công cụ gồm một trình soạn thảo các mô hình USL và các bộ sinh tự động
các chế tác khác nhau từ các mô hình USL. Trong phạm vi luận án, luận
án tập trung xây dựng bộ sinh tự động các ca kiểm thử từ mô hình USL
và một bộ công cụ chuyển các mô hình USL sang dạng mô tả ca sử dụng
theo mẫu trong ngôn ngữ tự nhiên để làm tài liệu cho đặc tả phần mềm.
Để minh chứng khả năng ứng dụng USL vào trong thực tế, luận án cũng
trình bày các kết quả khi áp dụng USL cho một số ca sử dụng. Ngoài ra,
luận án cũng đưa ra các đánh giá, so sánh phương pháp đặc tả ca sử dụng
và phương pháp sinh các ca kiểm thử với các nghiên cứu khác liên quan.
Các kết quả nghiên cứu trên của luận án nhằm xây dựng một phương
pháp hoàn chỉnh để sinh tự động các ca kiểm thử chức năng từ các ca sử
dụng bằng phương pháp kiểm thử dựa trên mô hình với cách tiếp cận mô
hình hóa chuyên biệt miền. Từ đó nghiên cứu hướng đến một phương pháp
hoàn chỉnh cho phép tích hợp ca sử dụng vào trong phương pháp phát triển
hướng mô hình.


9

Mở đầu


1.3

Cấu trúc luận án

Luận án Kiểm thử dựa trên mô hình với cách tiếp cận mô hình hóa chuyên
biệt miền bao gồm sáu chương. Trong đó Chương 1 Mở đầu trình bày về
lý do chọn đề tài và nội dung nghiên cứu của luận án. Các chương còn lại
được tổ chức như trong Hình 1.2, cụ thể như sau:

Hình 1.2: Cấu trúc luận án.
Chương 2 trình bày về các kiến thức nền được sử dụng trong luận án.
Đầu tiên, luận án trình bày về kiểm thử dựa trên ca sử dụng. Kế tiếp, luận
án giới thiệu về mô hình hóa chuyên biệt miền. Mục tiếp theo là ngôn ngữ
chuyển mô hình. Các ngôn ngữ được sử dụng là phương tiện để xây dựng các
chuyển đổi mô hình trong các ngôn ngữ mô hình hóa chuyên biệt miền. Phần
cuối cùng của chương là ngôn ngữ ràng buộc đối tượng (Object Constraint
Language - OCL), đây cũng là phương tiện được sử dụng cho cả hai cấp độ
siêu mô hình và mô hình để đặc tả các luật ràng buộc hợp lệ trong các siêu
mô hình và đặc tả rõ ràng các loại ràng buộc khác nhau trong các mô hình


Mở đầu

10

ca sử dụng của luận án đề xuất trong Chương 3 và 4. Trong phần này luận
án cũng trình bày một công cụ hỗ trợ giải các ràng buộc trong OCL mà
luận án có sử dụng như công cụ trung gian cho các đề xuất trong Chương 4.
Chương 3 đề xuất một ngôn ngữ đặc tả chuyên biệt miền cho miền đặc

tả các ca sử dụng tên là USL. Ngôn ngữ USL với mục đích để đặc tả rõ ràng
các thông tin trong các ca sử dụng cho mục đích đặc tả yêu cầu và sinh tự
động các đầu ra từ mô hình ca sử dụng. Phương pháp đặc tả USL cho phép
tích hợp ca sử dụng vào trong phương pháp phát triển phần mềm hướng mô
hình.
Chương 4 trình bày phương pháp sinh tự động các ca kiểm thử chức
năng từ mô hình ca sử dụng và mô hình khái niệm miền của hệ thống.
Trong chương này, trước hết luận án đề xuất một ngôn ngữ đặc tả các ca
kiểm thử hệ thống theo phương pháp mô hình hóa chuyên biệt miền tên
là TCSL. Sau đó, luận án đề xuất một phương pháp cho phép chuyển tự
động các ca sử dụng được đặc tả trong các mô hình USL và mô hình lớp
các khái niệm miền sang các ca kiểm thử được đặc tả trong một mô hình
TCSL. Phương pháp sinh tự động mô hình TCSL từ các mô hình USL được
đề xuất trong chương này thể hiện tính thống nhất về mặt phương pháp
luận và tính khả thi trong quá trình thực nghiệm.
Chương 5 trình bày về công cụ hỗ trợ và các đánh giá của phương pháp
đã đề xuất. Đầu tiên, luận án hiện thực hóa các đề xuất trong các Chương
3 và 4 bằng một công cụ hỗ trợ USL. Sau đó, luận án sử dụng công cụ đã
đề xuất để thực nghiệm trên một số ca sử dụng. Sau đó, luận án trình bày
các so sánh và đánh giá các kết quả đã đề xuất. Công cụ hỗ trợ USL cho
phép tích hợp các ca sử dụng vào trong phương pháp phát triển hướng mô
hình. Trong đó, công cụ cho phép tạo ra các mô hình đặc tả ca sử dụng
trong ngôn ngữ đặc tả USL. Công cụ cũng cung cấp các bộ sinh khác nhau
cho phép sinh tự động các đầu ra khác nhau từ các mô hình USL. Cụ thể,
luận án hiện thực hóa hai bộ sinh là sinh các đặc tả ca sử dụng trong ngôn
ngữ tự nhiên dựa trên mẫu được gọi là USL2TUCD và sinh các ca kiểm thử
được đặc tả trong mô hình TCSL.
Cuối cùng, Chương 6 phân tích về các đóng góp chính của luận án và
thảo luận về các nghiên cứu trong tương lai từ các kết quả ban đầu đã đạt
được.



Chương 2
KIẾN THỨC CƠ SỞ
Trong chương này, luận án sẽ trình bày về những kiến thức cơ sở được
sử dụng trong các chương tiếp theo. Mở đầu, Mục 2.1 sẽ làm rõ các khái
niệm trong kiểm thử phần mềm, ca sử dụng, và phương pháp xác định các
ca kiểm thử từ các ca sử dụng. Các mục tiếp theo, luận án sẽ lần lượt mô
tả về mô hình hóa chuyên biệt miền (Domain-Specific Modeling - DSM ),
ngôn ngữ chuyển mô hình (model transformation language), và ngôn ngữ
ràng buộc đối tượng OCL.

2.1

Kiểm thử dựa trên ca sử dụng

Phần này, luận án sẽ trình bày các kiến thức nền trong kiểm thử phần
mềm, ca sử dụng, và kiểm thử dựa trên ca sử dụng. Các kiến thức này được
luận án tìm hiểu khi nghiên cứu bài toán kiểm thử chức năng từ ca sử dụng.

2.1.1
2.1.1.1

Kiểm thử phần mềm
Các khái niệm cơ bản

Lỗi phần mềm là một khiếm khuyết trong một thành phần hoặc hệ thống
mà nó có thể làm cho thành phần hoặc hệ thống này không thực hiện đúng
chức năng yêu cầu của nó, ví dụ như thông báo sai hoặc định nghĩa dữ liệu
không đúng [5].


11


×