Phương pháp phân tích sự ảnh hưởng của các thành phần và ứng dụng cho kiểm thử hồi quy trong các dự án java EE luận văn ths máy tính 84801

69 57 0
Phương pháp phân tích sự ảnh hưởng của các thành phần và ứng dụng cho kiểm thử hồi quy trong các dự án java EE   luận văn ths  máy tính 84801

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THỊ HỒNG VÂN PHƢƠNG PHÁP PHÂN TÍCH SỰ ẢNH HƢỞNG CỦA CÁC THÀNH PHẦN VÀ ỨNG DỤNG CHO KIỂM THỬ HỒI QUY TRONG CÁC DỰ ÁN JAVA EE LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội – 2018 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THỊ HỒNG VÂN PHƢƠNG PHÁP PHÂN TÍCH SỰ ẢNH HƢỞNG CỦA CÁC THÀNH PHẦN VÀ ỨNG DỤNG CHO KIỂM THỬ HỒI QUY TRONG CÁC DỰ ÁN JAVA EE Ngành: Công nghệ thông tin Chuyên ngành: Kỹ Thuật Phần Mềm Mã số: 8480103.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS TS PHẠM NGỌC HÙNG Hà Nội – 2018 i MỤC LỤC MỤC LỤC i LỜI CAM ĐOAN iii LỜI CẢM ƠN iv DANH MỤC THUẬT NGỮ VIẾT TẮT v DANH MỤC HÌNH VẼ vi DANH MỤC BẢNG viii Chương Giới thiệu Chương Phương pháp phân tích ảnh hưởng JCIA .11 2.1 Bộ công cụ JCIA 11 2.2 Phân tích phụ thuộc 17 2.2.1 Tiền xử lý mã nguồn .17 2.2.2 Phân tích phụ thuộc cho Struts 17 2.2.3 Phân tích phụ thuộc Java Core 19 2.2.4 Phân tích phụ thuộc cho cơng nghệ kết nối sở liệu JDBC 20 2.2.5 Phân tích phụ thuộc cho Hibernate 24 2.3 Quản lý phiên 27 Chương Phương pháp phân tích ảnh hưởng thành phần giao diện phân loại kiểm thử hồi quy 28 3.1 Phương pháp phân tích ảnh hưởng thành phần giao diện .28 3.1.1 Phân tích kiến trúc Java Servlet 28 3.1.2 Phương pháp phân tích ảnh hưởng 31 3.2 Phương pháp phân loại kiểm thử hồi quy .35 3.2.1 Kiểm thử hồi quy 35 3.2.2 Phân loại kiểm thử hồi quy 35 3.2.3 Quy trình kiểm thử hồi quy dựa phương pháp đề xuất 36 Chương Thực nghiệm triển khai 36 4.1 Giới thiệu công cụ JCIA mở rộng 38 4.2 Thực nghiệm 39 4.3 Ý nghĩa công cụ thực nghiệm 39 Chương Kết luận 53 ii TÀI LIỆU THAM KHẢO 56 iii LỜI CAM ĐOAN Tôi xin cam đoan nghiên với đề tài “Phương pháp phân tích ảnh hưởng thành phần ứng dụng cho kiểm thử hồi quy dự án Java EE” trình bày luận văn cơng trình nghiên cứu riêng tơi hướng dẫn thầy giáo PGS TS Phạm Ngọc Hùng, không chép lại người khác Tất nguồn tài liệu tham khảo, cơng trình nghiên cứu liên quan trích dẫn cụ thể Tơi xin chịu hồn tồn trách nhiệm có phát chép mà khơng có trích dẫn tài liệu tham khảo iv LỜI CẢM ƠN Đầu tiên, xin gửi lời cảm ơn chân thành tới thầy giáo PGS TS Phạm Ngọc Hùng - người hướng dẫn tận tình, bảo đóng góp ý kiến q báu cho tơi suốt q trình học tập làm khóa luận Trong qng thời gian thầy hướng dẫn, học hỏi nhiều kinh nghiệm phương pháp nghiên cứu, kỹ trình bày Thầy cịn tiếp thêm cho tơi niềm tin vượt qua khó khăn giúp tơi trưởng thành sống Tôi xin gửi lời cảm ơn chân thành đến thầy cô giáo khoa Công nghệ thông tin trường Đại học Công nghệ - Đại học Quốc gia Hà Nội tận tình truyền đạt kiến thức quý báu, tạo điều kiện tốt cho suốt thời gian học tập nghiên cứu Tiếp theo, tơi xin gửi lời cảm ơn đến gia đình người thân bên cạnh động viên, cổ vũ chỗ dựa vững để yên tâm học hành suốt năm qua Tôi xin gửi lời cảm ơn chân thành đến Bùi Quang Cường Ngô Hải Yến tạo điều kiện giúp đỡ để nghiên cứu công cụ JCIA Mặc dù cố gắng luận văn chắn không tránh khỏi thiếu sót, tơi mong nhận ý kiến đánh giá phê bình từ phía Thầy Cơ để luận văn hồn thiện Tôi xin chân thành cảm ơn! Hà Nội, tháng 10 năm 2018 Học viên Nguyễn Thị Hồng Vân v DANH MỤC THUẬT NGỮ VIẾT TẮT STT 10 vi DANH MỤC HÌNH VẼ Hình 2.1 Giao diện cơng cụ JCIA 13 Hình 2.2 Màn hình Project View 13 Hình 2.3 Màn hình Dependency View 14 Hình 2.4 Change Impact View .15 Hình 2.5 Hiển thị mã nguồn 15 Hình 2.6 Change Set View 16 Hình 2.7 Impact Set View 16 Hình 2.8 Mơ hình ứng dụng Struts2 17 Hình 2.9 Quy trình phân tích phụ thuộc cho ứng dụng Struts .18 Hình 2.10 Ví dụ minh họa đồ thị chuỗi 22 Hình 2.11 Quá trình xây dựng dự đoán câu truy vấn 23 Hình 2.12 Q trình phân tích phụ thuộc cho Hibernate .24 Hình 2.13 So sánh cấu trúc hai phiên mã nguồn 27 Hình 3.1 Kiến trúc Java Servlet 28 Hình 3.2 Vịng đời Java Servlet 29 Hình 3.3 Mã nguồn sử dụng tảng Java Servlet .30 Hình 3.4 Phân loại kiểm thử hồi quy 35 Hình 3.5 Quy trình kiểm thử hồi quy đề xuất 36 Hình 4.1 Kiến trúc công cụ JCIA 38 Hình 4.2 Kết đầu công cụ 39 Hình 4.3 Ứng dụng Web quản lý bệnh viện 40 Hình 4.4 Lỗi xảy phiên .49 Hình 4.6 Yêu cầu thêm cho giao diện quản lý bệnh nhân 50 Hình 4.7 Nghiệp vụ liên quan đến Health Insurance 50 Hình 4.8 Kết tập thay đổi ảnh hưởng cho kiểm thử đơn vị 51 Hình 4.9 Kết tập thay đổi ảnh hưởng cho kiểm thử giao diện 51 Hình 4.10 Kết kiểm thử hồi quy giao diện với Ranorex .52 Hình 4.11 Kết tập thay đổi ảnh hưởng cho kiểm thử tích hợp 52 vii viii DANH MỤC BẢNG Bảng 2.1 Ý nghĩa kiểu cạnh đồ thị chuỗi .24 Bảng 2.2 Các phương thức truy xuất CSDL có sẵn Hibernate 26 Bảng 4.1 Mô tả yêu cầu chức quản lý nhân viên 41 Bảng 4.2 Mô tả yêu cầu chức quản lý phòng 42 Bảng 4.3 Mô tả yêu cầu chức quản lý dịch vụ 42 Bảng 4.4 Mô tả yêu cầu chức quản lý bệnh nhân 43 Bảng 4.5 Mô tả yêu cầu chức đặt phòng .43 Bảng 4.6 Mô tả yêu cầu chức quản lý thuốc .44 Bảng 4.7 Mô tả yêu cầu chức quản lý bán thuốc 44 46 Chức Book Bed STT Hành động Trường hợp Book Bed thành công 1 Chọn nhập giá trị hợp lệ: - Room, Patient, Department Chọn chức “Book Bed” Trường hợp nhập vào giá trị trống Để trống trường bắt buộc: - Room, Patient, Department Chọn chức “Book Bed” Chức Sell Drug STT Trường hợp Sell Drug thành công 1 Chọn lệ: - Drug, Patient, Unit Per Day, Quantity, Take From, End Take Chọn ch Nhập vào giá trị trống Để trống trường bắt buộc: - Drug - Patient - Unit Per Day - Quantity - Take From - End Take Nhập sai định dạng Quantity Chọn ch Quantity trị hợp lệ Nhập gi Các trườ Chọn ch STT Hành động Nhập giá Quantity lớn số lượng thuố lại sở liệu Các trườn trị hợp lệ Chọn Quantity trị hợp lệ Nhập giá Quantity trị hợp lệ Nhập giá Quantity Nhập chữ Các trườn trị hợp lệ Chọn Các trườn Chọn Các trườn Chọn Nhập sai định dạng Unit Per Day Day Nhập chữ Các trườn trị hợp lệ Chọn Unit Per Day Nhập giá Các trườn trị hợp lệ Chọn STT 10 H Unit Per Day trị hợp lệ Nhập giá From trị hợp lệ Nhập chữ Các trườn Chọn Nhập sai định dạng Take From/End Take 11 14 Các trườn Chọn Nhập Take From lớn En Take Các trườn trị hợp lệ Chọn Trường hợp giảm tiền thuốc bệnh nhân có Health Insurance 15 Insurance trị hợp lệ Chọn bện Các trườn Chọn Chọn Trường hợp không giảm tiền thuốc bệnh nhân khơng có Health Insurance 16 Insurance Health Chọn bện Các trườn trị hợp lệ Chọn Chọn 49 Chức tính Fee STT Hành động Trường hợp Paid thành công Chọn chức “Check” đ toán Trường hợp bệnh nhân Book Bed thành công Kiểm tra thông tin bệnh nhâ Bài toán đặt ra: Sau kiểm thử phiên 1, kiểm thử viên phát số lỗi bao gồm: cập nhật thông tin bệnh nhân không thành công, không hiển thị thông báo sau xóa thơng tin bệnh nhân, hình “Sell Drug” “Manage Drug” thiếu xác nhận trường bắt buộc Trong phiên mới, khách hàng yêu cầu nhóm phát triển sửa lỗi tìm phiên thêm số yêu cầu thay đổi Hình 4.4 Lỗi xảy phiên Yêu cầu thứ nhất: Thêm trường cho bệnh nhân nội trú (In Patient) ngoại trú (Out Patient) hình quản lý bệnh nhân Nếu bệnh nhân nội trú, bệnh nhân phép thực chức đặt phịng thơng qua Receptionist Nếu bệnh nhân đăng ký ngoại trú đặt phịng thành cơng 50 Hình 4.5 u cầu thêm cho giao diện quản lý bệnh nhân Yêu cầu thứ hai: Thêm trường kiểm tra Health Insurance với mức độ 1, 2, 3, tương ứng việc giảm 10%, 20%, 30%, 40% số tiền mà bệnh nhân phải trả cho đặt phịng mua thuốc Hình 4.6 Nghiệp vụ liên quan đến Health Insurance Sau tiếp nhận yêu cầu khách hàng làm rõ yêu cầu, nhóm phát triển thực triển khai đưa phiên Kiểm thử viên thực cập nhật ca kiểm thử dựa theo yêu cầu thay đổi khách hàng Lúc này, mã nguồn phiên đưa vào công cụ JCIA để so sánh phân tích ảnh hưởng từ thay đổi Hình 4.8 mơ tả kết sau đưa vào cơng cụ JCIA để phân tích bao gồm thành phần thay đổi thành phần dự đoán thay đổi Các thành phần phân loại kiểm thử hồi quy cho đơn vị 51 Hình 4.7 Kết tập thay đổi ảnh hưởng cho kiểm thử đơn vị Từ kết trên, lập trình viên phải thực kiểm thử đơn vị cho tất hàm thay đổi hàm bị ảnh hưởng để đảm bảo chất lượng cho phiên Việc kiểm thử đơn vị kết hợp với cơng cụ CTF4Junit, công cụ hỗ trợ sinh ca kiểm thử cho đơn vị cho mã nguồn Java Tuy nhiên, công cụ hỗ trợ phần hàm với kiểu liệu nguyên thủy Tiếp theo kết phân loại kiểm thử hồi quy cho thành phần giao diện (như Hình 4.9) Hình 4.8 Kết tập thay đổi ảnh hưởng cho kiểm thử giao diện Từ kết trên, kiểm thử viên phải cập nhật ca kiểm thử chọn các ca kiểm thử phù hợp để thực kiểm thử hồi quy giao diện Dựa vào kết đầu công cụ JCIA mở rộng Hình 4.10, hình giao diện thay đổi dự đoán thay đổi kiểm thử để đảm bảo chất lượng phiên Việc kiểm thử giao diện kết hợp với công cụ Ranorex, 52 công cụ hỗ trợ kiểm thử giao diện tự động kỹ thuật ghi lại phát lại để kiểm thử tính xác tương tác người dùng giao diện Hình 4.9 Kết kiểm thử hồi quy giao diện với Ranorex Hình 4.10 Kết tập thay đổi ảnh hưởng cho kiểm thử tích hợp 4.3 Ý nghĩa cơng cụ thực nghiệm Công cụ JCIA mở rộng giải pháp nhằm hỗ trợ kiểm thử hồi quy cho ứng dụng Web doanh nghiệp Java EE Thực nghiệm cho thấy hướng phát triển tiềm phương pháp việc đảm bảo chất lượng phần mềm Tuy phương pháp cơng cụ cịn số hạn chế cơng cụ có ý nghĩa quan trọng việc kiểm thử hồi quy Cơng cụ giúp tìm thành phần bị ảnh hưởng từ thành phần thay đổi giúp nhóm phát triển kiểm thử viên có góc nhìn khách quan việc phát triển ứng dụng đảm bảo chất lượng Đây giải pháp giúp giảm kinh phí 53 rút ngắn thời gian nâng cao tính hiệu xác q trình kiểm thử ứng dụng Web doanh nghiệp Khi sử dụng công cụ JCIA mở rộng, thay việc thực lại toàn ca kiểm thử, việc nén tệp mã nguồn hai phiên khác cho vào cơng cụ để phân tích Việc giúp giảm thiểu rủi ro, thời gian, công sức chi phí thực Thực nghiệm cho thấy thay phải kiểm thử tồn mã nguồn dự án (gồm 309 hàm mã nguồn Java 35 tệp giao diện với mã nguồn JSP), kiểm thử viên cần tập trung kiểm thử lại 101 hàm (bao gồm 89 hàm cho kiểm thử đơn vị 12 hàm cho kiểm thử tích hợp) 15 tệp giao diện cho kiểm thử giao diện Chi phí kiểm thử giảm (309+35-101-15)/ (309+35) = 66.3% Do đó, việc áp dụng công cụ để kiểm thử hồi quy mang lại nhiều lợi ích Với ưu điểm nêu, tương lai cơng cụ có khả áp dụng hiệu cho ứng dụng Web với ngôn ngữ lập trình khác 54 Chƣơng Kết luận Luận văn cải tiến phương pháp công cụ phục vụ cho quy trình kiểm thử hồi quy để đảm bảo chất lượng mã nguồn ứng dụng doanh nghiệp tảng công nghệ Java EE Các phương pháp đề xuất [2,5] tập trung phân tích chủ yếu cho mã nguồn Java Tuy nhiên với tảng khác mã nguồn Java cịn tương tác với mã nguồn giao diện theo cách khác Trong luận văn này, tác giả hồn thành thêm chức cho cơng cụ nhằm đáp ứng cho việc phân tích mã nguồn giao diện cho ứng dụng sử dụng công nghệ Java Servlet Bên cạnh đó, cơng cụ cịn hỗ trợ phân loại kiểm thử hồi quy từ thành phần thay đổi ảnh hưởng bao gồm kiểm thử đơn vị, kiểm thử tích hợp kiểm thử giao diện Từ đó, đưa nhìn khách quan kiểm thử viên lập trình viên Đối với kiểm thử viên, họ thực kiểm thử hồi quy dựa mã nguồn đặc tả Nếu kiểm thử hồi quy dựa đặc tả chọn ca kiểm thử để thực liên quan đến phần đặc tả bị thay đổi, kỹ thuật đòi hỏi đặc tả phải quản lý tốt Tuy nhiên, với phương pháp cải tiến mà luận văn thực hiện, việc kiểm thử hồi quy dựa mã nguồn Kiểm thử viên cần thực số ca kiểm thử dựa kết phân tích ảnh hưởng thành phần giao diện Còn lập trình viên họ sử dụng cơng cụ để đánh giá thay đổi mã nguồn Một ánh xạ thành phần mã nguồn giao diện, chức ứng dụng tích hợp, giúp cơng cụ thực có ích ứng dụng vào q trình đảm bảo chất lượng phần mềm công ty phát triển phần mềm Về thực nghiệm, luận văn áp dụng công cụ để so sánh hai phiên mã nguồn cho ứng dụng Web quản lý bệnh viện Kết thực nghiệm cho thấy, công cụ cải tiến tìm thành phần ảnh hưởng liên quan đến giao diện ứng dụng Web mà công cụ trước không tìm thấy Thêm vào việc phân loại thành phần ảnh hưởng thành phần thay đổi Từ đó, hỗ trợ kiểm thử hồi quy cách hiệu Dựa vào kết thực nghiệm, công cụ cho thấy tính khả dụng cơng cụ giúp giảm thời gian chi phí kiểm thử hồi quy Dựa thực được, tương lai có thêm nhiều phụ thuộc giao diện cho tảng khác thêm vào để xử lý giúp phân tích ảnh hưởng dự đốn tập ảnh hưởng xác Bộ quản lý so sánh phiên mã nguồn tích hợp với hệ thống quản lý phiên SVN, Git công cụ kiểm thử hồi quy Bộ công cụ hỗ trợ cho thêm nhiều 55 công nghệ tảng khác Java, xa nữa, tương lai cơng cụ phân tích cho ngơn ngữ khác 56 TÀI LIỆU THAM KHẢO TIẾNG VIỆT [1] Phạm Ngọc Hùng, Trương Anh Hồng, Đặng Văn Hưng (2014), Giáo trình kiểm thử phần mềm, NXB Đại học Quốc gia Hà Nội [2] Bùi Quang Cường, Nguyễn Minh Hiếu, Đinh Tiến Lộc Bộ công cụ đảm bảo chất lượng mã nguồn cho ứng dụng doanh nghiệp, Hội nghị NCKH khoa CNTT, ĐH Công nghệ, 2018 TIẾNG ANH [3] Bixin Li WAVE-CIA: a novel CIA approach based on call graph mining In Proceedings of the 28th Annual ACM Symposium on Applied Computing [4] Bixin Li, Xiaobing Sun, Hareton Leung, Sai Zhang A survey of codebased change impact analysis techniques In Software Testing, Verification and Reliability Wiley Online Library (2012) [5] Le Ba Cuong, Son Van Nguyen, Duc Anh Nguyen, Pham Ngoc Hung, Hieu Vo Dinh A Tool for Change Impact Analysis of Java EE Applications Information Systems Design and Intelligent Applications Advances in Intelligent Systems and Computing, vol 672 Springer, Singapore (2018) Ann Millikin (2014), What Types of Software Testing Can and Should Be Automated, https://www.seguetech.com/types-software-testing-canshould-be-automated/ [6] Salah, Hospital Management System, https://github.com/salahatwa/Hospital-Management-System [7] ... PHƢƠNG PHÁP PHÂN TÍCH SỰ ẢNH HƢỞNG CỦA CÁC THÀNH PHẦN VÀ ỨNG DỤNG CHO KIỂM THỬ HỒI QUY TRONG CÁC DỰ ÁN JAVA EE Ngành: Công nghệ thông tin Chuyên ngành: Kỹ Thuật Phần Mềm Mã số: 848010 3.01 LUẬN VĂN... Chương Phương pháp phân tích ảnh hưởng thành phần giao diện phân loại kiểm thử hồi quy 28 3.1 Phương pháp phân tích ảnh hưởng thành phần giao diện .28 3.1.1 Phân tích kiến trúc Java. .. Phương pháp phân tích ảnh hưởng 31 3.2 Phương pháp phân loại kiểm thử hồi quy .35 3.2.1 Kiểm thử hồi quy 35 3.2.2 Phân loại kiểm thử hồi quy 35 3.2.3 Quy trình kiểm

Ngày đăng: 11/11/2020, 22:21

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan