Tổng quan nghiên cứu

Trong kỷ nguyên số hóa ngành tài chính ngân hàng, hơn 75% các tổ chức doanh nghiệp đang phải đối mặt với thách thức tích hợp các hệ thống phần mềm không đồng nhất được xây dựng trên nhiều nền tảng công nghệ khác nhau như Java, .NET và Visual Basic. Mô hình kết nối điểm - điểm truyền thống bộc lộ nhiều điểm nghẽn nghiêm trọng, làm gia tăng chi phí bảo trì hệ thống lên tới 40% và khiến việc kiểm thử trở nên phức tạp do sự phụ thuộc chéo giữa các ứng dụng. Trước thực trạng đó, kiến trúc hướng dịch vụ kết hợp cùng công nghệ trục tích hợp nổi lên như một giải pháp then chốt nhằm chuẩn hóa giao tiếp và nâng cao khả năng tái sử dụng tài nguyên phần mềm.

Tuy nhiên, việc tích hợp đa ứng dụng trên cùng một trục dịch vụ đặt ra bài toán kiểm thử khắt khe, đặc biệt là sự thiếu hụt các công cụ tự động hóa kiểm thử giao diện lập trình ứng dụng chuyên dụng. Luận văn thạc sĩ chuyên ngành Kỹ thuật phần mềm với mã số 60480103 của tác giả Đinh Thị Loan, dưới sự hướng dẫn khoa học của Tiến sĩ Võ Đình Hiếu tại Trường Đại học Công nghệ thuộc Đại học Quốc gia Hà Nội vào năm 2018, đã tập trung giải quyết triệt để vấn đề này. Mục tiêu cốt lõi của đề tài là nghiên cứu, đề xuất quy trình kiểm thử tự động áp dụng tích hợp liên tục và chuyển giao liên tục cho các ứng dụng trục tích hợp phát triển trên nền tảng MuleESB, đồng thời xây dựng công cụ AsenAPIDriver nhằm tự động sinh mã kiểm thử. Nghiên cứu thực nghiệm trên hệ thống ngân hàng điện tử cho thấy giải pháp giúp rút ngắn thời gian triển khai ứng dụng xuống dưới 60 giây và cắt giảm hơn 65% thời gian tạo mã kiểm thử thủ công, mang lại giá trị thực tiễn cao cho quy trình đảm bảo chất lượng phần mềm doanh nghiệp.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Khung lý thuyết của nghiên cứu được xây dựng vững chắc trên 3 trụ cột công nghệ chính: lý thuyết kiến trúc hướng dịch vụ, công nghệ trục tích hợp doanh nghiệp và mô hình tích hợp, chuyển giao liên tục trong kỹ thuật phần mềm hiện đại. Kiến trúc hướng dịch vụ là một chiến lược thiết kế hệ thống dựa trên 4 khái niệm trừu tượng nền tảng gồm ứng dụng đầu cuối, dịch vụ, kho dịch vụ và trục tích hợp, cho phép các thành phần giao tiếp linh hoạt qua các giao thức chuẩn hóa như SOAP và RESTful. Trục tích hợp doanh nghiệp đóng vai trò xương sống trung gian, cung cấp cơ chế định tuyến thông điệp, chuyển đổi dữ liệu và xử lý các luồng nghiệp vụ đồng bộ lẫn bất đồng bộ giữa các hệ thống phân tán.

Nghiên cứu tập trung khai thác 5 khái niệm cốt lõi: nền tảng MuleESB với cơ chế điều hướng luồng dữ liệu bằng các bộ chuyển đổi thông minh; quy trình tích hợp liên tục của Martin Fowler; hệ thống quản lý phiên bản phân tán Git; công cụ tự động hóa đóng gói Maven; và các cấp độ kiểm thử phần mềm từ kiểm thử đơn vị, kiểm thử tích hợp đến kiểm thử hồi quy theo chuẩn IEEE 610-90. Hệ thống tích hợp liên tục sử dụng công cụ Jenkins với khả năng mở rộng thông qua hơn 400 plugin bổ trợ, kết hợp cùng các khung kiểm thử Java như JUnit và thư viện chuyên biệt MUnit của MuleSoft để thiết lập chu trình kiểm thử tự động khép kín.

Phương pháp nghiên cứu

Nghiên cứu sử dụng phương pháp thực nghiệm kết hợp phân tích cú pháp tĩnh và tổng hợp động từ các nguồn dữ liệu kỹ thuật thực tế. Dữ liệu đầu vào bao gồm các tệp tin cấu hình luồng nghiệp vụ dạng XML của ứng dụng MuleESB, tập tin khởi tạo triển khai và các ma trận dữ liệu kiểm thử được định dạng dưới dạng bảng tính Excel chứa thông tin chi tiết về tham số đầu vào cùng kết quả đầu ra kỳ vọng.

