Tổng quan nghiên cứu

Trong quy trình công nghệ phần mềm hiện đại, hoạt động đảm bảo chất lượng thường chiếm từ 40% đến 50% tổng ngân sách dự án, trong đó kiểm thử tương tác giao diện người dùng tiêu tốn hơn 60% thời gian thực thi thủ công. Sự phát triển mạnh mẽ của các ứng dụng web phức tạp đặt ra yêu cầu cấp thiết về độ tin cậy và tính khả dụng của sản phẩm. Tuy nhiên, các phương pháp kiểm thử thủ công truyền thống bộc lộ rõ sự chậm trễ, chi phí nhân lực cao và nguy cơ bỏ sót các lỗi logic tương tác. Kiểm thử tự động giao diện dựa trên mô hình nổi lên như một giải pháp tiềm năng, nhưng các kỹ thuật trước đây vẫn tồn tại nhược điểm lớn khi yêu cầu chuyên viên phải chuẩn bị thủ công hơn 70% khối lượng dữ liệu đầu vào.

Luận văn tập trung giải quyết bài toán cốt lõi: Làm thế nào để tự động hóa toàn diện quy trình kiểm thử tương tác giao diện người dùng cho ứng dụng web, từ khâu mô hình hóa hành vi đến tự động sinh kịch bản và dữ liệu kiểm thử. Mục tiêu cụ thể là nghiên cứu phương pháp đặc tả giao diện bằng máy trạng thái hữu hạn, hoàn thiện thuật toán ghép nối mô hình tổng thể và cải tiến công cụ kiểm thử tự động ATWA nhằm sinh bộ kiểm thử hoàn toàn tự động.

Nghiên cứu được triển khai thực nghiệm trên các hệ thống web thực tế tại Công ty Cổ phần Phần mềm FPT trong giai đoạn năm 2015 đến năm 2016, lồng ghép vào quy trình kiểm thử chấp nhận của mô hình phát triển phần mềm Agile. Kết quả nghiên cứu mang ý nghĩa thực tiễn sâu sắc, giúp giảm hơn 55% công sức thiết lập ca kiểm thử, nâng tỷ lệ tự động hóa quy trình lên xấp xỉ 90% và đảm bảo độ bao phủ kiểm thử đạt mức tối đa trên toàn bộ các tương tác chức năng.

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

Khung lý thuyết áp dụng

Nghiên cứu được xây dựng trên nền tảng lý thuyết kiểm thử dựa trên mô hình, xem xét các hành vi của ứng dụng dưới dạng các mô hình toán học hình thức nhằm kiểm tra tính đúng đắn giữa tài liệu thiết kế và phần mềm thực tế.

Khung lý thuyết cốt lõi bao gồm hai mô hình hình thức chính:

Mô hình máy trạng thái hữu hạn hoặc ô-tô-mát trạng thái hữu hạn: Đây là phương pháp biểu diễn hành vi của từng trang web độc lập. Mỗi trang web được định nghĩa dưới dạng một bộ 5 thành phần hình thức gồm: tập hợp hữu hạn các trạng thái giao diện, trạng thái khởi tạo khi tải trang, tập hợp các sự kiện tương tác của người dùng, hàm chuyển trạng thái logic và tập hợp các trạng thái kết thúc chuỗi thao tác.

Mô hình ghép nối ô-tô-mát hữu hạn: Để giải quyết bài toán phức tạp của toàn bộ ứng dụng web chứa nhiều trang liên kết, lý thuyết ghép nối mô hình được áp dụng. Phương pháp này xác định trang web mốc làm điểm khởi đầu, sau đó sử dụng các phép toán hợp nhất tập trạng thái và quan hệ chuyển tiếp để tạo thành một ô-tô-mát toàn cục duy nhất, đảm bảo tính nhất quán trên toàn bộ hệ thống.

Bên cạnh đó, nghiên cứu làm rõ 4 khái niệm kỹ thuật căn bản:

  • Phần tử web: Các thẻ HTML đại diện cho đối tượng tương tác như ô nhập văn bản, nút bấm, hộp lựa chọn, liên kết điều hướng.
  • Trạng thái trang web: Tập hợp giá trị hiển thị và thuộc tính của các phần tử tại một thời điểm xác định.
  • Sự kiện tương tác: Các hành động cụ thể của người dùng tác động lên phần tử web, bao gồm 4 nhóm thao tác chính là thêm văn bản, xóa văn bản, nhấp chuột và lựa chọn danh sách.
  • Đường dẫn kiểm thử: Chuỗi chuyển đổi trạng thái liên tiếp từ điểm bắt đầu đến điểm kết thúc biểu diễn một kịch bản sử dụng hoàn chỉnh.

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

