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

Phương pháp sinh bộ kiểm thử từ biểu đồ tuần tự UML 2 0 và ứng dụng cho kiểm thử phần mềm

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 (427.33 KB, 13 trang )

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

TRẦN THỊ MÙI

PHƢƠNG PHÁP SINH BỘ KIỂM THỬ TỪ BIỂU ĐỒ TUẦN
TỰ UML 2.0 VÀ ỨNG DỤNG CHO KIỂM THỬ PHẦN MỀM

LUẬN VĂN THẠC SĨ
Ngành: Hệ thống thông tin

HÀ NỘI – 2015


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

TRẦN THỊ MÙI

PHƢƠNG PHÁP SINH BỘ KIỂM THỬ TỪ BIỂU ĐỒ TUẦN TỰ
UML 2.0 VÀ ỨNG DỤNG CHO KIỂM THỬ PHẦN MỀM

Ngành: Hệ thống thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60 48 01 04

LUẬN VĂN THẠC SĨ
Ngành: Hệ thống thông tin

NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. Phạm Ngọc Hùng


HÀ NỘI – 2015


VIETNAM NATIONAL UNIVERSITY, HANOI
UNIVERSITY OF ENGINEERING AND TECHNOLOGY

TRAN THI MUI

A METHOD AND TOOL SUPPORTING FOR AUTOMATED
TESTING OF UML 2.0 SEQUENCE DIAGRAMS

THE MS. THESIS
Major: Information Systems

Supervisor: Dr. Pham Ngoc Hung

HANOI - 2015


LỜI CẢM ƠN
Đầu tiên, tôi xin gửi lời cảm ơn chân thành và sâu sắc tới thầy Phạm Ngọc
Hùng – Ngƣời đã trực tiếp hƣớng dẫn nhiệt tình, giúp đỡ và động viên tôi rất
nhiều, cho tôi có cơ hội đƣợc tiếp xúc với các tài liệu tham khảo quý giá, góp ý
cho tôi những lời khuyên chân thành trong quá trình nghiên cứu để hoàn thành đề
tài này.
Tiếp theo tôi xin gửi lời cảm ơn đến các thầy cô giảng viên Trƣờng Đại học
Công Nghệ - Đại học Quốc Gia Hà Nội – những ngƣời đã tận tâm truyền đạt
những kiến thức quý báu làm nền tảng cho tôi suốt 2 năm học.
Cuối cùng, tôi xin gửi lời biết ơn sâu sắc tới gia đình vì đã luôn ở bên cạnh
tôi, mang lại cho tôi nguồn động viên tinh thần to lớn và tạo mọi điều kiện thuận

lợi cho tôi trong quá trình học tập và hoàn thành luận văn này.
Mặc dù đã rất cố gắng nhƣng luận văn sẽ không tránh khỏi những thiếu sót.
Rất mong nhận đƣợc ý kiến đóng góp quý báu của Thầy, Cô giáo và các bạn để
luận văn đƣợc hoàn thiện hơn.
Xin trân trọng cảm ơn!

Hà Nội, ngày 22 tháng 11 năm 2015
Học viên:

Trần Thị Mùi


TÓM TẮT
Luận văn này tập trung nghiên cứu phƣơng pháp sinh bộ kiểm thử từ biểu đồ
tuần tự UML 2.0 dựa trên lý thuyết kiểm thử mô hình nhằm tự động hóa quá trình
kiểm thử, nâng cao hiệu quả, tiết kiệm chi phí và thời gian. Phƣơng pháp này đƣợc
thực hiện thông qua các bƣớc chính sau. Đầu tiên, để có đƣợc mô hình làm đầu
vào cho kiểm thử, phƣơng pháp thực hiện chuyển đổi biểu đồ tuần tự về đồ thị
dòng điều khiển bằng cách tiến hành bóc, tách từng khối (fragment) trong biểu đồ
tuần tự. Các khối này có thể tuần tự hoặc lồng nhau, dựa vào quan hệ của chúng,
tiến hành xây dựng đồ thị cho mỗi khối, sau đó lồng chúng lại nhằm sinh ra đồ thị
dòng điều khiển tƣơng ứng với biểu đồ tuần tự. Kế tiếp, đồ thị dòng điều khiển
đƣợc phân tích để xây dựng tập đƣờng kiểm thử. Vận dụng kỹ thuật thực thi tƣợng
trƣng (Symbolic Execution - SE) nhằm xây dựng hệ ràng buộc tƣơng ứng cho tập
đƣờng kiểm thử. Cuối cùng, sử dụng công cụ SMT solver để giải hệ các ràng buộc
nhằm tìm kiếm nghiệm và từ đó sinh ca kiểm thử.
Một công cụ hỗ trợ phƣơng pháp này đã đƣợc cài đặt và thử nghiệm với một
số ví dụ đơn giản nhằm minh chứng cho tính đúng đắn và hiệu quả của phƣơng
pháp trên. Kết quả thực nghiệm cho thấy tiềm năng ứng dụng của công cụ này
trong việc kiểm thử tự động ở các công ty.

