Tổng quan nghiên cứu

Trong quy trình phát triển phần mềm hiện đại, công đoạn kiểm thử chất lượng thường chiếm từ 40% đến 50% tổng ngân sách và nguồn lực của một dự án công nghệ. Đối với các thiết bị mạng truyền hình chuyên dụng như dòng sản phẩm Flamingo XL của tập đoàn Anevia, việc phân phối luồng truyền hình trực tiếp và video theo yêu cầu (VOD) qua mạng IP nội bộ đòi hỏi giao diện quản trị Web phải đạt độ chính xác, an toàn và ổn định tuyệt đối. Tuy nhiên, quy trình kiểm thử thủ công truyền thống đối với giao diện Web của thiết bị này tiêu tốn khoảng 4 ngày công (man-days) cho mỗi chu kỳ phát hành, đồng thời tiềm ẩn nguy cơ sai sót do con người lên tới 15% đến 20% khi lặp lại các kịch bản phức tạp.

Vấn đề cốt lõi đặt ra là sự thiếu hụt một hệ thống kiểm thử tự động hóa có cấu trúc linh hoạt, khả năng tái sử dụng cao và tương thích tốt với môi trường nhúng đặc thù của thiết bị mạng. Mục tiêu cụ thể của đề tài là nghiên cứu, thiết kế và phát triển hệ thống kiểm thử tự động hóa cho Flamingo XL, tiến hành chuyển đổi tối thiểu 80% các ca kiểm thử hợp lệ sang dạng kịch bản tự động hóa (ATS) bằng ngôn ngữ Python, nhằm giảm thiểu tối đa thời gian kiểm thử hồi quy và nâng cao tính nhất quán của sản phẩm.

Nghiên cứu được triển khai thực nghiệm tại chi nhánh công ty Pentalog Hà Nội trong khuôn khổ chương trình đào tạo Thạc sĩ Tin học chuyên ngành Mạng và Hệ thống truyền thông thuộc Viện Quốc tế Pháp ngữ (IFI) - Đại học Quốc gia Hà Nội. Đóng góp nổi bật của luận văn là giải pháp rút ngắn 50% thời gian thực thi kiểm thử từ 4 người-ngày xuống còn 2 người-ngày, xây dựng thành công 89 kịch bản tự động hóa trên tổng số 139 ca kiểm thử toàn hệ thống, tạo tiền đề vững chắc cho việc mở rộng kiểm thử tự động trên toàn bộ các dòng sản phẩm đa phương tiện khác như ViaLive và ViaMotion.

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 dựa trên sự kết hợp chặt chẽ giữa hai nền tảng lý thuyết chủ đạo: Tiêu chuẩn ký hiệu kiểm thử và điều khiển kiểm thử phiên bản 3 (TTCN-3 do Viện Tiêu chuẩn Viễn thông Châu Âu - ETSI ban hành) và Lý thuyết kiểm thử hướng đối tượng (Object-Oriented Testing). Chuẩn TTCN-3 cung cấp tư duy trừu tượng hóa ca kiểm thử độc lập hoàn toàn với hệ thống đang được kiểm thử (SUT), cho phép triển khai các bộ điều hợp (adapters) linh hoạt trên các giao thức viễn thông và mạng IP phân tán. Mô hình hướng đối tượng giúp đóng gói các thành phần giao diện và chức năng thành các lớp (classes) và phương thức (methods) tái sử dụng, triệt tiêu sự trùng lặp mã nguồn.

Khung khái niệm trọng tâm của nghiên cứu xoay quanh các thuật ngữ chuyên ngành: Luồng truyền tải MPEG-2 (MPEG-2 Transport Stream - TS) theo chuẩn quốc tế ISO/IEC 13818-1 với cấu trúc gói tin cố định 188 byte (hoặc mở rộng 204 byte với mã sửa lỗi Reed-Solomon), chứa byte đồng bộ 0x47 cùng các bảng thông tin đặc tả chương trình (PSI) gồm Bảng liên kết chương trình (PAT ở định danh PID 0x0000), Bảng ánh xạ chương trình (PMT), Bảng truy cập có điều kiện (CAT ở PID 0x0001) và Bảng thông tin mạng (NIT); Kiến trúc truyền hình qua giao thức Internet (IPTV) và công nghệ truyền phát qua mạng không dây (OTT); Cơ chế bắt gói tin mạng ở tầng liên kết dữ liệu qua thư viện Pcap và cơ chế định vị phần tử web bằng 8 loại bộ định vị (locators) trong Selenium bao gồm ID, Name, DOM, XPath, CSS, Link, Identifier và UI Map.

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