Nguồn dữ liệu thực nghiệm được thu thập trực tiếp từ hệ thống quản lý thông tin tổ chức tại Công ty Cổ phần Phần mềm FPT. Bộ dữ liệu khảo sát bao gồm 12 màn hình giao diện chính, hơn 45 biểu mẫu tương tác dữ liệu và 150 phần tử web có độ phức tạp cao, chứa nhiều ràng buộc phụ thuộc giữa các trường thông tin.

Phương pháp chọn mẫu là phương pháp chọn mẫu có chủ đích, tập trung vào các phân hệ nghiệp vụ có tần suất người dùng thao tác cao như danh sách tổ chức, chi tiết tổ chức và các phân hệ dịch vụ bổ trợ. Lý do lựa chọn cách tiếp cận này là vì các phân hệ quản trị doanh nghiệp sở hữu cấu trúc trạng thái phức tạp, độ rẽ nhánh cao, mang tính đại diện lý tưởng để kiểm chứng tính mở rộng của mô hình ô-tô-mát.

Phương pháp phân tích dựa trên sự tích hợp giữa lý thuyết hình thức và công nghệ phần mềm thực thi. Mô hình ô-tô-mát được thiết kế và kiểm tra logic thông qua công cụ JFLAP, sau đó được cấu trúc hóa thành 4 bảng dữ liệu trong tệp Microsoft Excel gồm: bảng phần tử web, bảng trạng thái, bảng sự kiện và bảng chuyển trạng thái. Dữ liệu này được nạp vào công cụ ATWA được phát triển trên nền tảng Java kết hợp với thư viện Selenium WebDriver để thực thi tự động trực tiếp trên trình duyệt web. Timeline nghiên cứu và thử nghiệm được thực hiện xuyên suốt trong 8 tháng từ tháng 8/2015 đến tháng 3/2016 qua nhiều vòng lặp nước rút của quy trình Agile.

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

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

Quá trình thực nghiệm giải pháp và công cụ kiểm thử tự động trên hệ thống web doanh nghiệp đã đem lại 4 phát hiện quan trọng:

Thứ nhất, việc cải tiến công cụ ATWA đã triệt tiêu sự phụ thuộc vào thao tác thủ công khi chuẩn bị dữ liệu đầu vào. Tỷ lệ công việc thủ công giảm mạnh từ mức hơn 70% trong các nghiên cứu trước đây xuống còn dưới 15%, chủ yếu chỉ còn ở bước nhập các giá trị biên đặc biệt.

Thứ hai, thuật toán sinh tự động đường dẫn kiểm thử từ mô hình FSM đạt độ bao phủ chuyển trạng thái 100%. Cụ thể tại phân hệ chi tiết tổ chức, hệ thống đã tự động tạo ra 28 đường dẫn kiểm thử hoàn chỉnh, bao quát toàn bộ các kịch bản tương tác đơn lẻ và tương tác kết hợp giữa 3 trường dữ liệu chính là địa chỉ, quốc gia và trạng thái ưu tiên.

Thứ ba, tốc độ thực thi kiểm thử được nâng cao vượt bậc. Toàn bộ 28 ca kiểm thử tự động được thực thi hoàn tất trong thời gian 11,5 phút qua Selenium WebDriver, nhanh hơn gấp 4,3 lần so với thời gian kiểm thử thủ công cùng khối lượng kịch bản là 50 phút.

Thứ tư, độ chính xác trong việc phát hiện sai lệch giữa mã nguồn thực tế và tài liệu thiết kế đạt mức 94%. Công cụ đã tự động ghi nhận chính xác 5 lỗi sai lệch thuộc tính giao diện và 2 trường hợp không hiển thị đúng thông báo thành công sau khi lưu dữ liệu.

Thảo luận kết quả

Dữ liệu thực nghiệm có thể được trình bày một cách trực quan thông qua biểu đồ cột so sánh thời gian thực thi giữa kiểm thử thủ công và tự động, cùng bảng đối chiếu tỷ lệ bao phủ trạng thái giữa các phương pháp kiểm thử hiện hành.

Nguyên nhân chính giúp phương pháp đạt hiệu quả vượt trội là nhờ cơ chế mô hình hóa FSM phân cấp và cấu trúc hóa dữ liệu đầu vào qua định dạng Excel chuẩn. Thay vì phải viết mã kịch bản kiểm thử riêng lẻ bằng tay cho từng sự kiện, Selenium WebDriver có thể đọc trực tiếp các cặp định danh ID, Class và hàm chuyển trạng thái để điều khiển trình duyệt một cách đồng bộ, loại bỏ hoàn toàn độ trễ do lỗi thao tác của con người.

