Luận văn thạc sĩ công nghệ thông tin tìm hiểu và xây dựng công cụ hỗ trợ kiểm thử các hệ thống hướng dịch vụ

56 117 0
Luận văn thạc sĩ công nghệ thông tin tìm hiểu và xây dựng công cụ hỗ trợ kiểm thử các hệ thống hướng dịch vụ

Đ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Ệ ĐINH THỊ LOAN TÌM HIỂU XÂY DỰNG CƠNG CỤ HỖ TRỢ KIỂM THỬ CÁC HỆ THỐNG HƯỚNG DỊCH VỤ LUẬN VĂN THẠC NGÀNH 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Ệ ĐINH THỊ LOAN TÌM HIỂU XÂY DỰNG CÔNG CỤ HỖ TRỢ KIỂM THỬ CÁC HỆ THỐNG HƯỚNG DỊCH VỤ Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm Mã số: 60480103 LUẬN VĂN THẠC KỸ THUẬT PHẦN MỀM Người hướng dẫn khoa học: TS VÕ ĐÌNH HIẾU Hà Nội - 2018 i LỜI CAM ĐOAN Tôi xin cam đoan luận văn hoàn thành sở nghiên cứu, tổng hợp thực nghiệm toán phát triển kiểm thử hệ thống xây dựng theo kiến trúc hướng dịch vụ việc nâng cao chất lượng sản phẩm, hệ thống ứng dụng dịch vụ ngân hàng Luận văn mới, đề xuất luận văn tơi thực hiện, qua q trình nghiên cứu đưa không chép nguyên từ nguồn tài liệu khác ii LỜI CẢM ƠN Lời xin gửi lời cảm ơn chân thành biết ơn sâu sắc tới TS Võ Đình Hiếu, người thầy bảo hướng dẫn tận tình cho tơi suốt q trình học thạc suốt trình nghiên cứu thực luận văn Tôi xin chân thành cảm ơn dạy bảo, giúp đỡ, tạo điều kiện thầy, cô trường Đại học Công nghệ, Đại học Quốc gia Hà Nội suốt q trình tơi học tập trường Cuối cùng, xin gửi lời cảm ơn chân thành tới gia đình, bạn bè, đồng nghiệp người ln bên tơi lúc khó khăn, động viên, khuyến khích tơi sống cơng việc Tôi xin chân thành cảm ơn! Tác giả Đinh Thị Loan iii MỤC LỤC LỜI CAM ĐOAN .i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁCHIỆU CHỮ VIẾT TẮT iv DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ v MỞ ĐẦU CHƯƠNG CƠ SỞ LÝ THUYẾT CÁC KHÁI NIỆM LIÊN QUAN .3 1.1 Kiến trúc hệ thống 1.1.1 Kiến trúc hướng dịch vụ 1.1.2 Cơng nghệ trục tích hợp 1.1.3 Xây dựng ứng dụng trục tích hợp dựa tảng MuleESB 1.2 Tích hợp triển khai liên tục 10 1.2.1 Tích hợp liên tục 10 1.2.2 Chuyển giao liên tục 12 1.2.3 Một số công cụ hỗ trợ 13 1.3 Kiểm thử 19 1.3.1 Các loại kiểm thử 19 1.3.2 Các cấp độ kiểm thử 20 1.3.3 Công cụ hỗ trợ kiểm thử ứng dụng API 24 CHƯƠNG KHÓ KHĂN ĐỀ XUẤT GIẢI PHÁP 30 2.1 Khó khăn 30 2.2 Quy trình kiểm thử ứng dụng ESB 31 2.3 Xây dựng công cụ AsenAPIDriver 32 CHƯƠNG THỰC NGHIỆM 38 3.1 Ứng dụng MuleESB mẫu 38 3.2 Tích hợp quy trình kiểm thử 39 3.3 Sinh mã kiểm thử 43 3.4 Kết 45 KẾT LUẬN 46 TÀI LIỆU THAM KHẢO 48 iv DANH MỤC CÁCHIỆU CHỮ VIẾT TẮT STT Tên viết tắt Từ/Cụm từ API Application Programming Interface CD Continuous Deployment CI Continuous Integration DVCS Distributed Version Control System EAI Enterprise Application Intergration ERP Enterprise resource planning ESB Enterprise Service Bus IB Internet Banking QA Quality Assurance 10 SOA Service Oriented Architecture 11 TCK Test Compatibility Kit 12 UAT User Acceptance Testing 13 WSDL Web Services Description Language v DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1: Các cơng nghệ hệ thống SOA Hình 1.2: Kiến trúc hệ thống sử dụng cơng nghệ trục tích hợp Hình 1.3: Nền tảng tích hợp cho doanh nghiệp [8] Hình 1.4: Kiến trúc MuleESB [6] Hình 1.5: Mơ hình luồng xử lý MuleESB Hình 1.6: Kiến trúc hệ thống IB Hình 1.7: Kiến trúc hệ thống IB 10 Hình 1.8: Quy trình tích hợp liên tục 11 Hình 1.9: Quy trình chuyển giao liên tục 12 Hình 1.10: Dòng triển khai 12 Hình 1.11: Mơ hình hoạt động DVCS [10] 13 Hình 1.12: Cấu trúc tổ chức kho mã nguồn Git 14 Hình 1.13: Các dòng lệnh Git 14 Hình 1.14: Quản lý mã nguồn sử dụng Maven 15 Hình 1.15: Màn hình Jenkins 16 Hình 1.16: Cấu hình tùy chỉnh Jenkins 17 Hình 1.17: Quản lý plugins 18 Hình 1.18: Thơng tin hệ thống Jenkins 18 Hình 1.19: Sơ đồ cấp độ kiểm thử 21 Hình 1.20: Kiểm thử đơn vị theo lớp [14] 22 Hình 1.21: Kiểm thử tích hợp [14] 23 Hình 1.22: Tham số Postman 25 Hình 1.23: Mã nguồn gọi API 25 Hình 1.24: Quản lý lời gọi API theo nhóm 26 Hình 1.25: Lời gọi API SOAPUI 26 Hình 1.26: Kiến trúc JUnit 27 Hình 1.27: MUnit Code 29 Hình 1.28: MUnit viết Java 29 Hình 2.1: Quy trình kiểm thử ứng dụng ESB 31 Hình 2.2: Ví dụ tệp XML cấu hình ứng dụng MuleESB 32 Hình 2.3: Các nút tệp xml 33 Hình 2.4: Biểu đồ gói model AsenAPIDriver 34 Hình 2.5: Biểu đồ gói sinh mã 34 Hình 2.6: Các bước sinh mã kiểm thử tự động 34 Hình 2.7: Cấu hình khởi tạo ứng dụng 35 Hình 2.8: Mã nguồn kiểm thử phương pháp sinh tự động 36 Hình 3.1: Sơ đồ ứng dụng IB-ESB 38 vi Hình 3.2: Cách phân chia thư mục ứng dụng MuleESB 39 Hình 3.3: Màn hình quản lý Jenkins 40 Hình 3.4: Tạo tác vụ Jenkins 40 Hình 3.5: Thơng tin chi tiết cấu hình tác vụ 41 Hình 3.6: Tùy chọn tác vụ xử lý qua Windows command 41 Hình 3.7:Thêm cấu hình gọi AsenAPIDriver 42 Hình 3.8: Quá trình chạy tác vụ 42 Hình 3.9: Cấu hình thơng báo Email 43 Hình 3.10: Lịch sử chạy tác vụ 43 Hình 3.11: Dữ liệu đầu vào 44 Hình 3.12: Dữ liệu đầu mong đợi 44 Hình 3.13: Mã nguồn kiểm thử tự sinh 44 Hình 3.14: Kết chạy ca kiểm thử 45 Hình 3.15: Chi tiết ca kiểm thử bị thất bại 45 MỞ ĐẦU Kiến trúc phần mềm (Software Architecture) đề cập đến cấu trúc mức cao hệ thống phần mềm với quy tắc tài liệu việc tạo nên cấu trúc Mỗi kiến trúc bao gồm phần tử phần mềm, mối quan hệ chúng đặc tính phần tử quan hệ Kiến trúc hệ thống phần mềm phép ẩn dụ, tương tự kiến trúc tòa nhà Thực trạng nhiều hệ thống phần mềm xây dựng phức tạp, chi phí phát triển bảo trì cao, đặc biệt với hệ thống phần mềm cao cấp Hàng chục năm qua, nhiều đề tài nghiên cứu kiến trúc phần mềm cố gắng giải vấn đề Tuy nhiên, độ phức tạp tiếp tục tăng vượt khả xử lý kiến trúc truyền thống Điều ngày xuất nhiều công nghệ tạo nên môi trường không đồng nhất, nguyên nhân khác nhu cầu trao đổi tương tác ứng dụng ngày nhiều lên Những năm gần đây, kiến trúc hướng dịch vụ (Service-oriented Architecture - SOA) lên giải pháp tối ưu cho tốn Đặc điểm SOA tách rời phần giao tiếp/gọi dịch vụ với phần thực dịch vụ Tập hợp công nghệ WSDL (Web Services Description Language), SOAP (Simple Object Access Protocol) UDDI (Universal Description, Discovery and Integration), cho phép xây dựng giải pháp lập trình cho vấn đề tích hợp ứng dụng truyền thông điệp kiến trúc SOA Kiến trúc hướng dịch vụ (SOA) hướng tiếp cận việc tích hợp ứng dụng hệ thống, giải pháp cung cấp cách tiếp cận linh hoạt cho kiến trúc hệ thống phần mềm cho doanh nghiệp Hệ thống xây dựng theo kiến trúc SOA có tính mở rộng cao khả sử dụng lại tốt Các dịch vụ hệ thống công khai internet thông qua giao diện API giúp cho việc kết nối ứng dụng dễ dàng Ngôn ngữ mô tả dịch vụ web (WSDL) tiêu chuẩn dịch vụ web khác WS-policy cung cấp giao thức kết nối ứng dụng hệ thống SOA với Q trình ảo hóa chức nghiệp vụ doanh nghiệp mục tiêu kiến trúc hướng dịch vụ Các dịch vụ triển khai tảng công nghệ khác Java, NET… Bên yêu cầu gửi thông điệp tới bên nhận nhận lại phản hồi mà không cần quan tâm đến trình xử lý bên bên nhận Cơng nghệ trục tích hợp (Enterprise Service Bus - ESB) loại kiến trúc phần mềm, chứa tập luật nguyên tắc cho việc tích hợp nhiều ứng dụng khác (về tảng, ngôn ngữ ) vào hay nhiều hệ thống Công nghệ trục tích hợp cầu nối ứng dụng, dịch vụ kiến trúc hướng dịch vụ Áp dụng cơng nghệ trục tích hợp giúp cho thành phần hệ thống có tính tái sử dụng cao, chi phí cho việc phát triển tích hợp ứng dụng hay ứng dụng bên thứ ba thấp Tuy nhiên, tích hợp nhiều ứng dụng khác hệ thống làm cho trình kiểm thử trở nên khó khăn, phức tạp yêu cầu kiểm thử trở nên khắt khe Cơng nghệ trục tích hợp kết nối nhiều ứng dụng với nhau, kể ứng dụng ngồi doanh nghiệp, vậy, q trình kiểm thử hệ thống phải xem xét bao quát nhiều yếu tố: nhà cung cấp dịch vụ, thành phần dịch vụ, người dùng dịch vụ, giao tiếp thành phần Q trình kiểm thử hệ thống sử dụng cơng nghệ trục tích hợp tập trung vào giao tiếp thành phần tính có trao đổi tích hợp thơng tin, hay nói cách khác API, vậy, khơng thể thực phần kiểm thử giao diện người dùng Ngồi ra, q trình kiểm thử cần thực song song, tự động hóa với q trình phát triển, tích hợp thành phần vào hệ thống, giúp rút ngắn thời gian tiết kiệm chi phí Hiện nay, trình kiểm thử hệ thống sử dụng kiến trúc trục tích hợp gặp phải khó khăn xây dựng môi trường kiểm thử, sức ép thời gian phát triển ngắn, công cụ hỗ trợ chưa nhiều phải phí Việc dẫn tới quy trình kiểm thử chưa tự động hóa, quy trình bị rút ngắn bỏ qua, xảy lỗi ứng dụng hệ thống đòi hỏi việc tìm lỗi sửa đổi nhiều ứng dụng lúc, gây thời gian tốn tài nguyên, lỗi khơng kiểm sốt chặt chẽ Do đó, vấn đề cần giải quy trình tích hợp có nhiều thay đổi diễn liên tục hệ thống thời gian ngắn Ở toán này, quy trình tích hợp liên tục chuyển giao liên tục giải pháp phù hợp Tích hợp liên tục quy trình phát triển phần mềm đòi hỏi thay đổi hệ thống phải kiểm tra tự động, thông báo kết đến đội phát triển, trước thay đổi đưa lên môi trường triển khai thực tế theo quy trình triển khai liên tục Vì vậy, luận văn nghiên cứu, tìm hiểu, đề xuất quy trình kiểm thử tự động ứng dụng xây dựng công nghệ trục tích hợp cụ thể thư viện MuleESB, áp dụng quy trình tích hợp liên tục chuyển giao liên tục Đồng thời luận văn đưa cơng cụ hỗ trợ cho quy trình, giải vấn đề tự động hóa sinh ca kiểm thử, giúp rút ngắn thời gian kiểm thử Ngoài phần mở đầu kết luận, luận văn tổ chức thành chương sau Chương khái quát khái niệm kiến trúc hướng dịch vụ, cơng nghệ trục tích hợp, quy trình tích hợp, chuyển giao liên tục, cơng cụ hỗ trợ, lợi ích việc sử dụng cơng nghệ trục tích hợp việc phát triển ứng dụng doanh nghiệp số khái niệm liên quan đến kiểm thử ứng dụng Chương đưa thực trạng, khó khăn kiểm thử hệ thống sử dụng cơng nghệ trục tích hợp, phân tích vấn đề cần giải Chương đưa quy trình kiểm thử hệ thống công cụ tự động sinh mã nguồn kiểm thử hỗ trợ quy trình trình bày Chương đưa bước áp dụng thực tế quy trình với ứng dụng đơn giản xây dựng dựa MuleESB Phần tổng kết tóm tắt kết đạt được, điểm hạn chế định hướng phát triển tương lai 34 Hình 2.4: Biểu đồ gói model AsenAPIDriver Hình 2.5: Biểu đồ gói sinh mã Các bước thực sinh mã nguồn kiểm thử tự động dùng AsenAPIDriver (Hình 2.6) Hình 2.6: Các bước sinh mã kiểm thử tự động Bước 1: Với ứng dụng, kể ứng dụng web hay ứng dụng máy chủ, ln có tập tin cấu hình khởi tạo thời điểm khởi động ứng dụng, đây, ứng dụng xây dựng MuleE tập tin có tên mule-deploy.properties Tập tin cấu hình nơi chứa luồng xử lý nghiệp vụ ứng dụng Như hình 2.7 tập tin cấu hình có tên muleesbbegin.xml Bước 2: Từ tập tin định nghĩa luồng xử lý (muleesbbegin.xml), công cụ AsenAPIDriver thực đọc xác định luồng, tên luồng, đường dẫn gọi vào luồng cụ thể (xem hình 2.8) 35 Hình 2.7: Cấu hình khởi tạo ứng dụng Bước 3: Với luồng tương ứng, có thẻ xml với thuộc tính quy định đường dẫn gọi tới chức (xem hình 2.9) Từ cơng cụ AsenAPIDriver xác 36 định đọc tập tin dạng xml, csv excel chứa ca kiểm thử Các tập tin lưu trữ sẵn thư mục tài nguyên kiểm thử (test/resources) ứng dụng Bước 4: Trước sinh mã nguồn kiểm thử tự động, công cụ thực dọn dẹp thư mục mã nguồn kiểm thử Bước 5: Từ luồng xác định danh sách ca kiểm thử, công cụ thực sinh mã nguồn kiểm thử tương ứng Mỗi luồng có tập tin mã nguồn kiểm thử, số lượng phương thức cách thức chạy ca kiểm thử phụ thuộc vào số lượng ca kiểm thử, tuỳ vào luồng cụ thể Hình 2.8 hiển thị lớp kiểm thử sinh tự động từ công cụ AsenAPIDriver, lớp sinh mã nguồn kiểm thử cho luồng xử lý vấn tin thông tin người dùng Hình 2.8: Mã nguồn kiểm thử phương pháp sinh tự động Mã nguồn kiểm thử sinh AsenAPIDriver mã nguồn sử dụng MUnit để gọi luồng truyền vào tham số cho trước Kết trả so sánh với kết đầu mong đợi lấy từ danh sách ca kiểm thử Các đoạn mã nguồn sử dụng MUnit thích ký pháp JUnit, trình chạy đoạn mã nguồn kiểm thử cho kết hình IDE xuất thành báo cáo Quá trình sinh mã tự động xảy có thay đổi kho chứa mã nguồn việc thay đổi mã nguồn có thực làm ảnh hưởng đến kết trả chương trình hay khơng Ngồi ra, q trình kiểm thử thực luồng xử lý không quan tâm đến việc luồng có ảnh hưởng hay khơng Mỗi có thay đổi luồng xử lý nghiệp vụ (bussiness) mà có mang lại thay đổi kết đầu lập trình viên cần cập nhật lại tập tin chứa danh sách ca kiểm thử cho phù hợp với luồng xử lý Tại chương này, tác giả nêu khó khăn gặp phải q trình kiểm thử ứng dụng đề xuất quy trình kiểm thử áp dụng quy trình tích hợp chuyển giao liên tục Tác giả giới thiệu chi tiết cách thức hoạt động công cụ 37 AsenAPIDriver tự động sinh mã kiểm thử, vai trò cơng cụ quy trình Chương tiếp theo, luận văn tiến hành đánh giá quy trình đề xuất dựa ứng dụng MuleESB cụ thể 38 CHƯƠNG THỰC NGHIỆM Trong chương này, luận văn xây dựng hệ thống phần mềm nhỏ dựa vào tảng MuleESB ví dụ Từ ứng dụng đó, dựa vào quy trình thực phần trước, luận văn đưa cách thức cài đặt, sinh mã kiểm thử tích hợp liên tục hồn chỉnh Thơng qua phần cài đặt triển khai, luận văn đánh giá kết đạt điểm cần phải bổ sung 3.1 Ứng dụng MuleESB mẫu Để kiểm tra thực nghiệm quy trình kiểm thử chương trước, luận văn xây dựng ứng dụng ESB tảng MuleESB Ứng dụng có tên IB-ESB, ứng dụng ngân hàng điện tử, có chức cung cấp đầu dịch vụ (end-point) cho ứng dụng phía ngồi sau: tra cứu thơng tin doanh nghiệp, tra cứu thông tin người dùng, chuyển khoản hệ thống, vấn tin tài khoản Hình 3.1 mơ tả luồng xử lý ứng dụng IB-ESB Hình 3.1: Sơ đồ ứng dụng IB-ESB Chức tra cứu thông tin doanh nghiệp có đầu vào thơng tin định danh doanh nghiệp ngân hàng (cifno), từ thông tin cifno, hệ thống vấn tin vào hệ thống lõi ngân hàng (corebank), kết hợp với thông tin đăng ký dịch vụ ngân hàng điện tử sở liệu hệ thống IB, ứng dụng IB-ESB trả thông tin doanh nghiệp bao gồm: số cifno, tên doanh nghiệp, địa chỉ, mã số thuế, ngày đăng ký dịch vụ ngân hàng điện tử, trạng thái đăng ký dịch vụ Chức tra cứu thông tin người dùng yêu cầu thông tin đầu vào tên đăng nhập người dùng, từ ứng dụng trả thơng tin tương ứng cho người dùng bao gồm: tên 39 đăng nhập, họ tên đầy đủ, ngày sinh, chức vụ, định danh tên doanh nghiệp, số chứng minh nhân dân, ngày đăng ký trạng thái đăng ký ngân hàng điện tử Chức chuyển khoản hệ thống cho phép khách hàng thực chuyển tiền vào tài khoản mở ngân hàng, đầu vào yêu cầu dịch vụ bao gồm: tài khoản chuyển, số tiền chuyển, tài khoản nhận, tên tài khoản nhận nội dung giao dịch Đầu dịch vụ xác nhận khách hàng chuyển khoản thành cơng thơng tin phí thông báo lỗi tương ứng Vấn tin tài khoản trả thông tin số tài khoản, số dư, chi nhánh mở tài khoản, trạng thái tài khoản Đầu vào yêu cầu dịch vụ thông tin số tài khoản Cách thức tổ chức mã nguồn ứng dụng mẫu Mã nguồn ứng dụng mẫu chia thành gói (package), thư mục tương ứng với mã nguồn mẫu, mã nguồn ca kiểm thử, Hình 3.2 Hình 3.2: Cách phân chia thư mục ứng dụng MuleESB Theo đó, mã nguồn ứng dụng quản lý kho quản lý mã nguồn github đường dẫn https://github.com/Loandt1/TestMuleESB.git Các thư viện phụ thuộc ứng dụng quản lý maven 3.2 Tích hợp quy trình kiểm thử Bước 1: Tại hình chính, chọn “New Item” 40 Hình 3.3: Màn hình quản lý Jenkins Bước 2: Chọn tên ứng dụng loại ứng dụng, đây, ta chọn “Maven Project” hình tạo (xem Hình 3.4) Hình 3.4: Tạo tác vụ Jenkins Bước 3: nhập thông tin cấu hình cho ứng dụng bao gồm: kho mã nguồn, mơi trường dịch, bước dịch… (xem Hình 3.5) 41 Hình 3.5: Thơng tin chi tiết cấu hình tác vụ Tại hình cấu hình (xem Hình 3.6), Jenkins cho phép cấu hình thêm câu lệnh để hỗ trợ trình dịch qua shell, Windows batch command Hình 3.6: Tùy chọn tác vụ xử lý qua Windows command Tại đây, ta chọn “window command shell” để tích hợp với trình sinh mã nguồn kiểm thử tự động từ thư viện AsenAPIDriver (xem Hình 3.7) 42 Hình 3.7:Thêm cấu hình gọi AsenAPIDriver Bước 4: Sau thực lưu cấu hình, ta chọn “Build now” để thực chạy tác vụ (xem Hình 3.8) Hình 3.8: Quá trình chạy tác vụ Jenkin thực lấy mã nguồn cuối máy từ Github Trước biên dịch mã nguồn, Jenkins tự động gọi câu lệnh sinh mã nguồn từ thư viện AsenAPIDriver, sau đó, sử dụng maven-plugin thực đóng gói triển khai ứng dụng lên kho chứa Q trình đóng gói maven bao gồm biên dịch mã nguồn, chạy ca kiểm thử, đóng gói ứng dụng đẩy lên kho chứa tập trung theo cấu hình định sẵn Trong trình thực tác vụ, xảy lỗi, Jenkins tự động gửi mail cảnh báo theo cấu hình định sẵn Để gửi mail thơng báo lỗi, cấu hình máy chủ mail phải điền hình quản lý Jenkins đường dẫn: “Manage Jenkins => Configure System => E-mail Notification” (xem Hình 3.9) Jenkins cho phép cấu hình thơng tin máy chủ SMTP, hậu tố email nhận cảnh báo, ví dụ @gmail.com Ngồi ra, Jekins cung cấp thêm giải pháp xác 43 thực sử dụng SMTP, SSL, cổng SMTP, địa để người nhận mail gửi lại phản hồi… Sau thêm “E-mail notification Post-build Action”, Jenkins gửi mail tới địa người dùng cấu hình từ trước trường hợp như: biên dịch thất bại (build fail), biên dịch thành cơng sau có lần biên dịch thất bại, biên dịch không ổn định (với trường hợp hồi quy) Hình 3.9: Cấu hình thơng báo Email Sau trình chạy tác vụ, kết hiển thị hình ứng dụng (xem Hình 3.10) Hình 3.10: Lịch sử chạy tác vụ Ngoài bước trình bày trên, có nhiều cách để tạo cơng việc xây dựng, tùy chọn có sẵn nhiều, điều khiến Jenkins trở thành công cụ triển khai liên tục 3.3 Sinh mã kiểm thử Từ nguồn liệu để sinh mã kiểm thử (Hình 3.11 Hình 3.12), cơng cụ AsenAPIDriver sinh mã nguồn kiểm thử tương ứng với luồng nghiệp vụ ứng dụng 44 Hình 3.11: Dữ liệu đầu vào Hình 3.12: Dữ liệu đầu mong đợi Hình 3.13 mô tả kết sinh mã kiểm thử cho luồng xử lý vấn tin tài khoản ứng dụng IB-ESB Hình 3.13: Mã nguồn kiểm thử tự sinh Mã nguồn kiểm thử sinh tự động chạy Anypoint Studio cho kết kiểm thử Hình 3.14, ca kiểm thử thất bại ghi lịch sử lại rõ đâu khác biệt kết mong muốn kết thực tế (Hình 3.15) 45 Hình 3.14: Kết chạy ca kiểm thử Hình 3.15: Chi tiết ca kiểm thử bị thất bại 3.4 Kết Qua việc áp dụng quy trình tích hợp liên tục cơng cụ Jenkins, kết hợp với công cụ AsenAPIDriver tự động sinh ca kiểm thử, ta thấy rõ ưu điểm mà mang lại Quy trình giúp giảm thời gian kiểm thử mà đảm bảo chất lượng mã nguồn Bằng chế liên kết Jenkins github, thay đổi mã nguồn kiểm tra lại với ca kiểm thử lập tức, sau thơng báo đến đội phát triển thơng qua email Điều giúp cho quy trình phát triển tự động hóa khép kín Ngoài ra, hiệu làm việc đội phát triển cải thiện đáng kể Với việc thay đổi kiểm tra liên tục, vấn đề xảy sớm phát hiện, thông báo lại để sớm tìm giải pháp khắc phục, hạn chế lỗi tiềm tàng triển khai Qua trình thực nghiệm ứng dụng MuleESB cụ thể giải nghiệp vụ ngân hàng, luận văn bước tích hợp thực tế quy trình đánh giá hiệu quy trình đề xuất Chương tiếp theo, luận văn tổng kết lại nội dung trình bày đưa kết đạt được, điểm hạn chế đề xuất hướng tương lai 46 KẾT LUẬN Luận văn tìm hiểu khái niệm kiến trúc hướng dịch vụ, cơng nghệ trục tích hợp cầu nối thành phần hệ thống Cơng nghệ trục tích hợp giải tốt toán quản lý kết nối điều hướng, chuyển đổi tin so với phương thức kết nối point-to-point truyền thống Mặt khác, luận văn đặt tốn quy trình kiểm thử cho hệ thống sử dụng cơng nghệ trục tích hợp với khó khăn mơi trường kiểm thử hạn chế cơng cụ kiểm thử Theo đó, quy trình kiểm thử cần phải tự động kiểm tra với thay đổi hệ thống trước đưa đến môi trường triển khai thực tế nhằm tăng hiệu suất làm việc trình phát triển, tránh lỗi tiềm ẩn pha lập trình Vì vậy, quy trình tích hợp triển khai liên tục tác giả đưa áp dụng Mục tiêu luận văn xây dựng công cụ sinh mã kiểm thử tự động để hỗ trợ cho quy trình đề xuất Cơng cụ sinh có khả quét mã nguồn dự án sinh mã nguồn kiểm thử (test script) cho ứng dụng Kết hợp với công cụ quản lý dự án tự động, cơng cụ giúp hồn thiện quy trình kiểm thử từ tự động hóa tồn q trình kiểm thử triển khai ứng dụng lên máy chủ Quy trình kiểm thử hệ thống nêu luận văn hỗ trợ trình kiểm thử phần mềm kiểm soát tốt lỗi xảy hệ thống Quá trình kiểm thử diễn tự động liên tục giúp giảm thiểu thời gian lập trình cho lập trình viên, lỗi phát sớm trước triển khai môi trường thật, đặc biệt khiếm khuyết phần chỉnh sửa liên đới tới nhau, lỗi kiểm thử thông thường thủ cơng dễ bị bỏ qua Sau q trình thực hiện, tác giả hồn thiện quy trình kiểm thử tích hợp triển khai tự động ứng dụng xây dựng dựa tảng MuleESB việc xây dựng công cụ sinh ca kiểm thử tự động AsenAPIDriver, kết hợp với công cụ mã nguồn mở Jenkins, Github, JUnit, MUnit, Maven Việc xây dựng tích hợp công cụ AsenAPIDriver đáp ứng yêu cầu đặt cho quy trình kiểm thử ứng dụng ESB xây dựng tảng MuleESB Tuy nhiên, giới hạn thời gian, công cụ AsenAPIDriver đáp ứng loại luồng nghiệp vụ ứng dụng xây dựng tảng MuleESB Ngồi ra, cơng cụ hỗ trợ sinh ca kiểm thử chức năng, chưa bao quát ca kiểm thử phi chức bảo mật hiệu hệ thống Việc hỗ trợ kiểm thử loại luồng nghiệp vụ phức tạp khác, thực quét mã dò lỗi bảo mật XSS, SQL-injection… ứng dụng ESB, thực tích hợp đẩy tải để kiểm thử hiệu ứng dụng phát triển phiên Để hỗ trợ việc kiểm thử ứng dụng ESB hoàn thiện, tác giả cần phải triển khai thêm việc hỗ trợ kiểm thử loại luồng nghiệp vụ phức tạp khác Ngồi ra, cơng cụ cần phát triển thêm phần hỗ trợ kiểm thử hệ thống xây dựng 47 tảng trục tích hợp khác: ServiceMix, JbossESB Đồng thời, tác giả cần kết hợp nghiên cứu quy trình phần mềm để đưa chiến thuật kiểm thử tốt Trong tương lai, cơng cụ phát triển tích hợp với IDE Eclipse, Anypoint Studio… để thực sinh mã kiểm thử thời điểm lập trình, hỗ trợ cho lập trình viên kiểm tra ứng dụng thời điểm phát triển ứng dụng 48 TÀI LIỆU THAM KHẢO Dirk Slama, Dirk Krafzig and Karl Banke (2004), Enterprise SOA: ServiceOriented Architecture Best Practices, Prentice Hall Pulier, E., Taylor (2006), Understanding Enterprise SOA, Manning Dirk Krafzig (2005), "Enterprise SOA: Service-Oriented Architecture Best Practices," Falko Menge (2007), "Enterprise Service Bus," Free and open source software conference Srinivas Shenoy (2013), "Approach to ESB Testing” – An Experience Sharing" MuleSoft - "What is MuleESB", https://www.mulesoft.com/resources/esb/whatmule-esb Mule official website, https://www.mulesoft.com/ Gartner, "Gartner Magic quandrant leader”, https://www.mulesoft.com/lp/reports/gartner-magic-quadrant-leader Martin Fowler, "Continuous Integration", https://www.martinfowler.com/articles/continuousIntegration.html 10 Git, "Getting started - About version control,", https://gitscm.com/book/en/v1/Getting-Started-About-Version-Control 11 Glenford J Myers, Corey Sandler and Tom Badgett (2015), The Art of Software Testing 3rd Edition 12 Phạm Ngọc Hùng, Trương Anh Hoàng and Đặng Văn Hưng (2014), Giáo trình kiểm thử phần mềm 13 SoapUI, "SoapUI Getting started”, https://www.soapui.org/soap-and-wsdl/gettingstarted.html 14 Gregor Hohpe and Wendy Istanick (2002), "Test-Driven Development in Enterprise Integration Projects," 15 Maven official website, https://maven.apache.org/ 16 JUnit official website, https://junit.org/junit5/ 17 Jenkins official website, https://jenkins.io/ 18 Gregor Hohpe and Bobby Woolf (2004), Enterprise Integration Patterns, Pearson Education, 19 David A Chappell (2004), Enterprise Service Bus, O’Reilly 20 Git, "Getting started - About version control",https://gitscm.com/book/en/v1/Getting-Started-About-Version-Control ... HỌC CÔNG NGHỆ ĐINH THỊ LOAN TÌM HIỂU VÀ XÂY DỰNG CƠNG CỤ HỖ TRỢ KIỂM THỬ CÁC HỆ THỐNG HƯỚNG DỊCH VỤ Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm Mã số: 60480103 LUẬN VĂN THẠC SĨ... 12 1.2.3 Một số công cụ hỗ trợ 13 1.3 Kiểm thử 19 1.3.1 Các loại kiểm thử 19 1.3.2 Các cấp độ kiểm thử 20 1.3.3 Công cụ hỗ trợ kiểm thử ứng dụng API... thêm Những kỹ thuật kiểm thử kiểm thử hộp đen, kiểm thử hộp trắng, kiểm thử hộp xám cấp độ kiểm thử từ kiểm thử đơn vị đến kiểm thử chức năng, kiểm thử tích hợp, kiểm thử hồi quy kỹ thuật cần

Ngày đăng: 03/05/2019, 17:40

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