1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

13 509 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 427,33 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐẠ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

Trang 1

ĐẠ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

Trang 2

ĐẠ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

Trang 3

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

Trang 4

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

Trang 5

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ủ

Trang 6

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

Trang 7

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

Trang 8

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.

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 defined.

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 defined.

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 defined 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.

Trang 9

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.

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 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

Trang 10

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.

Trang 11

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

Trang 12

[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

Trang 13

[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

http://www.omg.org/cgi-bin/doc?ptc/03-08-02

[27] UML sequence diagram

http://www.uml-diagrams.org/sequence-diagrams-combined-fragment.html

[28] Interaction operators in sequence diagrams

http://pic.dhe.ibm.com/infocenter/rsarthlp/v8r5/topic/com.ibm.xtools.sequen

ce.doc/topics/rinteracoperate.html

[29] Business and Information System Modelling Solutions

http://www.zicomi.com/combinedFragmentNegative.jsp

Ngày đăng: 27/08/2016, 22:49

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w