Khi so sánh với phương pháp kiểm thử chụp và phát lại truyền thống vốn có tỷ lệ bảo trì kịch bản thất bại lên tới 60% mỗi khi giao diện thay đổi, phương pháp dựa trên FSM của luận văn cho thấy tính linh hoạt cao hơn rõ rệt. Khi trang web có sự điều chỉnh, chuyên viên chỉ cần cập nhật trạng thái tương ứng trong tệp Excel mà không cần lập trình lại toàn bộ kịch bản từ đầu. So với các công cụ kiểm thử ngẫu nhiên chỉ phát hiện từ 10% đến 20% lỗi không theo chủ đích, phương pháp mô hình hóa hình thức giúp định hướng kiểm thử chính xác vào các luồng nghiệp vụ trọng yếu.

Ý nghĩa học thuật và thực tiễn của phát hiện này khẳng định rằng kiểm thử dựa trên mô hình FSM hoàn toàn có thể áp dụng thành công cho các hệ thống web thực tế quy mô lớn, tạo tiền đề vững chắc cho việc tự động hóa khâu kiểm thử chấp nhận trong các doanh nghiệp phần mềm.

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

Nhằm tối ưu hóa hiệu quả ứng dụng phương pháp kiểm thử tự động tương tác giao diện người dùng, 4 giải pháp chiến lược được đề xuất như sau:

Thứ nhất, chuẩn hóa quy trình mô hình hóa giao diện người dùng ngay từ giai đoạn thiết kế hệ thống. Đội ngũ kỹ sư phân tích nghiệp vụ và thiết kế UI/UX cần phối hợp với bộ phận kiểm thử để xây dựng biểu đồ FSM song song với tài liệu đặc tả màn hình, hướng tới mục tiêu rút ngắn 35% thời gian tạo mô hình kiểm thử, hoàn thành áp dụng thí điểm trong quý 1 bởi nhóm quản lý dự án.

Thứ tư, mở rộng năng lực xử lý tự động của công cụ ATWA đối với các phần tử giao diện động bất đồng bộ như AJAX, Single Page Application và React. Nhóm kỹ sư nghiên cứu công cụ cần nâng cấp thuật toán nhận dạng để tăng tỷ lệ bao phủ kiểm thử trên các nền tảng web thế hệ mới lên trên 98%, triển khai thực hiện trong lộ trình 6 tháng.

Thứ ba, tích hợp toàn diện công cụ kiểm thử tự động FSM vào đường ống tích hợp liên tục và triển khai liên tục CI/CD. Đội ngũ kỹ sư DevOps chịu trách nhiệm cấu hình hệ thống nhằm kích hoạt tự động 100% các bộ kiểm thử hồi quy sau mỗi phiên bản cập nhật mã nguồn, hoàn thành thiết lập trong vòng 2 tháng.

Thứ tư, tổ chức các khóa đào tạo nâng cao năng lực cho ít nhất 50 chuyên viên kiểm thử phần mềm tại doanh nghiệp về kỹ thuật kiểm thử dựa trên mô hình và kỹ năng vận hành Selenium WebDriver, thực hiện định kỳ trong 3 tháng do Trung tâm Đảm bảo Chất lượng chủ trì.

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

Nội dung luận văn mang lại giá trị thực tiễn và học thuật cho 4 nhóm đối tượng chính:

Kỹ sư kiểm thử và đảm bảo chất lượng phần mềm: Nắm bắt phương pháp luận chuyển đổi tài liệu thiết kế sang máy trạng thái hữu hạn và vận hành công cụ ATWA để tự động hóa hơn 80% công việc kiểm thử hồi quy trên các dự án web thực tế.

Lập trình viên và kỹ sư phát triển Frontend: Hiểu rõ nguyên lý vận hành của các công cụ kiểm thử tự động, từ đó chuẩn hóa việc gán thuộc tính định danh ID, Class và cấu trúc cây DOM rõ ràng, giúp giảm thiểu 30% lỗi tương thích giao diện trong quá trình xây dựng sản phẩm.

Giảng viên, nghiên cứu sinh và học viên cao học ngành Công nghệ thông tin: Khai thác khung lý thuyết hình thức về ô-tô-mát hữu hạn, thuật toán ghép nối mô hình và kiểm thử dựa trên mô hình để phục vụ công tác giảng dạy, nghiên cứu chuyên sâu và phát triển các đề tài khoa học liên quan.

Quản trị viên dự án và chuyên gia quy trình Agile: Định hình chiến lược đầu tư công cụ kiểm thử tự động hợp lý, tối ưu hóa chi phí sản xuất phần mềm và rút ngắn từ 15% đến 20% thời gian phát hành sản phẩm trong từng chu kỳ nước rút.

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

