SlideShare a Scribd company logo
1 of 25
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO
0973.287.149
ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC BÁCH KHOA
NGÔ PÔ NA
XÂY DỰNG CÔNG CỤ SINH DỮ LIỆU
THỬ TỰ ĐỘNG CHO CHƢƠNG TRÌNH JAVA
Chuyên ngành
Mã số
: Khoa học máy tính
: 60.48.01.01
TÓM TẮT LUẬN VĂN THẠC SĨ
KHOA HỌC MÁY TÍNH
Đà Nẵng – Năm 2017
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
Ngƣời hƣớng dẫn khoa học : PGS.TS NGUYỄN THANH BÌNHI
Phản biện 1 : PGS.TS. Lê Mạnh Thạnh
Phản biện 2 : TS. Lê Xuân Việt
Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp
thạc sĩ ngành Khoa học máy tính họp tại Trường Đại học Bách khoa
Đà Nẵng vào ngày 8 tháng 1 năm 2017
Có thể tìm hiểu luận văn tại :
- Trung tâm Thông tin - Học liệu, Đại học Đà Nẵng
- Trung tâm học liệu truyền thông, trường Đại học Bách Khoa,
Đại học Đà Nẵng
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
1
MỞ ĐẦU
1. Lý do chọn đề tài
Phần mềm hiện nay được sử dụng rộng rãi trong đời sống, công
việc, nhiều lĩnh vực khoa học, kinh tế và xã hội. Vì vậy, việc đảm
bảo rằng phần mềm đáp ứng mong muốn của người sử dụng là rất
quan trọng. Kiểm thử phần mềm là một trong những hoạt động cơ
bản nhằm đảm bảo chất lượng phần mềm.
Việc phát triển phần mềm ngày càng được chuy n nghiệp h a Các
phần mềm được phát triển ngày càng c quy mô lớn Y u cầu đảm ảo
chất lượng phần mềm là một trong những mục ti u quan trong nhất, đ
c biệt trong một số lĩnh vực như y hoa, ng n hàng, hàng hông Việc
iểm thử, iểm chứng phần mềm một cách thủ công ch đảm ảo được
phần nào chất lượng của phần mềm Vì vậy rất nhiều các t chức, công
ty đã nghi n cứu và phát triển các l thuyết c ng như công cụ để iểm
chứng, iểm thử phần mềm một cách tự động.
Một số lợi ích có thể kể đến của kiểm thử tự động như: cải thiện
hiệu quả công việc, cải thiện tính chính xác, cải thiện chất lượng
kiểm thử và chất lượng của phần mềm. Tại các doanh nghiệp tư nhân
hiện tại, công việc kiểm thử phần mềm đơn vị (unit test) thường
được các lập trình viên thực hiện ngay trong quá trình viết mã nguồn
của chương trình Vì vậy dẫn đến một số vấn đề như sau:
- Không đảm bảo được tính khách quan.
- Các lập trình vi n thường khó sử dụng các kỹ thuật kiểm thử
hộp trắng vì hông đủ chi phí thời gian.
Hiện tại trong các dự án mà tôi đang tham gia, ngôn ngữ lập trình
chủ yếu được sử dụng là Java. Ngoài ra,trong các ngôn ngữ lập trình
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
2
hiện đại ngày nay, Java là ngôn ngữ lập trình ph biến trong suốt 13
năm qua [1]
Vì những l do tr n, tôi đề xuất chọn đề tài luận văn cao học: “X y
dựng công cụ sinh dữ liệu thử tự động cho chương trình Java”
2. Mục đích và ý nghĩa đề tài
a. Mục đích
- Xây dựng công cụ sinh dữ liệu kiểm thử tự động cho chương
trình nguồn Java. Nhằm mục đích thực hiện việc kiểm thử
hộp trắng cho kiểm thử đơn vị một cách tự động và khoa học
Hướng đến mục tiêu giảm chi phí về thời gian và tài chính
khi thực hiện công việc kiểm thử cho các lập trình viên/kiểm
thử viên.
- Tìm hiểu về các thách thức g p phải trong quá trình sinh dữ
liệu thử tự động, từ đ đề xuất và cài đ t giải pháp để giải
quyết các thách thức này.
b. Ý nghĩa khoa học
- Nghiên cứu về các kỹ thuật kiểm thử hộp trắng.
- Nghiên cứu về lý thuyết về tính thoả được.
- Xây dựng công cụ tự động sinh dữ liệu cho chương trình
Java đảm bảo tiêu chí bao phủ lộ trình và tối ưu thời gian
thực thi.
c. Ý nghĩa thực tiễn
- Giảm thời gian và chi phí cho việc kiểm thử hộp trắng của
các lập trình viên khi thực hiện kiểm thử đơn vị.
- Dữ liệu thử tự động mang tính hách quan hơn, hông ị phụ
thuộc vào góc nhìn và kinh nghiệm của người lập trình.
- Kiểm tra được các lỗi tiềm ẩn trong mã nguồn.
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
3
3. Mục tiêu và nhiệm vụ
a. Mục tiêu
Xây dựng công cụ sinh dữ liệu tự động cho chương trình Java
đảm bảo tiêu chí bao phủ lộ trình.. Các mục tiêu cụ thể như sau:
- Nghiên cứu về các phương pháp iểm thử hộp trắng.
- Nghiên cứu về phương pháp giải các ràng buộc (SMT [2]).
- Nghiên cứu về các giải pháp sinh dữ liệu thử tự động cho
chương trình Java và những thách thức hiện nay.
- Xây dựng công cụ sinh dữ liệu thử cho chương trình Java
b. Nhiệm vụ
Để đạt được những mục tiêu trên, nhiệm vụ đ t ra của đề tài là:
- Nghiên cứu lý thuyết kiểm thử hộp trắng, tập trung vào các
lý thuyết xây dựng tập dữ liệu kiểm thử.
- Nghiên cứu về lý thuyết về tính thoả được.
- Nghiên cứu và áp dụng kỹ thuật tối ưu h a để tối ưu thời gian
thực thi.
4. Đối tƣợng và phạm vi nghiên cứu
Luận văn tập trung vào nghiên cứu các đối tượng và phạm vi
sau:
- Cấu trúc chương trình Java
- Lý thuyết về tính thoả được của các bộ SMT và cách áp
dụng để giải các ràng buộc.
- Phân tích, thiết kế và cài đ t ứng dụng sinh dữ liệu thử cho
chương trình Java
5. Phƣơng pháp nghiên cứu
a. Phương pháp lý thuyết
 Tiến hành thu thập và nghiên cứu các tài liệu có liên quan

đến đề tài.
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
4
 Nghiên cứu lý thuyết về thực thi ký hiệu và lý thuyết về tính
thỏa được.

 Nghiên cứu về kiểm thử đơn vị và cách thực hiện.

 Nghiên cứu các phương pháp tối ưu h a các đường thực thi.

b. Phương pháp thực nghiệm
 Nghiên cứu về phương pháp thực thi ký hiệu và các công cụ
hỗ trợ thực thi ký hiệu hiện nay.

 Nghiên cứu đề xuất giải pháp tối ưu các đường thực thi trong
quá trình thực hiện thực thi ký hiệu.
5. Kết luận
a. Kết quả của đề tài
 Thứ nhất, tìm hiểu về cách xây dựng và hoạt động của và
phương pháp sinh dữ liệu kiểm thử tự động cho ngôn ngữ
Java c ng như nghi n cứu về các thách thức hiện nay.

 Thứ hai, đề xuất và cài đ t giải pháp tối ưu trong việc sinh
