Giới thiệu dự án

Trong ngành công nghệ phần mềm, định luật kinh điển của Glenford Myers (1979) đã chỉ rõ: "Trong một dự án lập trình điển hình, xấp xỉ 50% thời gian và hơn 50% tổng chi phí được sử dụng cho việc kiểm thử các chương trình hay hệ thống phát triển". Bước sang kỷ nguyên số hóa với sự bùng nổ của thương mại điện tử và các nền tảng dịch vụ trực tuyến, chất lượng phần mềm không chỉ quyết định sự ổn định về mặt kỹ thuật mà còn ảnh hưởng trực tiếp đến doanh thu và uy tín thương hiệu của doanh nghiệp.

Đồ án/Khóa luận tốt nghiệp "Nghiên cứu kiểm thử phần mềm vào ứng dụng Web CGV" được thực hiện bởi sinh viên Đỗ Thị Hồng Phượng (Chuyên ngành Hệ thống Thông tin Quản lý, Học viện Ngân hàng) dưới sự hướng dẫn của TS. Đinh Trọng Hiếu, phối hợp thực tập và triển khai thực tế tại Công ty TNHH Phần mềm FPT (FPT Software) cho đối tác khách hàng là Tập đoàn CJ CGV (thuộc CJ Group).

+-------------------------------------------------------------------------------+
|                             CJ CGV Cultureplex Web                            |
|             (Hệ thống rạp chiếu phim & nền tảng đặt vé trực tuyến)            |
+---------------------------------------+---------------------------------------+
                                        |
               +------------------------+------------------------+
               | Tích hợp module mới: "Thanh toán trực tuyến"    |
               +------------------------+------------------------+
                                        | (Nguy cơ lỗi hồi quy / xung đột dữ liệu)
                                        v
+-------------------------------------------------------------------------------+
|              HỆ THỐNG KIỂM THỬ ĐẢM BẢO CHẤT LƯỢNG (QA/QC) FPT SOFTWARE        |
|                                                                               |
|  [Đặc tả & Thiết kế kiểm thử]   -->   [Kiểm thử thủ công (Manual Test)]       |
|  - BR0101/BR0102 (Đăng nhập)          - 88 Test Cases (Độ bao phủ 100%)       |
|  - BR0201/BR0202 (Đăng ký)            - Đánh giá giao diện & tương tác dữ liệu|
|                                                                               |
|  [Chuyển đổi kiểm thử tự động] -->   [Thực thi Automation Test Suite]         |
|  - Selenium WebDriver + Java          - Kiểm thử hồi quy tự động hóa          |
|  - Eclipse IDE + TestNG + IEDriver    - Tối ưu hóa 75%+ thời gian lặp lại     |
+-------------------------------------------------------------------------------+

1. Problem Statement và Điểm nghẽn (Pain Points)

CJ CGV là cụm rạp chiếu phim lớn nhất Việt Nam, tiên phong chuyển đổi mô hình rạp chiếu truyền thống sang tổ hợp văn hóa giải trí "Cultureplex" (tích hợp công nghệ chiếu IMAX, STARIUM, 4DX, Dolby Atmos). Để duy trì lợi thế cạnh tranh, CGV phối hợp cùng FPT Software nâng cấp toàn diện hệ thống web cgv.vn, đặc biệt là việc tích hợp tính năng Thanh toán trực tuyến.

Quá trình này đối mặt với các thách thức lớn:

  • Rủi ro lỗi hồi quy (Regression Bugs): Việc can thiệp mã nguồn để tích hợp cổng thanh toán dễ gây mất ổn định tại các phân hệ nền tảng như Đăng nhập (CGV001) và Đăng ký thành viên (CGV002).
  • Chi phí kiểm thử thủ công tăng vọt: Kiểm thử thủ công (Manual Testing) lặp đi lặp lại hàng trăm kịch bản sau mỗi bản build tiêu tốn nhiều nhân lực, dễ gây sai sót do yếu tố con người.
  • Ràng buộc xác thực phức tạp: Phân hệ đăng ký chứa 15 trường dữ liệu bắt buộc với các mối quan hệ ràng buộc chéo (Tỉnh/Thành phố liên kết với Quận/Huyện, định dạng email, độ dài mật khẩu, mã Captcha, số CMND/Passport).

2. Mục tiêu dự án

  1. Nghiên cứu toàn diện cơ sở lý luận về kỹ nghệ kiểm thử phần mềm, các cấp độ kiểm thử (Unit, Integration, System, Acceptance Test) và các kỹ thuật thiết kế ca kiểm thử (Hộp đen, Hộp trắng).
  2. Xây dựng tài liệu đặc tả yêu cầu, biểu đồ hoạt động và bộ kịch bản kiểm thử (Test Cases) chi tiết cho hai chức năng trọng yếu: Đăng ký và Đăng nhập trên website CGV.
  3. Tiến hành kiểm thử thủ công toàn diện trên môi trường đa trình duyệt, phát hiện và quản lý lỗi trên hệ thống quản trị dự án Jira theo tiêu chuẩn chất lượng ISO 27001:2005 của FPT Software.
  4. Xây dựng khung kiểm thử tự động (Automation Testing Framework) sử dụng Selenium WebDriver trên nền tảng Java/Eclipse, tự động hóa các kịch bản kiểm thử hồi quy nhằm tối ưu hóa thời gian và chi phí thực thi.

3. Phương pháp tiếp cận và Phạm vi

  • Phương pháp tiếp cận: Kết hợp phương pháp kiểm thử chức năng hộp đen (Black-box Testing) với các kỹ thuật Phân vùng tương đương (Equivalence Partitioning) và Phân tích giá trị biên (Boundary Value Analysis), song song với tự động hóa kiểm thử hướng dữ liệu (Data-Driven Automation Testing).
  • Phạm vi (Scope): Tập trung vào kiểm thử chức năng (Functional Testing) và kiểm thử giao diện người dùng (UI/GUI Testing) cho hai phân hệ Đăng nhập và Đăng ký trên web CGV.
  • Hạn chế (Limitations): Không can thiệp vào mã nguồn backend của hệ thống core banking; kiểm thử tải trọng lớn (Stress/Load Testing > 50,000 CCU) và vượt rào cản tự động nhận diện Captcha hình ảnh phức tạp chưa nằm trong phạm vi tự động hóa hoàn toàn.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí Kiểm thử thủ công thuần túy (Manual Testing) Công cụ Record & Playback cơ bản Giải pháp đề xuất: Selenium WebDriver Scripting
Tốc độ thực thi Chậm (Phụ thuộc hoàn toàn vào thao tác con người) Trung bình (Dễ gãy script khi UI thay đổi) Rất nhanh (Thực thi song song, độc lập)
Độ tin cậy & Ổn định Dễ sai sót khi lặp lại nhiều lần Thấp (Phụ thuộc tọa độ màn hình) Cao (Định vị phần tử động qua XPath/CSS)
Khả năng tái sử dụng Không có khả năng tái sử dụng mã Hạn chế, khó bảo trì Rất cao (Tách biệt dữ liệu và mã kiểm thử)
Chi phí dài hạn Tăng tuyến tính theo quy mô dự án Trung bình Tối ưu, giảm chi phí kiểm thử hồi quy
Độ phủ kiểm thử Khó bao phủ hết các giá trị biên Bao phủ mức cơ bản Bao phủ toàn diện ma trận dữ liệu kiểm thử

Phân loại yêu cầu người dùng theo mô hình MoSCoW

  • Must have (Bắt buộc có): Xác thực chuẩn xác logic đăng nhập (CGV001) và đăng ký (CGV002); kiểm tra đầy đủ 15 trường dữ liệu bắt buộc; chặn các đầu vào rỗng hoặc sai định dạng theo luật nghiệp vụ BR0101, BR0102, BR0201, BR0202.
  • Should have (Nên có): Bắt lỗi hiển thị thông báo động tức thì (Real-time Validation Textbox); kiểm tra tính tương thích trên các trình duyệt Chrome, Mozilla Firefox, Internet Explorer.
  • Could have (Có thể có): Tự động hóa hoàn toàn bộ kịch bản kiểm thử hồi quy thông qua Selenium WebDriver tích hợp TestNG framework.
  • Won't have (Chưa thực hiện đợt này): Bỏ qua kiểm thử xâm nhập chuyên sâu (Penetration Testing) tầng cơ sở dữ liệu vật lý và tự động hóa giải mã Captcha hình ảnh.

Thiết kế hệ thống kiểm thử

      +-------------------------------------------------------------+
      |               Selenium WebDriver Automation Suite          |
      |   (Ngôn ngữ Java - Quản lý thực thi TestNG - Eclipse IDE)   |
      +------------------------------+------------------------------+
                                     |
                +--------------------+--------------------+
                |                                         |
                v                                         v
   +-------------------------+               +-------------------------+
   |   IEDriverServer.exe    |               |  ChromeDriver / Gecko   |
   +------------+------------+               +------------+------------+
                |                                         |
                +--------------------+--------------------+
                                     | (Gửi lệnh HTTP / JSON Wire Protocol)
                                     v
      +-------------------------------------------------------------+
      |                Giao diện Ứng dụng Web CGV                  |
      |         (https://cgv.vn/default/cinemas/login)             |
      +------------------------------+------------------------------+
                                     |
                                     v
      +-------------------------------------------------------------+
      |                 Hệ thống Web Server & DB CGV                |
      |             (Xác thực tài khoản & Phân quyền)               |
      +-------------------------------------------------------------+

Technology Stack và Đặc tả môi trường

  • Ngôn ngữ lập trình: Java (JDK phiên bản 1.8.0_131).
  • Môi trường phát triển tích hợp (IDE): Eclipse IDE (phiên bản Neon / Oxygen 4.7).
  • Thư viện Tự động hóa: Selenium WebDriver (v3.4.0), hỗ trợ IEDriverServer.exe (v3.4.0), ChromeDriver, GeckoDriver.
  • Framework kiểm thử: TestNG (v6.11) quản lý assertions và xuất báo cáo tự động.
  • Công cụ quản lý lỗi và tác vụ: Jira v7.2 & Microsoft Excel 2016.
  • Môi trường kiểm thử mục tiêu: Google Chrome (v58+), Mozilla Firefox (v53+), Internet Explorer (IE 11) trên hệ điều hành Windows 10/Linux.

Đặc tả thành phần giao diện và ràng buộc nghiệp vụ

  1. Phân hệ Đăng nhập (CGV001):
    • Hộp nhập Email/Tên người dùng: Kích thước $231 \times 31\text{ px}$, padding-left: 40px, padding-right: 5px, mặc định rỗng.
    • Hộp nhập Mật khẩu: Kích thước $231 \times 31\text{ px}$, ẩn ký tự dạng chấm/bullet, độ dài tối thiểu 6 ký tự.
    • Nút Đăng nhập: Chiều rộng $80\text{ px}$, màu nền #f2f0e5, kích hoạt gửi truy vấn xác thực cơ sở dữ liệu.
  2. Phân hệ Đăng ký (CGV002):
    • Gồm 15 trường bắt buộc: Tên ($365 \times 30\text{ px}$, max 255 chars), Họ ($365 \times 30\text{ px}$), Email/Tên đăng nhập (yêu cầu ký tự @, không kết thúc bằng dấu chấm), Mật khẩu và Nhập lại mật khẩu ($\ge 6$ ký tự, phải trùng khớp), Số CMND/Passport (tối đa 12 ký tự), Điện thoại di động (chỉ chấp nhận ký tự số), Địa chỉ, Tỉnh/Thành phố (Dropdown), Quận/Huyện (Dropdown đồng bộ theo Tỉnh/Thành), Ngày sinh (3 Combobox: Ngày 01-31, Tháng 1-12, Năm 1937-2005), Giới tính (Nam/Nữ), Mã kiểm tra Captcha.

Phương pháp luận (Methodology)

Dự án áp dụng mô hình phát triển phần mềm Agile Development Software Life Cycle (DSLC) của FPT Software. Quy trình kiểm thử được lồng ghép chặt chẽ, tiến hành sớm ngay từ giai đoạn nhận tài liệu đặc tả nghiệp vụ từ khách hàng CJ Group.

[Nhận yêu cầu CJ Group] --> [Phân tích & Lập Test Plan] --> [Thiết kế Test Cases] 
           --> [Thực thi Manual Test] --> [Automation Scripting] --> [Báo cáo & Nghiệm thu UAT]

Kế hoạch thời gian và tiến độ triển khai (Milestones)

Công việc thực hiện Tài liệu/Công cụ liên quan Thời gian Mốc thời gian thực tế
Đọc hiểu tài liệu yêu cầu khách hàng Tài liệu SRS của CJ Group 3 ngày 15/03/2017 – 18/03/2017
Trao đổi & làm rõ yêu cầu (Q&A) Tài liệu Question & Answer 3 ngày 20/03/2017 – 22/03/2017
Lập kế hoạch kiểm thử (Test Plan) Kế hoạch kiểm thử chi tiết 2 ngày 22/03/2017 – 24/03/2017
Thiết kế kiểm thử (Test Design) Tài liệu Test Design 3 ngày 27/03/2017 – 29/03/2017
Xây dựng kịch bản kiểm thử (Test Cases) Bảng Test Cases (Excel/Jira) 12 ngày 30/03/2017 – 13/04/2017
Đánh giá chéo (Cross Review) Test Cases Biên bản Review nội bộ 3 ngày 14/04/2017 – 18/04/2017
Cập nhật & hoàn thiện Test Cases Bảng Test Cases hoàn chỉnh 2 ngày 19/04/2017 – 20/04/2017
Thực thi kiểm thử thủ công (Execution) Môi trường Web Staging 5 ngày 21/04/2017 – 26/04/2017
Ghi nhận lỗi & Xuất báo cáo kiểm thử Báo cáo Test Report 1 ngày 27/04/2017
Kiểm thử chấp nhận (UAT) với khách hàng Báo cáo UAT & Phản hồi 2–3 ngày 28/04/2017 – 30/04/2017
Kiểm thử bảo hành & Hồi quy tự động hóa Test Scripts Selenium / Suite 3 tuần 02/05/2017 – 23/05/2017

Implementation và kết quả

Quá trình phát triển và kịch bản tự động hóa

Quá trình tự động hóa sử dụng thư viện Selenium WebDriver viết trên nền tảng Java, thực hiện tương tác mô phỏng người dùng trực tiếp trên trình duyệt web thông qua các cơ chế định vị phần tử (Locators) như By.id, By.linkText, By.cssSelector, By.xpath.

1. Cấu hình Driver khởi tạo trình duyệt (Internet Explorer / Chrome)

package com.cgv.automation;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class Functions {
    public static WebDriver driver = null;

    public static void iedriver() {
        // Thiết lập đường dẫn tới Driver thực thi của IE
        System.setProperty("webdriver.ie.driver", "C:\\setup\\selenium\\IEDriverServer.exe");
        driver = new InternetExplorerDriver();
        driver.manage().window().maximize();
    }
}

2. Định vị phần tử và tương tác luồng nghiệp vụ

// Điều hướng tới trang chủ và chuyển tiếp tới trang Đăng nhập / Đăng ký
driver.get("https://cgv.vn");
By dnlinkBy = By.linkText("Đăng nhập/ Đăng ký");
WebElement DnlinkBtn = driver.findElement(dnlinkBy);
DnlinkBtn.click();

// Tương tác nhập dữ liệu vào Textbox
WebElement Email = driver.findElement(By.id("email"));
Email.clear();
Email.sendKeys("phuongdo@example.com");

WebElement Password = driver.findElement(By.id("pass"));
Password.clear();
Password.sendKeys("SecurePass123");

// Kích hoạt sự kiện Click nút Đăng nhập
WebElement LoginBtn = driver.findElement(By.id("send2"));
LoginBtn.click();

3. Xử lý các điều khiển phức tạp (Dropdown Select) và Trích xuất thông báo lỗi

import org.openqa.selenium.support.ui.Select;

// Lựa chọn phần tử Dropdown theo Value hoặc Index
Select month = new Select(driver.findElement(By.id("month")));
month.selectByValue("11"); // Chọn tháng 11

Select tinh = new Select(driver.findElement(By.id("city_id")));
tinh.selectByIndex(19);    // Chọn Tỉnh/Thành phố: Hà Nội

// Trích xuất chuỗi văn bản cảnh báo lỗi khi để trống trường bắt buộc
By ErrorMess1By = By.id("advice-required-entry-email");
WebElement ErrorMess1 = driver.findElement(ErrorMess1By);
String contentMess1 = ErrorMess1.getText();

// Kiểm tra tính đúng đắn với Assertions
org.testng.Assert.assertEquals(contentMess1, "Đây là trường bắt buộc.");
+-------------------------------------------------------------------------------+
|                       AUTOMATION TEST RUNNER LOG (TESTNG)                     |
+-------------------------------------------------------------------------------+
| [INFO] Initializing IEDriverServer.exe on Port 5543                           |
| [INFO] Navigating to: https://cgv.vn/default/cinemas/login                    |
| [RUN]  Executing TC_Auto_16: Verify Login with valid credentials ... [PASSED]  |
| [RUN]  Executing TC_Auto_18: Verify Login with empty password   ... [PASSED]  |
| [RUN]  Executing TC_Auto_28: Verify Register with invalid email  ... [PASSED]  |
| [RUN]  Executing TC_Auto_59: Verify Register mismatched password ... [PASSED]  |
| [RUN]  Executing TC_Auto_88: Verify Captcha & Submit validation  ... [PASSED]  |
| ============================================================================= |
| Tests run: 5, Failures: 0, Skips: 0, Time elapsed: 14.82 sec                  |
+-------------------------------------------------------------------------------+

Kết quả thử nghiệm và kiểm định (Testing & Validation)

  1. Kết quả kiểm thử thủ công (Manual Testing):
    • Tổng số ca kiểm thử thiết kế và thực thi: 88 Test Cases.
    • Phân bổ kiểm thử: Phân hệ Đăng nhập (24 TCs), Phân hệ Đăng ký (64 TCs bao gồm kiểm tra logic 15 trường và giao diện).
    • Số lượng ca kiểm thử đạt (Passed): 88 / 88 TCs (Tỷ lệ thành công 100% sau các vòng kiểm thử và vá lỗi).
    • Số lượng ca thất bại (Failed) khi bàn giao nghiệm thu: 0 TCs.
  2. Kết quả kiểm thử tự động (Automation Testing):
    • Tự động hóa thành công các ca kiểm thử hồi quy tiêu biểu:
      • TC_Auto_16: Đăng nhập thành công với tài khoản và mật khẩu hợp lệ.
      • TC_Auto_18: Kiểm tra thông báo lỗi khi để trống trường Mật khẩu.
      • TC_Auto_28: Kiểm tra cảnh báo định dạng Email không hợp lệ trên form Đăng ký.
      • TC_Auto_59: Bắt lỗi không khớp giữa "Mật khẩu" và "Nhập lại mật khẩu".
      • TC_Auto_88: Kiểm tra toàn diện cơ chế validate rỗng toàn bộ form đăng ký 15 trường.
  3. Chỉ số hiệu năng (Performance Benchmarks):
    • Thời gian phản hồi trang (Page Response Time) duy trì chuẩn trong ngưỡng $3 - 5\text{ giây}$.
    • Tốc độ thực thi bộ kịch bản tự động hóa giảm từ 120 phút (khi thực hiện thủ công toàn bộ ma trận) xuống còn 14.8 phút trên Selenium WebDriver.

Đổi mới và đóng góp

  1. Chuẩn hóa quy trình kiểm thử phần mềm cho doanh nghiệp dịch vụ lớn: Xây dựng thành công quy trình kiểm thử chuyên nghiệp tuân thủ nghiêm ngặt các tiêu chuẩn công nghiệp (ISO 27001:2005) tại FPT Software, liên kết chặt chẽ giữa đặc tả nghiệp vụ (CJ Group) và sản phẩm bàn giao.
  2. Ứng dụng thành công giải pháp Tự động hóa mã nguồn mở: Thay thế các công cụ thương mại đắt đỏ (như HP QTP/UFT) bằng Selenium WebDriver + Java, giúp doanh nghiệp tiết kiệm $100%$ chi phí bản quyền công cụ trong khi vẫn đảm bảo hiệu năng và tính linh hoạt.
  3. Cải thiện vượt bậc hiệu suất kiểm thử hồi quy:
    • Cắt giảm $> 75%$ thời gian thực hiện kiểm thử hồi quy mỗi khi hệ thống có bản vá mới hoặc tích hợp module mới.
    • Loại bỏ $100%$ các sai sót ngẫu nhiên do thao tác lặp lại của con người trong các bài test biên phức tạp.
  4. Tài liệu hóa chi tiết ma trận kiểm thử chuẩn: Cung cấp bộ 88 Test Cases hoàn chỉnh, chuẩn hóa tài liệu Test Plan, Test Design và Test Report, làm tài liệu tham chiếu tiêu chuẩn cho các dự án thương mại điện tử tương tự.

Ứng dụng thực tế và triển khai

Khả năng ứng dụng thực tế

Giải pháp và quy trình kiểm thử xây dựng trong khóa luận được ứng dụng trực tiếp tại dự án vận hành cổng thông tin điện tử CGV Việt Nam, đảm bảo sự sẵn sàng của hệ thống khi đưa tính năng Thanh toán trực tuyến vào phục vụ hàng triệu lượt khách hàng mỗi tuần.

       +-------------------------------------------------------+
       |             CGV Cultureplex Web Ecosystem             |
       +---------------------------+---------------------------+
                                   |
         +-------------------------+-------------------------+
         |                         |                         |
         v                         v                         v
+-----------------+       +-----------------+       +-----------------+
| Module Đăng nhập|       | Module Đăng ký  |       | Module Đặt vé & |
|  & Xác thực     |       |  & Hội viên     |       | Thanh toán Online|
+--------+--------+       +--------+--------+       +--------+--------+
         |                         |                         |
         +-------------------------+-------------------------+
                                   |
                                   v
       +-------------------------------------------------------+
       |       Bộ kịch bản Kiểm thử tự động (Selenium Suite)    |
       |             - Kiểm tra hồi quy định kỳ                |
       |             - Tự động hóa dữ liệu kiểm thử (Data-Driven)|
       +-------------------------------------------------------+

Chiến lược triển khai và Phân tích Chi phí - Lợi ích (ROI)

  • Chi phí đầu tư ban đầu: Nhân lực xây dựng framework và kịch bản test script trong giai đoạn đầu (khoảng 0.5 Man-Month).
  • Lợi ích thu được:
    • Tiết kiệm 1.5 Man-Month chi phí nhân sự cho mỗi chu kỳ phát hành sản phẩm (Release Cycle).
    • Tỷ suất hoàn vốn đầu tư kiểm thử (Test ROI) đạt mức dương chỉ sau 3 chu kỳ lặp lại kiểm thử hồi quy (Regression Testing Sprints).

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  1. Xử lý Captcha: Hiện tại mã Captcha nhận diện chống spam trên form đăng ký vẫn cần sự can thiệp thủ công hoặc cơ chế mock dữ liệu từ máy chủ thử nghiệm.
  2. Cấu trúc mã nguồn tự động hóa: Các test script viết theo phương pháp tuần tự cơ bản, chưa áp dụng mô hình thiết kế mẫu Page Object Model (POM) để tối ưu hóa việc tái sử dụng và bảo trì code lâu dài.
  3. Tích hợp liên tục: Bộ kịch bản Selenium chưa được tích hợp vào luồng tự động hóa CI/CD (Jenkins/GitLab CI) để tự động kích hoạt sau mỗi commit code của lập trình viên.

Hướng phát triển tương lai

  • Tái cấu trúc toàn bộ mã nguồn kiểm thử tự động theo mô hình Page Object Model (POM) kết hợp Cucumber BDD (Behavior-Driven Development).
  • Mở rộng phạm vi kiểm thử tự động sang các module: Chọn ghế trực tuyến, Áp dụng mã giảm giá/Voucher, Tích hợp cổng thanh toán Sandbox (OnePay, VNPay, Thẻ quốc tế Visa/MasterCard).
  • Tích hợp kiểm thử hiệu năng tải chịu đựng (Performance/Load Testing) bằng công cụ Apache JMeter giả lập 100,000 người dùng truy cập đồng thời vào các khung giờ cao điểm công chiếu phim bom tấn.

Đối tượng hưởng lợi

  • Sinh viên ngành CNTT / HTTT: Tài liệu học tập thực tế, mẫu mực về quy trình kiểm thử phần mềm chuẩn doanh nghiệp (FPT Software), nắm bắt kỹ thuật viết Test Case và lập trình Selenium WebDriver từ con số 0.
  • Kiểm thử viên (QA/QC Engineers): Nắm vững phương pháp chuyển đổi từ kiểm thử thủ công sang tự động hóa, kỹ thuật định vị phần tử web phức tạp và xử lý ngoại lệ trên nhiều trình duyệt.
  • Doanh nghiệp phát triển phần mềm: Khung tham chiếu quy trình kiểm thử tiết kiệm chi phí, nâng cao chất lượng bàn giao sản phẩm cho khách hàng lớn.
  • Nhà nghiên cứu / Giảng viên: Cung cấp số liệu thực nghiệm về hiệu quả giữa Manual Testing và Automation Testing trong các dự án thương mại thực tế tại Việt Nam.

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

1. Cần chuẩn bị những công cụ gì để triển khai bộ kịch bản kiểm thử tự động này?

Cần cài đặt Java Development Kit (JDK 8 trở lên), môi trường Eclipse IDE, thư viện Selenium WebDriver Client Java, framework TestNG, cùng với các Driver tương ứng cho từng trình duyệt (chromedriver.exe, geckodriver.exe, IEDriverServer.exe).

2. Tại sao lại chọn Selenium WebDriver thay vì các công cụ tự động hóa khác như QTP/UFT?

Selenium WebDriver là công cụ mã nguồn mở hoàn toàn miễn phí, hỗ trợ đa ngôn ngữ (Java, C#, Python, Ruby), tương thích trên hầu hết các trình duyệt và hệ điều hành phổ biến, cho phép can thiệp mã nguồn linh hoạt và có cộng đồng hỗ trợ toàn cầu vô cùng lớn mạnh.

3. Quy trình xử lý khi phát hiện lỗi (Bug Tracking) trong dự án được thực hiện như thế nào?

Khi phát hiện lỗi sai lệch giữa kết quả thực tế và kết quả mong đợi trong Test Case, kiểm thử viên ghi nhận mã lỗi, chụp ảnh/quay video bằng chứng, xác định mức độ nghiêm trọng (Severity) và độ ưu tiên (Priority), sau đó tạo ticket trên hệ thống Jira để gán (assign) cho lập trình viên xử lý và tiến hành kiểm tra lại (Re-test) sau khi có bản vá.

4. Làm thế nào để kiểm thử các trường dữ liệu có tính ràng buộc phụ thuộc như Tỉnh/Thành phố và Quận/Huyện?

Sử dụng kỹ thuật kiểm thử theo bảng quyết định (Decision Table Testing) và ma trận tương quan. Trong Selenium, ta sử dụng đối tượng Select để chọn giá trị Tỉnh/Thành trước, chờ DOM cập nhật danh sách con, sau đó chọn Quận/Huyện tương ứng và kiểm tra tính hợp lệ của dữ liệu phản hồi.

5. Kiểm thử tự động có thể thay thế hoàn toàn kiểm thử thủ công trong dự án web CGV không?

Không. Kiểm thử tự động chỉ phát huy tối đa hiệu quả trong các tác vụ kiểm thử hồi quy, kiểm thử dữ liệu lớn lặp đi lặp lại. Kiểm thử thủ công vẫn giữ vai trò quyết định trong việc đánh giá trải nghiệm người dùng (UX), kiểm thử khám phá (Exploratory Testing) và đánh giá tính thẩm mỹ giao diện mà máy móc không thể cảm nhận.


Kết luận

Đồ án tốt nghiệp "Nghiên cứu kiểm thử phần mềm vào ứng dụng Web CGV" của tác giả Đỗ Thị Hồng Phượng đã giải quyết trọn vẹn bài toán đảm bảo chất lượng phần mềm trong một dự án chuyển đổi số quy mô lớn tại FPT Software. Thông qua việc kết hợp khoa học giữa phương pháp luận kiểm thử hộp đen thủ công (với 88 Test Cases đạt độ tin cậy tuyệt đối) và công nghệ tự động hóa Selenium WebDriver, dự án không chỉ bảo vệ tính toàn vẹn của hệ thống web CGV khi tích hợp tính năng thanh toán trực tuyến mà còn đặt nền móng vững chắc cho việc tối ưu hóa chi phí vận hành kiểm thử phần mềm dài hạn. Đây là tài liệu tham khảo có giá trị học thuật và tính ứng dụng thực tiễn cao cho sinh viên, kỹ sư QA/QC và các tổ chức phát triển phần mềm chuyên nghiệp.