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

Trong bối cảnh hội nhập kinh tế và sự phát triển của công nghệ thông tin, các doanh nghiệp gia công và phát triển phần mềm phải đối mặt với áp lực cạnh tranh ngày càng gay gắt trên thị trường. Để xây dựng niềm tin với khách hàng, việc quản lý và nâng cao chất lượng sản phẩm phần mềm trở thành ưu tiên hàng đầu. Mỗi sản phẩm trước khi bàn giao bắt buộc phải trải qua quá trình kiểm tra, kiểm thử chặt chẽ nhằm đảm bảo không phát sinh lỗi, tuân thủ đúng thiết kế và thỏa mãn đầy đủ các yêu cầu kỹ thuật.

Tuy nhiên, phương pháp kiểm thử thủ công (manual testing) thường bộc lộ nhiều điểm hạn chế như tiêu tốn nhiều thời gian, chi phí và nguồn nhân lực, đồng thời khó đáp ứng được các yêu cầu kiểm thử lặp đi lặp lại trong chu kỳ phát triển phần mềm ngắn hạn (từ 1 đến 2 ngày khi có bản thiết kế mới từ đội ngũ phát triển). Để giải quyết vấn đề này, kiểm thử tự động (automation testing) được xem là giải pháp hỗ trợ hiệu quả, giúp tăng độ bao phủ kiểm thử, nâng cao độ chính xác, rút ngắn thời gian thực thi và tối ưu hóa chi phí.

Tại Việt Nam, việc tiếp cận và ứng dụng các công cụ kiểm thử tự động mã nguồn mở vào thực tế dự án phần mềm còn nhiều hạn chế và chưa thực sự phổ biến. Trong số các công cụ hiện nay, Selenium là một bộ công cụ kiểm thử tự động mã nguồn mở phổ biến dành riêng cho các ứng dụng nền tảng web, hỗ trợ đa trình duyệt, đa hệ điều hành và tương thích với nhiều ngôn ngữ lập trình.

Đề tài "Ứng dụng Selenium trong kiểm thử website" được thực hiện nhằm giải quyết các mục tiêu và nhiệm vụ nghiên cứu cụ thể sau:

  1. Nghiên cứu tổng quan cơ sở lý thuyết về kiểm thử phần mềm, quy trình kiểm thử và các phương pháp kiểm thử cơ bản.
  2. Khảo sát chuyên sâu về kiểm thử tự động và bộ công cụ Selenium, phân tích kiến trúc và cách thức hoạt động của các thành phần: Selenium IDE, Selenium RC và Selenium WebDriver.
  3. Thiết kế các bộ ca kiểm thử (test cases) cho các chức năng cơ bản trên giao diện web.
  4. Triển khai thực nghiệm việc kết hợp Selenium IDE và Selenium WebDriver trên môi trường Java để thực hiện kiểm thử tự động trên website mẫu, đồng thời tự động hóa việc đọc dữ liệu kiểm thử từ tập tin Excel và xuất báo cáo kết quả.

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

  • Đối tượng nghiên cứu: Lý thuyết kiểm thử phần mềm, quy trình kiểm thử tự động, kiến trúc và tập lệnh của bộ công cụ Selenium (Selenium IDE, Selenium RC, Selenium WebDriver).
  • Phạm vi nghiên cứu:
    • Về mặt công nghệ: Tập trung vào Selenium IDE và Selenium WebDriver sử dụng ngôn ngữ lập trình Java trên môi trường phát triển Eclipse.
    • Về mặt ứng dụng thực nghiệm: Thực hiện kiểm thử chức năng trên website bán hàng/sách trực tuyến có tên "Style Shop" (được xây dựng trên nền tảng ngôn ngữ PHP), giới hạn ở hai chức năng chính là Đăng nhập và Đăng ký tài khoản khách hàng.
    • Không gian và thời gian: Đề tài là Báo cáo Đồ án cơ sở 5 thuộc ngành Công nghệ thông tin, thực hiện tại Trường Đại học Công nghệ Thông tin và Truyền thông Việt - Hàn (VKU) – Đại học Đà Nẵng, hoàn thành vào tháng 05 năm 2021.

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

