Tổng quan nghiên cứu

Trong kỹ nghệ phần mềm hiện đại, hoạt động kiểm thử và gỡ lỗi thường chiếm từ 40% đến 50% tổng ngân sách và thời gian của một dự án phát triển. Đối với các hệ thống phần mềm quy mô lớn, việc kiểm thử hồi quy phải thực hiện lặp đi lặp lại qua hàng nghìn ca kiểm thử trên nhiều môi trường khác nhau. Đặc biệt, các giai đoạn cài đặt, thiết lập cấu hình và gỡ cài đặt phần mềm là những quy trình phức tạp, đòi hỏi khởi động lại hệ thống và cấu hình quyền quản trị, gây ra điểm nghẽn lớn nếu chỉ kiểm thử thủ công.

Vấn đề nghiên cứu trọng tâm của luận văn là giải quyết sự tốn kém về thời gian, nhân lực và nguy cơ sai sót do con người khi kiểm thử các giai đoạn triển khai phần mềm trên nhiều nền tảng hệ điều hành. Luận văn tập trung vào hệ thống phần mềm bảo mật thông tin SEC (Secure Information System) – một giải pháp bảo mật hoạt động trên nền tảng Windows với yêu cầu kiểm thử khắt khe trên 7 phiên bản hệ điều hành khác nhau, từ Windows 98, Windows 2000, XP, 2003, 2008 đến Windows Vista và Windows 7.

Mục tiêu cụ thể của đề tài là phân tích, thiết kế và xây dựng thành công Hệ thống kiểm thử tự động (HTKTTĐ) chuyên biệt cho các giai đoạn cài đặt phần mềm. Phạm vi nghiên cứu bao trùm toàn bộ chu trình sống của bộ cài đặt bao gồm: tạo gói cài đặt từ máy chủ, thực hiện cài đặt tự động trên máy trạm, kiểm tra tính năng vận hành và gỡ cài đặt hoàn chỉnh. Về mặt giá trị ứng dụng, hệ thống giúp rút ngắn chu kỳ kiểm thử hồi quy hơn 60%, cắt giảm chi phí kiểm thử đáng kể và bảo đảm tính nhất quán 100% trong việc thu thập nhật ký lỗi và báo cáo kiểm thử trên toàn bộ các môi trường thử nghiệm.

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

Khung lý thuyết áp dụng

Luận văn xây dựng trên nền tảng các lý thuyết kiểm thử phần mềm chuyên sâu và mô hình trưởng thành kiểm thử tự động. Khung lý thuyết chính bao gồm:

Mô hình đánh giá mức độ tự động hóa kiểm thử phần mềm gồm 5 cấp độ tiêu chuẩn: Mức 0 (Hoàn toàn thủ công, không có công cụ hỗ trợ), Mức 1 (Khởi tạo – quản lý dữ liệu kiểm thử), Mức 2 (Lặp lại – điều khiển và thực thi kiểm thử có hệ thống), Mức 3 (Tự động – sinh kịch bản và phân tích độ bao phủ), và Mức 4 (Tối ưu hóa – đo lường và đánh giá chất lượng toàn diện). Luận văn định vị giải pháp nghiên cứu đạt mức độ kiểm thử tự động lặp lại và thực thi hệ thống hóa cao.

Mô hình đánh giá chất lượng ca kiểm thử theo biểu đồ mạng nhện Keviat, phân tích sự cân bằng giữa 4 thuộc tính cốt lõi: Khả năng phát hiện lỗi (Effective), Tính chuẩn mực đại diện (Exemplary), Chi phí thực thi (Economic), và Chi phí nâng cấp bảo trì (Evolvable). Nghiên cứu chỉ ra rằng kiểm thử tự động ban đầu đòi hỏi chi phí thiết lập cao nhưng sẽ mang lại hiệu quả kinh tế vượt trội sau nhiều chu kỳ kiểm thử hồi quy.

Các khái niệm chuyên ngành nền tảng được áp dụng gồm: Cơ chế gọi thủ tục từ xa (Remote Procedure Call - RPC), Kỹ thuật ghi nhận và phát lại thao tác giao diện (Capture & Replay), Kiểm thử hồi quy (Regression Testing), và Kiểm thử hộp đen tự động thông qua kịch bản điều khiển.