dữ liệu thử tự động nhằm tối ưu hóa thời gian nhưng vẫn
đảm bảo tính đúng đắn, toàn vẹn và khả năng ao phủ của bộ
dữ liệu thử tự động.
b. Hướng phát triển của đề tài
Trong quá trình nghiên cứu, bộ SMT Choco không cho kết
quả tốt như các ộ SMT hác như Z3 hay CVC3 Vì vậy, trong thời
gian tới chúng tôi sẽ tiếp tục nghiên cứu và triển khai tích hợp các bộ
SMT mới và có khả năng hỗ trợ nâng cấp tốt hơn vào trong chương
trình sinh dữ liệu kiểm thử
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
5
CHƢƠNG 1
CƠ SỞ LÝ THUYẾT
1.1. Tổng quan về kiểm thữ phần mềm
1.1.1. Các bước kiểm thử
1.1.2. Các mức kiểm thử
1.1.3. Các kỹ thuật kiểm thử phần mềm
1.2. Lý thuyết về tính thỏa đƣợc
Tính thỏa mãn là một trong những vấn đề quan trọng nhất
của ngành khoa học máy tính. Các vấn đề cần tính thỏa mãn được
ứng dụng trong cả phát triển phần cứng c ng như phần mềm, đ c biệt
là kiểm định phần cứng, kiểm thử, lập lịch, đồ thị.
Trong các lĩnh vực nói trên, nhiều các ứng dụng được xây
dựng dựa trên việc tạo ra các công thức tiền tố và việc chứng minh
tính hợp lệ của chúng. Cho dù hai thập niên gần đ y, việc chứng
minh tính hợp lệ của các định lý, biểu thức tiền tố có những tiến bộ
đáng ể, tuy nhiên, không phải công thức nào c ng c thể chứng minh
một cách tự động được. Lý do của vấn đề này là bởi lẽ nhiều công
thức hông quan t m đến tính khả thi trong trường hợp t ng quát mà ch
được quan tâm trong một lý thuyết nền tảng. Việc nghiên cứu tính
khả thi của các công thức trong một lý thuyết nền tảng được gọi là
các lý thuyết module về tính thỏa được (Satisfiability Modulo
Theories hay SMT) và các công cụ để chứng minh một cách tự động
các tính khả thi của những vẫn đề SMT được gọi là bộ giải SMT
(SMT solver).
Trên thực tế, việc xây dựng và sử dụng các bộ giải SMT
được phát triển khá sớm, từ đầu những năm 1980 [9] Tại thời điểm
đ , một số bộ giải được xây dựng bởi Greg Nelson và Derek Oppent
tại trường đại học Stanford , Robert Shostak tại SRI, và Robert
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
6
Boyer và J Moore tại trường đại học ở Texas Đến cuối những năm
1990, việc nghiên cứu SMT hiện đại dựa trên lợi thế của công nghệ
SAT đã x y dựng nhiều bộ giải SMT tiến bộ hơn
Như đã đề cập ở trên, trong khuôn kh đồ án, việc đánh giá về
tính đúng đắn, các nghiên cứu về thuật giải của từng bộ giải sẽ
hông được đề cập đến. Vấn đề được đ t ra ở đ y là ết quả của bộ
giải nào sẽ được đưa ra sớm nhất. Hiện nay, có rất nhiều các bộ giải
như A solver, Boolector, CVC3, OpenSMT, Yices, Z3… Do yêu cầu
của hệ thống là phải đưa ra được giá trị thỏa mãn (nếu bài toán SMT
đ c thỏa mãn) nên bộ giải hệ thống sử dụng phải hỗ trợ chức
năng này Ngoài ra hệ thống sử dụng đầu vào theo chuẩn của SMT-
Lib và ngắt thời gian giải một bài toán (trong trường hợp bài toán
cần thời gian giải quá lớn), do đ , ộ giải cần phải có hỗ trợ những
chức năng này hi hoạt động. Từ những yêu cầu đ , hai ộ giải là
Yices của SRI International và Choco thuần Java đã được lựa chọn
trong JPF. Hai bộ giải này tuy có cấu trúc hác nhau nhưng cùng được
dựa trên thuật giải DPLL (Davis-Putnam-Logemann-Loveland).
1.3. Thực thi ký hiệu
Trong hoạt động kiểm thử phần mềm, các ca kiểm thử
thường được tạo ra một cách thủ công, gây tốn kém về chi phí c ng
như thời gian để hoàn thành công đoạn này. Thực thi ký hiệu (Sym
olic execution) được biết đến là một kỹ thuật n i tiếng với khả năng
tự động sinh những bộ ca kiểm thử c độ bao phủ cao với các tiêu chí
kiểm thử nhằm phát hiện những lỗi sâu trong các hệ thống phần mềm
phức tạp. Trong mục này sẽ trình bày các vấn đề t ng quan và một số
kết quả của các nghiên cứu gần đ y về kỹ thuật thực thi ký hiệu, đưa
ra những thách thức cần giải quyết trong lĩnh vực
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
7
này như: sự bùng n đường thực thi của chương trình, hả năng giải
các ràng buộc, mô hình hóa bộ nhớ, các vấn đề về tương tranh, đồng
thời c ng tập trung vào ph n tích và đề xuất giải pháp để sinh ra dữ
liệu kiểm thử cho chương trình Java một cách tự động.
Hiện nay c rất nhiều công cụ nền tảng phục vụ cho hoạt
động iểm thử phần mềm như JUnit cho ngôn ngữ Java, NUnit,
VSUnit cho NET để thực thi các ca iểm thử mức đơn vị Tuy
nhi n, các công cụ iểm thử này hông hỗ trợ việc sinh tự động các
ca iểm thử đơn vị Viết các ca iểm thử là một công việc n ng nhọc
và tốn nhiều công sức C nhiều phương pháp hác nhau hỗ trợ việc
sinh tự động các ca iểm thử giúp giảm chi phí và thời gian thực hiện
đã được nghi n cứu và đưa ra như: Dựa tr n iểm chứng mô hình
(Model Chec ing), ểm thử ngẫu nhi n (Random Testing) Nhưng
hạn chế của n là iểm tra c ng một hành vi thực thi của chương
trình nhiều lần với những đầu vào hác nhau và ch c thể iểm tra
được một số trường hợp thực thi của chương trình Th m vào đ ,
iểm thử ngẫu nhi n h xác định được hi nào việc iểm thử n n
được dừng lại và n hông iết tại điểm nào hông gian trạng thái đã
được thám hiểm hết Để xác định hi nào việc iểm thử dừng lại thì
hệ thống iểm thử ngẫu nhi n được ết hợp với các ti u chuẩn an toàn
Để hắc phục những hạn chế của iểm thử ngẫu nhi n, phương pháp
thực thi tương trưng x y dựng các ràng uộc tr n các giá trị
hiệu và giải các ràng uộc đ để sinh ra các giá trị đầu vào cho
chương trình mà c thể ao phủ tất các d ng lệnh c ng như các
nhánh thực thi của chương trình
tưởng của thực thi hiệu đã được đề xuất ởi, nhưng
việc hiện thực tưởng mới ch được thực hiện trong những năm gần
đ y qua tiến ộ đáng ể trong l thuyết giải các ràng uộc và các tiếp
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
8
cận mở rộng thực thi
giá trị cụ thể và giá trị
hiệu động , một ỹ thuật
hiệu cho các giá trị đầu vào
ết hợp giữa các
1.4. Các kỹ thuật thực thi ký hiệu
a. Concolic testing
Thực thi hiệu động chính là sự ết hợp giữa thực thi cụ thể và
thực thi hiệu Trong thực thi hiệu động, chương trình được
thực thi nhiều lần với những giá trị hác nhau của tham số đầu vào
Bắt đầu ằng việc chọn những giá trị t y cho các tham số đầu
vào và thực thi chương trình với những giá trị cụ thể đ chương trình
sẽ được thực thi theo một đường đi xác định DART thực thi chương
trình với các giá trị cụ thể của tham số đầu vào và thu gom các ràng
buộc trong quá trình thực thi theo đường đi mà sự thực thi cụ thể này
đi theo, đồng thời suy ra các ràng uộc mới từ những ràng uộc đã thu
gom được
Tại các c u lệnh rẽ nhánh, iểu thức điều iện rẽ nhánh sẽ được
đánh giá theo các giá trị cụ thể của các tham số đầu vào Nếu iểu thức
điều iện rẽ nhánh nhận giá trị là True thì iểu thức của điều kiện rẽ
nhánh sẽ được thu gom vào ràng uộc của ràng uộc lộ trình và được
ghi nhớ, đồng thời phủ định của điều iện rẽ nhánh sẽ được sinh ra và
được th m vào một ràng buộc lộ trình tương ứng với nhánh c n lại mà
sự thực thi cụ thể đ hông đi theo Một bộ xử l ràng buộc sẽ được sử
dụng để giải quyết các ràng uộc mới sinh ra này để sinh ra các giá trị
cụ thể của tham số đầu vào Trong trường hợp ngược lại iểu thức phủ
định của điều iện rẽ nhánh sẽ được thu gom vào ràng buộc của ràng
uộc lộ trình tương ứng với nhánh mà sự thực thi hiện thời đang đi
theo và được ghi nhớ Đồng thời điều kiện rẽ nhánh sẽ được sinh ra
và th m vào PC tương ứng với nhánh c n lại mà sự thực thi hiện thời
hông đi theo Các giá trị mới được
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
9
sinh ra của các tham số đầu vào sẽ tiếp tục được thực thi và quá trình
này sẽ được l p lại cho tới hi chương trình được thực thi theo tất cả
các đường đi Do các chương trình được thực thi với những giá trị cụ
thể n n c thể thấy rằng tất cả các đường đi ph n tích được trong quá
trình thực thi hiệu động đều là các đường đi hả thi
b. Excution generated testing
EGT trộn lẫn giá trị cụ thể và thực thi hiệu ằng cách iểm tra động
trước mọi toán hạng Nếu các giá trị li n quan đ hoàn toàn là
các giá trị cụ thể thì toán hạng đ sẽ thực thi như chương trình gốc
C n nếu c ít nhất một giá trị là hiệu thì toán hạng sẽ thực hiện
thực thi hiệu và cập nhật điều iện ràng buộc đường đi cho đường
thực thi hiện thời
1.5. Các thách thức và giải pháp
a. Bùng nổ đường đi
Một trong những thách thức quan trọng của thực thi hiệu là
n sẽ sinh ra một số lượng lớn các đường thực thi m c d chương
trình là nhỏ và thường là hàm m trong số các c u lệnh rẽ nhánh tĩnh
của mã nguồn Kết quả là trong một hoảng thời gian định trước n
sẽ quyết định hám phá con đường đầu ti n sao cho ph hợp nhất
Trước hết, lưu rằng thực thi hiệu đã ngầm lọc ra tất cả
các đường thực thi hông phụ thuộc vào các iến hiệu đầu vào và
những đường dẫn hông hả thi (Infeasi lle path) trong quá trình
giải các ràng uộc M c d như vậy, sự ng n đường dẫn vẫn là
một trong những thách thức lớn nhất đối với thực thi hiệu Hiện
nay c 2 cách tiếp cận chính để giải quyết vấn đề này là ưu ti n tìm
iếm inh nghiệm (Heuristic search) và sử dụng ỹ thuật ph n tích
tính đúng đắn của chương trình.
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
10
b. Giải các ràng buộc
M c d đã c những tiến ộ đáng ể trong ỹ thuật thực hiện
giải các ràng uộc trong những năm gần đ y, giúp cho thực thi
hiệu trở n n thực tế hơn, nhưng việc giải các ràng uộc vẫn là cản trở
đáng ể của thực thi ký hiệu N thường chiếm nhiều thời gian trong
quá trình thực hiện và là một trong những l do chính hiến thực thi
tương trưng hông mở rộng được với một số loại chương trình mà
mã nguồn của n sinh ra với y u cầu rất lớn trong việc giải các ràng
buộc.
c. Mô hình hóa bộ nhớ
Độ chính xác của các c u lệnh của chương trình hi chuyển sang
các ràng buộc ký hiệu c ảnh hưởng đáng ể đến độ ao phủ hi thực
hiện thực thi hiệu Ví dụ hi sử dụng mô hình hóa bộ nhớ mà xấp
x để thiết lập độ rộng cho tham iến iểu Interger c thể c hiệu quả hơn
trong thực tế nhưng m t hác ết quả lại thiếu chính xác trong
ph n tích mã nguồn N phụ thuộc vào hoảng lựa chọn giá trị tương
ứng như lỗi tràn ộ nhớ toán học, c ng c thể g y ra thiếu đường dẫn
trong thực thi hiệu, ho c khai phá những đường đi hông hả thi vv..
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
11
CHƢƠNG 2
GIẢI PHÁP SINH DỮ LIỆU THỬ
CHO CHƢƠNG TRÌNH JAVA
2.1. Giải pháp sinh dữ liệu thử cho chƣơng trình JAVA
a. Tổng quan về giải pháp
Mô hình t ng thể của giải pháp sinh dữ liệu thử cho chương trình
Java được mi u tả như trong hình 2 1 dưới đ y:
Hình 2.1. Mô hình triển khai
Tham số đầu vào của phương pháp là tệp nguồn Java cần
phân tích, số vòng l p tối đa (của các lệnh l p for, while ...), và các
tiêu chuẩn phủ. Mã nguồn Java được ph n rã thành các phương thức
và mức độ ưu ti n xử lý của chúng được tính toán, những phương
thức ít phụ thuộc vào các phương thức hác hơn sẽ c độ ưu ti n xử
l cao hơn, như vậy những phương thức không có lời gọi hàm sẽ
được xử l đầu tiên. Cuối cùng chúng ta có một danh sách các
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
12
phương thức được xếp theo mức ưu ti n giảm dần, và chúng lần lượt
được xử lý theo thứ tự đ
Với mỗi phương thức, đầu ti n đồ thị luồng điều khiển được
xây dựng, duyệt đồ thị luồng điều khiển sẽ cho ra các lộ trình thực
thi của phương thức, tiếp đến c được tập ràng buộc tương ứng nhờ áp
dụng phương pháp thực thi ký hiệu. Quá trình này được l p lại cho
đến khi tất cả các phương thức được phân tích hết.
Các lộ trình thực thi đã tìm được ở ước trên sẽ được đưa lần
lượt vào SMT-Solver để kiểm tra tính thoả được và sinh ra dữ liệu
kiểm thử tự động đảm bảo bao phủ được lộ trình đã đưa vào SMT-
Solver
b. Phương pháp thực hiện
Bƣớc 1: Phân tích danh sách các phương thức
Ta dựa vào 2 định nghĩa sau:
Định nghĩa 2.1: Đồ thị luồng với tập nút N, tập cạnh E, là
một đồ thị c hướng liên thông, luôn luôn có duy nhất một điểm đầu
vào, và ít nhất một điểm kết thúc [7].
Định nghĩa 2.2: Trong chương trình, đồ thị luồng biễu diễn
cho những luồng điều khiển khả thi của n , trong đ mỗi nút tương
ứng cho các điểm chương trình (tập lệnh) và các cạnh thể hiện cho
luồng điều khiển giữa các điểm đ [7]
Dựa vào cấu trúc một phương thức ta phân tách thành các
khối độc lập Sau đ lại gọi đệ quy để phân tích thành các khối cấu
trúc con của n Trong ước này, có thể sử dụng công cụ JDT cho phép
duyệt qua toàn bộ phương thức và nhận dạng các thành phần cấu tạo
nên một câu lệnh như If, For, While ; từ đ dễ dàng xây dựng các đ c
tả của một nút và giúp tập trung vào thuật toán xây dựng đồ thị.
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
13
Bƣớc 2: Sinh ra các lộ trình thực thi
Tập hợp các lộ trình thực thi của một hàm có thể lấy được
bằng cách duyệt đồ thị luồng điều khiển tương ứng với nó. Với
những phương thức có lời gọi hàm con, mỗi nút của đồ thị ho c là
các câu lệnh ( ho c tập các câu lệnh ) xác định, ho c sẽ là lời gọi đến
các hàm con đ
Cần lưu rằng thay vì chèn ràng buộc lộ trình của hàm con, có
thể thay thế nó bằng lộ trình thực thi tương ứng. Tuy nhiên kết quả
của một hàm ch phụ thuộc vào đối số của nó, nói cách khác các biến
hác được tạo ra và sử dụng n trong hàm con được gọi không
ảnh hưởng đến lộ trình thực thi hiện tại. Do vậy việc sử dụng lộ trình
ràng buộc sẽ là tối ưu hi mà các iến số n trong n đã được xử lý bằng
thực thi ký hiệu.
Bƣớc 3: Sinh ra tập các ràng buộc
Định nghĩa 2.3: Ràng buộc lộ trình[7] là một tập hợp các
biểu thức luận lý:
trong đ n là số nút điều kiện của đường thực thi, c biểu diễn ràng
buộc tương ứng với mỗi điều kiện đ
Tập lộ trình thực thi của các phương thức được xử l để cho
ra tập lộ trình ràng buộc bằng cách sử dụng phương pháp Thực thi ký
hiệu. Mỗi ước thực hiện trên lộ trình thực thi được mô tả bởi trạng
thái bởi các biến đầu vào (input) và các biến n trong phương thức
Bƣớc 4 : Sinh ra các dữ liệu kiểm thử từ bộ SMT solver
Để làm việc với SMT ta thực hiện công việc chuẩn hóa các
đầu vào theo định dạng SMT – LIB. Mỗi nút của đường ràng buộc sẽ
được chuyển từ dạng trung tố sang dạng tiền tố, từ hoá assert được
sử dụng để thêm các ràng buộc vào SMT
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
14
2.2. Vấn đề tối ƣu các ràng buộc
Một trong những nhược điểm chính của sinh dữ liệu thử tự
động là cần phải tối thiểu các ràng buộc nhằm đảm bảo tốc độ thực
thi và hao tốn về tài nguy n như đã trình ày trong mục 1.5, vì vậy
thuật toán tối ưu h a các ràng uộc đã được cài đ t tích hợp thêm vào
trong công cụ có sẵn và đảm bảo các điểm sau:
- Hạn chế số lượng các ràng buộc được đưa vào SMT để giảm
tiêu tốn về tài nguyên.
- Đảm bảo tính đúng đắn, không làm sai lệch kết quả đầu ra
của chương trình sau hi áp dụng thuật toán.
Vì vậy, ài toán đ t ra là phải cài đ t thuật toán tối ưu h a vào
trong chương trình mã nguồn mở có sẵn để tăng tốc độ thực thi
nhưng vẫn đảm bảo tính đúng đắn của chương trình
2.3. Giải quyết các ràng buộc
Trong quá trình thực hiện việc tối ưu hoá các ràng uộc,
chúng tôi sử dụng công cụ mã nguồn mở JPF trong việc hỗ trợ thực
thi ký hiệu và ch tập trung vào việc cài đ t và thử nghiệm thuật toán
để tối ưu hoá các ràng uộc. Mô hình thực hiện được biểu diễn: Với
sự hỗ trợ từ công cụ mã nguồn mở JPF, có thể triển khai quá trình
thực hiện như trong thuật toán được trình bày cụ thể trong mục 2.5
2.4. Ứng dụng JAVA PATH FINDER
a. Giới thiệu về JPF
JPF là một máy ảo cho Java ytecode, c nghĩa là n là một
chương trình nhận đầu vào là một chương trình Java để thực thi. Nó
được sử dụng để tìm lỗi trong các chương trình này, vì vậy ta c ng
cần phải cung cấp cho nó các thuộc tính để kiểm tra như đầu vào
[10].
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
15
JPF sẽ cho ra một báo cáo đã được tạo ra bởi JPF để phân tích
Cơ chế của JPF được thực hiện như hình minh họa sau:
Hình 2.3. Cấu trúc của JPF
b. Giới thiệu về bộ mở rộng JPF-SYMBC
JPF-SYMBC là một gói mở rộng của JPF nhằm mục tiêu hỗ trợ
người lập trình trong việc thực hiện thực thi ký hiệu.
JPF-SYMBC ết hợp thực thi hiệu và iểm chứng mô hình
và thực hiện giải các ràng uộc để sinh các dữ liệu test, hỗ trợ thực
thi ký hiệu động và thực thi trên các tệp ytecode và c thể áp dụng
đối với mô hình cho các ngôn ngữ mô hình h a SPF c thể thực hiện
tr n các iểu dữ liệu nguy n, iểu thực, con trỏ, mảng, một số toán
tử tr n iểu x u (đang phát triển và hoàn thiện) và sử dụng ết hợp
một số ộ giải ràng uộc như: Choco, IASolve, CVC3 thực hiện giải
các ràng buộc tuyến tính, phi tuyến tính tr n các iểu số nguy n, số
thực, iểu tham chiếu (con trỏ) và iểu x u
c. Tối ưu hoá các ràng buộc lộ trình để phục vụ cho quá trình thực
thi ký hiệu
Việc giải các ràng buộc(Constraint solving) là một phần
không thể thiếu của việc thực thi ký hiệu, việc giải quyết các
constraint là phần tốt nhiều tài nguyên nhất trong quá trình thực thi
ký hiệu. Trong thực tế, hiệu suất của các chế giải quyết được sử dụng
bởi một kỹ thuật thực thi ký hiệu có thể ảnh hưởng đáng ể đến hiệu
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
16
suất t ng thể của nó. Không may, giải quyết hạn chế này chủ yếu
được sử dụng trong thực thi ký hiệu không tận dụng bất kỳ ngữ cảnh
và thông tin tên miền có sẵn Để giải quyết vấn đề này, đề tài đã sử
dụng một chiến lược tối ưu h a mới, sử dụng miền và các thông tin
theo ngữ cảnh để tối ưu h a hiệu suất của giải quyết các ràng buộc
trong quá trình thực thi ký hiệu.
Quá trình thực thi ký hiệu thực thi một chương trình với đầu là
quá trình kiếm tra tất cả các lộ trình có thể trong chương trình Đối
với mỗi lộ trình, quá trình thực thi ký hiệu cập nhật các trạng thái
mang tính biểu tượng của chương trình theo ngữ nghĩa Ở phần cuối
của quá trình thực thi ký hiệu, rang buộc lộ trình được đưa váo các
bộ solver và thông qua các SMT để tìm ra kết quả
Phương án tối ưu sau đ y được gọi là phương pháp rút gọn miền,
với 2 ràng buộc Ca và Cb trong 1 tập ràng buộc C được gọi là phụ
thuộc nếu ít nhất thỏa mãn :
- Phụ thuộc trực tiếp: Ca và Cb cùng tồn tại trong một ràng
buộc.
- Phụ thuộc không trực tiếp: Ca và Cb có phụ thuộc trực tiếp
tới một biến Cc.
Giải pháp chứa ràng buộc không có sự phụ thuộc với các biến
ràng buộc mục tiêu thì không ảnh hưởng đến kết quả.vì vậy ta có thể
loại bỏ ràng buộc này khỏi ràng buộc lộ trình và đưa vào trở lại sau
quá trình thực thi Đối với các ràng buộc thực tế hơn, đơn giản hóa
này có thể dẫn đến tiết kiệm đáng ể về số lượng hạn chế mà bộ giải
SMT phải xử lý.
Cách tiếp cận tối ưu dựa trên việc giảm các ràng buộc trên
miền dữ liệu được thực hiện như sau
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
17
- Bước 1: Chia các biến mục ti u thành các nh m theo độ
phụ thuộc.
- Bước 2: Tìm 2 biến c độ phụ thuộc lớn nhất và bé nhất.
- Bước 3: Thay thế lần lượt các biến mục tiêu với giá trị
đầu vào với từng nhóm và thực hiện ước lược bỏ các phụ
thuôc như đã trình ày ở trên.
2.5. Cài đặt tối ƣu các ràng buộc với JPF
a. Kiến trúc của JPF và mở rộng JPF-SYMBC
b. Các thiết lập của JPF
c. Cài đặt tối ưu ràng buộc
d. Thuật toán tối ưu
Thuật toán tối ưu các ràng uộc được trình ày trong chương 2 được
triển hai như sau:
Input: Ràng buộc lộ trình, giá trị các biến mục tiêu và biến cố
định, bộ giải SMT.
Output: kết quả sau khi giải bằng SMT (sat, usat ho c
unknown).
Constraint cur = getTargetConstraint(index, pc)
List targetsymlist = getSymVars(cur)
result = unknown
for i = 1 to length(targetsymlist) do
groups[] = formGroupsofX(i,
targetsymlist) List dependencies = []
for a = 0 to length(groups) do
dependencies[a] = getDependencies(groups[a], pc)
end
int selectDep[0] = findSmallestDepIndex(dependencies)
int selectDep[1] = findLargestDepIndex(dependencies) for
b = 0 to length(selectedDep) do
List grpDep = dependencies[(selectDep[b])]
List symbolicVars = join(groups(selectDep[b]),
grpDep)
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
18
newPC = modifyPC(symbolicVars,concreteValuesMapping,pc)
output = callSolver(solver,newPC)
if output = “sat” then
return output
end
else if output = “unsat” then
result = output
end
end
end
Trong thuật toán tối ưu hoá ràng uộc, chúng tôi có một số
phương thức quan trọng:
 findSmallestDepIndex(): nhận đầu vào là một tập các