Về cỡ mẫu và phương pháp chọn mẫu, nghiên cứu áp dụng phương pháp chọn mẫu có chủ đích, tập trung vào 4 luồng dịch vụ tài chính cốt lõi trong hệ thống ngân hàng điện tử mẫu gồm tra cứu thông tin doanh nghiệp, tra cứu người dùng, chuyển khoản nội bộ và vấn tin số dư tài khoản. Mẫu nghiên cứu này đại diện đầy đủ cho 100% các dạng tương tác giao dịch phổ biến trong hệ thống ngân hàng, bao gồm truy vấn cơ sở dữ liệu nội bộ và kết nối hệ thống ngân hàng lõi CoreBanking. Phương pháp phân tích cú pháp DOM Parser trên Java được lựa chọn nhờ khả năng bóc tách chính xác 100% cấu trúc thẻ XML, trích xuất thuộc tính điểm nối và ánh xạ trực tiếp sang các đối tượng kiểm thử. Toàn bộ quy trình nghiên cứu, xây dựng công cụ và thực nghiệm kiểm chứng được triển khai hoàn thiện trong khung thời gian 12 tháng của năm 2018.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Nghiên cứu đã đạt được những kết quả nổi bật qua việc phát triển công cụ AsenAPIDriver và thiết lập quy trình kiểm thử tự động cho hệ thống hướng dịch vụ:

Thứ nhất, công cụ AsenAPIDriver phát triển trên nền tảng Java đã tự động hóa hoàn toàn 100% công đoạn sinh mã nguồn kiểm thử MUnit và JUnit từ các luồng XML và ma trận kiểm thử Excel. Thời gian tạo bộ mã kiểm thử cho một luồng nghiệp vụ phức tạp giảm từ khoảng 2 giờ khi viết thủ công xuống còn dưới 30 giây khi thực hiện qua công cụ, đạt tỷ lệ tối ưu hóa thời gian lên đến trên 95%.

Thứ hai, việc tích hợp chuỗi công cụ gồm Git, Jenkins, Maven và AsenAPIDriver đã thiết lập thành công quy trình kiểm thử và chuyển giao liên tục hoàn chỉnh. Khi lập trình viên thực hiện đẩy mã nguồn mới lên kho lưu trữ, hệ thống tự động kích hoạt tiến trình lấy mã nguồn, sinh ca kiểm thử, biên dịch và thực thi toàn bộ các ca kiểm thử. Ứng dụng mẫu được đóng gói và triển khai tự động với thời gian gián đoạn hệ thống đo được ở mức dưới 60 giây, đảm bảo tính liên tục cho các dịch vụ trực tuyến.

Thứ ba, việc chuyển đổi từ kiến trúc kết nối điểm - điểm sang kiến trúc trục tích hợp MuleESB đã giảm thiểu hơn 80% các kết nối chồng chéo giữa các ứng dụng khách hàng, cổng thanh toán và hệ thống quản trị ngân hàng. Điều này giúp loại bỏ hoàn toàn tình trạng trùng lặp mã nguồn xử lý trung gian và nâng cao độ ổn định cho toàn bộ hạ tầng dịch vụ.

Thứ tư, cơ chế kiểm thử hồi quy tự động giúp kiểm soát lỗi chặt chẽ, phát hiện sớm các sai sót logic ngay trong giai đoạn biên dịch mã nguồn, giúp giảm thiểu khoảng 60% nguy cơ phát sinh lỗi tiềm ẩn so với phương pháp kiểm thử thủ công sau triển khai.

Thảo luận kết quả

Hiệu quả vượt trội của giải pháp xuất phát từ việc khai thác triệt để cấu trúc mô tả dựa trên XML của nền tảng MuleESB. Thay vì phải phụ thuộc vào các giải pháp thương mại đóng gói đắt đỏ như Oracle Service Bus hay IBM WebSphere ESB với chi phí bản quyền hàng trăm nghìn USD, việc sử dụng nền tảng mã nguồn mở MuleESB kết hợp cùng AsenAPIDriver mang lại sự linh hoạt tối đa và khả năng làm chủ hoàn toàn mã nguồn cho doanh nghiệp. So với các công cụ kiểm thử API truyền thống như Postman hay SoapUI vốn đòi hỏi cấu hình thủ công từng lời gọi hoặc phải trả phí cho tính năng báo cáo nâng cao, AsenAPIDriver tạo ra các lớp kiểm thử Java thuần túy, tương thích trực tiếp với vòng đời xây dựng phần mềm của Maven.