+-------------------------------------------------------------+
|               THANG ĐO MỨC ĐỘ TỰ ĐỘNG HÓA                   |
| Mức 4: Tối ưu  --> Đo lường, đánh giá chất lượng toàn diện   |
| Mức 3: Tự động --> Sinh kịch bản kiểm thử tự động           |
| Mức 2: Lặp lại --> Điều khiển & thực thi kiểm thử hệ thống  |
| Mức 1: Khởi tạo--> Quản lý thông tin ca kiểm thử            |
| Mức 0: Thủ công--> Thao tác tay hoàn toà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 thiết kế hệ thống phần mềm phân tán.

Nguồn dữ liệu và cỡ mẫu: Luận văn sử dụng bộ dữ liệu kiểm nghiệm thực tế gồm 220 ca kiểm thử (test cases) chuyên biệt cho quy trình cài đặt của hệ thống SEC.

Phương pháp chọn mẫu: Tác giả áp dụng phương pháp chọn mẫu có chủ đích (purposive sampling), tập trung vào toàn bộ các trường hợp kiểm thử chức năng cài đặt, các kịch bản cấu hình tham số bảo mật phức tạp, và các trường hợp có khả năng phát sinh lỗi cao khi khởi động lại hệ thống. Cỡ mẫu 220 ca kiểm thử đảm bảo bao phủ đầy đủ 3 giai đoạn: tạo bộ cài đặt, cài đặt thực tế và gỡ cài đặt phần mềm.

Lý do lựa chọn phương pháp phân tích: Luận văn lựa chọn mô hình kiến trúc phân tán máy chủ - máy trạm (Test Controller - Test Agent) kết hợp với máy trạng thái hữu hạn (Finite State Machine). Phương pháp này cho phép kiểm soát tiến trình cài đặt vượt qua ranh giới khởi động lại hệ điều hành thông qua 6 mã trạng thái quản lý (StateStatus từ 0, 10, 20, 30, 40 đến 50). Công cụ Capture & Replay phiên bản 05-00-IR5 và TestController phiên bản 01-00-IR1 được tích hợp để điều khiển các thành phần giao diện đồ họa.

Timeline nghiên cứu: Tiến trình nghiên cứu được triển khai theo 5 giai đoạn chặt chẽ: Lập kế hoạch tự động hóa, Thiết kế hệ thống, Phát triển công cụ kịch bản, Triển khai thực nghiệm trên 220 test cases, và Rà soát đánh giá hiệu năng hệ thống.

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

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

Quá trình xây dựng và thực nghiệm hệ thống kiểm thử tự động cho hệ thống bảo mật SEC đã đem lại 4 phát hiện quan trọng:

Thứ nhất, hệ thống tự động hóa hoàn toàn 100% chu trình kiểm thử cho 220 ca kiểm thử cài đặt mà không cần sự can thiệp thủ công của kiểm thử viên trong suốt quá trình chạy chuỗi kịch bản. Các tác vụ phức tạp như nạp cấu hình bảo mật, thiết lập quyền người dùng và cấu hình tham số máy chủ đều được thực thi chính xác qua kịch bản VBScript.

Thứ hai, thời gian thực thi chu kỳ kiểm thử hồi quy giảm hơn 60% so với phương pháp kiểm thử thủ công truyền thống. Trước đây, một kiểm thử viên mất trung bình từ 15 đến 20 phút cho một chu trình cài đặt, kiểm tra và gỡ cài đặt thủ công; với HTKTTĐ, thời gian này được tối ưu hóa và máy tính có thể tự vận hành liên tục 24/7 vào các khung giờ nhàn rỗi.

Thứ ba, cơ chế quản lý trạng thái đa tầng (StateStatus) xử lý thành công 100% các tình huống khởi động lại hệ điều hành. Hệ thống tự động ghi nhớ trạng thái tại mốc 10 và 30 trước khi khởi động lại máy, sau đó tự động đăng nhập và tiếp tục thực thi các bước kiểm thử tiếp theo ở mốc trạng thái 20 và 40.