phụ thuộc, và trả về giá trị của phụ thuộc có ít sự phụ
thuộc nhất.

 findLargestDepIndex(): nhận đầu vào là một tập các phụ
thuộc, và trả về giá trị của phụ thuộc có ít sự phụ thuộc
nhất.

 modifyPC(): Thay thế các giá trị ký hiệu của biến mục
tiêu bằng các giá trị hiện thời của lộ trình.
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
19
CHƢƠNG 3
CÀI ĐẶT VÀ THỬ NGHIỆM
3.1. Mọi trƣờng cài đặt
3.2. Thử nghiệm
3.2.1. Đánh giá khả năng bao phủ
Để đánh giá độ bao phủ chúng tôi sẽ tiến hành thử nghiệm
sinh dữ liệu thử của công cụ tr n các a phương thức testMe1,
testMe2, testMe3 để kiểm tra sự thay đ i của công cụ sau hi được cài
đ t thuật toán tối ưu
Phương thức testMe1, testMe2, testMe3 được tiến hành thực
hiện sinh dự liệu thử tự động với 2 trường hợp như sau: chương trình
sinh dữ liệu kiểm thử được cài thuật toán tối ưu và chương trình sinh
dữ liệu kiểm thử hông được cài đ t thuật toán tối ưu Trong trình bày
của bảng kết quả, ký hiệu “-” đại diện cho việc dữ liệu đầu vào của
biến có thể nhận bất cứ giá trị nào.
3.2.2. Đánh giá tính hiệu quả
Để đánh giá tính hiệu quả trong việc giảm thời gian thực thi
của công cụ hi được cài đ t thuật toán tối ưu, một bộ dữ liệu (được
ghi lại chi tiết trong phần Phụ lục) gồm 10 phương phức được chọn
và tiến hành quá trình sinh dữ liệu thử tự động. Quá trình sinh dữ
liệu thử tự động được thực hiện trong 2 trường hợp: công cụ được cài
đ t thuật toán tối ưu và công cụ hông được cài đ t thuật toán tối ưu
Bảng kết quả sau được thực thi trên hệ thống máy tính với cấu hình:
CPU core i3, 3GB RAM.
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
20
Bảng 3.7. Kết quả thử nghiệm
Tên
Thời gian thực thi (milisecond)
phƣơng thức Không cài Cài đặt
Tỷ lệ
đặt thuật thuật toán
kiểm thử giảm
toán tối ƣu tối ƣu
Test1 1332 1032 24%
Test2 1282 867 33%
Test3 1334 932 31%
Test4 1055 739 30%
Test5 1389 956 32%
Test6 918 643 30%
Test7 1277 893 31%
Test8 1364 971 29%
Test9 984 692 30%
Test10 1191 834 27%
3.3. Kết luận
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
21
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
1. Kết quả đạt đƣợc
Qua đề tài “X y dựng công cụ sinh dữ
chương trình Java”, tôi đã tìm hiểu, nghiên cứu
sau:
liệu thử tự động cho
được một số kết quả
Thứ nhất, tìm hiểu về cách xây dựng và hoạt động của và
phương pháp sinh dữ liệu kiểm thử tự động cho ngôn ngữ Java c ng
như nghi n cứu về các thách thức hiện nay.
Thứ hai, đề xuất và cài đ t giải pháp tối ưu trong việc sinh dữ liệu
thử tự động nhằm tối ưu h a thời gian nhưng vẫn đảm bảo tính đúng
đắn, toàn vẹn và khả năng ao phủ của bộ dữ liệu thử tự động.
2. Hạn chế
Giải pháp đề ra dựa trên sự phụ thuộc của các ràng buộc với
nhau, vì vậy độ hiệu quả của thuật toán sẽ bị ảnh hưởng rất lớn trong
trường hợp dữ liệu đầu vào có sự phụ thuộc quá nhiều với nhau.
Giải pháp đề ra vẫn còn thực thi ký hiệu để bao phủ tất cả
các nhánh của cây thực thi, do đ trong trường hợp chương trình quá
phức tạp công cụ có thể không hoạt động được vì sự bùng n về
đường đi
Một điểm hạn chế khác của thuật toán này là trong trường
hợp dữ liệu đầu vào quá đơn giản thì việc thực hiện các biện pháp
tiền xử lý của thuật toán sẽ khiến cho chương trình mất thêm tài
nguyên trong việc thực hiện.
3. Hƣớng phát triển
Trong quá trình nghiên cứu, bộ SMT Choco không cho kết
quả tốt như các ộ SMT hác như Z3 hay CVC3 Vì vậy, trong thời
gian tới chúng tôi sẽ tiếp tục nghiên cứu và triển khai tích hợp các bộ
Nhận viết đề tài trọn gói – ZL: 0973.287.149 –
Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149
22
SMT mới và có khả năng hỗ trợ nâng cấp tốt hơn vào trong chương
trình sinh dữ liệu kiểm thử.
Nhận viết đề tài trọn gói – ZL: 0973.287.149
– Luanvanmaster.com
TẢI TÀI LIỆU KẾT BẠN ZALO
0973.287.149