Từ khóa: Kiểm thử dựa trên mô hình, kiểm thử tự động, biểu đồ tuần tự, đồ
thị dòng điều khiển, ca kiểm thử, độ bao phủ.


ABSTRACT

This thesis researches a method to generate a set of test cases from the UML
2.0 sequence diagrams based on model-based testing in order to automate the
testing process, increase effectiveness, reduce cost and time of testing. The
method follows the following steps. At first, in order to have the input model for
testing, it analyzes and divides the input diagram into fragments. These fragments
can be sequential or nested based on their relationship. After that, it builds the
corresponding graph for each of the fragments and merges them together in order
to generate the corresponding control flow graph for the input sequence diagram.
The final control flow graph is analyzed to generate a set of testing paths.
Symbolic Execution (SE) technique is used to create restrictions associated with
that set of testing paths. Finally, the method uses SMT solver to solve the set of
restrictions to find solution and then to generate a set of test cases.
A tool is also implemented and tested with some simple examples in order to
show the correctness and effectiveness of the method. The experimental results
give us the potential application of the tool in automation testing in companies.
Keywords: Model base testing, automated testing, sequence diagram, control flow
testing, test case.


LỜI CAM ĐOAN

Tôi xin cam đoan rằng những nghiên cứu về sinh tự động bộ kiểm thử từ
biểu đồ tuần tự đƣợc trình bày trong luận văn này dƣới sự hƣớng dẫn của TS.
Phạm Ngọc Hùng là của tôi. Những gì tôi viết ra không sao chép từ các tài liệu,

không sử dụng các kết quả của ngƣời khác mà không trích dẫn cụ thể.
Tôi xin cam đoan công cụ kiểm thử tự động tôi trình bày trong luận văn là do
tôi tự phát triển, không sao chép mã nguồn của ngƣời khác. Nếu sai tôi hoàn toàn
chịu trách nhiệm theo quy định của Trƣờng Đại học Công Nghệ - Đại học Quốc
Gia Hà Nội.

Hà nội, ngày 22 tháng 11 năm 2015
Học viên:

Trần Thị Mùi


MỤC LỤC
LỜI CẢM ƠN......................................................................................................................... 4
TÓM TẮT ............................................................................................................................... 5
ABSTRACT ............................................................................................................................ 6
LỜI CAM ĐOAN ................................................................................................................... 7
DANH SÁCH BẢNG BIỂU ................................................................................................ 10
DANH SÁCH HÌNH VẼ ......................................................... Error! Bookmark not defined.
BẢNG THUẬT NGỮ .............................................................. Error! Bookmark not defined.
Chƣơng 1. GIỚI THIỆU ......................................................... Error! Bookmark not defined.
Chƣơng 2. TỔNG QUAN KIỂM THỬ DỰA TRÊN MÔ HÌNHError! Bookmark not defined.

2.1.

Khái niệm kiểm thử dựa trên mô hình ........ Error! Bookmark not defined.

2.2.

Quy trình chung của kiểm thử dựa trên mô hìnhError! Bookmark not defined.


2.3.

Phƣơng pháp đặc tả mô hình bằng máy trạng thái UMLError! Bookmark not define

2.4.

Thuận lợi và khó khăn của kiểm thử tự động dựa trên mô hìnhError! Bookmark not

Chƣơng 3. PHƢƠNG PHÁP SINH ĐỒ THỊ DÒNG ĐIỀU KHIỂN TỪ BIỂU ĐỒ
TUẦN TỰ Error! Bookmark not defined.

3.1.

Biểu đồ tuần tự ........................................... Error! Bookmark not defined.

3.2.

Đồ thị dòng điều khiển ............................... Error! Bookmark not defined.

3.3.

Đƣờng kiểm thử .......................................... Error! Bookmark not defined.

3.4.

Chuyển đổi biểu đồ tuần tự sang đƣờng kiểm thửError! Bookmark not defined.

3.5.