Thứ tư, độ chính xác của báo cáo kết quả và nhật ký lỗi đạt mức tuyệt đối. Toàn bộ thông tin thao tác, thời gian bắt đầu, thời gian kết thúc, dữ liệu đầu vào và hình ảnh chụp màn hình lỗi (error screenshots) đều được ghi nhận tự động vào các tập tin định dạng CSV và thư mục lưu trữ kết quả kiểm thử.

+-------------------------------------------------------------+
|        BẢNG SO SÁNH HIỆU QUẢ KIỂM THỬ TRÊN 220 TEST CASES   |
+----------------------+-------------------+------------------+
| Tiêu chí             | Kiểm thử thủ công | Kiểm thử tự động |
+----------------------+-------------------+------------------+
| Thời gian thực thi   | 55 - 73 giờ       | 18 - 22 giờ      |
| Tác động nhân lực    | 100% thời gian    | < 5% thiết lập   |
| Tỷ lệ ghi log lỗi    | Không đồng nhất   | 100% chuẩn hóa   |
| Xử lý khởi động lại  | Thao tác tay      | Tự động 100%     |
+----------------------+-------------------+------------------+

Thảo luận kết quả

Nguyên nhân chính giúp hệ thống đạt hiệu quả vượt trội là kiến trúc phân tách rõ ràng giữa 4 phân hệ: Tập tin Excel quản lý cấu hình dữ liệu, ControlScript điều phối tổng thể, AgentScript quản trị máy đích, và Test Scenario thực thi giao diện. Việc sử dụng giao thức RPC cho phép Test Controller từ xa quản lý linh hoạt các máy Test Agent độc lập.

Về mặt trực quan hóa dữ liệu, kết quả nghiên cứu có thể được thể hiện tối ưu 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 với bảng ma trận chuyển đổi trạng thái (State Transition Matrix). Biểu đồ trực quan cho thấy đường cong chi phí của kiểm thử tự động giảm mạnh từ lần chạy thứ 3 trở đi, minh chứng cho tính đúng đắn của mô hình Keviat.

So với các giải pháp thương mại đương thời như Mercury WinRunner hay Rational Robot vốn chủ yếu tập trung vào kiểm thử giao diện người dùng đơn lẻ, giải pháp trong luận văn giải quyết được bài toán đặc thù của giai đoạn cài đặt hệ thống: vượt qua ranh giới khởi động lại hệ điều hành và phân quyền dịch vụ hệ thống (Service Mode so với User Mode). Kết quả nghiên cứu đã đóng góp một giải pháp thực tiễn có giá trị cao cho ngành công nghệ phần mềm tại Việt Nam, đặc biệt là trong việc kiểm thử các sản phẩm có tính tương thích hệ thống sâu.

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

Dựa trên kết quả nghiên cứu và thực nghiệm, tác giả đưa ra 4 khuyến nghị và giải pháp hành động cụ thể nhằm hoàn thiện và mở rộng hệ thống:

Thứ nhất, nâng cấp kiến trúc Test Controller sang cơ chế điều phối song song đa luồng (Parallel Multi-threading Execution). Mục tiêu là cho phép 1 máy Controller quản lý và điều khiển đồng thời từ 5 đến 10 máy Test Agent trên các môi trường hệ điều hành khác nhau, giúp giảm thêm 40% tổng thời gian kiểm thử toàn diện cho mỗi phiên bản phần mềm. Thời gian thực hiện dự kiến trong vòng 6 tháng tới do đội ngũ kiến trúc sư phần mềm chủ trì.

Thứ hai, tích hợp công cụ đo lường và phân tích độ bao phủ mã nguồn (Code Coverage Analysis) vào hệ thống kịch bản kiểm thử. Giải pháp này giúp nâng mức độ tự động hóa từ Mức 2 lên Mức 3 và Mức 4 trong thang đo độ đo kiểm thử, hướng tới mục tiêu kiểm soát độ bao phủ mã nguồn đạt trên 85% đối với các mô đun cài đặt cốt lõi.

Thứ ba, chuẩn hóa và đóng gói quy trình tạo kịch bản kiểm thử tự động Capture & Replay thành tài liệu hướng dẫn kỹ thuật chuẩn nội bộ. Đội ngũ Test Automator cần được đào tạo bài bản nhằm rút ngắn 30% thời gian tạo mới và cập nhật kịch bản kiểm thử khi phần mềm thay đổi giao diện cài đặt.