More Related Content

Similar to Xây Dựng Công Cụ Sinh Dữ Liệu Thử Tự Động Cho Chương Trình Java.doc

Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmNguyễn Anh
 
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMTÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMNguyễn Anh
 
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.doc
Luận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.docLuận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.doc
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.docsividocz
 
Báo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềmBáo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềmThuyet Nguyen
 
Nghiên Cứu Ứng Dụng Kỹ Thuật Học Bán Giám Sát Vào Lĩnh Vực Phân Loại Văn Bản ...
Nghiên Cứu Ứng Dụng Kỹ Thuật Học Bán Giám Sát Vào Lĩnh Vực Phân Loại Văn Bản ...Nghiên Cứu Ứng Dụng Kỹ Thuật Học Bán Giám Sát Vào Lĩnh Vực Phân Loại Văn Bản ...
Nghiên Cứu Ứng Dụng Kỹ Thuật Học Bán Giám Sát Vào Lĩnh Vực Phân Loại Văn Bản ...Dịch vụ viết đề tài trọn gói 0934.573.149
 
Nguyên tắc cơ bản của kiểm thử phần mềm
Nguyên tắc cơ bản của kiểm thử phần mềmNguyên tắc cơ bản của kiểm thử phần mềm
Nguyên tắc cơ bản của kiểm thử phần mềmNgọc Khánh
 
Xây Dựng Hệ Thống Phân Lịch Thi Tín Chỉ Tại Trường Cao Đẳng Thương Mại Đà Nẵn...
Xây Dựng Hệ Thống Phân Lịch Thi Tín Chỉ Tại Trường Cao Đẳng Thương Mại Đà Nẵn...Xây Dựng Hệ Thống Phân Lịch Thi Tín Chỉ Tại Trường Cao Đẳng Thương Mại Đà Nẵn...
Xây Dựng Hệ Thống Phân Lịch Thi Tín Chỉ Tại Trường Cao Đẳng Thương Mại Đà Nẵn...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Luận văn thạc sĩ
Luận văn thạc sĩLuận văn thạc sĩ
Luận văn thạc sĩssuser499fca
 
Kế hoạch bài dạy
Kế hoạch bài dạyKế hoạch bài dạy
Kế hoạch bài dạyBảo Nguyễn
 
Kế hoạch bài dạy nhóm
Kế hoạch bài dạy nhómKế hoạch bài dạy nhóm
Kế hoạch bài dạy nhómBảo Nguyễn
 
Luận văn thạc sĩ
Luận văn thạc sĩLuận văn thạc sĩ
Luận văn thạc sĩssuser499fca
 

Similar to Xây Dựng Công Cụ Sinh Dữ Liệu Thử Tự Động Cho Chương Trình Java.doc (20)

Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềm
 
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀMTÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
TÌM HIỂU CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM
 
Nghiên Cứu Kỹ Thuật Khai Phá Quy Trình Và Ứng Dụng Để Phân Tích Quy Trình Yêu...
Nghiên Cứu Kỹ Thuật Khai Phá Quy Trình Và Ứng Dụng Để Phân Tích Quy Trình Yêu...Nghiên Cứu Kỹ Thuật Khai Phá Quy Trình Và Ứng Dụng Để Phân Tích Quy Trình Yêu...
Nghiên Cứu Kỹ Thuật Khai Phá Quy Trình Và Ứng Dụng Để Phân Tích Quy Trình Yêu...
 
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.doc
Luận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.docLuận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.doc
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.doc
 
Báo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềmBáo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềm
 
Nghiên Cứu Nhận Dạng Khuôn Mặt Xây Dựng Hệ Thống Phục Vụ Điểm Danh.doc
Nghiên Cứu Nhận Dạng Khuôn Mặt Xây Dựng Hệ Thống Phục Vụ Điểm Danh.docNghiên Cứu Nhận Dạng Khuôn Mặt Xây Dựng Hệ Thống Phục Vụ Điểm Danh.doc
Nghiên Cứu Nhận Dạng Khuôn Mặt Xây Dựng Hệ Thống Phục Vụ Điểm Danh.doc
 
Xây Dựng Hệ Thống Thông Tin Phục Vụ Thi Trắc Nghiệm Trực Tuyến.doc
Xây Dựng Hệ Thống Thông Tin Phục Vụ Thi Trắc Nghiệm Trực Tuyến.docXây Dựng Hệ Thống Thông Tin Phục Vụ Thi Trắc Nghiệm Trực Tuyến.doc
Xây Dựng Hệ Thống Thông Tin Phục Vụ Thi Trắc Nghiệm Trực Tuyến.doc
 
Nghiên Cứu Ứng Dụng Kỹ Thuật Học Bán Giám Sát Vào Lĩnh Vực Phân Loại Văn Bản ...
Nghiên Cứu Ứng Dụng Kỹ Thuật Học Bán Giám Sát Vào Lĩnh Vực Phân Loại Văn Bản ...Nghiên Cứu Ứng Dụng Kỹ Thuật Học Bán Giám Sát Vào Lĩnh Vực Phân Loại Văn Bản ...
Nghiên Cứu Ứng Dụng Kỹ Thuật Học Bán Giám Sát Vào Lĩnh Vực Phân Loại Văn Bản ...
 
Luận văn: Phương pháp sinh dữ liệu kiểm thử tự động từ biểu đồ
Luận văn: Phương pháp sinh dữ liệu kiểm thử tự động từ biểu đồLuận văn: Phương pháp sinh dữ liệu kiểm thử tự động từ biểu đồ
Luận văn: Phương pháp sinh dữ liệu kiểm thử tự động từ biểu đồ
 
Luận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng
Luận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượngLuận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng
Luận văn: Nghiên cứu và ứng dụng mẫu thiết kế trong phương pháp hướng đối tượng
 
Chống Tấn Công Sql Injection Sử Dụng Các Khuôn Mẫu Tổng Quát.doc
Chống Tấn Công Sql Injection Sử Dụng Các Khuôn Mẫu Tổng Quát.docChống Tấn Công Sql Injection Sử Dụng Các Khuôn Mẫu Tổng Quát.doc
Chống Tấn Công Sql Injection Sử Dụng Các Khuôn Mẫu Tổng Quát.doc
 
Bài 6
Bài 6Bài 6
Bài 6
 
Nguyên tắc cơ bản của kiểm thử phần mềm
Nguyên tắc cơ bản của kiểm thử phần mềmNguyên tắc cơ bản của kiểm thử phần mềm
Nguyên tắc cơ bản của kiểm thử phần mềm
 
Xây Dựng Hệ Thống Phân Lịch Thi Tín Chỉ Tại Trường Cao Đẳng Thương Mại Đà Nẵn...
Xây Dựng Hệ Thống Phân Lịch Thi Tín Chỉ Tại Trường Cao Đẳng Thương Mại Đà Nẵn...Xây Dựng Hệ Thống Phân Lịch Thi Tín Chỉ Tại Trường Cao Đẳng Thương Mại Đà Nẵn...
Xây Dựng Hệ Thống Phân Lịch Thi Tín Chỉ Tại Trường Cao Đẳng Thương Mại Đà Nẵn...
 
Luận văn thạc sĩ
Luận văn thạc sĩLuận văn thạc sĩ
Luận văn thạc sĩ
 
Ke hoach bai day
Ke hoach bai dayKe hoach bai day
Ke hoach bai day
 
Ke hoach bai day
Ke hoach bai dayKe hoach bai day
Ke hoach bai day
 
Kế hoạch bài dạy
Kế hoạch bài dạyKế hoạch bài dạy
Kế hoạch bài dạy
 