Nghiên cứu sử dụng nguồn dữ liệu thực nghiệm gồm tổng thể 139 ca kiểm thử chức năng của thiết bị Flamingo XL do Anevia phát triển. Tác giả áp dụng phương pháp chọn mẫu có chủ đích (purposive sampling) dựa trên tính khả thi kỹ thuật của môi trường tự động hóa: loại bỏ 45 ca kiểm thử bắt buộc phải thực hiện thủ công do có các thao tác can thiệp vật lý (như lệnh ngắt kết nối mạng làm tê liệt phiên điều khiển từ xa qua SSH) và 5 ca kiểm thử chưa hỗ trợ trong phiên bản firmware hiện hành. Cỡ mẫu nghiên cứu chính thức được chọn lọc là 89 ca kiểm thử hoàn toàn khả thi để tự động hóa.

Phương pháp phân tích được lựa chọn là kết hợp giữa phân tích tĩnh và phân tích động thông qua kiểm thử hộp đen (Black-box Testing) đa tầng. Công cụ phân tích gói tin Wireshark, Tshark và thư viện Python PyShark được sử dụng để kiểm chứng luồng dữ liệu đa phương tiện tầng mạng song song với việc tương tác giao diện Web. Lý do lựa chọn phương pháp này xuất phát từ kiến trúc tích hợp giữa nền tảng mã nguồn mở Testerman (theo giấy phép GNU GPL v2) và Selenium probe. Testerman cung cấp máy chủ quản trị tập trung, giao diện QTesterman và tác tử PyAgent, cho phép điều khiển kịch bản kiểm thử viết bằng Python 2.7 trên nền hệ điều hành Ubuntu Linux, kết nối trực tiếp với giao diện Web qua cổng độc lập của Selenium Server.

Tiến trình nghiên cứu được thực hiện tuần tự qua 5 giai đoạn: phân tích yêu cầu nghiệp vụ thiết bị; thẩm định và chuẩn hóa các bước trong ca kiểm thử; thiết kế kiến trúc thư viện đối tượng dùng chung; cài đặt cấu hình môi trường cùng các bộ định vị XPath chuẩn hóa; lập trình và thực thi đánh giá 89 kịch bản ATS trên hệ thống thực tế.

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 và kiểm thử hệ thống đã ghi nhận 4 phát hiện quan trọng đi kèm các số liệu định lượng cụ thể:

Thứ nhất, mức độ tương thích của từng kịch bản đơn lẻ đạt tuyệt đối: 100% kịch bản ATS (89 trên tổng số 89 kịch bản) đều thực thi thành công và trả về trạng thái đạt (pass) khi được kích hoạt độc lập trên môi trường ban đầu chưa phát sinh biến đổi cấu hình.

Thứ hai, độ ổn định khi chạy chuỗi kịch bản liên tục: Khi kích hoạt toàn bộ tập hợp 89 kịch bản ATS trong một lần thực thi duy nhất qua lệnh điều khiển của Testerman, tỷ lệ kịch bản hoàn thành đạt kết quả "pass" đạt 66%, trong khi 34% số kịch bản còn lại phát sinh lỗi và cần sự can thiệp xác minh thủ công của kiểm thử viên.