Thứ tư, xây dựng mô đun kết nối hệ thống kiểm thử tự động vào quy trình tích hợp liên tục (CI/CD Pipeline). Mỗi khi đội ngũ phát triển phát hành một bản vá lỗi (Patch file) mới, hệ thống sẽ tự động kích hoạt kiểm thử hồi quy các gói cài đặt tương ứng, giúp phát hiện lỗi suy thoái ngay trong 24 giờ đầu tiên.

+-------------------------------------------------------------+
|                 LỘ TRÌNH TRIỂN KHAI ĐỀ XUẤT                 |
| Giai đoạn 1 (Tháng 1-3) : Đóng gói quy trình & đào tạo kịch bản|
| Giai đoạn 2 (Tháng 4-6) : Mở rộng điều khiển song song đa máy|
| Giai đoạn 3 (Tháng 7-9) : Tích hợp đo độ bao phủ mã nguồn   |
| Giai đoạn 4 (Tháng 10-12): Tích hợp vào luồng CI/CD tự động |
+-------------------------------------------------------------+

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

Luận văn là tài liệu tham khảo giá trị cho 4 nhóm đối tượng chính trong lĩnh vực công nghệ thông tin:

  1. Kỹ sư kiểm thử phần mềm tự động (Automation Test Engineers) và Chuyên viên kiểm thử chất lượng (QA/QC Leads): Luận văn cung cấp hướng dẫn chi tiết về cách thiết kế kịch bản kiểm thử tự động xử lý các tác vụ phức tạp liên quan đến hệ điều hành, kỹ thuật vượt qua yêu cầu khởi động lại máy tính, và phương pháp tổ chức dữ liệu kiểm thử hướng từ khóa và dữ liệu (Data-driven/Keyword-driven Testing).

  2. Kiến trúc sư phần mềm (Software Architects) và Trưởng dự án phát triển phần mềm (Project Managers): Nhóm đối tượng này có thể tham khảo mô hình kiến trúc Controller - Agent phân tán để thiết kế các hệ thống giám sát, triển khai và kiểm thử quy mô lớn, từ đó lập kế hoạch tối ưu hóa chi phí dự án và nâng cao chất lượng sản phẩm xuất xưởng.

  3. Giảng viên, Nghiên cứu sinh và Học viên cao học chuyên ngành Công nghệ phần mềm: Công trình cung cấp cơ sở lý luận vững chắc về các mô hình tự động hóa, thang đo chất lượng kiểm thử, và một case study thực nghiệm hoàn chỉnh để phục vụ công tác giảng dạy và nghiên cứu học thuật chuyên sâu.

  4. Các tổ chức và doanh nghiệp phát triển phần mềm đóng gói, phần mềm bảo mật hệ thống: Luận văn cung cấp giải pháp thực tế để tự động hóa quy trình phân phối sản phẩm, kiểm thử tính tương thích của bộ cài đặt trên nhiều nền tảng Windows, giúp nâng cao năng lực cạnh tranh và rút ngắn chu kỳ phát hành sản phẩm ra thị trường.

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

Hệ thống xử lý việc khởi động lại hệ điều hành tự động như thế nào?

Hệ thống sử dụng cơ chế máy trạng thái hữu hạn với các mã StateStatus được lưu trữ trên tệp tin cấu hình độc lập. Trước khi khởi động lại máy tính, kịch bản gán StateStatus bằng 10 hoặc 30 và ghi nhận khóa Run trong Windows Registry trỏ tới AgentScript. Khi hệ điều hành khởi động lại, AgentScript tự động kích hoạt ở chế độ dịch vụ hoặc người dùng, đọc mã trạng thái tiếp theo là 20 hoặc 40 để tiếp tục chu trình kiểm thử mà không cần đăng nhập thủ công.

Điểm khác biệt giữa kiểm thử thủ công và kiểm thử tự động các giai đoạn cài đặt là gì?

