Bối cảnh và vấn đề nghiên cứu

Trong quy trình phát triển phần mềm, hoạt động kiểm thử đóng vai trò cốt lõi nhằm phát hiện lỗi sớm, hạn chế tối đa rủi ro khi sản phẩm vận hành thực tế và bảo đảm chất lượng đáp ứng các yêu cầu thiết kế. Tuy nhiên, công tác kiểm thử thủ công thường chiếm tỷ trọng lớn về mặt thời gian, nhân lực và chi phí trong toàn bộ vòng đời dự án. Để giải quyết bài toán này, xu hướng tự động hóa quy trình kiểm thử phần mềm được áp dụng nhằm giảm thiểu nhân lực, rút ngắn thời gian thực thi, hạn chế sai sót chủ quan của con người và nâng cao độ tin cậy.

Trong số các công cụ hỗ trợ kiểm thử tự động cho ứng dụng web, Selenium là bộ công cụ mã nguồn mở phổ biến, có khả năng hoạt động trên nhiều trình duyệt, đa nền tảng hệ điều hành, hỗ trợ nhiều ngôn ngữ lập trình và tích hợp linh hoạt với các framework kiểm thử như JUnit, TestNG hoặc NUnit mà không phát sinh chi phí bản quyền. Xuất phát từ thực tiễn đó, đề tài "Nghiên cứu và ứng dụng công cụ kiểm thử Selenium trong kiểm thử website" được thực hiện.

Mục tiêu nghiên cứu của khóa luận được phân định cụ thể:

  1. Mục tiêu chung: Nghiên cứu về công cụ kiểm thử tự động Selenium và ứng dụng công cụ này vào quá trình kiểm thử website.
  2. Mục tiêu cụ thể:
    • Nghiên cứu cơ sở lý thuyết về kiểm thử phần mềm và công cụ kiểm thử tự động Selenium.
    • Phân tích, xây dựng website thương mại điện tử phục vụ thực nghiệm.
    • Ứng dụng công cụ Selenium WebDriver để thiết kế ca kiểm thử (test case) và kịch bản kiểm thử tự động (test script) trên website đã xây dựng.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình kiểm thử phần mềm, kỹ thuật kiểm thử tự động, cấu trúc công cụ Selenium (trọng tâm là Selenium WebDriver) và hệ thống website quản lý bán giày Candy Store.
  • Phạm vi không gian và công nghệ: Nghiên cứu và triển khai trên môi trường phát triển tích hợp (IDE) Eclipse, ngôn ngữ lập trình Java, trình duyệt web và hệ thống ứng dụng web mẫu.
  • Thời gian và đơn vị thực hiện: Khóa luận hoàn thành vào tháng 05 năm 2023 tại Khoa Công nghệ thông tin, Trường Đại học Tài nguyên và Môi trường Hà Nội dưới sự hướng dẫn của giảng viên Lê Phú Hưng.

Cơ sở lý thuyết và phương pháp

Khóa luận thiết lập nền tảng lý thuyết thông qua các chuẩn mực về kiểm thử phần mềm và kiến trúc bộ công cụ tự động hóa:

  1. Khái niệm và cấp độ kiểm thử phần mềm: Kiểm thử phần mềm là quá trình xác minh và phê chuẩn phần mềm nhằm đáp ứng các yêu cầu thiết kế, vận hành đúng mong đợi của các bên liên quan. Hệ thống kiểm thử được chia thành 4 cấp độ:

    • Kiểm thử đơn vị (Unit Test): Kiểm tra các thành phần nhỏ nhất (hàm, thủ tục, lớp, phương thức) do lập trình viên thực hiện sớm trong chu kỳ viết mã.
    • 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ị riêng lẻ, bao gồm kiểm thử cấu trúc (Structure test), kiểm thử chức năng (Functional test), kiểm thử hiệu năng (Performance test) và kiểm thử khả năng chịu tải (Stress test).
    • Kiểm thử hệ thống (System Test): Đánh giá toàn diện phần mềm đã tích hợp hoàn chỉnh dựa trên các tiêu chí chức năng, hiệu năng, khả năng chịu tải, cấu hình, bảo mật và khả năng phục hồi (Recovery test).
    • Kiểm thử chấp nhận (Acceptance Test): Do khách hàng thực hiện nhằm đánh giá mức độ đáp ứng yêu cầu nghiệp vụ thực tế trước khi bàn giao.
  2. Phương pháp kiểm thử: Khóa luận phân tích và đối chiếu 3 kỹ thuật kiểm thử tiêu chuẩn:

