Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ thông tin và Internet phát triển mạnh mẽ, các ứng dụng Web đang dần thay thế các ứng dụng phần mềm truyền thống nhờ tính tiện lợi và khả năng truy cập linh hoạt từ nhiều nền tảng. Tuy nhiên, sự phổ biến này cũng đặt ra thách thức lớn đối với các nhà phát triển trong việc bảo đảm và nâng cao chất lượng dịch vụ cung cấp cho người dùng cuối. Kiểm thử phần mềm là giải pháp cốt lõi nhằm phát hiện lỗi, ngăn ngừa sự cố và bảo đảm chất lượng hệ thống trước khi vận hành.
Theo các số liệu thực tế được tác giả trích dẫn trong văn bản, công tác kiểm thử phần mềm thường chiếm hơn 50% tổng thời gian phát triển một ứng dụng. Kiểm thử thủ công đòi hỏi kiểm thử viên phải tốn nhiều thời gian, công sức, đồng thời đòi hỏi sự kiên nhẫn và tỉ mỉ cao. Do đó, việc ứng dụng kiểm thử tự động là giải pháp tất yếu nhằm rút ngắn thời gian, tối ưu hóa chi phí và nhân lực. Mặc dù kiểm thử tự động mang lại lợi ích lớn, tài liệu nghiên cứu và hướng dẫn chuyên sâu về lĩnh vực này bằng tiếng Việt tại thời điểm nghiên cứu còn hạn chế. Bên cạnh đó, phần lớn các công cụ kiểm thử tự động hiện có trên thị trường chủ yếu tập trung vào việc thực thi tự động các ca kiểm thử sẵn có, trong khi khả năng tự động thiết kế và sinh ca kiểm thử—đặc biệt là kiểm tra tính hợp lệ của dữ liệu đầu vào (input validation)—còn rất hạn chế.
Trước thực tiễn đó, tác giả Đoàn Mạnh Đức đã thực hiện luận văn thạc sĩ chuyên ngành Kỹ thuật phần mềm với đề tài: "Nghiên cứu và xây dựng công cụ kiểm thử ứng dụng Web", dưới sự hướng dẫn khoa học của TS. Võ Đình Hiếu tại Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội (2014).
Mục tiêu và nhiệm vụ nghiên cứu cụ thể của luận văn gồm:
- Nghiên cứu, hệ thống hóa các kiến thức cơ sở về kiểm thử phần mềm, bao gồm các mức kiểm thử, kỹ thuật kiểm thử tĩnh, kỹ thuật kiểm thử động và các khía cạnh kiểm thử đặc thù của ứng dụng Web.
- Khảo sát, phân tích các công cụ kiểm thử tự động phổ biến hiện nay dành cho ứng dụng Web (kiểm thử giao diện, kiểm thử khả năng chịu tải) và các thư viện hỗ trợ xây dựng công cụ kiểm thử tự động.
- Nghiên cứu ý tưởng, phân tích thiết kế và xây dựng một công cụ kiểm thử tự động có khả năng tự sinh ca kiểm thử, thực thi kiểm thử và lưu trữ kết quả nhằm đánh giá tính hợp lệ dữ liệu đầu vào của ứng dụng Web.
- Triển khai thử nghiệm công cụ trên các biểu mẫu (form) thực tế, đánh giá ưu nhược điểm và đề xuất hướng phát triển tiếp theo.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Quy trình, phương pháp và kỹ thuật kiểm thử phần mềm (kiểm thử tĩnh, kiểm thử động, kiểm thử giá trị biên); các công cụ hỗ trợ kiểm thử tự động ứng dụng Web; cơ chế kiểm tra tính hợp lệ dữ liệu đầu vào của các form trên trình duyệt Web.
- Phạm vi nghiên cứu: Tập trung vào các kỹ thuật kiểm thử giao diện và kiểm thử tính hợp lệ của dữ liệu đầu vào cho các trường thông tin (input fields) trên ứng dụng Web; thực nghiệm được thực hiện tại Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội năm 2014.
Cơ sở lý thuyết và phương pháp
Luận văn xây dựng hệ thống luận điểm dựa trên nền tảng lý thuyết kiểm thử phần mềm chuẩn tắc và các mô hình toán học, cấu trúc dữ liệu trong công nghệ phần mềm:
- Khung lý thuyết kiểm chứng và thẩm định chất lượng: Quy trình kiểm chứng (Verification) nhằm đảm bảo phần mềm được xây dựng đúng với đặc tả kỹ thuật, và quy trình thẩm định (Validation) nhằm đảm bảo phần mềm đáp ứng đúng nhu cầu của người dùng. Tác giả liên hệ với phương pháp phát triển phần mềm Agile và kỹ thuật phát triển hướng kiểm thử (Test-Driven Development - TDD).
- Phân loại cấp độ kiểm thử: Luận văn trình bày 4 mức độ kiểm thử tiêu chuẩn gồm: Kiểm thử mức đơn vị (Unit Testing - sử dụng Driver và Stub), Kiểm thử mức tích hợp (Integration Testing - thông qua giao diện gọi hàm, dùng chung bộ nhớ, truyền bản tin), Kiểm thử mức hệ thống (System Testing), Kiểm thử mức chấp nhận (Acceptance Testing), cùng kỹ thuật Kiểm thử hồi quy (Regression Testing).
- Kỹ thuật kiểm thử tĩnh (Static Testing): Bao gồm phương pháp rà soát thủ công (rà soát không chính thức, phản biện chéo, thông qua, thanh tra với các vai trò: Chủ tịch, Tác giả, Người trình bày, Rà soát viên, Thư ký, Quan sát viên) và kỹ thuật kiểm thử dòng dữ liệu tĩnh nhằm phát hiện các bất thường về khai báo, gán và tham chiếu biến dựa trên mô hình chuyển trạng thái biến (Undefined - U, Defined - D, Abnormal - A) của Huang.
- Kỹ thuật kiểm thử động (Dynamic Testing): Luận văn phân tích ba kỹ thuật kiểm thử động chính:
- Kiểm thử hàm (Functional Testing): Xem phần mềm như một hàm toán học ánh xạ tập dữ liệu đầu vào $X_i$ thành tập đầu ra $Y_i$ ($Y_i = P(X_i)$).
- Kiểm thử dòng điều khiển (Control Flow Testing): Sử dụng đồ thị dòng điều khiển với các đỉnh biểu diễn câu lệnh/khối lệnh và các cạnh biểu diễn luồng điều khiển; xây dựng ca kiểm thử dựa trên độ bao phủ câu lệnh, bao phủ nhánh và bao phủ điều kiện con.
- Kiểm thử dòng dữ liệu động (Dynamic Data Flow Testing): Dựa trên đồ thị dòng dữ liệu để chọn các đường đi kiểm thử theo tập tiêu chí bao phủ: All-defs, All-c-uses, All-p-uses, All-p-uses/Some-c-uses, All-c-uses/Some-p-uses, All-uses, All-du-paths.
- Kỹ thuật phân tích giá trị biên mạnh (Robustness Boundary Value Testing): Áp dụng để tự động sinh tập dữ liệu kiểm thử tại các điểm cận dưới, cận trên, giá trị hợp lệ lân cận và giá trị vượt biên không hợp lệ.
Phương pháp nghiên cứu được triển khai trong công trình:
- Phương pháp phân tích - tổng hợp tài liệu: Nghiên cứu lý thuyết từ các giáo trình và công trình khoa học quốc tế về kỹ thuật phần mềm.
- Phương pháp mô hình hóa hình thức: Sử dụng đồ thị dòng điều khiển, đồ thị dòng dữ liệu và sơ đồ chuyển trạng thái dữ liệu.
- Phương pháp nghiên cứu thực nghiệm và xây dựng phần mềm: Khảo sát các công cụ mã nguồn mở hiện có (JSLint, BrowserShots, Selenium IDE, Loader), sau đó thiết kế kiến trúc và lập trình công cụ kiểm thử tự động sử dụng thư viện Selenium WebDriver.
Thiết kế và triển khai
Căn cứ vào đặc thù của đề tài thuộc nhóm nghiên cứu xây dựng phần mềm, tác giả đã tiến hành phân tích kiến trúc, thiết kế chức năng và triển khai công cụ kiểm thử tự động chuyên biệt cho việc kiểm tra tính hợp lệ của dữ liệu đầu vào trên ứng dụng Web:
Kiến trúc và cơ chế hoạt động của công cụ
Công cụ được xây dựng nhằm giải quyết bài toán tự động hóa hai công đoạn: sinh ca kiểm thử và thực thi kiểm thử trên giao diện Web.
- Trích xuất thông tin biểu mẫu (Form & Input Inspector): Công cụ tự động quét và thu thập các định danh (id, name) của các thành phần nhập liệu (
textbox,checkbox,radio button,combobox) trên giao diện Web đích. - Cấu hình điều kiện kiểm thử (Test Condition Configuration): Cho phép người dùng hoặc kiểm thử viên lựa chọn các ràng buộc cho từng input:
- Ràng buộc độ dài chuỗi ký tự: độ dài tối thiểu (min length), độ dài tối đa (max length).
- Ràng buộc kiểu dữ liệu: chuỗi ký tự ngẫu nhiên, số, ký tự đặc biệt.
- Ràng buộc định dạng đặc thù: kiểm tra định dạng thư điện tử (email format), định dạng ngày tháng năm theo chuẩn Việt Nam.
- Bộ sinh ca kiểm thử tự động (Automated Test Case Generator):
- Tích hợp thuật toán sinh dữ liệu dựa trên kỹ thuật phân tích giá trị biên mạnh để tạo ra các tập giá trị hợp lệ và không hợp lệ xung quanh ngưỡng biên độ dài.
- Tích hợp hàm sinh chuỗi ký tự ngẫu nhiên theo độ dài định trước nhằm kiểm tra khả năng xử lý chuỗi bất kỳ của ứng dụng.
- Bộ điều khiển thực thi và ghi nhận kết quả (Test Executor & Reporter):
- Sử dụng Selenium WebDriver để khởi chạy trình duyệt, tự động điền dữ liệu đã sinh vào từng trường input tương ứng và kích hoạt thao tác submit.
- Tự động bắt các dòng thông báo phản hồi (thông báo lỗi nhập liệu, thông báo sai định dạng) từ ứng dụng Web, so sánh với kết quả mong đợi và lưu lại toàn bộ nhật ký kết quả kiểm thử.
Triển khai thực nghiệm
Công cụ được cài đặt và thực nghiệm trên hai trường hợp kiểm thử biểu mẫu thực tế:
- Biểu mẫu đăng nhập thành viên (Member Login Form): Tự động sinh dữ liệu để kiểm tra các trường hợp nhập sai tên đăng nhập, sai mật khẩu, bỏ trống trường dữ liệu, kiểm tra giới hạn độ dài tài khoản/mật khẩu và bắt thông báo lỗi tương ứng.
- Biểu mẫu đăng ký nhận bản tin (Newsletter Subscription Form): Tự động sinh và kiểm thử các tập dữ liệu email sai định dạng, chuỗi email rỗng, email vượt quá độ dài quy định và email đúng định dạng để đánh giá phản hồi từ máy chủ.
Nội dung chính theo từng chương
Luận văn có dung lượng 64 trang (chưa kể phụ lục), được tổ chức thành 4 chương nội dung cùng 2 phụ lục kết quả thực nghiệm:
Chương 1: Tổng quan về kiểm thử phần mềm
Chương này cung cấp hệ thống lý thuyết toàn diện về lĩnh vực kiểm thử phần mềm:
- Khái niệm và phân biệt thuật ngữ: Phân biệt rõ các khái niệm Lỗi (Fault - do lập trình viên tạo ra), Sai (Error - trạng thái phần mềm không đúng do lỗi), Thất bại (Failure - hành vi sai lệch khi thực thi), Khuyết thiếu (Defect - sự thiếu sót trong đặc tả hoặc mã nguồn).
- Mức độ kiểm thử: Trình bày chi tiết 4 mức kiểm thử (Đơn vị, Tích hợp, Hệ thống, Chấp nhận) và Kiểm thử hồi quy. Trong kiểm thử tích hợp, tác giả phân tích các loại lỗi phổ biến (lỗi không đủ chức năng, thay đổi tính năng, dùng sai giao diện, hiểu sai giao diện, không xử lý lỗi trả về, xung đột tài nguyên bộ nhớ) và hai chiến lược tích hợp (từng bước - incremental, tất cả cùng lúc - big bang). Trong kiểm thử hệ thống, phân tích 12 loại kiểm thử (cơ bản, chức năng, chịu lỗi, tương thích, hiệu năng, khả năng mở rộng, chịu tải, ổn định quá tải, độ tin cậy, tài liệu, pháp lý, bảo mật, phục hồi).
- Kiểm thử hộp đen và kiểm thử hộp trắng: Phân tích ưu nhược điểm của phương pháp tiếp cận theo hành vi chức năng (hộp đen) và cấu trúc giải thuật mã nguồn (hộp trắng).
- Đặc trưng của ứng dụng Web: Phân biệt Website truyền thống (chủ yếu truyền tải thông tin tĩnh một chiều) và Ứng dụng Web (tương tác hai chiều phức tạp); phân biệt mô hình Client-Server truyền thống và Web (mô hình Thin-client vs. Thick-client); phân tích sự phụ thuộc vào trình duyệt, giao thức HTTP/HTTPS và các sự kiện người dùng (
single-click,submit,mouse-hover). - Chi tiết kỹ thuật kiểm thử tĩnh và động:
- Kiểm thử dòng dữ liệu tĩnh: Trình bày mô hình bất thường dòng dữ liệu loại 1 (gán liên tiếp hai lần không qua sử dụng) và loại 2 (tham chiếu biến khi chưa được gán giá trị); mô hình chuyển trạng thái U-D-A của Huang.
- Kiểm thử dòng điều khiển: Đồ thị dòng điều khiển gồm các đỉnh biểu diễn lệnh gán (hình chữ nhật), lệnh điều kiện (hình thoi), điểm hợp nhất (hình tròn).
- Kiểm thử dòng dữ liệu động: Định nghĩa và cách xây dựng các đường đi kiểm thử theo 7 tiêu chí bao phủ (All-defs, All-c-uses, All-p-uses, All-p-uses/Some-c-uses, All-c-uses/Some-p-uses, All-uses, All-du-paths) kèm ví dụ hàm
ReturnAverage. - Các mã lỗi HTTP phổ biến trên ứng dụng Web: Được tác giả tổng hợp trong bảng phân tích:
| STT | Tên lỗi | Giải thích |
|---|---|---|
| 1 | 204 No Content | Nội dung không có hoặc đã bị xóa. |
| 2 | 400 Bad Request | Yêu cầu không thực hiện được, có thể do thời gian xử lý quá lâu hoặc do trình duyệt. |
| 3 | 403 Forbidden | Không được phép yêu cầu truy cập tài nguyên. |
| 4 | 404 Not Found | Không tìm thấy tài nguyên được yêu cầu. |
| 5 | 503 Service Unavailable | Máy chủ ứng dụng không trả lời được do đang bảo trì hoặc quá bận. |
Chương 2: Các công cụ kiểm thử tự động cho các ứng dụng Web
Chương 2 khảo sát thực trạng các công cụ kiểm thử tự động hiện có trên thị trường nhằm làm rõ ưu, nhược điểm và căn cứ xây dựng giải pháp mới:
- Nhóm công cụ kiểm thử giao diện người dùng:
- JSLint: Phân tích tĩnh cú pháp mã nguồn JavaScript nhằm phát hiện lỗi tiềm ẩn và quy chuẩn mã hóa mà không cần thực thi chương trình.
- BrowserShots: Công cụ chụp ảnh màn hình và đối chiếu hiển thị giao diện của ứng dụng Web trên nhiều trình duyệt và hệ điều hành khác nhau để kiểm tra độ tương thích giao diện.
- Selenium IDE: Tiện ích mở rộng trên trình duyệt cho phép ghi và phát lại (record & playback) các thao tác của người dùng, lưu lại dưới dạng kịch bản HTML/mã lệnh để chạy lại ca kiểm thử.
- Nhóm công cụ kiểm thử hiệu năng và chịu tải:
- Loader: Công cụ tạo tải và mô phỏng lượng người dùng truy cập lớn đồng thời nhằm đo lường thời gian đáp ứng và giới hạn chịu tải của máy chủ Web.
- Thư viện hỗ trợ xây dựng công cụ kiểm thử tự động:
- Selenium WebDriver: Thư viện cung cấp tập API lập trình mạnh mẽ, cho phép điều khiển trực tiếp các trình duyệt phổ biến thông qua mã nguồn, hỗ trợ tương tác với các phần tử HTML trên trang. Đây là nền tảng cốt lõi được tác giả lựa chọn để phát triển công cụ tự động hóa tùy biến.
Chương 3: Xây dựng công cụ kiểm thử tự động
Chương 3 trình bày toàn bộ quy trình xây dựng và đánh giá thực nghiệm công cụ đề xuất:
- Phân tích yêu cầu bài toán: Nhấn mạnh tầm quan trọng của việc kiểm tra tính hợp lệ của dữ liệu đầu vào trên ứng dụng Web (đúng kiểu dữ liệu, đúng định dạng, đúng phạm vi độ dài).
- Thiết kế chức năng: Trình bày giao diện công cụ cho phép người dùng cấu hình các điều kiện kiểm thử của input (min length, max length, định dạng ngày tháng Việt Nam, định dạng email), mô-đun sinh chuỗi ký tự ngẫu nhiên và mô-đun sinh tập dữ liệu biên mạnh.
- Thực nghiệm và kết quả:
- Áp dụng kiểm thử tự động trên Form đăng nhập thành viên và Form đăng ký nhận bản tin.
- Trình bày giao diện bắt lỗi, hiển thị thông báo phản hồi của hệ thống và kết xuất bảng kết quả chi tiết.
- Thỏa thuận và điều kiện khi sử dụng công cụ: Nêu rõ các quy ước kỹ thuật cần thiết để công cụ có thể trích xuất và điều khiển chính xác các thành phần trên trang Web đích.
Chương 4: Kết luận và hướng phát triển
Đánh giá tổng kết các kết quả đạt được của luận văn, phân tích những điểm còn hạn chế của công cụ và đề xuất định hướng nghiên cứu tiếp theo.
Kết quả và đóng góp
Kết quả chính
- Hệ thống hóa lý thuyết: Luận văn đã xây dựng một bức tranh hoàn chỉnh về lý thuyết kiểm thử phần mềm, làm rõ các phương pháp kiểm thử dòng dữ liệu tĩnh (mô hình trạng thái Huang) và kiểm thử dòng dữ liệu động (các tiêu chí bao phủ chuỗi định nghĩa - sử dụng Def-Use), đồng thời tổng hợp các loại hình kiểm thử đặc thù trên môi trường Web.
- Xây dựng phần mềm thực nghiệm: Thiết kế và lập trình thành công công cụ kiểm thử tự động tích hợp với Selenium WebDriver, có khả năng tự động phân tích input, tự động sinh ca kiểm thử theo phương pháp giá trị biên mạnh và định dạng dữ liệu (email, ngày tháng), tự động điền liệu, kích hoạt sự kiện và ghi nhận log phản hồi.
- Thực nghiệm kiểm chứng: Thực hiện kiểm thử thành công trên hai biểu mẫu Web thực tế (Form thành viên đăng nhập và Form đăng ký nhận bản tin), kiểm tra chính xác các ràng buộc biên độ dài và định dạng dữ liệu đầu vào.
Giải pháp và kiến nghị của tác giả
- Đề xuất quy trình kết hợp kiểm thử tĩnh và kiểm thử động, kiểm thử hộp trắng và hộp đen trong quy trình phát triển nhằm phát hiện lỗi sớm và tối ưu chi phí sửa lỗi.
- Khuyến nghị các đội ngũ phát triển ứng dụng Web áp dụng công cụ kiểm thử tự động cho các bài toán kiểm tra tính hợp lệ dữ liệu đầu vào và kiểm thử hồi quy nhằm giảm tải thao tác thủ công lặp đi lặp lại.
Đóng góp mới của luận văn
- Đóng góp một tài liệu học thuật chuyên khảo bằng tiếng Việt có cấu trúc chi tiết, hệ thống hóa sâu về kiểm thử tự động và kỹ thuật kiểm thử dòng dữ liệu.
- Đề xuất giải pháp khắc phục hạn chế của các công cụ kiểm thử tự động truyền thống (vốn chỉ hỗ trợ thực thi kịch bản có sẵn) bằng việc bổ sung cơ chế tự động sinh dữ liệu ca kiểm thử dựa trên phân tích giá trị biên mạnh và kiểm tra định dạng đầu vào.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế được ghi nhận
- Công cụ tập trung chủ yếu vào việc kiểm tra tính hợp lệ của dữ liệu đầu vào trên các biểu mẫu đơn lẻ (input validation), chưa bao quát được toàn bộ các kịch bản kiểm thử luồng nghiệp vụ phức tạp liên kết nhiều trang hoặc nhiều bước xử lý (multi-step workflows).
- Khả năng tự động hóa đối với các sự kiện tương tác phức tạp trên trình duyệt (như các thao tác kéo-thả drag & drop phức tạp hoặc các tổ hợp phím chuyên biệt) còn bị giới hạn bởi đặc tả riêng của từng loại trình duyệt Web.
Hướng nghiên cứu tiếp theo
- Mở rộng thuật toán sinh ca kiểm thử tự động cho các luồng nghiệp vụ phức tạp và các cấu trúc dữ liệu đầu vào đa dạng hơn.
- Nâng cao khả năng tương thích của công cụ trên nhiều nền tảng trình duyệt khác nhau và nghiên cứu tích hợp công cụ vào các quy trình tích hợp liên tục (CI/CD) trong phát triển phần mềm.
Giá trị tham khảo
Luận văn là tài liệu tham khảo hữu ích cho:
- Sinh viên và học viên cao học ngành Công nghệ thông tin, Kỹ thuật phần mềm: Cung cấp cơ sở lý thuyết chuẩn xác và ví dụ minh họa chi tiết về kỹ thuật kiểm thử dòng điều khiển, kiểm thử dòng dữ liệu tĩnh/động và mô hình đồ thị kiểm thử (đặc biệt là nội dung Chương 1).
- Kiểm thử viên (QA/QC/Tester) và lập trình viên ứng dụng Web: Có thể tham khảo phương pháp khảo sát, đánh giá các công cụ kiểm thử tự động (Chương 2) và cách thức xây dựng khung tự động hóa kiểm thử form nhập liệu dựa trên Selenium WebDriver và kỹ thuật giá trị biên mạnh (Chương 3).
- Các nhà nghiên cứu về tự động hóa kiểm thử: Cung cấp giải pháp nền tảng cho hướng tiếp cận tự động sinh ca kiểm thử (Test Case Generation) cho dữ liệu đầu vào của ứng dụng Web.
Câu hỏi thường gặp
1. Theo luận văn, công tác kiểm thử phần mềm chiếm tỷ lệ bao nhiêu trong toàn bộ quá trình phát triển?
Theo văn bản, công việc kiểm thử phần mềm thông thường chiếm hơn 50% tổng thời gian phát triển ứng dụng phần mềm.
2. Mô hình chuyển trạng thái biến của Huang trong kiểm thử dòng dữ liệu tĩnh gồm những trạng thái nào?
Mô hình của Huang sử dụng 3 trạng thái của biến:
- $U$ (Undefined): Trạng thái biến chưa được gán giá trị.
- $D$ (Defined): Trạng thái biến đã được gán giá trị.
- $A$ (Abnormal): Trạng thái xảy ra bất thường (ví dụ: biến chưa được gán nhưng bị tham chiếu, hoặc biến đã được gán lại bị gán tiếp giá trị mới mà chưa qua sử dụng).
3. Khác biệt cơ bản giữa kiểm thử hộp đen và kiểm thử hộp trắng được luận văn trình bày như thế nào?
Kiểm thử hộp đen tiếp cận phần mềm từ bên ngoài dựa trên tài liệu đặc tả chức năng, không xem xét mã nguồn hay cấu trúc bên trong, kiểm thử viên chỉ thao tác với đầu vào và kiểm tra đầu ra. Ngược lại, kiểm thử hộp trắng đòi hỏi người thực hiện phải truy cập và hiểu rõ mã nguồn, cấu trúc dữ liệu và giải thuật bên trong để thiết kế ca kiểm thử bao phủ các dòng lệnh, nhánh và đường đi của chương trình.
4. Luận văn đã khảo sát và phân tích những công cụ kiểm thử tự động cụ thể nào ở Chương 2?
Tác giả đã khảo sát: JSLint (phân tích tĩnh mã nguồn JavaScript), BrowserShots (kiểm tra giao diện đa trình duyệt), Selenium IDE (ghi và phát lại thao tác kiểm thử giao diện), Loader (kiểm thử khả năng chịu tải và hiệu năng) và thư viện lập trình tự động hóa Selenium WebDriver.
5. Công cụ kiểm thử tự động do tác giả xây dựng tập trung giải quyết bài toán trọng tâm nào?
Công cụ tập trung giải quyết bài toán tự động sinh ca kiểm thử, tự động thực thi và ghi nhận kết quả nhằm kiểm tra tính hợp lệ của dữ liệu đầu vào (input validation) trên các biểu mẫu ứng dụng Web, dựa trên các ràng buộc về độ dài chuỗi (min/max), định dạng dữ liệu (email, ngày tháng Việt Nam) và kỹ thuật phân tích giá trị biên mạnh.
Kết luận
Luận văn thạc sĩ của tác giả Đoàn Mạnh Đức là một công trình nghiên cứu hoàn chỉnh, kết hợp chặt chẽ giữa nghiên cứu lý thuyết nền tảng và phát triển ứng dụng thực nghiệm trong lĩnh vực kỹ thuật phần mềm. Đề tài đã hệ thống hóa sâu sắc các kỹ thuật kiểm thử phần mềm tĩnh và động, đồng thời giải quyết bài toán tự động hóa sinh ca kiểm thử và kiểm tra tính hợp lệ dữ liệu đầu vào cho ứng dụng Web thông qua việc xây dựng một công cụ cụ thể tích hợp Selenium WebDriver. Kết quả nghiên cứu không chỉ bổ sung nguồn tài liệu học thuật tiếng Việt có giá trị về kiểm thử tự động mà còn cung cấp một giải pháp thực tiễn hỗ trợ kiểm thử viên tối ưu hóa thời gian và nâng cao chất lượng phần mềm.