Đề tài xây dựng trên nền tảng lý thuyết kiểm thử phần mềm và kỹ thuật tự động hóa quy trình kiểm thử phần mềm ứng dụng web:

1. Khung lý thuyết kiểm thử phần mềm

  • Khái niệm và mục tiêu: Kiểm thử phần mềm là hoạt động khảo sát thực tiễn sản phẩm hoặc dịch vụ trong môi trường triển khai dự kiến nhằm cung cấp thông tin về chất lượng cho các bên liên quan. Mục tiêu chính gồm: phát hiện tối đa lỗi trong thời gian xác định, chứng minh phần mềm đáp ứng đặc tả, tối ưu chi phí kiểm thử, và xây dựng các bộ ca kiểm thử chất lượng cao.
  • Phương pháp kiểm thử:
    • Kiểm thử hộp đen (Black Box Testing): Kiểm thử vào/ra dựa trên đặc tả yêu cầu mà không cần biết cấu trúc mã nguồn bên trong; tập trung tìm lỗi giao diện, chức năng sai hoặc thiếu, lỗi cấu trúc dữ liệu bên ngoài.
    • Kiểm thử hộp trắng (White Box Testing): Kiểm thử logic dựa trên việc kiểm tra cấu trúc bên trong và từng nhánh lệnh của chương trình.
    • Kiểm thử hộp xám (Grey Box Testing): Phương pháp kết hợp, trong đó kiểm thử viên hiểu biết về thuật toán và cấu trúc bên trong nhưng thiết kế ca kiểm thử theo góc nhìn của người dùng.
  • Các cấp độ kiểm thử (Levels of Testing): Gồm 4 mức cố định: Kiểm thử đơn vị (Unit Test), Kiểm thử tích hợp (Integration Test), Kiểm thử hệ thống (System Test - bao gồm kiểm thử giao diện, kiểm thử luồng nghiệp vụ, kiểm thử hiệu năng, kiểm thử an toàn thông tin), và Kiểm thử chấp nhận (Acceptance Test - gồm kiểm thử Alpha và kiểm thử Beta).

2. Tổng quan về kiểm thử tự động và công cụ Selenium

  • Kiểm thử tự động là quá trình kiểm tra hệ thống với dữ liệu đầu vào và kết quả đầu ra được xác định tự động để thực thi các ca kiểm thử mà không cần hoặc cần rất ít sự can thiệp trực tiếp của con người.
  • Công cụ Selenium do Jason Huggins khởi xướng và được phát triển tiếp bởi ThoughtWorks từ năm 2004. Bộ công cụ gồm 4 thành phần: Selenium IDE, Selenium RC, Selenium WebDriver và Selenium Grid.

3. Phương pháp nghiên cứu và nguồn dữ liệu

  • Phương pháp tổng hợp và phân tích lý thuyết: Hệ thống hóa các khái niệm, quy trình và tiêu chuẩn kiểm thử phần mềm từ các tài liệu chuyên ngành.
  • Phương pháp thực nghiệm kỹ thuật (Implementation & Testing):
    • Sử dụng phương pháp kiểm thử hộp đen để phân tích yêu cầu kỹ thuật và xây dựng bảng ca kiểm thử (Test Case Specification).
    • Sử dụng kỹ thuật Record & Playback trên tiện ích mở rộng Selenium IDE để sinh mã kiểm thử ban đầu.
    • Sử dụng kỹ thuật Data-driven Testing: Dùng mã nguồn Java kết hợp thư viện đọc dữ liệu bảng tính để đưa các bộ dữ liệu đầu vào từ tệp Excel vào trình duyệt web thông qua Selenium WebDriver, sau đó tự động so sánh kết quả thực tế (Actual Result) với kết quả mong đợi (Expected Result) để kết luận trạng thái Passed hoặc Failed.
  • Nguồn dữ liệu: Dữ liệu đầu vào thực nghiệm do tác giả tự thiết kế dưới dạng bảng tính Excel chứa các giá trị biên, giá trị đúng, giá trị sai định dạng của các trường thông tin trong form Đăng nhập và Đăng ký của website "Style Shop".