Định dạng chuẩn khi viết tệp xmi từ biểu đồ tuần tựError! Bookmark not defined.

3.6.

Thuật toán sinh tự động các đƣờng kiểm thửError! Bookmark not defined.

3.6.1. Thuật toán phân tích biểu đồ tuần tự ........................... Error! Bookmark not defined.

3.6.2. Thuật toán chuyển cấu trúc dữ liệu biểu đồ tuần tự sang đƣờng kiểm thửError! Bookmark not d
3.6.3. Thuật toán xác định đƣờng kiểm thử cho khối alt ....... Error! Bookmark not defined.
3.6.4. Thuật toán xác định đƣờng kiểm thử cho khối opt và breakError! Bookmark not defined.
3.6.5. Thuật toán xác định đƣờng kiểm thử cho khối loop .... Error! Bookmark not defined.


3.6.6. Thuật toán xác định đƣờng kiểm thử cho khối par và seqError! Bookmark not defined.
3.6.7.Thuật toán xác định đƣờng kiểm thử cho khối weak .... Error! Bookmark not defined.
3.6.8. Thuật toán xác định đƣờng kiểm thử cho khối strict ... Error! Bookmark not defined.
3.6.9. Thuật toán xác định đƣờng kiểm thử cho khối ignore . Error! Bookmark not defined.
Chƣơng 4. PHƢƠNG PHÁP SINH BỘ KIỂM THỬ TỪ ĐỒ THỊ DÒNG ĐIỀU
KHIỂN ................................................................................... Error! Bookmark not defined.

4.1.

Xây dựng hệ ràng buộc ............................... Error! Bookmark not defined.

4.2.

Tìm nghiệm thỏa mãn hệ ràng buộc ........... Error! Bookmark not defined.

4.2.1. Giải hệ sử dụng kỹ thuật sinh ngẫu nhiên........ Error! Bookmark not defined.

4.2.2. Giải hệ sử dụng SMT-Solver ........................... Error! Bookmark not defined.

4.2.3. Nhận xét ƣu điểm, nhƣợc điểm của hai hƣớng sinh ca kiểm thửError! Bookmark not d
Chƣơng 5. THỰC NGHIỆM................................................... Error! Bookmark not defined.

5.1.

Giới thiệu công cụ ...................................... Error! Bookmark not defined.

5.2.

Thực nghiệm ............................................... Error! Bookmark not defined.

5.3.

Ý nghĩa của thực nghiệm ............................ Error! Bookmark not defined.

Chƣơng 6. KẾT LUẬN ............................................................ Error! Bookmark not defined.
TÀI LIỆU THAM KHẢO ................................................................................................... 11


DANH SÁCH BẢNG BIỂU
Bảng 4.1. Độ ƣu tiên các toán tử ......................................... Error! Bookmark not defined.
Bảng 5.1. Môi trƣờng thử nghiệm công cụ sinh ca kiểm thử từ thiết kế. . Error! Bookmark
not defined.


TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Phạm Ngọc Hùng, Trƣơng Anh Hoàng, Đặng Văn Hƣng (2014), ―Giáo trình

kiểm thử phần mềm‖, Nhà xuất bản giáo dục Việt Nam.
[2] Đỗ Đức Giáo (2011), ―Toán rời rạc ứng dụng trong tin học‖, Nhà xuất bản giáo
dục Việt Nam.
[3] Vũ Thị Đào, Tô Văn Khánh, Nguyễn Việt Hà (2014), ―Phương pháp sinh các
ca kiểm thử tự động từ các mô hình thiết kế UML và ngôn ngữ ràngbuộc đối tượng
OCL”, Tạp trí ―Các công trình nghiên cứu, phát triển và ứng dụng CNTT-TT Tập
V-1, Số 11 (31)‖
[4] Nguyễn Đức Anh (2015), ―Khóa luận tốt nghiệp”, Trƣờng Đại học Công nghệ,
Đại học Quốc Gia, Hà Nội.
Tiếng Anh
[5] Vahid Garousi, Lionel C. Briand, and Yvan Labiche (2008), ―Control Flow
Analysis of UML 2.0 Sequence Diagrams” - Software Quality Engineering
Laboratory (SQUALL), Department of Systems and Computer Engineering,
Carleton University, 1125 Colonel By Drive, Ottawa, ON K1S5B6, Canada {vahid,
briand, labiche} @ sce.carleton.ca.
[6] R.V. Binder (1996), ―Testing object-oriented software: a survey, Software
TestingVerification and Reliability”, 6(3/4), 125-252
[7] R. Mall (2009), ―Fundamentals of Software Engineering, Prentice Hall, 3th
edition”.
[8] J. C. King (1976), ―Symbolic execution and program testing‖, Communciations
of the ACM, vol. 19, no. 7, , pp. 385–394
[9] Manish Mishra, Shashi Mishra and Rabins Porwal (2012), ―Basic Principle for
testcase Generation Automatically‖, VSRD-IJCSIT, Vol. 2 (9), pp.772-781
[10] Abdurazik Aynur and Offutt Jeff (2000),―Using uml collaboration diagrams
for static checking and test generation”, Proceedings of the 3rd international
conference on The unified modeling language: advancing the standard (Berlin,
Heidelberg), UML’00, Springer-Verlag, pp. 383–395
[11] El-Far I. K. and Whittaker J.A (2002), ―Model-based software testing”,
Encyclopedia of Software Engineering 825—-837.