Dữ liệu thực nghiệm của nghiên cứu có thể được biểu diễn một cách trực quan thông qua bảng so sánh hiệu năng thực thi giữa kiểm thử thủ công và kiểm thử tự động, cùng sơ đồ tuần tự thể hiện các bước điều hướng bản tin từ giao diện lập trình ứng dụng đến hệ thống ngân hàng lõi CoreBanking. Biểu đồ lịch sử thực thi tác vụ trên giao diện quản trị Jenkins phản ánh rõ ràng tỷ lệ các ca kiểm thử thành công đạt 100% sau khi sửa lỗi, minh chứng cho tính ổn định và khả năng cảnh báo sự cố tức thời qua thư điện tử của quy trình đề xuất.

Đề xuất và khuyến nghị

Dựa trên kết quả nghiên cứu lý thuyết và thực nghiệm, luận văn đưa ra 4 nhóm giải pháp cụ thể nhằm tối ưu hóa quy trình kiểm thử và tích hợp hệ thống hướng dịch vụ:

Một là, nâng cấp và hoàn thiện công cụ AsenAPIDriver bằng việc bổ sung các bộ phân tích định dạng giao diện lập trình hiện đại như RAML, OpenAPI Specification và JSON Schema. Mục tiêu là đạt độ bao phủ kiểm thử trên 95% cho cả hai giao thức RESTful và SOAP trong vòng 6 tháng tới, do nhóm nghiên cứu kỹ thuật phần mềm chủ trì thực hiện.

Hai là, triển khai chuẩn hóa quy trình tích hợp liên tục và chuyển giao liên tục trên toàn bộ các dự án phát triển phần mềm doanh nghiệp. Đội ngũ kỹ sư phát triển và chuyên viên kiểm thử cần phối hợp thiết lập các kịch bản kích hoạt kiểm thử tự động qua Webhook của Git và cấu hình máy chủ Jenkins, hướng tới mục tiêu giảm 100% các thao tác đóng gói thủ công trong thời gian 3 tháng.

Ba là, xây dựng môi trường kiểm thử ảo hóa dịch vụ thông qua việc áp dụng kỹ thuật giả lập các điểm kết nối bên ngoài như cổng thanh toán điện tử và hệ thống kho bạc. Giải pháp này giúp loại bỏ 90% sự phụ thuộc vào hạ tầng thực tế của đối tác thứ ba, rút ngắn thời gian chuẩn bị môi trường kiểm thử từ vài tuần xuống còn dưới 2 ngày làm việc, do phòng kiến trúc hạ tầng phụ trách.

Bốn là, tổ chức các khóa đào tạo chuyên môn định kỳ hàng quý cho đội ngũ kiểm thử viên về phương pháp thiết kế dữ liệu kiểm thử chuẩn hóa trên Excel và XML, đảm bảo 100% nhân sự đảm bảo chất lượng làm chủ quy trình kiểm thử tự động hướng dịch vụ trong vòng 9 tháng.

Đối tượng nên tham khảo luận văn

Công trình nghiên cứu mang lại giá trị học thuật và ứng dụng thực tiễn sâu rộng cho 4 nhóm đối tượng cụ thể:

Nhóm thứ nhất là các kiến trúc sư phần mềm và kỹ sư phát triển hệ thống doanh nghiệp. Luận văn cung cấp tài liệu tham khảo chi tiết về cách thức thiết kế trục tích hợp MuleESB, chuyển đổi kiến trúc điểm - điểm sang hướng dịch vụ để tối ưu hóa hơn 80% các luồng luân chuyển dữ liệu trong môi trường ngân hàng.

Nhóm thứ hai là các chuyên viên kiểm thử và kỹ sư đảm bảo chất lượng phần mềm. Luận văn mở ra hướng tiếp cận tự động hóa sinh mã kiểm thử từ tệp tin cấu hình, giúp giảm trên 65% thời gian viết mã kiểm thử MUnit và nâng cao độ chính xác trong kiểm thử giao diện lập trình ứng dụng.

Nhóm thứ ba là các kỹ sư vận hành và triển khai hệ sinh thái DevOps. Tài liệu cung cấp hướng dẫn từng bước về việc tích hợp Jenkins, Maven, Git để xây dựng chu trình chuyển giao liên tục, đạt thời gian ngắt dịch vụ dưới 60 giây và tự động gửi thông báo lỗi qua hệ thống thư điện tử.

Nhóm thứ tư là các học viên cao học, giảng viên và nhà nghiên cứu công nghệ thông tin. Đây là nguồn tư liệu học thuật giá trị về kỹ thuật phần mềm ứng dụng, cung cấp nền tảng vững chắc để tiếp tục mở rộng nghiên cứu sang kiểm thử kiến trúc vi dịch vụ Microservices và điện toán đám mây.

Câu hỏi thường gặp

