Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ, các ứng dụng web ngày càng giữ vai trò kết nối thiết yếu trong hoạt động của nhiều cơ quan, doanh nghiệp, đồng thời là nền tảng phục vụ thương mại điện tử và trao đổi thông tin trực tuyến. Để đáp ứng trải nghiệm của người dùng, ứng dụng web đòi hỏi mức độ ổn định, hiệu năng vận hành và độ tin cậy cao. Tuy nhiên, tính phức tạp trong kiến trúc, sự linh hoạt về mặt giao diện và sự phụ thuộc vào môi trường phân tán đa nền tảng (hệ điều hành, trình duyệt đa dạng) tạo ra thách thức lớn đối với công tác bảo đảm chất lượng phần mềm.
Hoạt động kiểm thử truyền thống bằng phương pháp thủ công thường chiếm tới 40% tổng thời gian, kinh phí và nguồn nhân lực của một dự án phát triển phần mềm. Việc lặp đi lặp lại các kịch bản kiểm thử quy mô lớn gây tốn kém tài nguyên và dễ dẫn đến sai sót do yếu tố con người. Để giải quyết bất cập này, việc nghiên cứu và áp dụng các công cụ kiểm thử tự động trở thành yêu cầu thiết yếu. Khóa luận tốt nghiệp "Nghiên cứu và ứng dụng Selenium WebDriver vào kiểm thử phần mềm" của tác giả Phạm Thị Nhung (ngành Công nghệ thông tin, Trường Đại học Hòa Bình, năm 2023) tập trung giải quyết bài toán trên.
Mục tiêu nghiên cứu của khóa luận được xác định cụ thể gồm 3 nội dung:
- Tìm hiểu tổng quan về kỹ thuật kiểm thử phần mềm và kiểm thử tự động thông qua việc sử dụng các công cụ hỗ trợ.
- Nghiên cứu vai trò, phương pháp và ứng dụng của công cụ Selenium WebDriver trong công tác tự động hóa kiểm thử ứng dụng web.
- Phân tích hệ thống, xây dựng các kịch bản và ca kiểm thử (test case) cho các chức năng của một website; sử dụng ngôn ngữ lập trình Java kết hợp các thư viện chuyên dụng để thực thi kiểm thử tự động.
Đối tượng nghiên cứu của đề tài là kỹ thuật kiểm thử tự động trên nền tảng web, tập trung vào công cụ Selenium WebDriver kết hợp ngôn ngữ Java và các framework hỗ trợ (Maven, TestNG). Phạm vi nghiên cứu về mặt hệ thống là website quản lý học tập trực tuyến LMS (hệ thống LMS TVU/Onschool thử nghiệm tại các địa chỉ https://lmstvudev.onschool.vn/ và https://lmstmudev.vn/). Về mặt chức năng, tác giả giới hạn kiểm thử ở các tác vụ trọng tâm bao gồm: Đăng nhập hệ thống, Sửa hồ sơ cá nhân và Xem thông tin chi tiết khóa học. Thời gian và địa điểm thực hiện đề tài hoàn thành trong năm 2023 tại Khoa Công nghệ thông tin và Điện tử viễn thông, Trường Đại học Hòa Bình.
Cơ sở lý thuyết và phương pháp
Khóa luận xây dựng trên nền tảng lý thuyết kiểm định phần mềm chuẩn hóa. Tác giả tiếp cận định nghĩa kiểm thử phần mềm là "quá trình thực thi một chương trình với mục đích tìm lỗi", hướng tới việc phát hiện tối đa các khiếm khuyết phần mềm trong phạm vi ngân sách và thời gian cho phép, đồng thời tích lũy tài liệu lỗi phục vụ công tác phòng ngừa. Hệ thống lý thuyết phân định rõ bốn cấp độ kiểm thử phần mềm:
- Kiểm thử đơn vị (Unit Test): Thuộc phạm vi kiểm thử hộp trắng (White-box Testing), tập trung vào các đơn vị nhỏ nhất như hàm, lớp, phương thức do lập trình viên thực hiện.
- Kiểm thử tích hợp (Integration Test): Kiểm tra sự tương tác và giao tiếp giữa các đơn vị sau khi tích hợp để tạo thành các phân hệ.
- Kiểm thử hệ thống (System Test): Thuộc phạm vi kiểm thử hộp đen (Black-box Testing), kiểm tra sự phù hợp của toàn bộ hệ thống hoàn chỉnh theo các yêu cầu ban đầu.
- Kiểm thử chấp nhận (User Acceptance Test): Đánh giá mức độ đáp ứng nhu cầu của người dùng cuối, bao gồm Alpha Test (kiểm thử tại môi trường phát triển) và Beta Test (kiểm thử trong môi trường thực tế).
Về mặt công cụ, tác giả nghiên cứu sâu hệ sinh thái Selenium bao gồm: Selenium IDE (tiện ích mở rộng ghi và chạy lại trên trình duyệt), Selenium Core, Selenium RC (Remote Control - hoạt động qua máy chủ trung gian HTTP proxy) và Selenium WebDriver (thế hệ kế thừa, tương tác trực tiếp với trình duyệt ở cấp độ hệ điều hành qua WebDriver API). Bên cạnh đó, Selenium Grid được đề cập với vai trò điều phối kiểm thử song song trên nhiều môi trường.
Để làm rõ tính cấp thiết của tự động hóa, tác giả lập bảng đối chiếu giữa kiểm thử tự động và kiểm thử thủ công theo các tiêu chí kỹ thuật:
| Tiêu chí đối chiếu |
Kiểm thử tự động |
Kiểm thử thủ công |
| Định nghĩa |
Sử dụng các công cụ tự động để thực hiện ca kiểm thử |
Tester trực tiếp thao tác thực hiện kiểm thử trên phần mềm |
| Thời gian xử lý |
Nhanh hơn đáng kể so với phương pháp thủ công |
Tốn thời gian thực thi của kiểm thử viên |
| Kiểm thử ngẫu nhiên |
Không cho phép kiểm thử ngẫu nhiên (Exploratory Testing) |
Có thể thực hiện kiểm thử ngẫu nhiên linh hoạt |
| Chi phí đầu tư ban đầu |
Chi phí đầu tư ban đầu cao, tỷ suất hoàn vốn (ROI) tốt hơn về lâu dài |
Đầu tư ban đầu tương đối thấp, ROI về lâu dài thấp hơn |
| Độ tin cậy |
Độ tin cậy cao, chạy bằng script chính xác, không gây nhàm chán |
Dễ xảy ra sai sót do thao tác lặp lại gây nhàm chán |
| Thay đổi giao diện (UI) |
Một thay đổi nhỏ trong mã giao diện (ID, Class) đòi hỏi sửa script |
Thay đổi nhỏ về thuộc tính nút bấm không cản trở việc kiểm thử |
| Kiểm thử hiệu năng |
Bắt buộc sử dụng công cụ tự động (Load, Stress, Spike Testing) |
Không khả thi để thực hiện bằng tay |
| Chạy hàng loạt |
Có thể thiết lập chạy hàng loạt script vào ban đêm |
Không thể thực hiện chạy hàng loạt tự động |
| Yêu cầu kỹ năng |
Bắt buộc phải có kiến thức lập trình |
Không bắt buộc phải có kiến thức lập trình |
| Môi trường phù hợp |
Phù hợp cho kiểm thử hồi quy, hiệu năng, ca kiểm thử lặp lại cao |
Phù hợp cho kiểm thử khám phá, khả dụng, đột xuất (Adhoc) |
Phương pháp nghiên cứu thực tế được triển khai qua hai giai đoạn:
- Phương pháp phân tích - tổng hợp tài liệu: Nghiên cứu tài liệu kỹ thuật về Selenium WebDriver, mô hình Project Object Model (POM), ngôn ngữ lập trình Java, cấu trúc điều khiển của framework TestNG và công cụ quản lý dự án Apache Maven.
- Phương pháp thực nghiệm: Thiết lập môi trường kiểm thử trên IntelliJ IDEA, tích hợp trình điều khiển ChromeDriver tương tác với trình duyệt Google Chrome thông qua giao thức W3C WebDriver. Dữ liệu kiểm thử được xây dựng bằng phương pháp phân vùng tương đương và phân tích giá trị biên nhằm thiết lập các bộ dữ liệu hợp lệ và không hợp lệ cho các biểu mẫu trên website LMS.
Thiết kế và triển khai
Hệ thống kiểm thử tự động được thiết kế dưới dạng một dự án Maven mang tên LMS_TVU trên môi trường IntelliJ IDEA. Cấu hình quản lý thư viện và phụ thuộc được định nghĩa chi tiết thông qua tệp pom.xml, bao gồm các thành phần:
selenium-java (phiên bản 3.141.59): Cung cấp bộ thư viện API tương tác trực tiếp với các phần tử web (WebElement).
testng (phiên bản 7.0): Framework điều khiển quá trình thực thi kiểm thử, hỗ trợ quản lý bộ kiểm thử qua XML, cung cấp các chú thích (Annotations) và cơ chế báo cáo.
webdrivermanager (phiên bản 5.3.0): Tự động hóa quá trình tải và cài đặt tệp thực thi của trình điều khiển trình duyệt (ChromeDriver).
poi và poi-ooxml (phiên bản 4.1.2): Hỗ trợ thao tác đọc và ghi dữ liệu kiểm thử từ các tệp bảng tính Microsoft Excel.
javafaker (phiên bản 1.0.2): Thư viện tạo dữ liệu kiểm thử giả lập ngẫu nhiên phục vụ việc điền thông tin tự động.
slf4j-api và slf4j-simple (phiên bản 1.7.36): Hệ thống ghi nhật ký (logging) phục vụ quá trình giám sát thực thi mã nguồn.
dozer (phiên bản 5.5.1) và httpclient (phiên bản 4.5.13): Hỗ trợ chuyển đổi đối tượng và xử lý các yêu cầu HTTP.
Về mặt kiến trúc phần mềm kiểm thử, tác giả xây dựng cấu trúc hướng module hóa đặt trong gói mã nguồn common nhằm đảm bảo khả năng tái sử dụng:
- Lớp
BasePage: Chứa các phương thức xử lý giao diện chung và bao bọc các lệnh tương tác của Selenium như findElement, findElements, các lệnh điều hướng (driver.get, forward, back, refresh) và xử lý chuyển đổi cửa sổ/khung (getWindowHandle, getWindowHandles).
- Lớp
BaseTest: Đóng vai trò lớp cơ sở chung chịu trách nhiệm quản lý vòng đời trình duyệt web, khởi tạo môi trường, thiết lập các tham số thời gian chờ và giải phóng trình điều khiển sau khi kết thúc chuỗi kiểm thử.
- Lớp
GlobalContain: Lưu trữ toàn bộ các hằng số toàn cục, đường dẫn URL cấu hình của hệ thống LMS và các giá trị thiết lập cố định dùng chung cho toàn bộ dự án.
Quy trình thực thi kiểm thử tự động trên hệ thống được tổ chức tuần tự theo 7 bước: (1) Xác định website cần kiểm thử; (2) Liệt kê ca kiểm thử trong Excel; (3) Thiết kế kịch bản kiểm thử chi tiết; (4) Xây dựng mã kịch bản kiểm thử (Test script) bằng Java; (5) Thực thi các ca kiểm thử tự động thông qua cấu hình TestNG XML; (6) Ghi nhận kết quả, chụp ảnh màn hình và xuất dữ liệu ra Excel; (7) Báo cáo và phân tích lỗi.
Nội dung chính theo từng chương
Chương I: Tổng quan về kiểm thử phần mềm
Chương I trình bày hệ thống lý luận căn bản về bảo đảm chất lượng phần mềm. Tác giả làm rõ vai trò, mục tiêu trực tiếp và gián tiếp của hoạt động kiểm thử trong vòng đời phát triển dự án. Nội dung chương phân tích chi tiết bốn cấp độ kiểm thử phần mềm (Unit Test, Integration Test, System Test, Acceptance Test), đồng thời so sánh sâu sắc giữa kiểm thử tự động và kiểm thử thủ công qua 16 chỉ số vận hành.
Phần sau của chương tập trung nghiên cứu công cụ Selenium và quá trình tiến hóa từ Selenium RC lên Selenium WebDriver (Selenium 2.0). Khác với Selenium RC phải phụ thuộc vào máy chủ trung gian để phân tích mã và điều phối thông qua JavaScript, Selenium WebDriver kết nối trực tiếp với trình duyệt ở mức hệ điều hành thông qua giao thức W3C WebDriver, mang lại tốc độ thực thi vượt trội và khắc phục được rào cản thao tác trên các trang web động. Chương này cũng giới thiệu chi tiết về hệ sinh thái hỗ trợ gồm ngôn ngữ lập trình Java, môi trường phát triển tích hợp IntelliJ IDEA, công cụ quản lý dự án Apache Maven (với cấu trúc POM, vòng đời build, phase, goal) và framework kiểm thử TestNG.
Chương II: Kịch bản kiểm thử website
Chương II tập trung thiết kế các kịch bản kiểm thử cho hệ thống website học tập trực tuyến LMS. Tác giả xác định các tiêu chuẩn kiểm thử web cần tập trung gồm: kiểm thử chức năng (kiểm tra tính hợp lệ của biểu mẫu, liên kết), kiểm thử tính khả dụng (giao diện, thanh điều hướng), kiểm thử tính tương thích đa trình duyệt (Chrome, Firefox, Safari, Edge) và kiểm thử an toàn bảo mật (kiểm tra tính hợp lệ của tham số URL).
Trên cơ sở đó, tác giả xây dựng bảng kịch bản chi tiết và danh sách các ca kiểm thử (Test case) cho ba chức năng chính của website:
| Nhóm chức năng |
Mã Test Case |
Tên ca kiểm thử |
Dữ liệu đầu vào và các bước thực hiện |
| Đăng nhập |
LG-001 |
Đăng nhập thành công |
Nhập tài khoản haltt, mật khẩu onschool@123, nhấn Đăng nhập |
|
LG-002 |
Bỏ trống thông tin |
Để trống toàn bộ trường dữ liệu, nhấn Đăng nhập |
|
LG-003 |
Thiếu tên đăng nhập |
Để trống Username, nhập mật khẩu hợp lệ, nhấn Đăng nhập |
|
LG-004 |
Thiếu mật khẩu |
Nhập Username haltt, để trống Password, nhấn Đăng nhập |
|
LG-005 |
Sai tài khoản và mật khẩu |
Nhập Username haltt1, mật khẩu 123456, nhấn Đăng nhập |
| Sửa hồ sơ cá nhân |
HS-001 |
Xem hồ sơ cá nhân |
Truy cập Quản lý người dùng -> Chọn Hồ sơ -> Xem chi tiết |
|
HS-002 |
Chỉnh sửa thông tin cá nhân |
Thay đổi các trường thông tin Họ tên, Email, nhấn Cập nhật hồ sơ |
|
HS-003 |
Thay đổi ảnh đại diện |
Nhấn chọn biểu tượng tải tệp, tải ảnh mới, nhấn Cập nhật hồ sơ |
|
HS-004 |
Xác thực dữ liệu cập nhật |
Kiểm tra lại thông tin sau khi hệ thống lưu dữ liệu cập nhật |
| Chi tiết khóa học |
KH-001 |
Xem tổng quan khóa học |
Chọn một khóa học cụ thể tại trang chủ và kiểm tra hiển thị |
|
KH-002 |
Xem kế hoạch học tập |
Truy cập khóa học, mở mục Kế hoạch học tập, kiểm tra nội dung |
|
KH-003 |
Đặt câu hỏi mục HD72 |
Vào mục Hỏi đáp HD72 trong khóa học, tạo nội dung câu hỏi mới |
|
KH-004 |
Thảo luận trên diễn đàn |
Vào Diễn đàn thảo luận, tạo chủ đề thảo luận mới |
|
KH-005 |
Xem video giới thiệu |
Truy cập mục Giới thiệu học phần, kích hoạt phát video bài giảng |
|
KH-006 |
Xem tài liệu bài giảng |
Mở và kiểm tra trình xem Slide bài giảng trực tuyến |
Bên cạnh việc thiết kế ca kiểm thử, chương này định hình quy trình chạy kiểm thử và cách thức thu thập dữ liệu báo cáo phục vụ việc phân tích kết quả sau khi thực thi.
Chương III: Thực nghiệm và đánh giá kết quả
Chương III triển khai cài đặt thực nghiệm trên hệ thống LMS TVU/Onschool. Tác giả giới thiệu tổng quan các phân hệ chức năng của nền tảng LMS bao gồm: quản lý khóa học, tích hợp nội dung đa phương tiện (video, slide), quản lý học viên, giao diện tương tác (diễn đàn, hỏi đáp HD72), công cụ đánh giá phản hồi và phân hệ báo cáo thống kê.
Tiếp đó, tác giả tiến hành hiện thực hóa dự án kiểm thử trong IntelliJ IDEA:
- Thiết lập tệp cấu hình
pom.xml nạp các thư viện tự động hóa.
- Lập trình các lớp điều khiển
BasePage, BaseTest và GlobalContain.
- Lập trình các lớp kiểm thử chức năng: viết mã xử lý test case Đăng nhập (
LoginTest), mã xử lý test case Hồ sơ cá nhân, và các lớp kiểm thử chi tiết chức năng khóa học như ViewCourse, View_Kehoachhoctap, View_Gioithieuhocphan, View_Diendanthaoluan, View_Helpdesk, View_Slide.
- Cấu hình các bộ kiểm thử thông qua các tệp XML của TestNG để tự động hóa việc khởi chạy hàng loạt.
Chương III kết thúc bằng việc trình bày kết quả thực thi kiểm thử trên trình duyệt Google Chrome và phân tích chi tiết thông báo lỗi nhận được từ hệ thống.
Kết quả và đóng góp
Quá trình thực nghiệm bộ kiểm thử tự động (Test suite) bằng công cụ Selenium WebDriver điều khiển qua TestNG trên hệ thống LMS ghi nhận các thông số vận hành định lượng sau:
- Tổng số bài kiểm tra đã thực thi (
Total tests run): 9 bài.
- Số lượng bài kiểm tra thực thi thành công (
Passes): 8 bài.
- Số lượng bài kiểm tra không thành công (
Failures): 1 bài.
- Số lượng bài kiểm tra bị bỏ qua (
Skips): 0 bài.
Quá trình khởi chạy ghi nhận ChromeDriver kích hoạt thành công trên cổng kết nối 26660, sử dụng phương thức giao tiếp chuẩn W3C WebDriver dialect. Trong số các ca kiểm thử, bài kiểm tra ghi nhận trạng thái Failure phát sinh khi đưa thông tin kiểm thử lỗi vào hệ thống đăng nhập, làm xuất hiện thông báo phản hồi từ giao diện: "Đăng nhập sai, xin vui lòng thử lại". Báo cáo kiểm thử của TestNG đã bắt chính xác ngoại lệ này, chứng minh tính chính xác của script trong việc phát hiện và ghi nhận các trạng thái phản hồi của hệ thống.
Về mặt giải pháp và đóng góp, khóa luận mang lại các giá trị cụ thể:
- Chuẩn hóa quy trình kiểm thử tự động cho hệ thống giáo dục trực tuyến LMS, cung cấp giải pháp thay thế kiểm thử thủ công giúp tiết kiệm đáng kể thời gian và nhân lực phát triển phần mềm.
- Xây dựng thành công một framework kiểm thử tự động hoàn chỉnh, có cấu trúc phân tầng rõ ràng (BasePage, BaseTest, TestCases) bằng ngôn ngữ Java, dễ dàng bảo trì và mở rộng kịch bản kiểm thử trong tương lai.
- Đóng góp cho đội ngũ phát triển sản phẩm một bộ kịch bản kiểm thử cụ thể kèm mã nguồn thực thi, cho phép kiểm tra hồi quy liên tục các chức năng cốt lõi trước khi triển khai các phiên bản cập nhật đến người dùng.
Hạn chế và hướng nghiên cứu tiếp
Khóa luận tự đánh giá một số hạn chế và tồn đọng trong quá trình thực hiện:
- Phạm vi kiểm thử mới chỉ tập trung vào một số chức năng bề mặt chính của người dùng (Đăng nhập, Hồ sơ, Xem chi tiết khóa học/video/slide/hỏi đáp), chưa bao quát toàn diện các nghiệp vụ quản trị phức tạp khác của hệ thống LMS như chấm điểm tự động, quản lý phân quyền và tích hợp ngân hàng đề thi.
- Môi trường kiểm thử thực nghiệm chỉ mới triển khai trên một trình duyệt duy nhất là Google Chrome trên môi trường máy cục bộ, chưa kiểm thử diện rộng trên các trình duyệt khác (Firefox, Safari, Edge) hay môi trường thiết bị di động.
- Kịch bản kiểm thử tự động còn bị động trước các thay đổi lớn về mã nguồn giao diện HTML/DOM; việc xử lý ngoại lệ và bắt lỗi đăng nhập chưa được tối ưu hóa hoàn toàn để phân tách giữa lỗi hệ thống và lỗi do dữ liệu kiểm thử biên.
Các hướng phát triển tiếp theo được tác giả vạch ra bao gồm:
- Mở rộng phạm vi kịch bản kiểm thử tự động cho toàn bộ các chức năng còn lại trên toàn hệ thống LMS.
- Ứng dụng công nghệ Selenium Grid nhằm thực thi song song các kịch bản kiểm thử trên nhiều máy chủ, nhiều hệ điều hành và nhiều trình duyệt web khác nhau để kiểm tra tính tương thích toàn diện.
- Tích hợp thêm các thư viện tạo báo cáo đồ họa chuyên nghiệp (như ReportNG hoặc Allure Report) và kết nối framework kiểm thử vào hệ thống Tích hợp liên tục/Triển khai liên tục (CI/CD) trong chu trình DevOps.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo có giá trị chuyên môn cao cho:
- Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm đang theo học các học phần Đảm bảo chất lượng phần mềm (QA), Kiểm thử phần mềm hoặc chuẩn bị làm đồ án tốt nghiệp về chủ đề tự động hóa kiểm thử.
- Các kiểm thử viên mới bước vào nghề (Junior Automation Tester) cần tài liệu tham khảo thực tế về cách thiết lập một dự án kiểm thử tự động từ con số 0 bằng ngôn ngữ Java kết hợp Selenium WebDriver, TestNG và Maven.
- Phần đáng tham khảo nhất của tài liệu là Chương II và Chương III: cách thiết kế kịch bản kiểm thử chi tiết từ góc nhìn người dùng chuyển hóa thành các mã kiểm thử cụ thể (Test case), cách phân chia cấu trúc mã nguồn chung (
BasePage, BaseTest), cách khai báo dependencies chuẩn trong tệp pom.xml và cấu hình bộ kiểm thử bằng tệp XML trong TestNG.
Câu hỏi thường gặp
1. Hệ thống phần mềm thực tế được lựa chọn để thực nghiệm kiểm thử trong khóa luận là gì?
Khóa luận lựa chọn hệ thống quản lý học tập trực tuyến LMS (cụ thể là hệ thống LMS TVU trên nền tảng Onschool, chạy thử nghiệm tại các đường dẫn https://lmstvudev.onschool.vn/ và https://lmstmudev.vn/).
2. Dự án kiểm thử tự động sử dụng những công nghệ và thư viện chính nào?
Dự án được xây dựng trên môi trường IntelliJ IDEA sử dụng ngôn ngữ lập trình Java và Apache Maven để quản lý. Các thư viện chính trong tệp pom.xml gồm: selenium-java (bản 3.141.59), testng (bản 7.0), webdrivermanager (bản 5.3.0), poi và poi-ooxml (bản 4.1.2), javafaker (bản 1.0.2), slf4j (bản 1.7.36) và httpclient (bản 4.5.13).
3. Kết quả chạy bộ kiểm thử tự động (Test suite) của khóa luận đạt được số liệu cụ thể ra sao?
Bộ kiểm thử chạy tổng cộng 9 bài kiểm tra (Total tests run: 9), trong đó có 8 bài kiểm tra thành công (Passes: 8), 1 bài kiểm tra thất bại (Failures: 1) và không có bài nào bị bỏ qua (Skips: 0). Quá trình được điều khiển qua ChromeDriver trên cổng kết nối 26660 theo chuẩn W3C WebDriver.
4. Ca kiểm thử bị thất bại (Failure) trong kết quả thực nghiệm có nguyên nhân do đâu?
Bài kiểm thử ghi nhận trạng thái Failure do hệ thống trả về thông báo lỗi: "Đăng nhập sai, xin vui lòng thử lại". Nguyên nhân xuất phát từ việc script đưa vào thông tin tài khoản không chính xác hoặc dữ liệu chưa được phân quyền truy cập hợp lệ trong bài kiểm thử chức năng Đăng nhập.
5. Vì sao Selenium WebDriver được lựa chọn thay thế cho Selenium RC trong nghiên cứu này?
Theo phân tích của tác giả, Selenium RC tương tác với trình duyệt thông qua một máy chủ trung gian (Selenium Server HTTP proxy), gây hạn chế về tốc độ và tính linh hoạt. Ngược lại, Selenium WebDriver kết nối trực tiếp với trình duyệt ở mức hệ điều hành qua WebDriver API, cung cấp giao diện lập trình đơn giản hơn, hỗ trợ tốt các ứng dụng web động và không phụ thuộc vào máy chủ trung gian.
Kết luận
Khóa luận tốt nghiệp của sinh viên Phạm Thị Nhung đã nghiên cứu và triển khai thành công giải pháp kiểm thử tự động cho hệ thống quản lý học tập trực tuyến LMS bằng công cụ Selenium WebDriver kết hợp Java, TestNG và Maven. Đề tài đã hoàn thành việc xây dựng kiến trúc framework kiểm thử module hóa và thực thi kiểm thử thực nghiệm trên 3 cụm chức năng cốt lõi (Đăng nhập, Hồ sơ cá nhân, Khóa học), đạt tỷ lệ 8/9 bài kiểm tra thành công theo chuẩn W3C WebDriver. Công trình mang tính ứng dụng thực tiễn rõ nét, đóng góp tài liệu kỹ thuật hữu ích và giải pháp kiểm định tự động chất lượng cho phần mềm giáo dục trực tuyến trước khi bàn giao đưa vào vận hành.