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 nhanh chóng, các ứng dụng web và phần mềm đã trở thành thành phần thiết yếu trong hoạt động vận hành của doanh nghiệp cũng như đời sống xã hội. Nhu cầu ngày càng cao của người dùng đòi hỏi các hệ thống phần mềm phải liên tục được cập nhật, tối ưu hóa hiệu suất và duy trì tính ổn định. Điều này đặt ra áp lực lớn đối với các nhóm phát triển phần mềm trong việc đảm bảo chất lượng trước khi sản phẩm được phát hành ra thị trường. Kiểm thử phần mềm không chỉ đóng vai trò phát hiện sai sót mà còn hỗ trợ đánh giá chất lượng, cải thiện trải nghiệm người dùng và gia tăng năng lực cạnh tranh cho sản phẩm.

Tuy nhiên, trong quá trình phát triển, việc thực hiện kiểm thử thủ công (manual testing) đối với khối lượng lớn các trường hợp kiểm thử lặp đi lặp lại thường tiêu tốn nhiều thời gian, chi phí nhân lực và tiềm ẩn nguy cơ sai sót do yếu tố con người. Để giải quyết hạn chế này, việc áp dụng kỹ thuật kiểm thử tự động thông qua các công cụ chuyên dụng như Selenium kết hợp ngôn ngữ lập trình Java là giải pháp kỹ thuật giúp tối ưu hóa thời gian thực thi, nâng cao độ chính xác và hỗ trợ kiểm thử hồi quy hiệu quả trên nhiều nền tảng trình duyệt.

Khóa luận xác định các mục tiêu nghiên cứu cụ thể như sau:

  • Mục tiêu chung: Nghiên cứu bộ công cụ kiểm thử tự động Selenium bằng ngôn ngữ Java để ứng dụng cho việc kiểm thử Website.
  • Mục tiêu cụ thể:
    1. Hệ thống hóa được các kiến thức cơ bản về kiểm thử phần mềm nói chung và kiểm thử Website nói riêng.
    2. Hiểu hơn về kiến thức cơ bản của công cụ kiểm thử tự động Selenium.
    3. Cài đặt và sử dụng thành thạo công cụ trong quá trình kiểm thử phần mềm.
    4. Tạo được các kịch bản kiểm thử (Test Case).
    5. Tạo được bản báo cáo kiểm thử (Test Report).
    6. Thực thi kiểm thử tự động sử dụng bộ công cụ Selenium và framework WebDriver theo mô hình hướng đối tượng Page Object Model (POM).