Phương pháp Định nghĩa & Đặc điểm Ưu điểm Nhược điểm
Kiểm thử hộp đen (Black Box Testing) Kiểm thử dựa trên đầu vào và đầu ra, tập trung vào yêu cầu chức năng, không truy cập mã nguồn bên trong. - Phù hợp với hệ thống có số dòng lệnh lớn.
- Không cần truy cập mã nguồn.
- Phân biệt rõ quan điểm người dùng và nhà phát triển.
- Không đòi hỏi kiểm thử viên phải có kỹ năng lập trình sâu.
- Giới hạn độ bao phủ ca kiểm thử.
- Tester bị giới hạn hiểu biết về cấu trúc bên trong.
- Khó thiết kế bao quát các đoạn mã dễ phát sinh lỗi.
Kiểm thử hộp trắng (White Box Testing) Kiểm thử hướng logic, truy cập trực tiếp mã nguồn để kiểm tra cấu trúc lệnh, nhánh và điều kiện bên trong. - Dễ phát hiện lỗi chi tiết trong từng dòng lệnh.
- Giúp tối ưu hóa mã nguồn và loại bỏ lệnh thừa.
- Đạt độ bao phủ kiểm thử cao khi thiết kế ca kiểm thử.
- Tăng chi phí phát triển do đòi hỏi tester có trình độ lập trình.
- Khó kiểm tra toàn bộ luồng trong các hệ thống phức tạp.
- Đòi hỏi công cụ phân tích mã nguồn chuyên biệt.
Kiểm thử hộp xám (Gray Box Testing) Kết hợp giữa hộp đen và hộp trắng, dựa trên tài liệu thiết kế hệ thống, lược đồ cơ sở dữ liệu và giao diện. - Kết hợp ưu điểm của cả hai phương pháp.
- Thiết kế được ca kiểm thử xung quanh các giao thức kết nối và kiểu dữ liệu.
- Tiếp cận từ góc nhìn người dùng kết hợp hiểu biết cấu trúc.
- Độ bao phủ vẫn bị giới hạn do không can thiệp sâu toàn bộ mã nguồn.
- Nguy cơ trùng lặp ca kiểm thử với đội ngũ phát triển.
- Không kiểm tra hết toàn bộ luồng đầu vào do giới hạn thời gian.
  1. Nguyên tắc cơ bản và quy trình kiểm thử: Đề tài viện dẫn 7 nguyên tắc kiểm thử (Kiểm thử chứng minh sự có mặt của lỗi; Không thể kiểm thử vét cạn; Kiểm thử sớm; Phân cụm lỗi; Kiểm thử ngược; Kiểm thử phụ thuộc ngữ cảnh; Sai lầm về việc không có lỗi) và quy trình chuẩn 6 bước:

    • Requirement analysis (Phân tích yêu cầu): Phân tích đặc tả, đánh giá tính khả thi và rủi ro.
    • Test planning (Lập kế hoạch): Xây dựng test plan, ước lượng (estimation) và lịch trình (schedule).
    • Test case development (Thiết kế kịch bản): Soạn thảo test design, test case, checklist, test data, test automation script.
    • Test environment set up (Thiết lập môi trường): Chuẩn bị phần cứng, phần mềm, dữ liệu thử nghiệm và chạy smoke test.
    • Test execution (Thực hiện kiểm thử): Chạy kịch bản kiểm thử, ghi nhận kết quả và báo cáo lỗi (defect reports).
    • Test cycle closure (Đóng chu trình kiểm thử): Tổng hợp báo cáo kết quả kiểm thử hoàn chỉnh (final test report).
  2. Phương pháp nghiên cứu thực nghiệm:

    • Phân tích nghiệp vụ hệ thống bán lẻ và mô hình hóa chức năng bằng biểu đồ Use Case và biểu đồ hoạt động (Activity Diagram).
    • Xây dựng ứng dụng web thương mại điện tử Candy Store đóng vai trò môi trường đối tượng thử nghiệm.
    • Sử dụng thư viện Selenium WebDriver trên nền tảng Java để lập trình các đoạn mã kịch bản tự động thao tác trên trình duyệt, kiểm tra tính đúng đắn của dữ liệu phản hồi so với kết quả mong đợi.

Nội dung chính theo từng chương

Chương 1: Tổng quan về kiểm thử phần mềm

Chương 1 hệ thống hóa các khái niệm căn bản, mục tiêu, vai trò và phân loại kiểm thử phần mềm. Nội dung tập trung làm rõ 4 cấp độ kiểm thử (đơn vị, tích hợp, hệ thống, chấp nhận), phân tích chi tiết ưu nhược điểm của 3 kỹ thuật kiểm thử (Black Box, White Box, Gray Box) và liệt kê 11 loại kiểm thử chức năng lẫn phi chức năng (Installation, Smoke, Functional, Regression, Confirm/Retesting, Acceptance, Alpha, Beta, Performance, Security, Usability).

Chương này cũng phân tích quy trình kiểm thử tự động 5 bước (Lập kế hoạch, Thiết kế test case, Phát triển test script, Thực hiện kiểm thử, Đánh giá kết quả) và so sánh định tính giữa kiểm thử tự động với kiểm thử thủ công:

  • Ưu điểm của kiểm thử tự động: Độ tin cậy cao (Reliability) nhờ tính ổn định của máy móc; khả năng tái sử dụng (Reusability) bộ kịch bản cho nhiều phiên bản phần mềm; khả năng lặp lại (Repeatability) các thao tác nhập liệu/click/kiểm tra; tốc độ thực thi nhanh (rút ngắn thời gian từ 5 phút ở thao tác thủ công xuống khoảng 30 giây khi chạy tự động); tiết kiệm chi phí dài hạn (Cost Reduction).
  • Nhược điểm của kiểm thử tự động: Khó mở rộng và bảo trì (Poor scalability and maintainability) khi giao diện hoặc luồng nghiệp vụ thay đổi; rào cản về công cụ và nguồn nhân lực am hiểu lập trình; độ bao phủ ban đầu thấp (Low coverage).

Chương 2: Nghiên cứu công cụ kiểm thử tự động Selenium

Chương 2 đi sâu vào nguồn gốc, đặc điểm kiến trúc và các thành phần của bộ công cụ Selenium. Được phát triển ban đầu bởi ThoughtWorks vào năm 2004 tại Chicago, Selenium là framework mã nguồn mở hỗ trợ kiểm thử ứng dụng web trên đa trình duyệt (Firefox, Chrome, Internet Explorer, Safari...) và đa hệ điều hành (Windows, Linux, macOS) với nhiều ngôn ngữ lập trình (Java, C#, Python, PHP, Ruby, Perl).

Khóa luận phân tích 4 thành phần chính cấu thành bộ công cụ:

  1. Selenium IDE: Tiện ích mở rộng trên trình duyệt (khởi đầu trên Mozilla Firefox do Shinya Kasatani phát triển), hoạt động bằng JavaScript, cung cấp tính năng Record & Playback giúp ghi và phát lại hành động của người dùng mà không đòi hỏi kỹ năng lập trình phức tạp. Nhược điểm là khó xử lý logic phức tạp, không hỗ trợ kiểm thử cơ sở dữ liệu hay ứng dụng di động.
  2. Selenium RC (Remote Control): Framework kiểm thử client-server cho phép viết kịch bản bằng ngôn ngữ lập trình bậc cao thông qua máy chủ trung gian (Selenium Server) để điều khiển trình duyệt.
  3. Selenium Grid: Hệ thống hỗ trợ thực thi song song các kịch bản kiểm thử trên nhiều máy, nhiều hệ điều hành và nhiều trình duyệt khác nhau cùng lúc nhằm phân tán tải và tiết kiệm thời gian.
  4. Selenium WebDriver (Selenium 2.0): Bước phát triển thay thế Selenium RC. WebDriver tương tác trực tiếp với trình duyệt thông qua WebDriver API riêng của từng trình duyệt mà không cần máy chủ trung gian, cung cấp giao diện lập trình hướng đối tượng đơn giản, hỗ trợ hiệu quả cho các trang web động chứa các phần tử thay đổi liên tục mà không cần tải lại trang.

Khóa luận cũng chỉ rõ hạn chế của Selenium: không hỗ trợ kiểm thử ứng dụng Windows (Win App, Win Dialog như Upload/Download file độc lập nếu không tích hợp thêm thư viện ngoài như AutoIt hay Coded UI) và không có chức năng giả lập tải lượng người dùng ảo đồng thời (Stress/Load testing).

Chương 3: Phân tích và xây dựng website quản lý bán giày Candy Store

Chương 3 trình bày bài toán phân tích thiết kế và xây dựng hệ thống website thương mại điện tử Candy Store phục vụ công tác kiểm thử thực nghiệm. Hệ thống giải quyết các bài toán: tự động hóa quản lý sản phẩm, danh mục, đơn hàng, doanh số và cung cấp giao diện mua sắm trực tuyến cho khách hàng.

Khóa luận xác định 3 tác nhân tham gia hệ thống:

  • Quản trị viên (Admin): Đăng nhập/đăng xuất, quản lý người dùng, quản lý thông tin sản phẩm, quản lý đơn hàng, quản lý danh mục sản phẩm, quản lý thương hiệu (hãng sản xuất), quản lý thống kê, quản lý bài viết.
  • Người xem (Viewer): Đăng ký tài khoản, tìm kiếm sản phẩm, xem thông tin sản phẩm, xem danh mục, xem bài viết quảng cáo.
  • Khách hàng (Customer): Bao gồm toàn bộ quyền của Viewer, bổ sung các chức năng: đăng nhập/đăng xuất, thêm sản phẩm vào giỏ hàng, đặt hàng thanh toán COD, quản lý thông tin cá nhân (Profile), xem lịch sử đặt hàng.

Tác giả mô hình hóa hệ thống bằng sơ đồ Use Case tổng thể, sơ đồ Use Case phân rã (Quản lý sản phẩm, Quản lý danh mục, Quản lý bài viết, Đặt hàng, Xem lịch sử đặt hàng), sơ đồ hoạt động (Activity Diagram) và thiết kế giao diện cho các chức năng chính: Đăng nhập, Đăng ký tài khoản, Thêm mới sản phẩm, Đặt hàng, Tìm kiếm sản phẩm, Giỏ hàng, Quản lý người dùng, Quản lý đơn hàng.

Chương 4: Ứng dụng công cụ kiểm thử tự động Selenium WebDriver vào kiểm thử website bán giày CandyStore

Chương 4 mô tả quá trình thiết lập môi trường và thực thi kiểm thử tự động. Tác giả sử dụng IDE Eclipse kết hợp thư viện Selenium WebDriver và Java để xây dựng bộ kịch bản kiểm thử tự động (TestScript) tương ứng với các ca kiểm thử (TestCase) đã thiết kế cho 6 luồng chức năng trọng tâm của hệ thống Candy Store.

Các kịch bản kiểm thử được xây dựng bao gồm:

  • Chức năng Đăng nhập: Thiết kế TestCase (Bảng 4.1) và TestScript cho ca đăng nhập thành công (Bảng 4.2), ca để trống username (Bảng 4.3), ca nhập sai password (Bảng 4.4).
  • Chức năng Đăng ký tài khoản: Thiết kế TestCase (Bảng 4.5) và TestScript cho ca đăng ký thành công (Bảng 4.6), ca để trống tên đăng nhập (Bảng 4.7), ca để trống họ tên (Bảng 4.8).
  • Chức năng Thay đổi Profile: Thiết kế TestCase (Bảng 4.9) và TestScript cho ca chỉnh sửa thành công (Bảng 4.10), ca để trống họ tên (Bảng 4.11).
  • Chức năng Thêm mới sản phẩm (Admin): Thiết kế TestCase (Bảng 4.12) và TestScript cho ca thêm mới thành công (Bảng 4.13), ca để trống trường tên sản phẩm (Bảng 4.14).
  • Chức năng Tìm kiếm sản phẩm: Thiết kế TestCase (Bảng 4.15) và TestScript cho ca tìm kiếm thành công (Bảng 4.16), ca nhập từ khóa không tồn tại (Bảng 4.17), ca không nhập nội dung tìm kiếm (Bảng 4.18).
  • Chức năng Đặt hàng (Customer): Thiết kế TestCase (Bảng 4.19) và TestScript cho ca đặt hàng thành công qua phương thức COD (Bảng 4.20), ca đặt hàng không thành công khi giỏ hàng chưa có sản phẩm (Bảng 4.21).

Kết quả thực thi trên Eclipse được chụp lại và phân tích, chứng minh kịch bản kiểm thử tự động điều khiển trình duyệt thao tác chính xác, tự động nhập liệu, kích hoạt sự kiện và bắt đúng các thông báo phản hồi (message cảnh báo, popup lỗi hoặc thông báo thành công) từ hệ thống.

Thiết kế và triển khai

Hệ thống phần mềm thực nghiệm Candy Store và môi trường kiểm thử tự động Selenium WebDriver được triển khai với cấu trúc chi tiết như sau:

Phân quyền chức năng hệ thống

Tác nhân (Actor) Phạm vi quyền hạn và chức năng
Quản trị viên (Admin) - Đăng nhập, đăng xuất hệ thống quản trị.
- Quản lý người dùng, quản lý bài viết, quản lý thương hiệu, quản lý danh mục.
- Quản lý thông tin sản phẩm (thêm mới, cập nhật, xóa).
- Quản lý và xử lý trạng thái đơn hàng.
- Theo dõi bảng thống kê doanh số bán hàng và số lượng tồn kho.
Người xem (Viewer) - Xem danh sách, thông tin chi tiết và danh mục sản phẩm.
- Tìm kiếm sản phẩm theo từ khóa trên thanh tìm kiếm.
- Xem các bài viết quảng cáo, thông tin liên hệ của cửa hàng.
- Đăng ký tài khoản người dùng mới.
Khách hàng (Customer) - Thừa hưởng toàn bộ chức năng của Người xem.
- Đăng nhập, đăng xuất tài khoản cá nhân.
- Thêm sản phẩm vào giỏ hàng (chọn size, số lượng).
- Thực hiện quy trình đặt hàng và chọn hình thức thanh toán COD.
- Chỉnh sửa thông tin cá nhân (Profile) và theo dõi lịch sử đặt hàng.

Cấu hình môi trường và kịch bản kiểm thử tự động

  • Môi trường phát triển & kiểm thử: IDE Eclipse, Java Development Kit (JDK), Selenium WebDriver API.
  • Trình duyệt thực thi: Tương tác trực tiếp với trình duyệt thông qua WebDriver điều khiển DOM elements.
  • Danh mục ca kiểm thử và kịch bản kiểm thử tự động đã thực hiện:
Chức năng kiểm thử Mã bảng TestCase Mã bảng TestScript tương ứng Các trường hợp kiểm thử (Scenarios)
Đăng nhập website Bảng 4.1 Bảng 4.2, 4.3, 4.4 - Đăng nhập thành công với tài khoản hợp lệ.
- Báo lỗi khi để trống trường username.
- Báo lỗi khi nhập sai password.
Đăng ký tài khoản Bảng 4.5 Bảng 4.6, 4.7, 4.8 - Đăng ký tài khoản mới thành công.
- Báo lỗi khi để trống tên đăng nhập.
- Báo lỗi khi để trống trường họ và tên.
Thay đổi Profile Bảng 4.9 Bảng 4.10, 4.11 - Cập nhật thông tin tài khoản thành công.
- Báo lỗi không hợp lệ khi để trống trường họ tên.
Thêm mới sản phẩm Bảng 4.12 Bảng 4.13, 4.14 - Thêm mới sản phẩm thành công vào hệ thống.
- Cảnh báo lỗi khi để trống trường tên sản phẩm.
Tìm kiếm sản phẩm Bảng 4.15 Bảng 4.16, 4.17, 4.18 - Tìm kiếm chính xác trả về danh sách sản phẩm.
- Xử lý khi nhập từ khóa không tồn tại trong cơ sở dữ liệu.
- Xử lý khi không nhập từ khóa vào ô tìm kiếm.
Đặt hàng Bảng 4.19 Bảng 4.20, 4.21 - Đặt hàng thành công với hình thức thanh toán COD.
- Xuất hiện popup cảnh báo khi thực hiện đặt hàng với giỏ hàng trống.

Kết quả và đóng góp

Khóa luận đã hoàn thành các mục tiêu nghiên cứu và thực nghiệm đặt ra với các kết quả cụ thể:

  • Kết quả thực nghiệm: Xây dựng hoàn chỉnh website thương mại điện tử Candy Store tích hợp đầy đủ cơ sở dữ liệu và giao diện quản trị lẫn người dùng. Thiết lập thành công bộ kịch bản kiểm thử tự động bằng Selenium WebDriver trên nền tảng Eclipse, thực thi tự động toàn bộ 6 nhóm chức năng trọng yếu với 15 kịch bản kiểm thử chi tiết bao quát các trường hợp thành công (positive cases) và thất bại/lỗi nhập liệu (negative cases).
  • Hiệu quả thực tế: Minh chứng rõ ràng ưu thế về tốc độ và tính ổn định của kiểm thử tự động; giảm thời gian thực thi ca kiểm thử từ khoảng 5 phút khi thao tác thủ công xuống xấp xỉ 30 giây trên mỗi ca kiểm thử tự động, loại bỏ các sai sót lặp lại do thao tác người dùng.
  • Đóng góp của tác giả: Hệ thống hóa toàn diện cơ sở lý thuyết về kiểm thử phần mềm, phân loại kỹ thuật kiểm thử và kiến trúc bộ công cụ Selenium; cung cấp tài liệu mẫu về quy trình phân tích chức năng hệ thống thương mại điện tử kết hợp phương pháp chuyển đổi từ ca kiểm thử thủ công sang kịch bản kiểm thử tự động bằng mã nguồn Java.

Hạn chế và hướng nghiên cứu tiếp

Dựa trên các nội dung được tác giả trình bày trong văn bản:

  • Hạn chế:
    • Selenium thuần túy chỉ hỗ trợ tương tác trên nền tảng trình duyệt web, không hỗ trợ thao tác trên các ứng dụng desktop hoặc hộp thoại hệ thống của Windows (Win dialog khi upload/download) nếu không cài đặt thêm các thư viện bổ trợ chuyên dụng như AutoIt hay Coded UI.
    • Công cụ không hỗ trợ kiểm thử tải hoặc giả lập đồng thời lượng lớn người dùng ảo truy cập để đánh giá hiệu năng hệ thống.
    • Bộ kịch bản kiểm thử tự động đòi hỏi kỹ năng lập trình để bảo trì khi mã nguồn giao diện HTML/DOM của website có sự thay đổi.
    • Khóa luận mới chỉ tập trung thực nghiệm trên một số chức năng cốt lõi của website mẫu Candy Store, chưa bao phủ toàn bộ các phân hệ quản lý phức tạp khác.
  • Hướng nghiên cứu tiếp:
    • 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 của hệ thống quản trị (quản lý bài viết, quản lý thương hiệu, phân quyền người dùng).
    • Tích hợp thêm các framework quản lý kiểm thử như TestNG hoặc JUnit để tự động xuất báo cáo kiểm thử trực quan và quản lý bộ ca kiểm thử tối ưu hơn.
    • Nghiên cứu ứng dụng Selenium Grid để triển khai kiểm thử tự động phân tán đồng thời trên nhiều môi trường trình duyệt và hệ điều hành khác nhau.
    • Tích hợp thư viện bên thứ ba (AutoIt) để tự động hóa toàn diện các tác vụ liên quan đến tải lên tệp tin và xử lý hộp thoại hệ thống.

Giá trị tham khảo

Báo cáo khóa luận có giá trị tham khảo thiết thực cho các nhóm đối tượng:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Là tài liệu học tập hữu ích để nắm bắt kiến thức nền tảng về kiểm thử phần mềm, quy trình kiểm thử chuẩn 6 bước và cấu trúc bộ công cụ Selenium.
  • Kiểm thử viên mới (Junior Tester / Automation Tester): Cung cấp tài liệu tham khảo thực tế về cách chuyển đổi đặc tả yêu cầu chức năng sang Use Case, thiết kế ma trận TestCase và hiện thực hóa thành mã kịch bản TestScript tự động bằng Java và Selenium WebDriver.
  • Các phần đáng tham khảo nhất: Bảng đối chiếu ưu nhược điểm của 3 kỹ thuật kiểm thử (Chương 1); Phân tích chi tiết 4 thành phần của Selenium và sự khác biệt giữa Selenium RC với Selenium WebDriver (Chương 2); Cấu trúc xây dựng các bảng TestCase và mã nguồn TestScript mẫu cho các chức năng web phổ biến như Đăng nhập, Đăng ký, Tìm kiếm, Thêm mới sản phẩm và Đặt hàng (Chương 4).

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

1. Selenium WebDriver có điểm khác biệt cốt lõi nào so với Selenium RC? Selenium RC hoạt động thông qua một máy chủ trung gian (Selenium Server) để chèn mã JavaScript vào trình duyệt nhằm thực thi kiểm thử. Ngược lại, Selenium WebDriver (Selenium 2.0) tương tác trực tiếp với trình duyệt thông qua WebDriver API riêng của từng trình duyệt mà không cần máy chủ trung gian, giúp tốc độ thực thi nhanh hơn, giao diện lập trình đơn giản hơn và hỗ trợ tốt các trang web động.

2. Khóa luận đã xây dựng kịch bản kiểm thử tự động cho những tình huống nào của chức năng Đăng ký tài khoản? Khóa luận thiết lập ca kiểm thử (Bảng 4.5) và kịch bản TestScript cho 3 trường hợp: ca đăng ký tài khoản thành công với dữ liệu hợp lệ (Bảng 4.6), ca đăng ký không thành công do để trống tên đăng nhập (Bảng 4.7), và ca đăng ký không thành công do để trống họ và tên (Bảng 4.8).

3. Tại sao Selenium không tự động xử lý được các hộp thoại Windows (như Upload/Download) và tác giả đề xuất giải pháp gì? Selenium được thiết kế chuyên biệt để tương tác với các phần tử DOM trên trình duyệt web nên không hỗ trợ thao tác trực tiếp với các ứng dụng hoặc hộp thoại của hệ điều hành Windows (Win app/Win dialog). Để xử lý các trường hợp tương tác với hệ điều hành hoặc ứng dụng bên thứ ba, tác giả chỉ ra cần tích hợp thêm các thư viện hỗ trợ như AutoIt hoặc Coded UI.

4. Trong quy trình kiểm thử phần mềm 6 bước được nêu trong khóa luận, giai đoạn Thiết kế kịch bản kiểm thử (Test case development) tạo ra những tài liệu đầu ra nào? Sau khi hoàn thành giai đoạn thiết kế kịch bản kiểm thử, đội ngũ kiểm thử sẽ thu được các tài liệu đầu ra bao gồm: bản thiết kế kiểm thử (test design), ca kiểm thử (test case), bảng kiểm tra (checklist), dữ liệu kiểm thử (test data) và kịch bản kiểm thử tự động (test automation script).

5. Khi người dùng thực hiện thao tác Đặt hàng trên website Candy Store, hệ thống xử lý trường hợp giỏ hàng trống như thế nào? Theo sơ đồ hoạt động (Hình 3.10) và kịch bản kiểm thử (Bảng 4.21), khi người dùng chọn đặt hàng nhưng hệ thống kiểm tra thấy chưa có sản phẩm nào trong giỏ hàng, hệ thống sẽ xác định dữ liệu không hợp lệ và hiển thị popup cảnh báo yêu cầu người dùng thêm sản phẩm (số lượng, size) vào giỏ hàng trước khi tiến hành thanh toán.

Kết luận

Khóa luận "Nghiên cứu và ứng dụng công cụ kiểm thử Selenium trong kiểm thử website" đã hệ thống hóa đầy đủ cơ sở lý luận về kiểm thử phần mềm và kiến trúc công cụ tự động hóa Selenium WebDriver. Thông qua việc phân tích, xây dựng website thương mại điện tử Candy Store và triển khai 15 kịch bản kiểm thử tự động cho 6 luồng chức năng trọng yếu, đề tài đã chứng minh tính khả thi, độ chính xác và ưu thế tiết kiệm thời gian của kiểm thử tự động so với phương pháp thủ công. Công trình là tài liệu tham khảo có cấu trúc rõ ràng, tính ứng dụng thực tiễn cao cho sinh viên và người làm công tác kiểm thử phần mềm ứng dụng web.