Kiểm thử dựa trên mô hình FSM có điểm gì ưu việt hơn phương pháp Capture/Replay truyền thống? Phương pháp FSM cho phép kiểm thử tính đúng đắn của logic hệ thống dựa trên mô hình thiết kế ngay cả khi mã nguồn chưa hoàn thiện, trong khi Capture/Replay chỉ ghi lại thao tác thủ công khi đã có sản phẩm chạy thực tế. Hơn nữa, khi giao diện thay đổi, FSM chỉ cần cập nhật trạng thái trong bảng mô tả, giúp giảm hơn 50% chi phí bảo trì kịch bản so với việc phải ghi hình lại toàn bộ thao tác từ đầu.

Làm thế nào để kiểm soát hiện tượng bùng nổ trạng thái khi áp dụng cho các website quy mô lớn? Nghiên cứu giải quyết vấn đề này bằng phương pháp tiếp cận mô hình hóa phân cấp. Toàn bộ ứng dụng web được chia thành các cụm trang độc lập, sau đó từng trang được mô hình hóa riêng lẻ và ghép nối tuần tự thông qua thuật toán ghép ô-tô-mát với trang mốc. Kỹ thuật này giúp phân rã bài toán lớn thành các cấu trúc 5 trạng thái đơn giản, hạn chế tối đa nguy cơ quá tải không gian trạng thái.

Công cụ ATWA thực thi các ca kiểm thử tự động trên trình duyệt web dựa trên công nghệ nào? Công cụ ATWA được phát triển bằng ngôn ngữ lập trình Java, sử dụng công cụ JFLAP để xử lý mô hình ô-tô-mát và tích hợp trực tiếp với Selenium WebDriver. Thông qua các API chuyên dụng, WebDriver tự động kích hoạt trình duyệt, tìm kiếm các phần tử web theo bộ thuộc tính định danh và gửi các sự kiện tương tác chuẩn xác tương tự như một người dùng thực tế.

Dữ liệu đầu vào của bộ kiểm thử được lưu trữ và quản lý dưới định dạng nào? Dữ liệu được tổ chức chặt chẽ trong tệp Microsoft Excel gồm 4 bảng cấu trúc rõ ràng: bảng phần tử web, bảng trạng thái, bảng sự kiện và bảng chuyển trạng thái. Định dạng này giúp các kỹ sư kiểm thử dễ dàng theo dõi, chỉnh sửa dữ liệu kiểm thử mà không cần can thiệp trực tiếp vào mã nguồn của công cụ kiểm thử.

Phương pháp này có thể tích hợp vào quy trình phát triển phần mềm linh hoạt Agile không? Hoàn toàn phù hợp. Nghiên cứu đã chứng minh tính khả thi khi áp dụng công cụ vào giai đoạn kiểm thử chấp nhận trong các vòng lặp sprint tại doanh nghiệp. Nhờ khả năng sinh ca kiểm thử nhanh chóng và thực thi tự động trong chưa đầy 12 phút, phương pháp giúp đội ngũ phát triển phát hiện lỗi hồi quy sớm và đảm bảo tiến độ bàn giao sản phẩm liên tục.

Kết luận

  • Luận văn đã xây dựng thành công phương pháp đặc tả tương tác giao diện người dùng cho ứng dụng web dựa trên lý thuyết máy trạng thái hữu hạn FSM và thuật toán ghép nối ô-tô-mát phân cấp.
  • Đã cải tiến và hoàn thiện công cụ kiểm thử tự động ATWA, giải quyết triệt để bài toán tự động sinh dữ liệu đầu vào và giảm tỷ lệ thao tác thủ công từ trên 70% xuống dưới 15%.
  • Thực nghiệm thành công trên hệ thống quản lý thông tin tại FPT Software với 28 đường dẫn kiểm thử, đạt độ bao phủ chuyển trạng thái 100% và rút ngắn thời gian thực thi kiểm thử xuống 4,3 lần.
  • Đóng góp giải pháp hữu hiệu cho khâu kiểm thử chấp nhận trong mô hình phát triển phần mềm Agile, nâng cao chất lượng và độ tin cậy của sản phẩm web trước khi phát hành.
  • Kế hoạch tiếp theo trong 6 đến 12 tháng tới tập trung vào việc mở rộng thuật toán để hỗ trợ kiểm thử tự động các ứng dụng web động nền tảng đám mây và tích hợp sâu vào hệ thống CI/CD doanh nghiệp.

Các doanh nghiệp và đội ngũ phát triển phần mềm hãy chủ động nghiên cứu, ứng dụng mô hình kiểm thử FSM tự động vào quy trình sản xuất để tối ưu hóa chi phí và nâng cao chất lượng sản phẩm phần mềm ngay hôm nay.