Đối tượng và phạm vi nghiên cứu của đề tài bao gồm:

  • Đối tượng nghiên cứu: Ngôn ngữ lập trình Java, bộ công cụ Selenium, kỹ thuật kiểm thử tự động và ứng dụng web thương mại điện tử PetStore.
  • Phạm vi không gian: Thực hiện tại Công ty Cổ phần Phần mềm Quốc tế 3S Huế (3S Hue Intersoft).
  • Phạm vi thời gian: Từ ngày 25/12/2024 đến ngày 14/04/2024.
  • Phạm vi nội dung: Áp dụng kiểm thử tự động trên website PetStore (https://petstore.com/), tập trung vào 3 phân hệ chức năng: Đăng nhập/Đăng xuất, Tìm kiếm sản phẩm và Quản lý sản phẩm trong giỏ hàng.

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

Khóa luận xây dựng nội dung dựa trên nền tảng lý thuyết kiểm thử phần mềm tiêu chuẩn và các công nghệ tự động hóa mã nguồn mở:

  • Nguyên tắc và quy trình kiểm thử: Dựa trên 7 nguyên tắc cơ bản của kiểm thử phần mềm (kiểm thử chứng minh sự hiện diện của lỗi, không thể kiểm tra toàn diện, kiểm thử sớm, phân cụm lỗi theo nguyên lý Pareto 80/20, nghịch lý thuốc trừ sâu - Pesticide paradox, kiểm thử phụ thuộc ngữ cảnh, sai lầm về việc không có lỗi). Quy trình kiểm thử được triển khai qua 6 giai đoạn tiêu chuẩn: Phân tích yêu cầu (Requirement Analysis), Lập kế hoạch kiểm thử (Test Planning), Thiết kế kịch bản kiểm thử (Test Case Development), Thiết lập môi trường kiểm thử (Test Environment Setup), Thực hiện kiểm thử (Test Execution) và Đóng chu trình kiểm thử (Test Cycle Closure).
  • Cấp độ và kỹ thuật kiểm thử: Khung lý thuyết bao gồm 4 cấp độ kiểm thử (Unit Test, Integration Test, System Test, Acceptance Test gồm Alpha và Beta Test) cùng 3 kỹ thuật kiểm thử chính: Kiểm thử hộp đen (Black-box Testing), Kiểm thử hộp trắng (White-box Testing) và Kiểm thử hộp xám (Gray-box Testing).
  • Công nghệ kiểm thử tự động: Khảo sát bộ công cụ Selenium gồm 4 thành phần (Selenium IDE, Selenium RC, Selenium WebDriver, Selenium Grid), trong đó Selenium WebDriver giữ vai trò trung tâm để tương tác trực tiếp với các trình duyệt web. Khóa luận ứng dụng mô hình thiết kế Page Object Model (POM) để tổ chức mã nguồn kiểm thử.

Phương pháp nghiên cứu được tác giả áp dụng gồm:

  • Phương pháp nghiên cứu tài liệu: Thu thập, tổng hợp các tài liệu học thuật và kỹ thuật về kiểm thử phần mềm, ngôn ngữ Java, cơ chế hoạt động của Selenium WebDriver và mô hình POM.
  • Phương pháp quan sát, tổng hợp: Khảo sát cấu trúc giao diện, luồng xử lý dữ liệu và chức năng thực tế của trang web thương mại điện tử PetStore (https://petstore.com/).
  • Phương pháp kiểm thử thực nghiệm: Áp dụng kỹ thuật kiểm thử hộp đen dựa trên phân tích chức năng để thiết kế 20 kịch bản kiểm thử chi tiết; xây dựng framework kiểm thử tự động bằng Java và Selenium WebDriver theo mô hình POM; thực thi kiểm thử và trích xuất báo cáo.
  • Nguồn dữ liệu: Các thành phần giao diện, đường dẫn web, biểu mẫu nhập liệu và phản hồi hệ thống trên website PetStore, kết hợp với các tiêu chuẩn quy trình kiểm thử tại doanh nghiệp thực tập.

Thiết kế và triển khai

Khóa luận tiến hành xây dựng và triển khai framework kiểm thử tự động cho hệ thống web PetStore theo kiến trúc hướng đối tượng POM (Page Object Model).

Mô hình POM phân tách cấu trúc dự án kiểm thử thành các tầng chức năng độc lập:

  • Tầng định vị phần tử (Element Locators): Quản lý tập trung các bộ chọn (XPath, ID, Class, CSS Selector) đại diện cho các trường dữ liệu, nút bấm, hình ảnh trên từng trang web (như trang Đăng nhập, trang Tìm kiếm, trang Giỏ hàng).
  • Tầng phương thức thao tác (Page Methods): Đóng gói các hành vi tương tác của người dùng thành các hàm xử lý trong Java (nhập chuỗi ký tự vào ô văn bản, nhấp chuột, điều hướng liên kết).
  • Tầng kịch bản kiểm thử (Test Scripts): Gọi các phương thức từ tầng trang để thực thi chuỗi hành động theo từng ca kiểm thử, sau đó sử dụng các câu lệnh kiểm tra (assertions) để đối chiếu kết quả thực tế với kết quả mong đợi.

Môi trường kỹ thuật được triển khai bao gồm:

  • Ngôn ngữ và công cụ biên dịch: Java kết hợp với bộ công cụ quản lý dự án Apache Maven. Cấu hình biến môi trường hệ thống được thực hiện bằng cách tạo biến JAVA_HOME trỏ tới thư mục cài đặt JDK, sau đó thêm đường dẫn thư mục bin của JDK và thư mục bin của Apache Maven vào biến Path.
  • Thư viện kiểm thử: Tích hợp Selenium WebDriver vào dự án thông qua tập tin cấu hình của Maven để tự động quản lý các gói phụ thuộc và điều khiển trình duyệt thực thi các thao tác mô phỏng người dùng.
  • Quy trình thực thi: Khởi chạy tập lệnh kiểm thử tự động tuần tự qua các bộ kịch bản, ghi nhận kết quả đạt (Pass) hoặc không đạt (Fail), chụp ảnh màn hình minh họa các bước thực hiện và tổng hợp thành bản báo cáo thử nghiệm (Test Report).

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 trình bày hệ thống lý luận nền tảng về kiểm thử phần mềm. Tác giả định nghĩa kiểm thử phần mềm là quá trình kiểm tra chất lượng, chức năng và hiệu suất của sản phẩm trước khi đưa vào vận hành. Chương này phân tích chi tiết 7 nguyên tắc cơ bản trong kiểm thử phần mềm và mô tả cấu trúc 6 giai đoạn của vòng đời kiểm thử phần mềm từ khâu tiếp nhận tài liệu đặc tả đến khi đóng chu trình kiểm thử.

Về cấp độ kiểm thử, chương phân định rõ vai trò của 4 mức độ: Kiểm thử đơn vị (Unit Test) do lập trình viên thực hiện trên từng khối mã; Kiểm thử tích hợp (Integration Test) nhằm phát hiện lỗi giao tiếp giữa các đơn vị; Kiểm thử hệ thống (System Test) đánh giá toàn bộ phần mềm đã tích hợp trên các tiêu chí chức năng, độ tin cậy và hiệu năng; Kiểm thử chấp nhận (Acceptance Test) bao gồm kiểm thử Alpha (nội bộ doanh nghiệp) và kiểm thử Beta (người dùng cuối tại môi trường thực tế).

Về kỹ thuật kiểm thử, tác giả phân loại và lập bảng so sánh ưu, nhược điểm của 3 kỹ thuật:

Kỹ thuật Ưu điểm Nhược điểm
Kiểm thử hộp đen Người kiểm thử không cần kiến thức lập trình; không cần tìm hiểu kiến trúc bên trong; mô phỏng sát hành vi người dùng; độ phức tạp thấp. Khó tự động hóa; không khả thi để kiểm tra mọi nhánh đường dẫn; khó xác định nguyên nhân gốc rễ khi phát sinh lỗi; khó đo lường độ bao phủ mã nguồn.
Kiểm thử hộp trắng Đạt độ bao phủ mã nguồn hoàn chỉnh; dễ tự động hóa; tối ưu hóa chi phí trao đổi giữa tester và developer; hỗ trợ cải tiến chất lượng mã liên tục. Đòi hỏi kỹ năng lập trình chuyên sâu; chi phí bảo trì mã kiểm thử cao khi mã nguồn thay đổi; không kiểm tra được các chức năng còn thiếu trong mã; không đứng từ góc nhìn người dùng.
Kiểm thử hộp xám Thiết lập mục tiêu kiểm thử rõ ràng; kết hợp góc nhìn người dùng với một phần cấu trúc bên trong; giảm thiểu xung đột giữa lập trình viên và kiểm thử viên; chi phí thấp hơn kiểm thử tích hợp. Truy cập hạn chế vào mã nguồn khiến việc bao phủ đường dẫn bị giới hạn; khó liên kết lỗi với nguyên nhân gốc trong hệ thống phân tán; không kiểm tra sâu được thuật toán nội bộ.

Chương 2: Cơ sở lý thuyết và công cụ kiểm thử tự động cho Website

Chương 2 tập trung vào các đặc thù kỹ thuật của kiểm thử ứng dụng web và công nghệ tự động hóa. Tác giả phân loại 8 dạng website phổ biến hiện nay: website tĩnh, website động, website thương mại điện tử, cổng thông tin (Portal web app), ứng dụng nhiều trang (MPA), ứng dụng trang đơn (SPA), website quản trị nội dung (CMS) và ứng dụng web lũy tiến (PWA). Các kỹ thuật kiểm thử web được khảo sát gồm: kiểm thử chức năng (liên kết, biểu mẫu, cookie, HTML/CSS, cơ sở dữ liệu), kiểm thử khả năng sử dụng, kiểm thử giao diện (UI), kiểm thử khả năng tương thích, kiểm thử hiệu suất và kiểm thử bảo mật.

Chương này trình bày quy trình kiểm thử tự động gồm 5 bước: (1) Lựa chọn công cụ; (2) Xác định phạm vi tự động hóa; (3) Lập kế hoạch, thiết kế và phát triển; (4) Thực hiện kiểm thử; (5) Bảo trì kịch bản. Tác giả tổng hợp sự khác biệt giữa kiểm thử thủ công và kiểm thử tự động qua các tham số vận hành:

Tiêu chí so sánh Kiểm thử tự động Kiểm thử thủ công
Phương thức thực hiện Sử dụng công cụ phần mềm và mã lệnh để chạy tự động Thực hiện trực tiếp bởi con người tương tác trên phần mềm
Tốc độ xử lý Tốc độ thực thi nhanh vượt trội Tốc độ thực thi chậm hơn nhiều
Kiểm thử ngẫu nhiên Không hỗ trợ kiểm thử thăm dò ngẫu nhiên Rất phù hợp cho kiểm thử ngẫu nhiên (Exploratory Testing)
Chi phí đầu tư ban đầu Chi phí đầu tư ban đầu cao hơn về công cụ và nhân lực Chi phí đầu tư ban đầu tương đối thấp hơn
Hiệu quả lâu dài (ROI) Chỉ số ROI cao và mang lại lợi ích lâu dài ROI thấp hơn khi dự án kéo dài
Độ tin cậy Độ tin cậy cao, chính xác, không bị ảnh hưởng bởi tâm lý Dễ xảy ra sai sót do nhàm chán khi thực hiện lặp lại
Mức độ phụ thuộc giao diện Thay đổi nhỏ về thuộc tính (id, class) đòi hỏi sửa đổi script Thay đổi nhỏ không làm cản trở quá trình thao tác bằng tay
Kiểm thử hiệu suất Bắt buộc sử dụng công cụ tự động (Load, Stress, Spike Testing) Hoàn toàn không khả thi để thực hiện thủ công
Thực hiện song song / hàng loạt Có thể chạy hàng loạt kịch bản đồng thời trên nhiều nền tảng Không thể chạy hàng loạt hoặc chạy tự động ngoài giờ làm việc
Yêu cầu kỹ năng Bắt buộc phải có kỹ năng lập trình Không bắt buộc phải có kiến thức lập trình
Báo cáo kiểm thử Hệ thống tự động ghi nhận và phân phối báo cáo cho các bên Kết quả thường được ghi chép thủ công trên Word hoặc Excel
Môi trường phù hợp Kiểm thử hồi quy, kiểm thử hiệu suất, tác vụ lặp lại nhiều lần Kiểm thử giao diện sơ khai, kiểm thử trải nghiệm người dùng

Bên cạnh việc khảo sát các công cụ kiểm thử như Appium, Postman, Katalon Studio, Robot Framework, TestComplete và Apache JMeter, tác giả phân tích chi tiết bộ công cụ Selenium gồm 4 thành phần: Selenium IDE, Selenium RC, Selenium WebDriver và Selenium Grid. Trong đó, Selenium WebDriver được đánh giá là framework tự động hóa mạnh mẽ nhờ khả năng tương tác trực tiếp với trình duyệt, hỗ trợ đa nền tảng và đa ngôn ngữ lập trình, song cũng tồn tại hạn chế là chỉ hỗ trợ ứng dụng web, đòi hỏi kỹ năng lập trình và không tích hợp sẵn tính năng tự động tạo báo cáo kiểm thử.

Chương 3: Thực thi kiểm thử tự động cho Website PetStore bằng bộ công cụ Selenium

Chương 3 là phần thực nghiệm kỹ thuật, áp dụng Selenium WebDriver và Java theo mô hình POM để kiểm thử website https://petstore.com/ - một nền tảng bán lẻ sản phẩm và phụ kiện cho thú cưng.

Tác giả đã xây dựng 3 bộ kịch bản kiểm thử với tổng số 20 test case cụ thể:

  1. Bộ kịch bản kiểm thử Đăng nhập (8 test case):

    • Login_001: Xác minh người dùng được điều hướng đến trang đăng nhập thành công.
    • Login_002: Xác minh logo chính giữa trang đăng nhập hiển thị chính xác.
    • Login_003: Xác minh đăng nhập thất bại khi nhập tên người dùng standard_user1 và mật khẩu secret_sauce1, hệ thống hiển thị thông báo lỗi: "Username and password do not match any user in this service".
    • Login_004: Xác minh đăng nhập thất bại khi nhập sai tên người dùng (standard_user1) với mật khẩu đúng (secret_sauce).
    • Login_005: Xác minh đăng nhập thất bại khi nhập đúng tên người dùng (standard_user) với mật khẩu sai (secret_sauce123).
    • Login_006: Xác minh thông báo lỗi hiển thị "Username is required" khi để trống tên người dùng.
    • Login_007: Xác minh thông báo lỗi hiển thị "Password is required" khi để trống mật khẩu.
    • Login_008: Xác minh đăng nhập thành công khi nhập đúng thông tin (standard_user / secret_sauce), điều hướng vào trang sản phẩm và tự động thực hiện đăng xuất thành công.
  2. Bộ kịch bản kiểm thử Tìm kiếm sản phẩm (6 test case):

    • Search_001: Xác minh hiển thị danh sách sản phẩm gợi ý khi nhập từ khóa "Dog".
    • Search_002: Xác minh không hiển thị danh sách gợi ý khi tìm kiếm tên sản phẩm không tồn tại ("Quần thun").
    • Search_003: Xác minh hiển thị đúng danh sách sản phẩm khi nhập tên chính xác ("MALTESE PUPPY FOR SALE").
    • Search_004: Xác minh không hiển thị danh sách sản phẩm khi nhập tên dạng viết tắt ("HD").
    • Search_005: Xác minh tìm kiếm sản phẩm "MALTESE PUPPY FOR SALE" và kiểm tra thông tin chi tiết của sản phẩm khi nhấp chọn.
    • Search_006: Xác minh tìm kiếm từ khóa gợi ý "Cat" và thao tác nhấp chọn liên kết "View More" để tải toàn bộ danh mục liên quan.
  3. Bộ kịch bản kiểm thử Quản lý sản phẩm (6 test case):

    • Product_001: Xác minh người dùng được điều hướng đến trang giỏ hàng khi nhấp vào biểu tượng giỏ hàng.
    • Product_002: Xác minh tiêu đề đầu trang sản phẩm hiển thị đúng chuỗi "Dog products".
    • Product_003: Xác minh hình ảnh và thông tin chi tiết hiển thị chính xác khi chọn sản phẩm "EXERCISE BALL FOR HAMSTERS AND SMALL PETS".
    • Các ca kiểm thử tiếp theo kiểm tra tương tác thêm sản phẩm, điều chỉnh số lượng và xóa sản phẩm khỏi giỏ hàng, trong đó tiêu biểu là Product_005 xác minh số lượng sản phẩm giảm 1 đơn vị khi thao tác trừ sản phẩm trong giỏ hàng.

Chương này trình bày chi tiết mã nguồn lấy đường dẫn phần tử (Element XPath), các hàm tương tác giao diện và các kịch bản chạy thực tế của các test case đại diện (Login_008, Search_006, Product_005), đồng thời chụp lại kết quả kiểm thử đạt chuẩn và bảng báo cáo thử nghiệm cuối cùng.

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

Khóa luận đã hoàn thành các mục tiêu đề ra với những kết quả cụ thể:

  • Cài đặt thành công môi trường phát triển kiểm thử tự động, tích hợp hoàn chỉnh Java JDK, Apache Maven và thư viện Selenium WebDriver.
  • Xây dựng thành công framework kiểm thử tự động áp dụng mô hình thiết kế Page Object Model (POM), đảm bảo tách biệt mã xử lý giao diện và mã kịch bản kiểm thử.
  • Thiết kế và chuẩn hóa 20 test case hoàn chỉnh bao phủ 3 chức năng trọng yếu của website PetStore (8 ca kiểm thử đăng nhập, 6 ca kiểm thử tìm kiếm, 6 ca kiểm thử quản lý giỏ hàng).
  • Thực thi kiểm thử tự động thành công trên các kịch bản đã xây dựng, kiểm tra độ chính xác của phản hồi hệ thống và trích xuất bản báo cáo kiểm thử (Test Report).

Về đóng góp, tác giả đã hệ thống hóa cơ sở lý thuyết kiểm thử phần mềm và kiểm thử website từ góc độ học thuật đến ứng dụng thực tiễn tại doanh nghiệp. Đề tài cung cấp minh chứng thực nghiệm về việc áp dụng giải pháp kiểm thử tự động mã nguồn mở để tối ưu hóa quy trình kiểm thử hồi quy, giảm bớt sự phụ thuộc vào kiểm thử thủ công đối với các tính năng có tính lặp lại cao trên website thương mại điện tử.

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

Khóa luận ghi nhận các hạn chế kỹ thuật dựa trên phạm vi thực hiện:

  • Selenium WebDriver chỉ hỗ trợ kiểm thử ứng dụng trên nền tảng web, chưa mở rộng cho các ứng dụng di động hoặc ứng dụng máy tính (desktop).
  • Công cụ đòi hỏi người thực hiện phải có kỹ năng lập trình; các kịch bản dễ bị lỗi khi cấu trúc giao diện HTML/DOM của website thay đổi, đòi hỏi chi phí bảo trì script.
  • Selenium không tích hợp sẵn tính năng tự động xuất báo cáo chuyên sâu, yêu cầu người kiểm thử phải tự thiết lập mã để trích xuất báo cáo.
  • Phạm vi thực nghiệm của đề tài mới dừng lại ở 3 chức năng chính trên trang PetStore, chưa bao phủ toàn diện các chức năng thanh toán trực tuyến, quản lý tài khoản nâng cao hay kiểm thử hiệu năng chịu tải.

Các hướng phát triển tiếp theo được đề xuất:

  • Mở rộng xây dựng bộ kịch bản kiểm thử tự động cho toàn bộ các chức năng và phân hệ còn lại của hệ thống web PetStore.
  • Tích hợp thêm các thư viện tạo báo cáo tự động chuyên nghiệp (như Allure Report hoặc ExtentReports) nhằm nâng cao tính trực quan cho báo cáo kiểm thử.
  • Đưa bộ kiểm thử tự động vào quy trình Tích hợp liên tục và Phân phối liên tục (CI/CD) để tự động kích hoạt kiểm thử hồi quy mỗi khi có phiên bản cập nhật mã nguồn mới.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo hữu ích cho sinh viên các chuyên ngành Hệ thống thông tin quản lý, Công nghệ thông tin, Kỹ thuật phần mềm, cũng như các kiểm thử viên mới bắt đầu tiếp cận lĩnh vực kiểm thử tự động (Automation Testing).

Nội dung đáng chú ý nhất để tham khảo gồm:

  • Bảng tổng hợp so sánh chi tiết giữa kiểm thử thủ công và kiểm thử tự động theo các tiêu chí kỹ thuật và quản lý dự án.
  • Hướng dẫn cấu hình môi trường Java, biến môi trường hệ thống (JAVA_HOME, Path) và Maven.
  • Phương pháp áp dụng mô hình Page Object Model (POM) để cấu trúc mã nguồn kiểm thử tự động chuyên nghiệp, dễ bảo trì.
  • Bộ 20 test case mẫu cho các chức năng thương mại điện tử (đăng nhập, tìm kiếm, giỏ hàng) với các bước thực hiện và dữ liệu đầu vào cụ thể.

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

1. Khóa luận đã xây dựng tổng cộng bao nhiêu test case và phân bổ cho các chức năng nào trên website PetStore?
Khóa luận đã xây dựng tổng cộng 20 test case, phân bổ thành 3 bộ kịch bản: bộ kịch bản Đăng nhập gồm 8 test case (Login_001 đến Login_008), bộ kịch bản Tìm kiếm sản phẩm gồm 6 test case (Search_001 đến Search_006) và bộ kịch bản Quản lý sản phẩm trong giỏ hàng gồm 6 test case (Product_001 đến Product_006).

2. Mô hình Page Object Model (POM) được tác giả ứng dụng trong đề tài như thế nào?
Tác giả áp dụng mô hình POM để tách biệt cấu trúc kiểm thử thành các tầng riêng biệt: một tầng chứa các đường dẫn XPath/Locator định vị phần tử giao diện và các hàm tương tác với trang web, một tầng chứa kịch bản kiểm thử (test script) thực thi và xác minh kết quả. Cách tổ chức này giúp mã nguồn gọn gàng, giảm thiểu lặp mã và dễ dàng cập nhật khi giao diện web thay đổi.

3. Để cài đặt môi trường kiểm thử tự động trong đề tài, tác giả đã cấu hình các biến môi trường nào?
Tác giả đã tạo biến môi trường hệ thống JAVA_HOME dẫn đến thư mục cài đặt Java JDK, đồng thời chỉnh sửa biến hệ thống Path để dán đường dẫn thư mục bin của JDK và thư mục bin của Apache Maven.

4. Dữ liệu thử nghiệm (test data) và kết quả mong muốn của ca kiểm thử Login_008 được quy định như thế nào?
Trong Login_008, người kiểm thử nhập tên người dùng hợp lệ là standard_user và mật khẩu là secret_sauce, sau đó nhấn nút Đăng nhập. Kết quả mong đợi là hệ thống đăng nhập thành công, điều hướng vào trang danh sách sản phẩm và sau đó thực hiện đăng xuất thành công khỏi hệ thống.

5. Vì sao tác giả chọn Selenium WebDriver thay vì Selenium IDE để thực hiện kiểm thử tự động?
Theo phân tích của tác giả, Selenium IDE chủ yếu là công cụ ghi và phát lại (record and playback) đơn giản dạng plugin trên trình duyệt, không đủ linh hoạt cho các trường hợp kiểm thử phức tạp. Ngược lại, Selenium WebDriver hỗ trợ lập trình bằng nhiều ngôn ngữ (như Java), giao tiếp trực tiếp với trình duyệt và cho phép xây dựng framework kiểm thử mở rộng theo mô hình hướng đối tượng POM.

Kết luận

Khóa luận tốt nghiệp của sinh viên Phạm Thị Như Quỳnh đã hoàn thành việc nghiên cứu và ứng dụng bộ công cụ Selenium kết hợp ngôn ngữ Java để thực hiện kiểm thử tự động cho website thương mại điện tử PetStore. Đề tài đã hệ thống hóa đầy đủ cơ sở lý thuyết về kiểm thử phần mềm, quy trình kiểm thử tự động và phương pháp tổ chức mã nguồn theo mô hình Page Object Model (POM). Toàn bộ 20 kịch bản kiểm thử chức năng được xây dựng chi tiết, cài đặt và thực thi thành công, mang lại tài liệu thực nghiệm có giá trị tham khảo rõ ràng cho sinh viên và người làm việc trong lĩnh vực bảo đảm chất lượng phần mềm.