Thiết kế và triển khai

1. Kiến trúc công nghệ kiểm thử

Đề tài phân tích và so sánh kiến trúc giữa hai thành phần quan trọng trong bộ công cụ Selenium:

Tiêu chí so sánh Selenium Remote Control (RC) Selenium WebDriver
Cơ chế tương tác Tương tác gián tiếp thông qua máy chủ ảo trung gian (Selenium RC Server). Tương tác trực tiếp với trình duyệt thông qua hỗ trợ gốc của trình duyệt (browser's native support).
Thành phần lõi Nhúng tập mã JavaScript (Selenium Core) vào trình duyệt để thực thi lệnh Selenese. Gửi yêu cầu điều khiển trực tiếp tới driver của từng loại trình duyệt.
Tốc độ thực thi Chậm hơn do phải mất thời gian chuyển đổi và truyền thông tin qua máy chủ trung gian. Nhanh hơn, phản hồi tức thì từ trình duyệt.
Hỗ trợ Web động Bị hạn chế đối với các trang web có thành phần thay đổi liên tục mà không tải lại trang. Được thiết kế tối ưu để hỗ trợ các ứng dụng web động (dynamic web apps).
Môi trường phù hợp Kết hợp cùng Selenium Grid để kiểm thử phân tán trên nhiều máy tính/máy ảo từ xa. Kiểm thử tự động cục bộ và tích hợp sâu vào các framework lập trình hiện đại.

2. Quy trình thiết kế và triển khai kịch bản kiểm thử tự động

Quy trình triển khai được tiến hành theo 5 bước tuần tự:

[Ghi kịch bản mẫu qua Selenium IDE] 
[Xuất kịch bản sang mã nguồn Java/JUnit 4] 
[Thiết lập Project trên Eclipse & Thêm thư viện Selenium JAR] 
[Lập trình đọc file Excel đầu vào & Viết hàm so sánh/ghi kết quả] 
[Chạy kịch bản tự động & Xuất báo cáo kiểm thử]
  1. Ghi kịch bản mẫu: Mở trình duyệt Firefox, truy cập website "Style Shop", kích hoạt chế độ Record trên Selenium IDE, thực hiện các thao tác mẫu trên giao diện web và dừng ghi để thu thập kịch bản lệnh Selenese.
  2. Xuất mã nguồn: Chọn tính năng Export Test Case As... -> Java / JUnit 4 / WebDriver trên Selenium IDE để chuyển đổi chuỗi thao tác thành mã nguồn Java.
  3. Cấu hình môi trường phát triển: Tạo project mới trong IDE Eclipse, đưa tệp kịch bản Java vào project, bổ sung các tệp thư viện .jar từ gói selenium-2.0 (bao gồm selenium-java-client-driver.jar và các phụ thuộc liên quan) thông qua tính năng Add JAR/Folder trong cấu hình Build Path.
  4. Tích hợp xử lý dữ liệu và logic đánh giá:
    • Lập trình đọc các bộ dữ liệu kiểm thử từ tệp Excel đầu vào (InputCondition).
    • Tinh chỉnh mã nguồn kịch bản để vòng lặp tự động điền dữ liệu vào các thẻ input trên website thông qua Selenium WebDriver.
    • Xây dựng hàm ghi kết quả: So sánh chuỗi thông báo xuất hiện thực tế trên giao diện với kết quả mong đợi (ExpectedResult). Nếu trùng khớp ghi nhận trạng thái Passed, nếu có sự sai lệch ghi nhận trạng thái Failed.
  5. Thực thi và tạo báo cáo: Chạy ứng dụng kiểm thử tự động trên Eclipse, theo dõi trình duyệt tự động khởi chạy, điền form, kiểm tra điều kiện và tự động ghi toàn bộ kết quả ra tệp bảng tính đầu ra (Excel/CSV).

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

Mở đầu

Giới thiệu tính cấp thiết của công tác quản lý chất lượng phần mềm trong các doanh nghiệp gia công phần mềm. Phân tích sự cần thiết của việc chuyển đổi từ kiểm thử thủ công sang kiểm thử tự động bằng Selenium nhằm giảm thiểu chi phí, tiết kiệm thời gian và giảm lỗi phần mềm. Xác định mục tiêu nghiên cứu và định hướng nghề nghiệp của sinh viên trong lĩnh vực kiểm thử phần mềm.

Chương 1. Các khái niệm cơ bản của kiểm thử phần mềm

Chương này hệ thống hóa toàn diện các lý luận cơ bản về kiểm thử phần mềm:

  • Khái niệm và mục đích: Nêu rõ định nghĩa kiểm thử, các thiệt hại tiềm tàng khi phần mềm lỗi và 4 mục tiêu chính của kiểm thử.
  • Quy trình kiểm thử chuẩn: Trình bày quy trình 4 giai đoạn gồm: Lập kế hoạch kiểm thử, Chuẩn bị kiểm thử, Thực thi kiểm thử, và Báo cáo kiểm thử & phân tích dữ liệu kiểm thử.
  • Phương pháp kiểm thử: Phân tích bản chất, ưu điểm và nhược điểm của Kiểm thử hộp đen (dựa vào đặc tả vào/ra), Kiểm thử hộp trắng (dựa vào cấu trúc logic mã nguồn), và Kiểm thử hộp xám (kết hợp phân tích thuật toán với góc nhìn người dùng).
  • Các mức kiểm thử: Phân định rõ 4 cấp độ kiểm thử trong chu trình phát triển:
    • Kiểm thử đơn vị (Unit Test): Kiểm tra các hàm, lớp, phương thức nhỏ nhất; do lập trình viên thực hiện.
    • Kiểm thử tích hợp (Integration Test): Kiểm tra giao tiếp giữa các đơn vị tích hợp; do lập trình viên thực hiện.
    • Kiểm thử hệ thống (System Test): Kiểm thử toàn diện do nhóm kiểm thử độc lập thực hiện, bao gồm: kiểm thử giao diện người dùng (UI), kiểm thử luồng nghiệp vụ, kiểm thử hiệu năng (với dữ liệu chuẩn và dữ liệu xấu), kiểm thử an toàn thông tin (mức ứng dụng và mức hệ thống).
    • Kiểm thử chấp nhận (Acceptance Test): Nghiệm thu theo yêu cầu khách hàng, chia thành kiểm thử Alpha (tại nơi phát triển có hỗ trợ của tester) và kiểm thử Beta (trong môi trường thực tế của người dùng).

Chương 2. Kiểm thử tự động và công cụ Selenium

Chương này tập trung vào lý thuyết tự động hóa kiểm thử và khảo sát công cụ Selenium:

  • Khái niệm và quy trình kiểm thử tự động: Định nghĩa quy trình tự động hóa với dữ liệu vào/ra từ tập tin (Excel, CSV), trình bày quy trình 4 bước thực hiện kiểm thử tự động.
  • Ưu và nhược điểm: Ưu điểm gồm độ bao phủ lớn, độ chính xác cao, tiết kiệm nhân lực, chu kỳ ngắn, tránh lặp lại nhàm chán. Nhược điểm gồm chi phí chuyển giao/đào tạo cao, tốn công bảo trì kịch bản và giai đoạn chuẩn bị ban đầu đòi hỏi nhiều nhân lực.
  • Thời điểm áp dụng kiểm thử tự động: Số lượng ca kiểm thử lớn cần thực thi trong thời gian ngắn (1-2 ngày từ khi DEV bàn giao), xây dựng bộ hồi quy cho chức năng chính, kiểm thử hiệu năng/tải, hoặc khi một ca kiểm thử có quá nhiều bộ dữ liệu (ví dụ 50 bộ dữ liệu).
  • Bộ công cụ Selenium: Giới thiệu lịch sử ra đời năm 2004, khả năng hỗ trợ đa nền tảng (Windows, Linux, Mac), đa trình duyệt (Firefox, Chrome, IE, Safari, Opera) và đa ngôn ngữ (Java, C#, Python, PHP, Ruby, Perl).
  • Cấu trúc và giao diện Selenium IDE: Mô tả các thành phần giao diện (Base URL, Test case, Speed Control, Run All, Run, Pause/Resume, Step, Record, Table/Source, Command, Target, Value, Log, Reference...).
  • Kiến trúc Selenium RC và Selenium WebDriver: Mô tả chi tiết mô hình máy chủ Selenium RC Server kết hợp Selenium Core JavaScript, so sánh với mô hình giao tiếp trực tiếp native support của Selenium WebDriver; hướng dẫn từng bước cài đặt và cấu hình thư viện trên Java/Eclipse.

Chương 3. Ứng dụng Selenium IDE và Selenium WebDriver trong kiểm thử website

Trình bày chi tiết việc áp dụng thực nghiệm vào website "Style Shop" (phát triển bằng PHP):

  • Đặc tả yêu cầu và thiết kế ca kiểm thử chức năng Đăng nhập:
Trường thông tin Điều kiện đặc tả yêu cầu
Email Phải chứa ký tự @; phải là tài khoản đã đăng ký trước đó; không được bỏ trống.
Mật khẩu Độ dài từ 6 đến 15 ký tự; chỉ chứa ký tự chữ cái aA-zZ, số 0-9 và ký tự gạch dưới _; không được bỏ trống; không chứa khoảng trắng.

Các ca kiểm thử cho chức năng Đăng nhập:

  1. Email: Nhập thiếu @ -> Báo lỗi: "Tài khoản không chính xác".
  2. Email: Không nhập dữ liệu -> Báo lỗi: "Tài khoản không được bỏ trống".
  3. Email: Nhập sai Email -> Báo lỗi: "Tài khoản không chính xác".
  4. Mật khẩu: Nhập độ dài < 6 ký tự -> Báo lỗi: "Mật khẩu từ 6 kí tự".
  5. Mật khẩu: Nhập độ dài > 15 ký tự -> Báo lỗi: "Mật khẩu phải từ 6 đến 15 ký tự".
  6. Mật khẩu: Không nhập mật khẩu -> Báo lỗi: "Mật khẩu không được bỏ trống".
  7. Mật khẩu: Nhập chứa dấu cách -> Báo lỗi: "Mật khẩu chỉ chứa các ký tự : chữ aA-zZ., các số 0-9, và _".
  8. Kết hợp: Nhập sai Email và đúng Password -> Báo lỗi: "Lỗi: Sai email/password".
  9. Kết hợp: Nhập đúng Email và sai Password -> Báo lỗi: "Password không chính xác".
  10. Kết hợp: Nhập sai Email và sai Password -> Báo lỗi: "Email không chính xác".
  11. Kết hợp: Nhập đúng Username và đúng Password -> Đăng nhập thành công, hiển thị tên đăng nhập trên màn hình hệ thống.
  • Đặc tả yêu cầu và thiết kế ca kiểm thử chức năng Đăng ký:
Trường thông tin Điều kiện đặc tả yêu cầu
Họ và tên Độ dài từ 5 đến 20 ký tự; không chứa ký tự đặc biệt; không được bỏ trống; chỉ chứa chữ cái aA-zZ.
Mật khẩu Độ dài từ 6 đến 15 ký tự; chỉ chứa chữ cái aA-zZ, số 0-9, và _; không được bỏ trống; không chứa khoảng cách.
Email Không được bỏ trống; đúng định dạng X@gmail.com hoặc X@hotmail.com.
Số điện thoại Không được bỏ trống; độ dài từ 10 đến 11 chữ số.

Các ca kiểm thử cho chức năng Đăng ký:

  1. Họ và tên: Nhập < 5 ký tự -> Báo lỗi: "Tài khoản phải từ 5 đến 20 ký tự".
  2. Họ và tên: Bỏ trống -> Báo lỗi: "Tài khoản không được bỏ trống".
  3. Họ và tên: Nhập chứa ký tự số -> Báo lỗi: "Tài khoản chỉ chứa các ký tự : chữ aA-zZ".
  4. Mật khẩu: Nhập < 6 ký tự -> Báo lỗi: "Mật khẩu phải từ 6 đến 15 ký tự".
  5. Mật khẩu: Nhập > 15 ký tự -> Báo lỗi: "Mật khẩu phải từ 6 đến 15 ký tự".
  6. Mật khẩu: Bỏ trống -> Báo lỗi: "Mật khẩu không được bỏ trống".
  7. Mật khẩu: Nhập chứa khoảng trắng -> Báo lỗi: "Mật khẩu chỉ chứa các ký tự : chữ aA-zZ, các số 0-9, và _".
  8. Email: Bỏ trống -> Báo lỗi: "Email không được bỏ trống".
  9. Email: Nhập sai định dạng -> Báo lỗi: "Email sai định dạng".
  10. Phone: Bỏ trống -> Báo lỗi: "Số điện thoại không được bỏ trống".
  11. Phone: Nhập < 10 chữ số -> Báo lỗi: "Sai số điện thoại".
  12. Phone: Nhập > 11 chữ số -> Báo lỗi: "Số điện thoại từ 10— 11 chữ số".
  13. Nhập đúng tất cả các trường -> Đăng ký thành công, quay về trang Home, hiển thị tên người dùng vừa đăng ký.
  • Kết quả thực nghiệm: Kịch bản kiểm thử tự động đọc các tệp Excel đầu vào và ghi kết quả thực tế vào tệp Excel đầu ra. Đánh giá kiểm thử phát hiện một số trường hợp chức năng xử lý sai so với đặc tả dẫn đến kết quả ca kiểm thử bị Failed; về mặt giao diện, hệ thống hiển thị rõ ràng và không bị vỡ giao diện khi thay đổi độ phân giải màn hình.

Chương 4. Kết luận chung

Tổng kết các nội dung đã hoàn thành: hệ thống hóa lý thuyết kiểm thử phần mềm, phân tích bộ công cụ Selenium (IDE, RC, WebDriver), và hoàn thành kiểm thử thực nghiệm trên 2 chức năng của website "Style Shop". Xác định các hạn chế hiện tại và đề xuất hướng mở rộng nghiên cứu trong tương lai.


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

1. Kết quả thực nghiệm cụ thể

  • Đã xây dựng thành công bộ kịch bản kiểm thử tự động bằng Java dựa trên Selenium WebDriver và Selenium IDE cho 2 chức năng Đăng nhập và Đăng ký trên website "Style Shop".
  • Tự động hóa thành công luồng đọc dữ liệu từ tệp bảng tính Excel (InputCondition) và tự động xuất tệp báo cáo kết quả kiểm thử (OutputResult), phân định tự động các ca kiểm thử đạt (Passed) hoặc không đạt (Failed).
  • Đánh giá chất lượng thực tế của website "Style Shop":
    • Về giao diện: Bố cục giao diện rõ ràng, dễ hiểu; đảm bảo tính tương thích hiển thị tốt (không bị vỡ giao diện khi thực hiện phóng to hoặc thu nhỏ kích thước trình duyệt).
    • Về mặt chức năng: Hệ thống cho phép đăng ký tài khoản mới và lưu thành công thông tin vào cơ sở dữ liệu, cho phép người dùng đăng nhập vào hệ thống. Tuy nhiên, qua kiểm thử tự động đã phát hiện một số trường hợp kiểm thử bị lỗi (Failed) do phản hồi thực tế của hệ thống chưa tuân thủ đúng theo đặc tả yêu cầu đặt ra (ví dụ: thông báo lỗi hiển thị không chính xác hoặc việc kiểm soát điều kiện ràng buộc dữ liệu đầu vào chưa chặt chẽ).

2. Đóng góp của đề tài

  • Hệ thống hóa các kiến thức nền tảng về quy trình, phương pháp và cấp độ kiểm thử phần mềm, tạo tài liệu tham khảo có cấu trúc rõ ràng.
  • Đóng vai trò như một tài liệu hướng dẫn kỹ thuật bằng tiếng Việt về quy trình cài đặt, cấu hình và sử dụng công cụ Selenium IDE kết hợp với Selenium WebDriver trong môi trường lập trình Java/Eclipse.
  • Minh họa rõ nét phương pháp kiểm thử tự động hướng dữ liệu (Data-driven testing) thông qua việc kết nối mã kiểm thử tự động với tệp dữ liệu kiểm thử Excel.

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

1. Hạn chế

  • Đề tài mới chỉ dừng lại ở việc tìm hiểu lý thuyết 3 thành phần trong bộ công cụ Selenium là Selenium IDE, Selenium RC và Selenium WebDriver; chưa triển khai nghiên cứu chi tiết thành phần Selenium Grid.
  • Về mặt thực nghiệm, đề tài mới chỉ ứng dụng 2 trên tổng số 4 công cụ của bộ Selenium (gồm Selenium IDE và Selenium WebDriver).
  • Phạm vi kiểm thử thực tế mới chỉ dừng lại ở 2 chức năng cơ bản (Đăng nhập và Đăng ký) trên một ứng dụng web quy mô sinh viên ("Style Shop"), chưa thực hiện kiểm thử tự động trên toàn bộ các phân hệ nghiệp vụ phức tạp khác (như giỏ hàng, đặt hàng, thanh toán, quản trị danh mục).

2. Hướng nghiên cứu tiếp

  • Tiếp tục nghiên cứu chuyên sâu về lĩnh vực kiểm thử phần mềm và hoàn thiện việc nghiên cứu toàn bộ các thành phần trong bộ công cụ Selenium, đặc biệt là cơ chế kiểm thử phân tán song song trên Selenium Grid.
  • Tìm hiểu, đánh giá và so sánh thêm với nhiều bộ công cụ kiểm thử tự động khác trên thị trường.
  • Mở rộng phạm vi ứng dụng kiểm thử tự động vào các hệ thống phần mềm thực tế có quy mô lớn hơn, kiến trúc phức tạp hơn nhằm nâng cao kỹ năng và kinh nghiệm thực tiễn phục vụ định hướng nghề nghiệp kỹ sư kiểm thử phần mềm (Tester/QA).

Giá trị tham khảo

Đồ án có giá trị tham khảo thiết thực cho các đối tượng và mục đích học thuật sau:

  • 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 cho các học phần Đồ án cơ sở, Đảm bảo chất lượng phần mềm, Kiểm thử phần mềm.
  • Kiểm thử viên mới bắt đầu (Junior/Fresher Tester): Cung cấp tài liệu hướng dẫn từng bước từ việc thu lại thao tác trên trình duyệt bằng Selenium IDE, xuất kịch bản sang mã nguồn Java/JUnit 4, cấu hình các tệp JAR trong Eclipse đến việc điều khiển trình duyệt qua Selenium WebDriver.
  • Kỹ thuật thiết kế Test Case: Bảng đặc tả yêu cầu và hệ thống ca kiểm thử cho chức năng Đăng ký và Đăng nhập là tài liệu mẫu trực quan cho việc thiết kế ca kiểm thử hộp đen chuẩn mực cho các form dữ liệu web phổ biến.

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

1. Sự khác biệt cốt lõi về kiến trúc giữa Selenium RC và Selenium WebDriver là gì?

Selenium RC hoạt động thông qua một máy chủ trung gian (Selenium RC Server) để nhúng đoạn mã JavaScript (Selenium Core) vào trình duyệt, khiến tốc độ thực thi bị chậm và khó xử lý các trang web động. Ngược lại, Selenium WebDriver loại bỏ máy chủ trung gian và giao tiếp trực tiếp với trình duyệt thông qua sự hỗ trợ gốc của trình duyệt (browser's native support), giúp tốc độ thực thi nhanh hơn và hỗ trợ tối ưu cho các ứng dụng web động hiện đại.

2. Quy trình kiểm thử tự động được thực hiện qua các bước nào trong đồ án?

Quy trình kiểm thử tự động gồm 4 bước:

  1. Sử dụng công cụ kiểm thử (Selenium IDE) để ghi lại các thao tác người dùng và tự động sinh ra kịch bản kiểm thử mẫu (test script).
  2. Chỉnh sửa kịch bản kiểm thử để bổ sung logic đánh giá và khớp với yêu cầu.
  3. Chạy kịch bản kiểm thử tự động và giám sát hoạt động của trình duyệt.
  4. Báo cáo kết quả kiểm thử tự động, đánh giá trạng thái Passed/Failed và tiến hành bổ sung, chỉnh sửa các sai sót.

3. Website thực nghiệm "Style Shop" được phát triển bằng ngôn ngữ gì và được kiểm thử những chức năng nào?

Website "Style Shop" là ứng dụng bán hàng trực tuyến được phát triển bằng ngôn ngữ PHP bởi sinh viên. Trong đồ án, website này được áp dụng kiểm thử tự động trên hai chức năng xác thực người dùng cơ bản là: chức năng Đăng nhập tài khoản và chức năng Đăng ký tài khoản khách hàng.

4. Các điều kiện kiểm thử đối với trường Số điện thoại và Email trong chức năng Đăng ký được quy định ra sao?

  • Email: Bắt buộc không được để trống, phải nhập đúng cấu trúc định dạng hộp thư X@gmail.com hoặc X@hotmail.com. Nếu bỏ trống hệ thống phải hiển thị thông báo "Email không được bỏ trống", nếu nhập sai định dạng phải báo "Email sai định dạng".
  • Số điện thoại (Phone): Bắt buộc không được để trống, độ dài hợp lệ phải từ 10 đến 11 chữ số. Nếu bỏ trống báo lỗi "Số điện thoại không được bỏ trống", nếu nhập dưới 10 số báo "Sai số điện thoại", nếu nhập trên 11 số báo "Số điện thoại từ 10— 11 chữ số".

5. Phương pháp đánh giá kết quả kiểm thử tự động (Passed/Failed) được triển khai như thế nào trong mã nguồn?

Tác giả xây dựng một hàm trong Java để so sánh chuỗi kết quả thực tế hiển thị trên trình duyệt sau khi Selenium WebDriver thực thi với chuỗi kết quả mong đợi (Expected Result) được nạp từ tệp bảng tính Excel. Nếu kết quả thực tế trùng khớp với kết quả mong đợi, ca kiểm thử được ghi nhận trạng thái Passed; nếu phát sinh sai lệch giữa thực tế và mong đợi, ca kiểm thử được đánh dấu là Failed trong tệp báo cáo đầu ra.


Kết luận

Đồ án cơ sở "Ứng dụng Selenium trong kiểm thử website" đã hệ thống hóa thành công các kiến thức nền tảng về lý thuyết kiểm thử phần mềm, quy trình kiểm thử tự động và kiến trúc kỹ thuật của bộ công cụ Selenium. Tác giả đã hiện thực hóa việc kết hợp Selenium IDE và Selenium WebDriver trong môi trường Java/Eclipse để kiểm thử tự động hướng dữ liệu từ tệp Excel cho 2 chức năng Đăng nhập và Đăng ký trên website "Style Shop", phát hiện các sai lệch thực tế so với đặc tả yêu cầu. Công trình đóng vai trò là một tài liệu thực hành có giá trị tham khảo rõ ràng cho sinh viên công nghệ thông tin và kiểm thử viên bước đầu tiếp cận tự động hóa kiểm thử web.