Thứ ba, sự phân hóa hiệu năng rõ rệt giữa các phân hệ dịch vụ: Các phân hệ quản trị cấu hình tĩnh như Thiết lập kênh (Channels Settings), Cấu hình mô-đun (Modules Settings) và Truyền hình Web (Web TV) đạt tỷ lệ vượt qua bài kiểm thử rất cao (khoảng 85% đến 95%). Ngược lại, phân hệ Cài đặt luồng (Streaming Settings) và Radio Web (Web Radio) có tỷ lệ thất bại cao hơn (chiếm phần lớn trong 34% lỗi) do phụ thuộc trực tiếp vào tính ổn định của luồng phát đa phương tiện bên ngoài và điều kiện thu phát tín hiệu vệ tinh.

Thứ tư, hiệu quả tối ưu hóa thời gian và năng suất: Tổng thời gian để hoàn thành việc kiểm thử toàn bộ 89 ca kiểm thử đã giảm từ 4 người-ngày (tương đương 32 giờ làm việc thủ công) xuống còn 2 người-ngày (bao gồm 0,5 người-ngày để máy tự động chạy toàn bộ suite và 1,5 người-ngày để kiểm thử viên xác minh 34% ca thất bại), giúp tiết kiệm chính xác 50% thời gian thực hiện chu kỳ kiểm thử hồi quy.

Thảo luận kết quả

Sự chênh lệch giữa tỷ lệ đạt 100% khi chạy đơn lẻ và 66% khi chạy liên tục phản ánh bản chất của trạng thái lưu giữ (state persistence) trên hệ thống nhúng Flamingo XL. Trong quá trình chạy liên tục, trạng thái kết thúc của một kịch bản trước sẽ trở thành trạng thái khởi tạo của kịch bản tiếp theo; nếu kịch bản trước đó chưa kịp giải phóng luồng hoặc xóa cấu hình tạm, kịch bản kế tiếp sẽ gặp lỗi tiền điều kiện. Thêm vào đó, yếu tố nghẽn băng thông mạng nội bộ khi truyền phát video đồng thời đã làm phát sinh lỗi quá thời gian chờ (timeout) trên công cụ Selenium-RC do cơ chế đồng bộ tải trang chưa tối ưu.

Các dữ liệu thực nghiệm trên có thể được minh họa trực quan thông qua biểu đồ cột thể hiện tỷ lệ vượt qua kiểm thử giữa 5 nhóm dịch vụ chính (trong đó nhóm Channels Settings đạt xấp xỉ 90% vượt trội so với Web Radio chỉ đạt khoảng 45%) hoặc bảng ma trận so sánh chi phí thời gian thực hiện (tiết kiệm 16 giờ làm việc trực tiếp trên mỗi chu kỳ kiểm thử).

Khi đặt trong tương quan so sánh với các nghiên cứu cùng thời điểm về kiểm thử giao diện Web tự động, kết quả này chứng minh rằng việc sử dụng bộ định vị chuẩn hóa XPath kết hợp mô hình lớp đối tượng giúp giảm thiểu đáng kể lỗi do thay đổi cấu trúc trang HTML. Tuy nhiên, việc sử dụng công nghệ Selenium WebDriver (thay vì Selenium-RC) được nhận định sẽ giải quyết triệt để vấn đề nghẽn tiến trình tải trang nhờ cơ chế tương tác trực tiếp với trình duyệt mà không cần chờ tải toàn bộ các phần tử tĩnh không liên quan.

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

Dựa trên kết quả nghiên cứu thực nghiệm, 4 khuyến nghị mang tính hành động cụ thể được đề xuất nhằm hoàn thiện và nâng cao hiệu suất của hệ thống kiểm thử:

Thứ nhất, nâng cấp nền tảng điều khiển trình duyệt từ Selenium-RC sang Selenium WebDriver. Đội ngũ kỹ sư kiểm thử tại doanh nghiệp cần thực hiện chuyển đổi toàn bộ 89 kịch bản kiểm thử trong vòng 3 tháng tới, với mục tiêu nâng tỷ lệ chạy tự động thành công liên tục từ 66% lên trên 85% và loại bỏ hoàn toàn các lỗi timeout không mong muốn khi tải trang Web động.