Kế hoạch bài dạy nhóm
Kế hoạch bài dạy nhómKế hoạch bài dạy nhóm
Kế hoạch bài dạy nhóm
 
Luận văn thạc sĩ
Luận văn thạc sĩLuận văn thạc sĩ
Luận văn thạc sĩ
 

More from Dịch vụ viết thuê Luận Văn - ZALO 0932091562

Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...
Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...
Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...
Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...
Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...
Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...
Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...
Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...
Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...
Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...
Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...
Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...
Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 

More from Dịch vụ viết thuê Luận Văn - ZALO 0932091562 (20)

Nghiên Cứu Thu Nhận Pectin Từ Một Số Nguồn Thực Vật Và Sản Xuất Màng Pectin S...
Nghiên Cứu Thu Nhận Pectin Từ Một Số Nguồn Thực Vật Và Sản Xuất Màng Pectin S...Nghiên Cứu Thu Nhận Pectin Từ Một Số Nguồn Thực Vật Và Sản Xuất Màng Pectin S...
Nghiên Cứu Thu Nhận Pectin Từ Một Số Nguồn Thực Vật Và Sản Xuất Màng Pectin S...
 
Phát Triển Cho Vay Hộ Kinh Doanh Tại Ngân Hàng Nông Nghiệp Và Phát Triển Nông...
Phát Triển Cho Vay Hộ Kinh Doanh Tại Ngân Hàng Nông Nghiệp Và Phát Triển Nông...Phát Triển Cho Vay Hộ Kinh Doanh Tại Ngân Hàng Nông Nghiệp Và Phát Triển Nông...
Phát Triển Cho Vay Hộ Kinh Doanh Tại Ngân Hàng Nông Nghiệp Và Phát Triển Nông...
 
Nghiên Cứu Nhiễu Loạn Điện Áp Trong Lưới Điện Phân Phối.doc
Nghiên Cứu Nhiễu Loạn Điện Áp Trong Lưới Điện Phân Phối.docNghiên Cứu Nhiễu Loạn Điện Áp Trong Lưới Điện Phân Phối.doc
Nghiên Cứu Nhiễu Loạn Điện Áp Trong Lưới Điện Phân Phối.doc
 
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Kết Quả Kinh Doanh Của Các Công Ty Ngành...
 
Phát Triển Công Nghiệp Huyện Điện Bàn Tỉnh Quảng Nam.doc
Phát Triển Công Nghiệp Huyện Điện Bàn Tỉnh Quảng Nam.docPhát Triển Công Nghiệp Huyện Điện Bàn Tỉnh Quảng Nam.doc
Phát Triển Công Nghiệp Huyện Điện Bàn Tỉnh Quảng Nam.doc
 
Phát Triển Kinh Tế Hộ Nông Dân Trên Địa Bàn Huyện Quảng Ninh, Tỉnh Quảng Bình...
Phát Triển Kinh Tế Hộ Nông Dân Trên Địa Bàn Huyện Quảng Ninh, Tỉnh Quảng Bình...Phát Triển Kinh Tế Hộ Nông Dân Trên Địa Bàn Huyện Quảng Ninh, Tỉnh Quảng Bình...
Phát Triển Kinh Tế Hộ Nông Dân Trên Địa Bàn Huyện Quảng Ninh, Tỉnh Quảng Bình...
 
Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...
Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...
Vận Dụng Mô Hình Hồi Quy Ngưỡng Trong Nghiên Cứu Tác Động Của Nợ Lên Giá Trị ...
 
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Cấu Trúc Vốn Của Doanh Nghiệp Ngành Hàng...
 
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...
Nghiên Cứu Các Nhân Tố Ảnh Hưởng Đến Hiệu Quả Kinh Doanh Của Các Doanh Nghiệp...
 
Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...
Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...
Hoàn Thiện Công Tác Thẩm Định Giá Tài Sản Bảo Đảm Trong Hoạt Động Cho Vay Tại...
 
Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...
Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...
Biện Pháp Quản Lý Xây Dựng Ngân Hàng Câu Hỏi Kiểm Tra Đánh Giá Kết Quả Học Tậ...
 
Hoàn Thiện Công Tác Huy Động Vốn Tại Ngân Hàng Tmcp Công Thương Việt Nam Chi ...
Hoàn Thiện Công Tác Huy Động Vốn Tại Ngân Hàng Tmcp Công Thương Việt Nam Chi ...Hoàn Thiện Công Tác Huy Động Vốn Tại Ngân Hàng Tmcp Công Thương Việt Nam Chi ...
Hoàn Thiện Công Tác Huy Động Vốn Tại Ngân Hàng Tmcp Công Thương Việt Nam Chi ...
 
Ánh Xạ Đóng Trong Không Gian Mêtric Suy Rộng.doc
Ánh Xạ Đóng Trong Không Gian Mêtric Suy Rộng.docÁnh Xạ Đóng Trong Không Gian Mêtric Suy Rộng.doc
Ánh Xạ Đóng Trong Không Gian Mêtric Suy Rộng.doc
 
Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...
Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...
Giải Pháp Hạn Chế Nợ Xấu Đối Với Khách Hàng Doanh Nghiệp Tại Ngân Hàng Thương...
 
Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...
Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...
Hoàn Thiện Công Tác Đào Tạo Đội Ngũ Cán Bộ Công Chức Phường Trên Địa Bàn Quận...
 
Giải Pháp Marketing Cho Dịch Vụ Ngân Hàng Điện Tử Tại Ngân Hàng Tmcp Hàng Hải...
Giải Pháp Marketing Cho Dịch Vụ Ngân Hàng Điện Tử Tại Ngân Hàng Tmcp Hàng Hải...Giải Pháp Marketing Cho Dịch Vụ Ngân Hàng Điện Tử Tại Ngân Hàng Tmcp Hàng Hải...
Giải Pháp Marketing Cho Dịch Vụ Ngân Hàng Điện Tử Tại Ngân Hàng Tmcp Hàng Hải...
 
Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...
Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...
Biện Pháp Quản Lý Công Tác Tự Đánh Giá Trong Kiểm Định Chất Lượng Giáo Dục Cá...
 
Kiểm Soát Rủi Ro Tín Dụng Trong Cho Vay Ngành Xây Dựng Tại Nhtmcp Công Thương...
Kiểm Soát Rủi Ro Tín Dụng Trong Cho Vay Ngành Xây Dựng Tại Nhtmcp Công Thương...Kiểm Soát Rủi Ro Tín Dụng Trong Cho Vay Ngành Xây Dựng Tại Nhtmcp Công Thương...
Kiểm Soát Rủi Ro Tín Dụng Trong Cho Vay Ngành Xây Dựng Tại Nhtmcp Công Thương...
 
Diễn Ngôn Lịch Sử Trong Biên Bản Chiến Tranh 1-2 -3- 4.75 Của Trần Mai Hạnh.doc
Diễn Ngôn Lịch Sử Trong Biên Bản Chiến Tranh 1-2 -3- 4.75 Của Trần Mai Hạnh.docDiễn Ngôn Lịch Sử Trong Biên Bản Chiến Tranh 1-2 -3- 4.75 Của Trần Mai Hạnh.doc
Diễn Ngôn Lịch Sử Trong Biên Bản Chiến Tranh 1-2 -3- 4.75 Của Trần Mai Hạnh.doc
 
Quản Lý Hoạt Động Dạy Học Môn Toán Ở Các Trường Thpt Thành Phố Kon Tum.doc
Quản Lý Hoạt Động Dạy Học Môn Toán Ở Các Trường Thpt Thành Phố Kon Tum.docQuản Lý Hoạt Động Dạy Học Môn Toán Ở Các Trường Thpt Thành Phố Kon Tum.doc
Quản Lý Hoạt Động Dạy Học Môn Toán Ở Các Trường Thpt Thành Phố Kon Tum.doc
 

Recently uploaded

cuộc cải cách của Lê Thánh Tông - Sử 11
cuộc cải cách của Lê Thánh Tông -  Sử 11cuộc cải cách của Lê Thánh Tông -  Sử 11
cuộc cải cách của Lê Thánh Tông - Sử 11zedgaming208
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdfdong92356
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocVnPhan58
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...Nguyen Thanh Tu Collection
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )lamdapoet123
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...Nguyen Thanh Tu Collection
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...PhcTrn274398
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào môBryan Williams
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx22146042
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHThaoPhuong154017
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếngTonH1
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 

Recently uploaded (20)

cuộc cải cách của Lê Thánh Tông - Sử 11
cuộc cải cách của Lê Thánh Tông -  Sử 11cuộc cải cách của Lê Thánh Tông -  Sử 11
cuộc cải cách của Lê Thánh Tông - Sử 11
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXHTư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
Tư tưởng Hồ Chí Minh về độc lập dân tộc và CNXH
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 