[12] J.C. Corb ett, M.B. Dwyer, J. Hatcliff, S. Laubach , C.S. Pasareanu, Robby a
nd Hong jun Zheng, "Bandera: extracting finite-state mo dels from Java source co
de", Software Engineering, Pro ceedings of the 2000 Internat ional Conference on,
pp. 439-448d, 2000.
[13] O. Tkac huk, M.B. Dwyer and C.S. Pasareanu, ―Automated environment
generati on for software mo del checking―, Automated Software Engineering, Pro c
eedings. 18th IEEE
International Conference on, pp. 116-127, 2003.
[14] D. Lore nzoli, L. Marian i and M. Pezzè, ―Automatic generation of software b
ehavioral mo dels", ACM, Pro ceedings of the 30th international conference on
Software engineering, pp. 501-510, 2008.
[15] L. B. Cuong and P. N. Hung, ―A Metho d for Gene rating Mo dels of Black-b
ox Comp onents ", 4th International Conference on Knowledge and Systems
Engineering (KSE 2012), IEEE Computer So cie ty Press, pp. 177-222, 2012.
[16] A. Gro ce, D. Peled, and M. Y annak a ki s, ―Black box checking", J. Autom.
Lang. Comb., p p. 225-246, Nov. 2001.
[17] A. Gro ce, D. Peled, and M. Y annak a ki s, ―Adaptive Mo del Checking",
Logic Journal of the IGPL, vol. 14, no. 5, pp. 729-744, Oct. 2006.
[18] H.M. Duong, L.K. Trin h and P. N. Hung, ―An Assume-Guarantee Mo d el
Checker for Comp onent-Based Systems", The 10th IEEE-RIVF International
Conference on Computing and Communication Technologies, 2013
[19] L. B. Cuong and P. N. Hung, ―A Method for Generating Models of Black-box
Components‖, 4th International Conference on Knowledge and Systems Engineering
(KSE 2012), IEEE Computer Society Press, pp. 177-222, 2012.
[20] D. Lorenzoli, L. Mariani and M. Pezz` e, ―Automatic generation of software
behavioral models‖, ACM, Proceedings of the 30th international conference on
Software engineering, pp. 501-510, 2008.
[21] J.C. Corbett, M.B. Dwyer, J. Hatcliff, S. Laubach, C.S. Pasareanu, Robby and
Hongjun Zheng, ‖Bandera: extracting finite-state models from Java source code‖,

Software Engineering, Proceedings of the 2000 International Conference on, pp.
439-448d, 2000.
[22] O. Tkachuk, M.B. Dwyer and C.S. Pasareanu, ―Automated environment
generation for software model checking‖, Automated Software Engineering,
Proceedings. 18th IEEE International Conference on, pp. 116-127, 2003.


[23] H. M. Duong, L. K. Trinh, and P. N. Hung, ―An Assume-Guarantee Model
Checker for Component-Based Systems‖, The 10th IEEE-RIVF International
Conference on Computing and Communication Technologies, 2013 (accepted).
[24] A. Groce, D. Peled, and M. Y annak akis, ―Black box checking‖, J. Autom.
Lang. Comb., pp. 225-246, Nov. 2001.
[25] A. Groce, D. Peled, and M. Y annak akis, ―Adaptive Model Checking‖, Logic
Journal of the IGPL, vol. 14, no. 5, pp. 729-744, Oct. 2006.
[26] OMG document, UML 2.0 Superstructure Specification, 2003
/>[27] UML sequence diagram
/>[28] Interaction operators in sequence diagrams
/>ce.doc/topics/rinteracoperate.html
[29] Business and Information System Modelling Solutions
/>


×