Kiểm thử thủ công đòi hỏi người thực hiện phải theo dõi liên tục màn hình cài đặt, nhập thông số và khởi động lại máy bằng tay, dễ dẫn đến sai sót và khó lặp lại chuẩn xác 100%. Ngược lại, kiểm thử tự động sử dụng kịch bản VBScript và công cụ phát lại để tái hiện chính xác các thao tác, lưu vết toàn bộ nhật ký đầu vào/đầu ra vào tệp CSV và vận hành liên tục trên nhiều máy trạm khác nhau với chi phí vận hành thấp hơn đáng kể sau nhiều chu kỳ.

Mô hình Test Controller và Test Agent tương tác với nhau ra sao?

Test Controller đóng vai trò máy chủ điều phối, sử dụng giao thức gọi thủ tục từ xa RPC để gửi lệnh thực thi, tập tin kịch bản và dữ liệu cấu hình tới Test Agent trên máy trạm. Test Agent nhận chỉ thị, phân quyền chạy ở chế độ người dùng hoặc dịch vụ để tương tác với công cụ Capture & Replay, thực hiện các thao tác cài đặt, sau đó truyền toàn bộ tập tin nhật ký và kết quả kiểm thử ngược trở lại Test Controller để tổng hợp báo cáo.

Tại sao nghiên cứu lại sử dụng tập tin Excel để quản lý dữ liệu kiểm thử?

Tập tin Excel đóng vai trò là giao diện quản lý kiểm thử trực quan và thân thiện với kiểm thử viên. Thông qua hệ thống macro được lập trình sẵn, kiểm thử viên có thể dễ dàng lựa chọn trong số 220 ca kiểm thử, cập nhật tham số đầu vào, thiết lập chế độ chạy hàng loạt và tự động xuất dữ liệu cấu hình sang các tệp tin văn bản thuần (*.txt) phục vụ cho quá trình thực thi kịch bản của ControlScript.

Hệ thống ghi nhận và lưu trữ bằng chứng kiểm thử lỗi bằng cách nào?

Trong suốt quá trình thực thi, nếu có bất kỳ hộp thoại cảnh báo hoặc thông báo lỗi nào phát sinh ngoài kịch bản dự kiến, hệ thống sẽ tự động kích hoạt hàm chụp ảnh màn hình thời gian thực và ghi nhận chi tiết chuỗi lỗi vào tập tin nhật ký hệ thống. Toàn bộ hình ảnh bằng chứng và tập tin log được đánh số theo mã ca kiểm thử và tự động sao chép về thư mục TestResult trên máy Controller để phục vụ công tác gỡ lỗi.

Kết luận

Luận văn đã hoàn thành xuất sắc các mục tiêu nghiên cứu đề ra với những đóng góp thực tiễn và học thuật nổi bật:

  • Xây dựng thành công hệ thống kiểm thử tự động HTKTTĐ chuyên biệt cho các giai đoạn cài đặt, thiết lập cấu hình và gỡ cài đặt phần mềm.
  • Đề xuất kiến trúc phân tán Test Controller - Test Agent sử dụng RPC kết hợp máy trạng thái hữu hạn, giải quyết triệt để bài toán tự động hóa khi hệ điều hành khởi động lại.
  • Tự động hóa thành công 220 ca kiểm thử trên phần mềm bảo mật SEC, nâng cao năng suất kiểm thử hồi quy hơn 60% và chuẩn hóa 100% dữ liệu nhật ký kiểm thử.
  • Vận dụng và kiểm chứng hiệu quả mô hình Keviat và thang đo 5 mức độ tự động hóa trong môi trường kỹ nghệ phần mềm thực tế.
  • Định hình khung giải pháp mở cho phép mở rộng kiểm thử tự động trên nhiều dòng sản phẩm phần mềm đóng gói khác nhau.

Về lộ trình tiếp theo, hệ thống được định hướng nâng cấp trong 12 tháng tới để mở rộng khả năng kiểm thử song song trên 10 máy trạm và tích hợp hoàn toàn vào quy trình phát triển CI/CD. Độc giả quan tâm và các đơn vị phát triển phần mềm có thể tải toàn văn luận văn để áp dụng ngay mô hình này vào việc tối ưu hóa quy trình kiểm thử tại doanh nghiệp.