Xây Dựng Công Cụ Sinh Dữ Liệu Thử Tự Động Cho Chương Trình Java.doc

  • 1. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA NGÔ PÔ NA XÂY DỰNG CÔNG CỤ SINH DỮ LIỆU THỬ TỰ ĐỘNG CHO CHƢƠNG TRÌNH JAVA Chuyên ngành Mã số : Khoa học máy tính : 60.48.01.01 TÓM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Đà Nẵng – Năm 2017
  • 2. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 Công trình được hoàn thành tại TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG Ngƣời hƣớng dẫn khoa học : PGS.TS NGUYỄN THANH BÌNHI Phản biện 1 : PGS.TS. Lê Mạnh Thạnh Phản biện 2 : TS. Lê Xuân Việt Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ ngành Khoa học máy tính họp tại Trường Đại học Bách khoa Đà Nẵng vào ngày 8 tháng 1 năm 2017 Có thể tìm hiểu luận văn tại : - Trung tâm Thông tin - Học liệu, Đại học Đà Nẵng - Trung tâm học liệu truyền thông, trường Đại học Bách Khoa, Đại học Đà Nẵng
  • 3. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 1 MỞ ĐẦU 1. Lý do chọn đề tài Phần mềm hiện nay được sử dụng rộng rãi trong đời sống, công việc, nhiều lĩnh vực khoa học, kinh tế và xã hội. Vì vậy, việc đảm bảo rằng phần mềm đáp ứng mong muốn của người sử dụng là rất quan trọng. Kiểm thử phần mềm là một trong những hoạt động cơ bản nhằm đảm bảo chất lượng phần mềm. Việc phát triển phần mềm ngày càng được chuy n nghiệp h a Các phần mềm được phát triển ngày càng c quy mô lớn Y u cầu đảm ảo chất lượng phần mềm là một trong những mục ti u quan trong nhất, đ c biệt trong một số lĩnh vực như y hoa, ng n hàng, hàng hông Việc iểm thử, iểm chứng phần mềm một cách thủ công ch đảm ảo được phần nào chất lượng của phần mềm Vì vậy rất nhiều các t chức, công ty đã nghi n cứu và phát triển các l thuyết c ng như công cụ để iểm chứng, iểm thử phần mềm một cách tự động. Một số lợi ích có thể kể đến của kiểm thử tự động như: cải thiện hiệu quả công việc, cải thiện tính chính xác, cải thiện chất lượng kiểm thử và chất lượng của phần mềm. Tại các doanh nghiệp tư nhân hiện tại, công việc kiểm thử phần mềm đơn vị (unit test) thường được các lập trình viên thực hiện ngay trong quá trình viết mã nguồn của chương trình Vì vậy dẫn đến một số vấn đề như sau: - Không đảm bảo được tính khách quan. - Các lập trình vi n thường khó sử dụng các kỹ thuật kiểm thử hộp trắng vì hông đủ chi phí thời gian. Hiện tại trong các dự án mà tôi đang tham gia, ngôn ngữ lập trình chủ yếu được sử dụng là Java. Ngoài ra,trong các ngôn ngữ lập trình
  • 4. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 2 hiện đại ngày nay, Java là ngôn ngữ lập trình ph biến trong suốt 13 năm qua [1] Vì những l do tr n, tôi đề xuất chọn đề tài luận văn cao học: “X y dựng công cụ sinh dữ liệu thử tự động cho chương trình Java” 2. Mục đích và ý nghĩa đề tài a. Mục đích - Xây dựng công cụ sinh dữ liệu kiểm thử tự động cho chương trình nguồn Java. Nhằm mục đích thực hiện việc kiểm thử hộp trắng cho kiểm thử đơn vị một cách tự động và khoa học Hướng đến mục tiêu giảm chi phí về thời gian và tài chính khi thực hiện công việc kiểm thử cho các lập trình viên/kiểm thử viên. - Tìm hiểu về các thách thức g p phải trong quá trình sinh dữ liệu thử tự động, từ đ đề xuất và cài đ t giải pháp để giải quyết các thách thức này. b. Ý nghĩa khoa học - Nghiên cứu về các kỹ thuật kiểm thử hộp trắng. - Nghiên cứu về lý thuyết về tính thoả được. - Xây dựng công cụ tự động sinh dữ liệu cho chương trình Java đảm bảo tiêu chí bao phủ lộ trình và tối ưu thời gian thực thi. c. Ý nghĩa thực tiễn - Giảm thời gian và chi phí cho việc kiểm thử hộp trắng của các lập trình viên khi thực hiện kiểm thử đơn vị. - Dữ liệu thử tự động mang tính hách quan hơn, hông ị phụ thuộc vào góc nhìn và kinh nghiệm của người lập trình. - Kiểm tra được các lỗi tiềm ẩn trong mã nguồn.
  • 5. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 3 3. Mục tiêu và nhiệm vụ a. Mục tiêu Xây dựng công cụ sinh dữ liệu tự động cho chương trình Java đảm bảo tiêu chí bao phủ lộ trình.. Các mục tiêu cụ thể như sau: - Nghiên cứu về các phương pháp iểm thử hộp trắng. - Nghiên cứu về phương pháp giải các ràng buộc (SMT [2]). - Nghiên cứu về các giải pháp sinh dữ liệu thử tự động cho chương trình Java và những thách thức hiện nay. - Xây dựng công cụ sinh dữ liệu thử cho chương trình Java b. Nhiệm vụ Để đạt được những mục tiêu trên, nhiệm vụ đ t ra của đề tài là: - Nghiên cứu lý thuyết kiểm thử hộp trắng, tập trung vào các lý thuyết xây dựng tập dữ liệu kiểm thử. - Nghiên cứu về lý thuyết về tính thoả được. - Nghiên cứu và áp dụng kỹ thuật tối ưu h a để tối ưu thời gian thực thi. 4. Đối tƣợng và phạm vi nghiên cứu Luận văn tập trung vào nghiên cứu các đối tượng và phạm vi sau: - Cấu trúc chương trình Java - Lý thuyết về tính thoả được của các bộ SMT và cách áp dụng để giải các ràng buộc. - Phân tích, thiết kế và cài đ t ứng dụng sinh dữ liệu thử cho chương trình Java 5. Phƣơng pháp nghiên cứu a. Phương pháp lý thuyết  Tiến hành thu thập và nghiên cứu các tài liệu có liên quan  đến đề tài.
  • 6. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 4  Nghiên cứu lý thuyết về thực thi ký hiệu và lý thuyết về tính thỏa được.   Nghiên cứu về kiểm thử đơn vị và cách thực hiện.   Nghiên cứu các phương pháp tối ưu h a các đường thực thi.  b. Phương pháp thực nghiệm  Nghiên cứu về phương pháp thực thi ký hiệu và các công cụ hỗ trợ thực thi ký hiệu hiện nay.   Nghiên cứu đề xuất giải pháp tối ưu các đường thực thi trong quá trình thực hiện thực thi ký hiệu. 5. Kết luận a. Kết quả của đề tài  Thứ nhất, tìm hiểu về cách xây dựng và hoạt động của và phương pháp sinh dữ liệu kiểm thử tự động cho ngôn ngữ Java c ng như nghi n cứu về các thách thức hiện nay.   Thứ hai, đề xuất và cài đ t giải pháp tối ưu trong việc sinh dữ liệu thử tự động nhằm tối ưu hóa thời gian nhưng vẫn đảm bảo tính đúng đắn, toàn vẹn và khả năng ao phủ của bộ dữ liệu thử tự động. b. Hướng phát triển của đề tài Trong quá trình nghiên cứu, bộ SMT Choco không cho kết quả tốt như các ộ SMT hác như Z3 hay CVC3 Vì vậy, trong thời gian tới chúng tôi sẽ tiếp tục nghiên cứu và triển khai tích hợp các bộ SMT mới và có khả năng hỗ trợ nâng cấp tốt hơn vào trong chương trình sinh dữ liệu kiểm thử
  • 7. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 5 CHƢƠNG 1 CƠ SỞ LÝ THUYẾT 1.1. Tổng quan về kiểm thữ phần mềm 1.1.1. Các bước kiểm thử 1.1.2. Các mức kiểm thử 1.1.3. Các kỹ thuật kiểm thử phần mềm 1.2. Lý thuyết về tính thỏa đƣợc Tính thỏa mãn là một trong những vấn đề quan trọng nhất của ngành khoa học máy tính. Các vấn đề cần tính thỏa mãn được ứng dụng trong cả phát triển phần cứng c ng như phần mềm, đ c biệt là kiểm định phần cứng, kiểm thử, lập lịch, đồ thị. Trong các lĩnh vực nói trên, nhiều các ứng dụng được xây dựng dựa trên việc tạo ra các công thức tiền tố và việc chứng minh tính hợp lệ của chúng. Cho dù hai thập niên gần đ y, việc chứng minh tính hợp lệ của các định lý, biểu thức tiền tố có những tiến bộ đáng ể, tuy nhiên, không phải công thức nào c ng c thể chứng minh một cách tự động được. Lý do của vấn đề này là bởi lẽ nhiều công thức hông quan t m đến tính khả thi trong trường hợp t ng quát mà ch được quan tâm trong một lý thuyết nền tảng. Việc nghiên cứu tính khả thi của các công thức trong một lý thuyết nền tảng được gọi là các lý thuyết module về tính thỏa được (Satisfiability Modulo Theories hay SMT) và các công cụ để chứng minh một cách tự động các tính khả thi của những vẫn đề SMT được gọi là bộ giải SMT (SMT solver). Trên thực tế, việc xây dựng và sử dụng các bộ giải SMT được phát triển khá sớm, từ đầu những năm 1980 [9] Tại thời điểm đ , một số bộ giải được xây dựng bởi Greg Nelson và Derek Oppent tại trường đại học Stanford , Robert Shostak tại SRI, và Robert
  • 8. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 6 Boyer và J Moore tại trường đại học ở Texas Đến cuối những năm 1990, việc nghiên cứu SMT hiện đại dựa trên lợi thế của công nghệ SAT đã x y dựng nhiều bộ giải SMT tiến bộ hơn Như đã đề cập ở trên, trong khuôn kh đồ án, việc đánh giá về tính đúng đắn, các nghiên cứu về thuật giải của từng bộ giải sẽ hông được đề cập đến. Vấn đề được đ t ra ở đ y là ết quả của bộ giải nào sẽ được đưa ra sớm nhất. Hiện nay, có rất nhiều các bộ giải như A solver, Boolector, CVC3, OpenSMT, Yices, Z3… Do yêu cầu của hệ thống là phải đưa ra được giá trị thỏa mãn (nếu bài toán SMT đ c thỏa mãn) nên bộ giải hệ thống sử dụng phải hỗ trợ chức năng này Ngoài ra hệ thống sử dụng đầu vào theo chuẩn của SMT- Lib và ngắt thời gian giải một bài toán (trong trường hợp bài toán cần thời gian giải quá lớn), do đ , ộ giải cần phải có hỗ trợ những chức năng này hi hoạt động. Từ những yêu cầu đ , hai ộ giải là Yices của SRI International và Choco thuần Java đã được lựa chọn trong JPF. Hai bộ giải này tuy có cấu trúc hác nhau nhưng cùng được dựa trên thuật giải DPLL (Davis-Putnam-Logemann-Loveland). 1.3. Thực thi ký hiệu Trong hoạt động kiểm thử phần mềm, các ca kiểm thử thường được tạo ra một cách thủ công, gây tốn kém về chi phí c ng như thời gian để hoàn thành công đoạn này. Thực thi ký hiệu (Sym olic execution) được biết đến là một kỹ thuật n i tiếng với khả năng tự động sinh những bộ ca kiểm thử c độ bao phủ cao với các tiêu chí kiểm thử nhằm phát hiện những lỗi sâu trong các hệ thống phần mềm phức tạp. Trong mục này sẽ trình bày các vấn đề t ng quan và một số kết quả của các nghiên cứu gần đ y về kỹ thuật thực thi ký hiệu, đưa ra những thách thức cần giải quyết trong lĩnh vực
  • 9. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 7 này như: sự bùng n đường thực thi của chương trình, hả năng giải các ràng buộc, mô hình hóa bộ nhớ, các vấn đề về tương tranh, đồng thời c ng tập trung vào ph n tích và đề xuất giải pháp để sinh ra dữ liệu kiểm thử cho chương trình Java một cách tự động. Hiện nay c rất nhiều công cụ nền tảng phục vụ cho hoạt động iểm thử phần mềm như JUnit cho ngôn ngữ Java, NUnit, VSUnit cho NET để thực thi các ca iểm thử mức đơn vị Tuy nhi n, các công cụ iểm thử này hông hỗ trợ việc sinh tự động các ca iểm thử đơn vị Viết các ca iểm thử là một công việc n ng nhọc và tốn nhiều công sức C nhiều phương pháp hác nhau hỗ trợ việc sinh tự động các ca iểm thử giúp giảm chi phí và thời gian thực hiện đã được nghi n cứu và đưa ra như: Dựa tr n iểm chứng mô hình (Model Chec ing), ểm thử ngẫu nhi n (Random Testing) Nhưng hạn chế của n là iểm tra c ng một hành vi thực thi của chương trình nhiều lần với những đầu vào hác nhau và ch c thể iểm tra được một số trường hợp thực thi của chương trình Th m vào đ , iểm thử ngẫu nhi n h xác định được hi nào việc iểm thử n n được dừng lại và n hông iết tại điểm nào hông gian trạng thái đã được thám hiểm hết Để xác định hi nào việc iểm thử dừng lại thì hệ thống iểm thử ngẫu nhi n được ết hợp với các ti u chuẩn an toàn Để hắc phục những hạn chế của iểm thử ngẫu nhi n, phương pháp thực thi tương trưng x y dựng các ràng uộc tr n các giá trị hiệu và giải các ràng uộc đ để sinh ra các giá trị đầu vào cho chương trình mà c thể ao phủ tất các d ng lệnh c ng như các nhánh thực thi của chương trình tưởng của thực thi hiệu đã được đề xuất ởi, nhưng việc hiện thực tưởng mới ch được thực hiện trong những năm gần đ y qua tiến ộ đáng ể trong l thuyết giải các ràng uộc và các tiếp
  • 10. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 8 cận mở rộng thực thi giá trị cụ thể và giá trị hiệu động , một ỹ thuật hiệu cho các giá trị đầu vào ết hợp giữa các 1.4. Các kỹ thuật thực thi ký hiệu a. Concolic testing Thực thi hiệu động chính là sự ết hợp giữa thực thi cụ thể và thực thi hiệu Trong thực thi hiệu động, chương trình được thực thi nhiều lần với những giá trị hác nhau của tham số đầu vào Bắt đầu ằng việc chọn những giá trị t y cho các tham số đầu vào và thực thi chương trình với những giá trị cụ thể đ chương trình sẽ được thực thi theo một đường đi xác định DART thực thi chương trình với các giá trị cụ thể của tham số đầu vào và thu gom các ràng buộc trong quá trình thực thi theo đường đi mà sự thực thi cụ thể này đi theo, đồng thời suy ra các ràng uộc mới từ những ràng uộc đã thu gom được Tại các c u lệnh rẽ nhánh, iểu thức điều iện rẽ nhánh sẽ được đánh giá theo các giá trị cụ thể của các tham số đầu vào Nếu iểu thức điều iện rẽ nhánh nhận giá trị là True thì iểu thức của điều kiện rẽ nhánh sẽ được thu gom vào ràng uộc của ràng uộc lộ trình và được ghi nhớ, đồng thời phủ định của điều iện rẽ nhánh sẽ được sinh ra và được th m vào một ràng buộc lộ trình tương ứng với nhánh c n lại mà sự thực thi cụ thể đ hông đi theo Một bộ xử l ràng buộc sẽ được sử dụng để giải quyết các ràng uộc mới sinh ra này để sinh ra các giá trị cụ thể của tham số đầu vào Trong trường hợp ngược lại iểu thức phủ định của điều iện rẽ nhánh sẽ được thu gom vào ràng buộc của ràng uộc lộ trình tương ứng với nhánh mà sự thực thi hiện thời đang đi theo và được ghi nhớ Đồng thời điều kiện rẽ nhánh sẽ được sinh ra và th m vào PC tương ứng với nhánh c n lại mà sự thực thi hiện thời hông đi theo Các giá trị mới được
  • 11. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 9 sinh ra của các tham số đầu vào sẽ tiếp tục được thực thi và quá trình này sẽ được l p lại cho tới hi chương trình được thực thi theo tất cả các đường đi Do các chương trình được thực thi với những giá trị cụ thể n n c thể thấy rằng tất cả các đường đi ph n tích được trong quá trình thực thi hiệu động đều là các đường đi hả thi b. Excution generated testing EGT trộn lẫn giá trị cụ thể và thực thi hiệu ằng cách iểm tra động trước mọi toán hạng Nếu các giá trị li n quan đ hoàn toàn là các giá trị cụ thể thì toán hạng đ sẽ thực thi như chương trình gốc C n nếu c ít nhất một giá trị là hiệu thì toán hạng sẽ thực hiện thực thi hiệu và cập nhật điều iện ràng buộc đường đi cho đường thực thi hiện thời 1.5. Các thách thức và giải pháp a. Bùng nổ đường đi Một trong những thách thức quan trọng của thực thi hiệu là n sẽ sinh ra một số lượng lớn các đường thực thi m c d chương trình là nhỏ và thường là hàm m trong số các c u lệnh rẽ nhánh tĩnh của mã nguồn Kết quả là trong một hoảng thời gian định trước n sẽ quyết định hám phá con đường đầu ti n sao cho ph hợp nhất Trước hết, lưu rằng thực thi hiệu đã ngầm lọc ra tất cả các đường thực thi hông phụ thuộc vào các iến hiệu đầu vào và những đường dẫn hông hả thi (Infeasi lle path) trong quá trình giải các ràng uộc M c d như vậy, sự ng n đường dẫn vẫn là một trong những thách thức lớn nhất đối với thực thi hiệu Hiện nay c 2 cách tiếp cận chính để giải quyết vấn đề này là ưu ti n tìm iếm inh nghiệm (Heuristic search) và sử dụng ỹ thuật ph n tích tính đúng đắn của chương trình.
  • 12. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 10 b. Giải các ràng buộc M c d đã c những tiến ộ đáng ể trong ỹ thuật thực hiện giải các ràng uộc trong những năm gần đ y, giúp cho thực thi hiệu trở n n thực tế hơn, nhưng việc giải các ràng uộc vẫn là cản trở đáng ể của thực thi ký hiệu N thường chiếm nhiều thời gian trong quá trình thực hiện và là một trong những l do chính hiến thực thi tương trưng hông mở rộng được với một số loại chương trình mà mã nguồn của n sinh ra với y u cầu rất lớn trong việc giải các ràng buộc. c. Mô hình hóa bộ nhớ Độ chính xác của các c u lệnh của chương trình hi chuyển sang các ràng buộc ký hiệu c ảnh hưởng đáng ể đến độ ao phủ hi thực hiện thực thi hiệu Ví dụ hi sử dụng mô hình hóa bộ nhớ mà xấp x để thiết lập độ rộng cho tham iến iểu Interger c thể c hiệu quả hơn trong thực tế nhưng m t hác ết quả lại thiếu chính xác trong ph n tích mã nguồn N phụ thuộc vào hoảng lựa chọn giá trị tương ứng như lỗi tràn ộ nhớ toán học, c ng c thể g y ra thiếu đường dẫn trong thực thi hiệu, ho c khai phá những đường đi hông hả thi vv..
  • 13. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 11 CHƢƠNG 2 GIẢI PHÁP SINH DỮ LIỆU THỬ CHO CHƢƠNG TRÌNH JAVA 2.1. Giải pháp sinh dữ liệu thử cho chƣơng trình JAVA a. Tổng quan về giải pháp Mô hình t ng thể của giải pháp sinh dữ liệu thử cho chương trình Java được mi u tả như trong hình 2 1 dưới đ y: Hình 2.1. Mô hình triển khai Tham số đầu vào của phương pháp là tệp nguồn Java cần phân tích, số vòng l p tối đa (của các lệnh l p for, while ...), và các tiêu chuẩn phủ. Mã nguồn Java được ph n rã thành các phương thức và mức độ ưu ti n xử lý của chúng được tính toán, những phương thức ít phụ thuộc vào các phương thức hác hơn sẽ c độ ưu ti n xử l cao hơn, như vậy những phương thức không có lời gọi hàm sẽ được xử l đầu tiên. Cuối cùng chúng ta có một danh sách các
  • 14. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 12 phương thức được xếp theo mức ưu ti n giảm dần, và chúng lần lượt được xử lý theo thứ tự đ Với mỗi phương thức, đầu ti n đồ thị luồng điều khiển được xây dựng, duyệt đồ thị luồng điều khiển sẽ cho ra các lộ trình thực thi của phương thức, tiếp đến c được tập ràng buộc tương ứng nhờ áp dụng phương pháp thực thi ký hiệu. Quá trình này được l p lại cho đến khi tất cả các phương thức được phân tích hết. Các lộ trình thực thi đã tìm được ở ước trên sẽ được đưa lần lượt vào SMT-Solver để kiểm tra tính thoả được và sinh ra dữ liệu kiểm thử tự động đảm bảo bao phủ được lộ trình đã đưa vào SMT- Solver b. Phương pháp thực hiện Bƣớc 1: Phân tích danh sách các phương thức Ta dựa vào 2 định nghĩa sau: Định nghĩa 2.1: Đồ thị luồng với tập nút N, tập cạnh E, là một đồ thị c hướng liên thông, luôn luôn có duy nhất một điểm đầu vào, và ít nhất một điểm kết thúc [7]. Định nghĩa 2.2: Trong chương trình, đồ thị luồng biễu diễn cho những luồng điều khiển khả thi của n , trong đ mỗi nút tương ứng cho các điểm chương trình (tập lệnh) và các cạnh thể hiện cho luồng điều khiển giữa các điểm đ [7] Dựa vào cấu trúc một phương thức ta phân tách thành các khối độc lập Sau đ lại gọi đệ quy để phân tích thành các khối cấu trúc con của n Trong ước này, có thể sử dụng công cụ JDT cho phép duyệt qua toàn bộ phương thức và nhận dạng các thành phần cấu tạo nên một câu lệnh như If, For, While ; từ đ dễ dàng xây dựng các đ c tả của một nút và giúp tập trung vào thuật toán xây dựng đồ thị.
  • 15. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 13 Bƣớc 2: Sinh ra các lộ trình thực thi Tập hợp các lộ trình thực thi của một hàm có thể lấy được bằng cách duyệt đồ thị luồng điều khiển tương ứng với nó. Với những phương thức có lời gọi hàm con, mỗi nút của đồ thị ho c là các câu lệnh ( ho c tập các câu lệnh ) xác định, ho c sẽ là lời gọi đến các hàm con đ Cần lưu rằng thay vì chèn ràng buộc lộ trình của hàm con, có thể thay thế nó bằng lộ trình thực thi tương ứng. Tuy nhiên kết quả của một hàm ch phụ thuộc vào đối số của nó, nói cách khác các biến hác được tạo ra và sử dụng n trong hàm con được gọi không ảnh hưởng đến lộ trình thực thi hiện tại. Do vậy việc sử dụng lộ trình ràng buộc sẽ là tối ưu hi mà các iến số n trong n đã được xử lý bằng thực thi ký hiệu. Bƣớc 3: Sinh ra tập các ràng buộc Định nghĩa 2.3: Ràng buộc lộ trình[7] là một tập hợp các biểu thức luận lý: trong đ n là số nút điều kiện của đường thực thi, c biểu diễn ràng buộc tương ứng với mỗi điều kiện đ Tập lộ trình thực thi của các phương thức được xử l để cho ra tập lộ trình ràng buộc bằng cách sử dụng phương pháp Thực thi ký hiệu. Mỗi ước thực hiện trên lộ trình thực thi được mô tả bởi trạng thái bởi các biến đầu vào (input) và các biến n trong phương thức Bƣớc 4 : Sinh ra các dữ liệu kiểm thử từ bộ SMT solver Để làm việc với SMT ta thực hiện công việc chuẩn hóa các đầu vào theo định dạng SMT – LIB. Mỗi nút của đường ràng buộc sẽ được chuyển từ dạng trung tố sang dạng tiền tố, từ hoá assert được sử dụng để thêm các ràng buộc vào SMT
  • 16. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 14 2.2. Vấn đề tối ƣu các ràng buộc Một trong những nhược điểm chính của sinh dữ liệu thử tự động là cần phải tối thiểu các ràng buộc nhằm đảm bảo tốc độ thực thi và hao tốn về tài nguy n như đã trình ày trong mục 1.5, vì vậy thuật toán tối ưu h a các ràng uộc đã được cài đ t tích hợp thêm vào trong công cụ có sẵn và đảm bảo các điểm sau: - Hạn chế số lượng các ràng buộc được đưa vào SMT để giảm tiêu tốn về tài nguyên. - Đảm bảo tính đúng đắn, không làm sai lệch kết quả đầu ra của chương trình sau hi áp dụng thuật toán. Vì vậy, ài toán đ t ra là phải cài đ t thuật toán tối ưu h a vào trong chương trình mã nguồn mở có sẵn để tăng tốc độ thực thi nhưng vẫn đảm bảo tính đúng đắn của chương trình 2.3. Giải quyết các ràng buộc Trong quá trình thực hiện việc tối ưu hoá các ràng uộc, chúng tôi sử dụng công cụ mã nguồn mở JPF trong việc hỗ trợ thực thi ký hiệu và ch tập trung vào việc cài đ t và thử nghiệm thuật toán để tối ưu hoá các ràng uộc. Mô hình thực hiện được biểu diễn: Với sự hỗ trợ từ công cụ mã nguồn mở JPF, có thể triển khai quá trình thực hiện như trong thuật toán được trình bày cụ thể trong mục 2.5 2.4. Ứng dụng JAVA PATH FINDER a. Giới thiệu về JPF JPF là một máy ảo cho Java ytecode, c nghĩa là n là một chương trình nhận đầu vào là một chương trình Java để thực thi. Nó được sử dụng để tìm lỗi trong các chương trình này, vì vậy ta c ng cần phải cung cấp cho nó các thuộc tính để kiểm tra như đầu vào [10].
  • 17. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 15 JPF sẽ cho ra một báo cáo đã được tạo ra bởi JPF để phân tích Cơ chế của JPF được thực hiện như hình minh họa sau: Hình 2.3. Cấu trúc của JPF b. Giới thiệu về bộ mở rộng JPF-SYMBC JPF-SYMBC là một gói mở rộng của JPF nhằm mục tiêu hỗ trợ người lập trình trong việc thực hiện thực thi ký hiệu. JPF-SYMBC ết hợp thực thi hiệu và iểm chứng mô hình và thực hiện giải các ràng uộc để sinh các dữ liệu test, hỗ trợ thực thi ký hiệu động và thực thi trên các tệp ytecode và c thể áp dụng đối với mô hình cho các ngôn ngữ mô hình h a SPF c thể thực hiện tr n các iểu dữ liệu nguy n, iểu thực, con trỏ, mảng, một số toán tử tr n iểu x u (đang phát triển và hoàn thiện) và sử dụng ết hợp một số ộ giải ràng uộc như: Choco, IASolve, CVC3 thực hiện giải các ràng buộc tuyến tính, phi tuyến tính tr n các iểu số nguy n, số thực, iểu tham chiếu (con trỏ) và iểu x u c. Tối ưu hoá các ràng buộc lộ trình để phục vụ cho quá trình thực thi ký hiệu Việc giải các ràng buộc(Constraint solving) là một phần không thể thiếu của việc thực thi ký hiệu, việc giải quyết các constraint là phần tốt nhiều tài nguyên nhất trong quá trình thực thi ký hiệu. Trong thực tế, hiệu suất của các chế giải quyết được sử dụng bởi một kỹ thuật thực thi ký hiệu có thể ảnh hưởng đáng ể đến hiệu
  • 18. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 16 suất t ng thể của nó. Không may, giải quyết hạn chế này chủ yếu được sử dụng trong thực thi ký hiệu không tận dụng bất kỳ ngữ cảnh và thông tin tên miền có sẵn Để giải quyết vấn đề này, đề tài đã sử dụng một chiến lược tối ưu h a mới, sử dụng miền và các thông tin theo ngữ cảnh để tối ưu h a hiệu suất của giải quyết các ràng buộc trong quá trình thực thi ký hiệu. Quá trình thực thi ký hiệu thực thi một chương trình với đầu là quá trình kiếm tra tất cả các lộ trình có thể trong chương trình Đối với mỗi lộ trình, quá trình thực thi ký hiệu cập nhật các trạng thái mang tính biểu tượng của chương trình theo ngữ nghĩa Ở phần cuối của quá trình thực thi ký hiệu, rang buộc lộ trình được đưa váo các bộ solver và thông qua các SMT để tìm ra kết quả Phương án tối ưu sau đ y được gọi là phương pháp rút gọn miền, với 2 ràng buộc Ca và Cb trong 1 tập ràng buộc C được gọi là phụ thuộc nếu ít nhất thỏa mãn : - Phụ thuộc trực tiếp: Ca và Cb cùng tồn tại trong một ràng buộc. - Phụ thuộc không trực tiếp: Ca và Cb có phụ thuộc trực tiếp tới một biến Cc. Giải pháp chứa ràng buộc không có sự phụ thuộc với các biến ràng buộc mục tiêu thì không ảnh hưởng đến kết quả.vì vậy ta có thể loại bỏ ràng buộc này khỏi ràng buộc lộ trình và đưa vào trở lại sau quá trình thực thi Đối với các ràng buộc thực tế hơn, đơn giản hóa này có thể dẫn đến tiết kiệm đáng ể về số lượng hạn chế mà bộ giải SMT phải xử lý. Cách tiếp cận tối ưu dựa trên việc giảm các ràng buộc trên miền dữ liệu được thực hiện như sau
  • 19. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 17 - Bước 1: Chia các biến mục ti u thành các nh m theo độ phụ thuộc. - Bước 2: Tìm 2 biến c độ phụ thuộc lớn nhất và bé nhất. - Bước 3: Thay thế lần lượt các biến mục tiêu với giá trị đầu vào với từng nhóm và thực hiện ước lược bỏ các phụ thuôc như đã trình ày ở trên. 2.5. Cài đặt tối ƣu các ràng buộc với JPF a. Kiến trúc của JPF và mở rộng JPF-SYMBC b. Các thiết lập của JPF c. Cài đặt tối ưu ràng buộc d. Thuật toán tối ưu Thuật toán tối ưu các ràng uộc được trình ày trong chương 2 được triển hai như sau: Input: Ràng buộc lộ trình, giá trị các biến mục tiêu và biến cố định, bộ giải SMT. Output: kết quả sau khi giải bằng SMT (sat, usat ho c unknown). Constraint cur = getTargetConstraint(index, pc) List targetsymlist = getSymVars(cur) result = unknown for i = 1 to length(targetsymlist) do groups[] = formGroupsofX(i, targetsymlist) List dependencies = [] for a = 0 to length(groups) do dependencies[a] = getDependencies(groups[a], pc) end int selectDep[0] = findSmallestDepIndex(dependencies) int selectDep[1] = findLargestDepIndex(dependencies) for b = 0 to length(selectedDep) do List grpDep = dependencies[(selectDep[b])] List symbolicVars = join(groups(selectDep[b]), grpDep)
  • 20. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 18 newPC = modifyPC(symbolicVars,concreteValuesMapping,pc) output = callSolver(solver,newPC) if output = “sat” then return output end else if output = “unsat” then result = output end end end Trong thuật toán tối ưu hoá ràng uộc, chúng tôi có một số phương thức quan trọng:  findSmallestDepIndex(): nhận đầu vào là một tập các phụ thuộc, và trả về giá trị của phụ thuộc có ít sự phụ thuộc nhất.   findLargestDepIndex(): nhận đầu vào là một tập các phụ thuộc, và trả về giá trị của phụ thuộc có ít sự phụ thuộc nhất.   modifyPC(): Thay thế các giá trị ký hiệu của biến mục tiêu bằng các giá trị hiện thời của lộ trình.
  • 21. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 19 CHƢƠNG 3 CÀI ĐẶT VÀ THỬ NGHIỆM 3.1. Mọi trƣờng cài đặt 3.2. Thử nghiệm 3.2.1. Đánh giá khả năng bao phủ Để đánh giá độ bao phủ chúng tôi sẽ tiến hành thử nghiệm sinh dữ liệu thử của công cụ tr n các a phương thức testMe1, testMe2, testMe3 để kiểm tra sự thay đ i của công cụ sau hi được cài đ t thuật toán tối ưu Phương thức testMe1, testMe2, testMe3 được tiến hành thực hiện sinh dự liệu thử tự động với 2 trường hợp như sau: chương trình sinh dữ liệu kiểm thử được cài thuật toán tối ưu và chương trình sinh dữ liệu kiểm thử hông được cài đ t thuật toán tối ưu Trong trình bày của bảng kết quả, ký hiệu “-” đại diện cho việc dữ liệu đầu vào của biến có thể nhận bất cứ giá trị nào. 3.2.2. Đánh giá tính hiệu quả Để đánh giá tính hiệu quả trong việc giảm thời gian thực thi của công cụ hi được cài đ t thuật toán tối ưu, một bộ dữ liệu (được ghi lại chi tiết trong phần Phụ lục) gồm 10 phương phức được chọn và tiến hành quá trình sinh dữ liệu thử tự động. Quá trình sinh dữ liệu thử tự động được thực hiện trong 2 trường hợp: công cụ được cài đ t thuật toán tối ưu và công cụ hông được cài đ t thuật toán tối ưu Bảng kết quả sau được thực thi trên hệ thống máy tính với cấu hình: CPU core i3, 3GB RAM.
  • 22. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 20 Bảng 3.7. Kết quả thử nghiệm Tên Thời gian thực thi (milisecond) phƣơng thức Không cài Cài đặt Tỷ lệ đặt thuật thuật toán kiểm thử giảm toán tối ƣu tối ƣu Test1 1332 1032 24% Test2 1282 867 33% Test3 1334 932 31% Test4 1055 739 30% Test5 1389 956 32% Test6 918 643 30% Test7 1277 893 31% Test8 1364 971 29% Test9 984 692 30% Test10 1191 834 27% 3.3. Kết luận
  • 23. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 21 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 1. Kết quả đạt đƣợc Qua đề tài “X y dựng công cụ sinh dữ chương trình Java”, tôi đã tìm hiểu, nghiên cứu sau: liệu thử tự động cho được một số kết quả Thứ nhất, tìm hiểu về cách xây dựng và hoạt động của và phương pháp sinh dữ liệu kiểm thử tự động cho ngôn ngữ Java c ng như nghi n cứu về các thách thức hiện nay. Thứ hai, đề xuất và cài đ t giải pháp tối ưu trong việc sinh dữ liệu thử tự động nhằm tối ưu h a thời gian nhưng vẫn đảm bảo tính đúng đắn, toàn vẹn và khả năng ao phủ của bộ dữ liệu thử tự động. 2. Hạn chế Giải pháp đề ra dựa trên sự phụ thuộc của các ràng buộc với nhau, vì vậy độ hiệu quả của thuật toán sẽ bị ảnh hưởng rất lớn trong trường hợp dữ liệu đầu vào có sự phụ thuộc quá nhiều với nhau. Giải pháp đề ra vẫn còn thực thi ký hiệu để bao phủ tất cả các nhánh của cây thực thi, do đ trong trường hợp chương trình quá phức tạp công cụ có thể không hoạt động được vì sự bùng n về đường đi Một điểm hạn chế khác của thuật toán này là trong trường hợp dữ liệu đầu vào quá đơn giản thì việc thực hiện các biện pháp tiền xử lý của thuật toán sẽ khiến cho chương trình mất thêm tài nguyên trong việc thực hiện. 3. Hƣớng phát triển Trong quá trình nghiên cứu, bộ SMT Choco không cho kết quả tốt như các ộ SMT hác như Z3 hay CVC3 Vì vậy, trong thời gian tới chúng tôi sẽ tiếp tục nghiên cứu và triển khai tích hợp các bộ
  • 24. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149 22 SMT mới và có khả năng hỗ trợ nâng cấp tốt hơn vào trong chương trình sinh dữ liệu kiểm thử.
  • 25. Nhận viết đề tài trọn gói – ZL: 0973.287.149 – Luanvanmaster.com TẢI TÀI LIỆU KẾT BẠN ZALO 0973.287.149