Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 55 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
55
Dung lượng
2,61 MB
Nội dung
1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI 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Ụ LUẬN VĂN THẠC SĨ 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 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Ĩ 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 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 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 sĩ 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 MỤC LỤC DANH MỤC CÁC KÝ HIỆU VÀ 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 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 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 Quá 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 q 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 ngồi 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 q 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, 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 Quá 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, q 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 ngun, 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 Ở tố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 CHƯƠNG CƠ SỞ LÝ THUYẾT VÀ CÁC KHÁI NIỆM LIÊN QUAN Ngày nay, việc phát triển phần mềm trở nên phức tạp khó kiểm sốt xuất nhiều cơng nghệ tạo nên môi trường phát triển tảng không đồng nhất, nhu cầu trao đổi, chia sẻ tương tác ứng dụng ngày tăng Trong năm gần đây, việc phát triển hệ thống phần mềm dần chuyển sang xu hướng dịch vụ đó, cơng nghệ trục tích hợp giải pháp sử dụng để cung cấp cổng giao tiếp thành phần hệ thống hướng dịch vụ Cơng nghệ trục tích hợp có khả kết nối nhiều thành phần nhiều tảng, nhiều ngôn ngữ khác nhau, hỗ trợ việc trao đổi thông tin qua lại hệ thống Tuy nhiên vấn đề đặt cần đảm bảo khả kiểm soát lỗi tốt song song với trình phát triển mà lúc có nhiều thành phần tích hợp 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 thiết để áp dụng vấn đề Ngoài quy trình tích hợp, chuyển giao triển khai liên tục cần áp dụng để hỗ trợ quy trình kiểm thử Để giúp làm rõ nội dung chương tiếp theo, chương giới thiệu khái niệm kiến trúc hướng dịch vụ, cơng nghệ trục tích hợp, giới thiệu tảng trục tích hợp MuleSoft phát triển - MuleESB, quy trình tích hợp, triển khai liên tục, số công cụ hỗ trợ khái niệm kiểm thử 1.1 Kiến trúc hệ thống 1.1.1 Kiến trúc hướng dịch vụ Kiến trúc hướng dịch vụ (Service Oriented Architecture - SOA) [1] [2] chiến lược xây dựng kiến trúc phần mềm Đây trình tích hợp thành phần độc lập kết nối với cách linh động thông qua giao thức định nghĩa sẵn, tính tái sử dụng cao SOA giúp cho công việc phát triển phần mềm trở nên dễ dàng nhanh chóng Khái niệm dịch vụ hệ thống SOA hiểu chức xác định rõ ràng, khép kín khơng phụ thuộc vào ngữ cảnh trạng thái dịch vụ khác Một kiến trúc hướng dịch vụ dựa khái niệm trừu tượng chính: ứng dụng đầu cuối, dịch vụ, kho dịch vụ trục tích hợp (xem Hình 1.1) Một dịch vụ bao gồm triển khai (implementation) cung cấp liệu cho logic nghiệp vụ, hợp đồng dịch vụ (contract) định chức năng, cách sử dụng ràng buộc cho khách hàng dịch vụ giao diện (interface) để kết nối Kho lưu trữ dịch vụ 10 lưu trữ hợp đồng dịch vụ dịch vụ riêng lẻ kiến trúc SOA trục tích hợp dịch vụ (service bus) kết nối giao diện dịch vụ đầu cuối [3] Hình 1.1: Các cơng nghệ hệ thống SOA Ứng dụng đầu cuối lớp có chức kích hoạt điều khiển hoạt động hệ thống ứng dụng doanh nghiệp Có nhiều loại ứng dụng đầu cuối, đó, ứng dụng đầu cuối cung cấp giao diện tương tác với người dùng ứng dụng web rich-client Tuy nhiên, ứng dụng đầu cuối không thiết phải tương tác trực tiếp với người dùng Các chương trình chạy theo lơ (Batch programming) hay tiến trình chạy tự động gọi đến chức hệ thống kết kiện coi ứng dụng đầu cuối Kho chứa dịch vụ sử dụng để tích hợp ứng dụng doanh nghiệp, doanh nghiệp thường có yêu cầu khác nhau, kho lưu trữ công khai (publish) qua mạng Internet Các yêu cầu bao gồm vấn đề pháp lý (điều khoản điều kiện sử dụng), kiểu trình bày, bảo mật, đăng ký người dùng, đăng ký dịch vụ, toán quản lý phiên SOA cấp độ cao phát triển ứng dụng, trọng đến quy trình nghiệp vụ dùng giao tiếp chuẩn để nhằm che giấu cách thức phát triển bên ứng dụng Các thành phần nối kết qua cổng giao tiếp, có tính kế thừa thành phần tồn tại, tương tác chúng không cần quan tâm đến việc chúng phát triển tảng cơng nghệ Điều khiến hệ thống mở rộng tích hợp cách dễ dàng Kiến trúc SOA có ưu điểm như: tính tái sử dụng, tính linh hoạt, thành phần kiến trúc liên kết khơng chặt, có ràng buộc với Các dịch vụ kiến trúc SOA có tính tự trị, có quyền kiểm sốt dựa vào logic bên dịch vụ SOA cung cấp khả tương thích nhiều tảng ngơn ngữ, tính đóng gói, thành phần hoạt động phi trạng thái người dùng tìm kiếm, sử dụng dịch vụ theo nhu cầu 41 danh sách TestCase Lớp CodeGenerator có nhiệm vụ sinh ca kiểm thử từ thông tin ca kiểm thử thơng tin luồng Sau đó, nghiệp vụ chương trình thực thi lớp AsenAPIDriver Hình 2.32: Biểu đồ gói model AsenAPIDriver Hình 2.33: 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.34) Hình 2.34: 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 42 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) Hình 2.35: Cấu hình khởi tạo ứng dụng 43 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 đị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.36 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 44 Hình 2.36: 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ụ 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ể 45 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.37 mơ tả luồng xử lý ứng dụng IB-ESB Hình 3.37: 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ụ 46 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 đă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.38 Hình 3.38: 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” 47 Hình 3.39: 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.40) Hình 3.40: 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.41) 48 Hình 3.41: 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.42), 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.42: 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 q trình sinh mã nguồn kiểm thử tự động từ thư viện AsenAPIDriver (xem Hình 3.43) 49 Hình 3.43: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.44) Hình 3.44: 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.45) 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 cịn cung cấp thêm giải pháp xác 50 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.45: 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.46) Hình 3.46: Lịch sử chạy tác vụ Ngồ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.47 Hình 3.48), cơng cụ AsenAPIDriver sinh mã nguồn kiểm thử tương ứng với luồng nghiệp vụ ứng dụng 51 Hình 3.47: Dữ liệu đầu vào Hình 3.48: Dữ liệu đầu mong đợi Hình 3.49 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.49: 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.50, 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.51) 52 Hình 3.50: Kết chạy ca kiểm thử Hình 3.51: 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 Ngồ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 53 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 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 Ngoài ra, 54 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 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 55 TÀI LIỆU THAM KHẢO Dirk Slama, Dirk Krafzig and Karl Banke (2004), Enterprise SOA: Service- Oriented 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ợp 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...ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI 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... SOAPUI [13] công cụ hỗ trợ kiểm thử API sử dụng phổ biến Đây cơng cụ kiểm thử có tảng mã nguồn mở hàng đầu cho phép kiểm thử viên thực loại kiểm thử như: kiểm thử chức năng, hồi quy, thử tải cách