Kiến trúc trục tích hợp doanh nghiệp giải quyết triệt để vấn đề gì trong hệ thống ngân hàng điện tử? Công nghệ trục tích hợp đóng vai trò làm cầu nối trung gian, xóa bỏ mô hình kết nối điểm - điểm phức tạp giữa ứng dụng di động, cổng thanh toán và ngân hàng lõi CoreBanking. Giải pháp này giúp chuẩn hóa dữ liệu, giảm thiểu hơn 80% sự phụ thuộc lẫn nhau giữa các hệ thống và hạ thời gian ngắt quãng khi triển khai xuống dưới 60 giây.

Công cụ AsenAPIDriver hoạt động dựa trên nguyên lý kỹ thuật nào để tự động sinh mã kiểm thử? AsenAPIDriver sử dụng bộ phân tích DOM Parser trên nền tảng Java để quét các tệp tin cấu hình XML của ứng dụng MuleESB nhằm xác định luồng dữ liệu, sau đó kết hợp với dữ liệu đầu vào và kết quả kỳ vọng từ tệp Excel để tự động sinh ra mã nguồn kiểm thử MUnit tương thích hoàn toàn với JUnit.

Tại sao quy trình kiểm thử hệ thống trục tích hợp lại tập trung chủ yếu vào giao diện lập trình ứng dụng thay vì giao diện người dùng? Hệ thống trục tích hợp hoạt động như lớp trung gian xử lý, định tuyến và biến đổi thông điệp giữa các phần mềm độc lập. Do đó, các tính năng cốt lõi đều được thể hiện qua các giao diện lập trình ứng dụng dạng REST hoặc SOAP mà không có giao diện đồ họa trực tiếp, đòi hỏi kiểm thử tập trung vào tính toàn vẹn của dữ liệu truyền nhận.

Sự kết hợp giữa Jenkins và Maven mang lại giá trị gì trong quy trình kiểm thử tự động? Maven chịu trách nhiệm quản lý thư viện phụ thuộc, biên dịch mã nguồn và tự động thực thi các ca kiểm thử Java, trong khi Jenkins quản lý toàn bộ vòng đời tích hợp liên tục. Khi có commit mới từ Git, Jenkins tự động gọi Maven để kiểm thử và đóng gói, giúp phát hiện lỗi lập trình sớm và tối ưu hóa 100% quy trình triển khai.

Làm thế nào để kiểm thử hệ thống khi các dịch vụ của bên thứ ba như cổng thanh toán chưa sẵn sàng? Giải pháp tối ưu là áp dụng kỹ thuật kiểm thử đơn vị kết hợp mô phỏng điểm kết nối thông qua thư viện MUnit. Kiểm thử viên có thể giả lập các phản hồi từ cổng thanh toán hoặc ngân hàng lõi ngay trên máy trạm mà không cần kết nối môi trường thực tế, giúp tiết kiệm hơn 70% thời gian chờ đợi hạ tầng.

Kết luận

Nghiên cứu của luận văn đã giải quyết xuất sắc bài toán kiểm thử trong môi trường phần mềm phức tạp thông qua các đóng góp trọng tâm:

  • Hệ thống hóa toàn diện cơ sở lý thuyết về kiến trúc hướng dịch vụ, công nghệ trục tích hợp MuleESB và mô hình kiểm thử tự động trong chu trình tích hợp liên tục.
  • Thiết kế và phát triển thành công công cụ AsenAPIDriver bằng ngôn ngữ Java, tự động hóa 100% quá trình sinh mã kiểm thử MUnit từ cấu hình XML và dữ liệu Excel.
  • Tích hợp thành công chuỗi công cụ tự động hóa gồm Git, Jenkins, Maven, JUnit, rút ngắn thời gian triển khai ứng dụng xuống dưới 60 giây.
  • Ứng dụng thực nghiệm thành công trên hệ thống ngân hàng điện tử mẫu IB-ESB với 4 luồng nghiệp vụ tài chính có độ phức tạp cao.
  • Cắt giảm trên 65% thời gian tạo mã kiểm thử thủ công và giảm thiểu khoảng 60% rủi ro phát sinh lỗi trong quá trình tích hợp hệ thống.

Đóng góp chính của luận văn là đã cung cấp một giải pháp công nghệ hoàn chỉnh, kết hợp hài hòa giữa công cụ tự động sinh mã và quy trình tích hợp liên tục nhằm nâng cao chất lượng phần mềm hướng dịch vụ. Trong giai đoạn 12 đến 24 tháng tới, định hướng nghiên cứu tiếp theo sẽ tập trung mở rộng công cụ AsenAPIDriver để hỗ trợ kiểm thử kiến trúc vi dịch vụ Microservices, tối ưu hóa thuật toán sinh dữ liệu kiểm thử thông minh và tích hợp kiểm thử hiệu năng tự động. Các doanh nghiệp và tổ chức tài chính nên nhanh chóng tham khảo, áp dụng quy trình kiểm thử tự động này vào hạ tầng phát triển phần mềm để nâng cao năng lực cạnh tranh và đảm bảo an toàn vận hành hệ thống.