Thứ hai, thiết lập cơ chế tự động hoàn trả trạng thái ban đầu (State Reset Mechanism) sau mỗi kịch bản kiểm thử. Đội ngũ phát triển phần mềm và kỹ sư DevOps cần xây dựng các đoạn mã phục hồi cấu hình thiết bị qua giao thức SSH và API nội bộ trong thời gian 6 tuần, đảm bảo 100% kịch bản ATS được khởi chạy trong môi trường độc lập, triệt tiêu hiện tượng xung đột dữ liệu giữa các ca kiểm thử liên tiếp.

Thứ ba, xây dựng hệ thống máy chủ giả lập luồng phát đa phương tiện nội bộ (Mock Streaming Server). Trưởng nhóm hạ tầng và kiểm thử mạng cần thiết lập môi trường phát luồng video và radio khép kín với băng thông tối thiểu 1 Gbps trong quý tới, nhằm cách ly hoàn toàn các tác động từ thời tiết và độ trễ của mạng Internet công cộng lên quá trình kiểm thử.

Thứ tư, mở rộng và chuẩn hóa khung thư viện hướng đối tượng cho toàn bộ dòng sản phẩm Anevia. Nhóm kiến trúc sư phần mềm cần tiến hành chuẩn hóa cấu trúc module dùng chung cho các sản phẩm liên quan như ViaLive và ViaMotion trong vòng 6 tháng, đặt mục tiêu tái sử dụng ít nhất 75% mã nguồn thư viện cho các dự án kế tiếp nhằm giảm thiểu chi phí phát triển kịch bản mới.

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

Nội dung và kết quả nghiên cứu của luận văn mang lại giá trị thực tiễn sâu sắc cho 4 nhóm đối tượng cụ thể:

Thứ nhất, kỹ sư kiểm thử tự động (QA/QC Automation Engineers): Tài liệu cung cấp quy trình từng bước để xây dựng khung kiểm thử hướng đối tượng với Python, cách tổ chức thư viện phần tử, xử lý các bộ định vị XPath và kỹ thuật tích hợp giữa Testerman với Selenium trên hệ điều hành Linux.

Thứ hai, kiến trúc sư và kỹ sư hệ thống mạng truyền hình (IPTV/OTT System Architects): Cung cấp góc nhìn toàn diện về cấu trúc luồng MPEG-2 TS (188 byte), phương pháp phân tích các bảng PSI (PAT, PMT, CAT, NIT) và cơ chế phân phối luồng video, âm thanh qua giao thức IP trên các thiết bị gateway chuyên dụng.

Thứ ba, học viên cao học và nhà nghiên cứu công nghệ thông tin: Tài liệu là một hình mẫu chuẩn mực về việc áp dụng lý thuyết kiểm thử theo tiêu chuẩn quốc tế TTCN-3 vào giải quyết bài toán tự động hóa trong môi trường công nghiệp thực tế, rất hữu ích cho các đề tài nghiên cứu về hệ thống phân tán và bảo đảm chất lượng phần mềm.

Thứ tư, nhà quản trị dự án công nghệ (Project Managers & Tech Leads): Giúp các nhà quản lý nắm vững bài toán phân tích chi phí - lợi ích (ROI) khi đầu tư vào tự động hóa kiểm thử, thể hiện rõ qua việc cắt giảm 50% thời gian kiểm thử hồi quy và nâng cao độ tin cậy của sản phẩm trước khi chuyển giao cho khách hàng.

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

Lý do tại sao luận văn chỉ tự động hóa 89 ca kiểm thử trong tổng số 139 ca kiểm thử ban đầu của thiết bị? Luận văn đã sàng lọc và loại bỏ 45 ca kiểm thử bắt buộc phải thao tác vật lý (như lệnh ngắt card mạng khiến mất kết nối điều khiển từ xa) và 5 ca kiểm thử chưa có tính năng trong phiên bản hiện tại. Việc giữ lại 89 ca kiểm thử đảm bảo 100% ca được chọn đều có tính khả thi kỹ thuật cao khi chạy trên kịch bản tự động.

Nền tảng Testerman mang lại ưu thế gì vượt trội so với các công cụ kiểm thử Web thông thường? Testerman được xây dựng dựa trên triết lý của chuẩn TTCN-3, cho phép kiểm thử toàn diện từ đầu đến cuối (end-to-end) trên nhiều tầng giao thức. Nhờ hệ thống tác tử PyAgent và các probe đa dạng (SSH, MySQL, Directory Watcher), Testerman có thể giám sát trực tiếp tiến trình bên trong thiết bị mạng thay vì chỉ dừng lại ở tầng giao diện người dùng.

Tại sao tỷ lệ vượt qua bài kiểm thử khi chạy liên tục toàn bộ suite chỉ đạt 66% dù chạy đơn lẻ đạt 100%? Hiện tượng này xuất phát từ việc tích lũy trạng thái cấu hình giữa các kịch bản liên tiếp trên thiết bị thực và sự biến động băng thông mạng khi phát luồng video. Các yếu tố ngoại cảnh như chất lượng nguồn phát Radio Web hoặc độ trễ mạng khiến Selenium-RC bị lỗi quá thời gian chờ khi tải trang.

Tại sao bộ định vị XPath lại được chỉ định làm tiêu chuẩn bắt buộc cho các thư viện kịch bản mới? Trong số 8 loại bộ định vị của Selenium, XPath có khả năng điều hướng cấu trúc cây tài liệu XML và HTML linh hoạt nhất. Việc chuẩn hóa bằng XPath giúp kiểm thử viên xác định chính xác các phần tử giao diện phức tạp và giảm thiểu khoảng 30% lỗi sai lệch định vị khi giao diện Web có sự thay đổi nhỏ về mặt hiển thị.

Luận văn chứng minh hiệu quả kinh tế của việc tự động hóa kiểm thử thông qua chỉ số cụ thể nào? Hiệu quả kinh tế được minh chứng rõ rệt qua việc cắt giảm tổng thời gian kiểm thử từ 4 người-ngày (khoảng 32 giờ làm việc) xuống còn 2 người-ngày (tiết kiệm 50% thời gian thực thi). Mặc dù chi phí xây dựng thư viện ban đầu khá lớn, các kịch bản này có thể tái sử dụng lâu dài cho các phiên bản tiếp theo, mang lại giá trị lợi nhuận cao cho doanh nghiệp.

Kết luận

Luận văn đã giải quyết trọn vẹn bài toán tự động hóa kiểm thử giao diện Web cho thiết bị mạng truyền thông chuyên dụng thông qua các đóng góp nổi bật:

  • Xây dựng thành công hệ thống kiểm thử tự động hóa hướng đối tượng bằng ngôn ngữ Python, hoàn thiện 89 kịch bản ATS chuẩn hóa cho dòng sản phẩm Flamingo XL của Anevia.
  • Tích hợp hiệu quả giữa nền tảng kiểm thử viễn thông Testerman và công cụ Selenium, mở rộng khả năng giám sát từ tầng giao diện Web đến tầng giao thức mạng và dịch vụ nhúng.
  • Cắt giảm 50% thời gian thực thi chu kỳ kiểm thử hồi quy (từ 4 người-ngày xuống còn 2 người-ngày), nâng cao năng suất và độ chính xác của quy trình kiểm thử phần mềm tại doanh nghiệp.
  • Cung cấp dữ liệu thực nghiệm chi tiết về sự chênh lệch độ ổn định giữa kiểm thử đơn lẻ (đạt 100%) và kiểm thử chuỗi liên tục (đạt 66%), chỉ rõ nguyên nhân từ tính trạng thái của thiết bị và độ trễ mạng.
  • Vạch rõ lộ trình kỹ thuật chuyển đổi sang Selenium WebDriver và cơ chế tự động khôi phục cấu hình trong vòng 3 đến 6 tháng tới.

Hệ thống phương pháp và mã nguồn thư viện trong nghiên cứu này là nguồn tài liệu tham khảo giá trị cho các kỹ sư và nhà nghiên cứu trong việc phát triển các giải pháp kiểm thử tự động hóa quy mô lớn cho hệ thống mạng truyền thông hiện đại.