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 sản phẩm phần mềm ngày nay phải vận hành đồng thời trên nhiều nền tảng phần cứng và môi trường khác nhau như nền tảng web, thiết bị di động và điện toán đám mây (Cloud). Yêu cầu đảm bảo tính tương thích và vận hành ổn định trên các nền tảng này đặt ra thách thức lớn cho các nhà sản xuất phần mềm. Kiểm thử phần mềm trở thành công đoạn thiết yếu nhằm xác nhận yêu cầu, đánh giá chất lượng sản phẩm, phát hiện lỗi và ngăn ngừa sự cố trước khi triển khai vào thực tế.
Thực tiễn ngành công nghệ thông tin cho thấy sự mất cân đối nghiêm trọng về cơ cấu nhân lực giữa lập trình viên và kiểm thử viên (tester). Tại các công ty phần mềm quốc tế, tỷ lệ trung bình là 4 kiểm thử viên trên 1 lập trình viên (tỷ lệ 4:1). Ngược lại, tại thị trường Việt Nam, tỷ lệ này đang ở mức 1 kiểm thử viên trên 5 lập trình viên (tỷ lệ 1:5). Theo số liệu thống kê được trích dẫn từ nguồn bachkhoa-aptech.vn, thị trường lao động Việt Nam thiếu hụt khoảng 10.000 kỹ sư kiểm thử vào năm 2020. Trong khi đó, Việt Nam đang là điểm đến đầu tư dài hạn của nhiều tập đoàn công nghệ lớn như Samsung, LG, Renesas, Foxconn, Fujitsu, Canon, Panasonic, HP, CSC, Sony.
Bên cạnh vấn đề nhân lực, kiểm thử thủ công (manual testing) tiêu tốn phần lớn thời gian, công sức và chi phí trong vòng đời phát triển dự án. Do đó, xu hướng ứng dụng các công cụ kiểm thử tự động (automation testing) mã nguồn mở như Selenium trở thành giải pháp tối ưu hóa nguồn lực cho các đơn vị phát triển phần mềm.
Mục tiêu nghiên cứu:
- Tìm hiểu lý thuyết tổng quan về phần mềm, quy trình và các kỹ thuật kiểm thử phần mềm.
- Khảo sát các công cụ hỗ trợ kiểm thử ứng dụng web, tập trung nghiên cứu bộ công cụ Selenium.
- Tìm hiểu sâu về các tính năng của Selenium, xây dựng hướng dẫn cài đặt và quy trình sử dụng bộ công cụ.
- Vận dụng kiến thức lý thuyết và công cụ Selenium IDE để thiết kế và thực thi kiểm thử tự động trên một ứng dụng web thực tế.
Yêu cầu nghiên cứu:
- Nắm vững cơ sở lý thuyết chung về quy trình, cấp độ và kỹ thuật kiểm thử phần mềm.
- Nắm vững phương pháp cài đặt và kỹ năng vận hành công cụ Selenium.
- Ứng dụng chính xác các phương pháp kiểm thử vào bài toán thực tế.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Cơ sở lý thuyết kiểm thử phần mềm, quy trình kiểm thử ứng dụng web, bộ công cụ kiểm thử tự động Selenium (trọng tâm là Selenium IDE).
- Phạm vi không gian: Bộ môn Công nghệ phần mềm, Khoa Công nghệ thông tin, Học viện Nông nghiệp Việt Nam và Công ty TNHH Đầu tư và Thương mại Dịch vụ Việt Đức.
- Phạm vi thời gian: Nghiên cứu thực nghiệm với tần suất 3 buổi/tuần từ ngày 20/02/2022 đến ngày 06/04/2022.
- Đối tượng thực nghiệm: Hệ thống website của Công ty Cổ phần Thương mại Phát triển Kỹ thuật và Nhân lực Quốc tế JVNET tại địa chỉ
https://jvnet.vn/.
Cơ sở lý thuyết và phương pháp nghiên cứu
Khóa luận xây dựng nội dung dựa trên khung lý thuyết chuẩn của kỹ thuật công nghệ phần mềm và quy trình kiểm thử phần mềm chuyên nghiệp:
- Khung lý thuyết và mô hình: Vòng đời kiểm thử phần mềm (Software Testing Life Cycle - STLC); phân cấp các cấp độ kiểm thử (Unit Test, Integration Test, System Test, Acceptance Test); kỹ thuật kiểm thử hộp trắng (White-box testing) và kiểm thử hộp đen (Black-box testing); hệ thống phân loại 10 mức độ nghiêm trọng của lỗi phần mềm; 7 nguyên tắc cốt lõi trong kiểm thử; các kỹ thuật thiết kế ca kiểm thử (phân vùng tương đương, phân tích giá trị biên, đoán lỗi, chuyển trạng thái); cấu trúc bộ lệnh Selenese trong Selenium IDE.
- Phương pháp nghiên cứu:
- Phương pháp nghiên cứu tài liệu: Tổng hợp, phân tích các tài liệu học thuật chuyên môn, tài liệu trực tuyến về công nghệ kiểm thử và tài liệu đặc tả kỹ thuật chính thức của bộ công cụ Selenium.
- Phương pháp tham khảo chuyên gia: Tiếp thu hướng dẫn chuyên môn trực tiếp từ giảng viên hướng dẫn (ThS. Hoàng Thị Hà) và các kỹ sư tại doanh nghiệp.
- Phương pháp thực nghiệm: Phân tích yêu cầu chức năng của hệ thống web mục tiêu, xây dựng kịch bản kiểm thử, sử dụng tiện ích Selenium IDE để ghi (record), chỉnh sửa kịch bản (script) và thực thi (playback) kiểm thử tự động trên trình duyệt.
- Nguồn dữ liệu: Tài liệu đặc tả luồng chức năng, biểu mẫu giao diện người dùng và cơ sở dữ liệu mẫu của website
https://jvnet.vn/.
Nội dung chính theo từng chương
Chương I: Phần mềm và kiểm thử phần mềm
Chương I tập trung hệ thống hóa toàn diện các khái niệm nền tảng về công nghệ phần mềm và lý thuyết kiểm thử:
- Khái niệm và phân loại phần mềm: Phần mềm được phân loại theo phương thức hoạt động (phần mềm hệ thống, phần mềm ứng dụng, phần mềm dịch mã, nền tảng ứng dụng) và theo quyền can thiệp mã nguồn (mã nguồn đóng, mã nguồn mở).
- Phân loại lỗi phần mềm: Tác giả phân định rõ các trạng thái lỗi gồm: Sai sót (Fault), Thất bại (Failure), Sự cố (Incident), Thừa chức năng so với đặc tả và các lỗi phi chức năng (tốc độ, hiệu năng, tính dễ dùng).
- Yêu cầu khách hàng và đặc tả phần mềm: Phân loại yêu cầu theo sản phẩm/tiến trình, chức năng/phi chức năng, tính kiểm định (rõ ràng hoặc mơ hồ) và phạm vi đặc tả (hệ thống hoặc phần mềm).
- Các cấp độ kiểm thử: Trình bày chi tiết 4 cấp độ: Kiểm thử đơn vị (Unit testing), Kiểm thử tích hợp (Integration testing), Kiểm thử hệ thống (System testing) và Kiểm thử chấp nhận (Acceptance testing với 2 giai đoạn Alpha test và Beta test).
- Quy trình kiểm thử 6 bước: Phân tích yêu cầu $\rightarrow$ Lập kế hoạch kiểm thử $\rightarrow$ Thiết kế kịch bản kiểm thử $\rightarrow$ Thiết lập môi trường kiểm thử $\rightarrow$ Thực hiện kiểm thử $\rightarrow$ Đóng chu trình kiểm thử.
- Phân loại kỹ thuật kiểm thử: So sánh phương pháp kiểm thử thủ công và kiểm thử tự động; phân tích ưu nhược điểm của kỹ thuật kiểm thử hộp trắng và kiểm thử hộp đen.
- Mức độ nghiêm trọng của lỗi phần mềm: Phân cấp theo thang đo 10 cấp độ:
| Mức độ |
Tên gọi mức độ |
Mô tả đặc trưng |
| 1 |
Nhẹ |
Lỗi chính tả giao diện |
| 2 |
Vừa |
Hiểu lầm hoặc thừa thông tin |
| 3 |
Khó chịu |
Tên bị thiếu, cụt chữ hoặc hóa đơn có giá trị 0.0 đồng |
| 4 |
Bực mình |
Một vài giao dịch không được xử lý |
| 5 |
Nghiêm trọng |
Xử lý giao dịch sai |
| 6 |
Rất nghiêm trọng |
Mất dữ liệu |
| 7 |
Cực kỳ nghiêm trọng |
Lỗi rất nghiêm trọng thường xuyên xảy ra |
| 8 |
Quá quắt |
Hủy hoại cơ sở dữ liệu |
| 9 |
Thảm họa |
Hệ thống dừng hoạt động hoàn toàn |
| 10 |
Dịch họa |
Thảm họa chuyển sang mức độ lây lan rộng |
- Cấu trúc ca kiểm thử (Test case): Bao gồm Test case ID, Function, Pre-condition, Test Data, Test Steps, Expected Results, Actual result và Comments.
- 7 Nguyên tắc kiểm thử quan trọng: 1) Kiểm thử chứng minh sự hiện diện của lỗi; 2) Kiểm thử toàn bộ là không khả thi; 3) Kiểm thử càng sớm càng tốt; 4) Lỗi thường phân bổ tập trung; 5) Nghịch lý thuốc trừ sâu; 6) Kiểm thử phụ thuộc vào ngữ cảnh; 7) Quan niệm sai lầm về việc hệ thống "hết lỗi".
- 4 Kỹ thuật thiết kế ca kiểm thử: Kỹ thuật phân vùng tương đương, kỹ thuật phân tích giá trị biên, kỹ thuật đoán lỗi dựa trên kinh nghiệm và kỹ thuật kiểm thử chuyển trạng thái.
Chương II: Kiểm thử ứng dụng trên nền Web
Chương II phân tích các đặc thù của ứng dụng web (đa dạng người dùng, môi trường phân tán, lưu lượng truy cập biến động) và xác định 6 nội dung kiểm thử trọng tâm:
- Kiểm thử chức năng: Kiểm tra liên kết (links nội bộ, liên kết ngoài, liên kết mail), kiểm tra form nhập liệu (trường bắt buộc, giá trị mặc định, validate dữ liệu, thao tác CRUD), kiểm tra kết nối và tính toàn vẹn cơ sở dữ liệu, kiểm thử lưu trữ Cookies và xác minh mã nguồn HTML/CSS.
- Kiểm thử tính khả dụng: Đánh giá tính thân thiện, tính nhất quán của hệ thống menu, các điều khiển điều hướng (button, textbox, breadcrumb) và tính rõ ràng của nội dung.
- Kiểm thử giao diện: Kiểm tra sự tương tác giữa Web server với Application server và giữa Application server với Database server; kiểm tra khả năng xử lý khi giao dịch bị gián đoạn.
- Kiểm thử khả năng tương thích: Đánh giá tính tương thích trên đa trình duyệt (Chrome, Firefox, IE, Safari, Opera), đa hệ điều hành và các thiết bị ngoại vi (máy in).
- Kiểm thử hiệu năng: Thực hiện kiểm thử tải (Load testing) và kiểm thử áp lực (Stress testing) để đánh giá khả năng chịu tải và phục hồi khi lưu lượng truy cập tăng vọt.
- Kiểm thử bảo mật: Kiểm tra truy cập URL trực tiếp không qua xác thực, thay đổi tham số ID để truy cập dữ liệu người dùng khác, kiểm tra các lỗ hổng đầu vào, phân quyền truy cập tệp tin, xác thực CAPTCHA và cơ chế lưu trữ nhật ký (log) trên web server.
Chương này cũng phân loại và so sánh các công cụ kiểm thử web phổ biến:
- Công cụ hiệu năng: WebLoad (hỗ trợ Ajax, Flex, .NET, HTML5), Apache JMeter (mã nguồn mở).
- Công cụ bảo mật: Burp Suite (các module Spider, Intruder, Burp Scanner), Exploit-Me (gồm XSS-Me và SQL Inject-Me tích hợp trên Firefox).
- Công cụ chức năng: Ranorex (hỗ trợ Web, Desktop, Mobile; chi phí bản quyền lên tới 3500$/năm) và Selenium (mã nguồn mở, đa nền tảng, hoàn toàn miễn phí).
Chương III: Kiểm thử ứng dụng trên nền Web bằng công cụ Selenium
Chương III trình bày lịch sử phát triển, kiến trúc bộ công cụ Selenium và thực hành kiểm thử:
- Lịch sử hình thành: Năm 2004, Jason Huggins tại ThoughtWorks phát triển công cụ tiền thân mang tên JavaScriptTestRunner. Năm 2007, tác giả gia nhập Google và phát triển thành bộ công cụ Selenium hoàn chỉnh.
- Kiến trúc bộ công cụ Selenium (4 thành phần):
- Selenium IDE: Tiện ích mở rộng trên trình duyệt (do Shinya Kasatani phát triển ban đầu), hỗ trợ cơ chế ghi và phát lại (Record & Playback).
- Selenium RC: Hỗ trợ viết kịch bản tự động hóa qua nhiều ngôn ngữ lập trình (Java, C#, PHP, Python, Ruby, Perl).
- Selenium WebDriver: Phiên bản nâng cấp điều khiển trình duyệt trực tiếp từ hệ điều hành, hỗ trợ cấu trúc logic lập trình phức tạp.
- Selenium Grid: Hệ thống điều phối thực thi kiểm thử phân tán song song trên nhiều máy và nhiều trình duyệt khác nhau.
- Tập lệnh Selenese trong Selenium IDE: Gồm 3 nhóm thành phần chính: Actions (thao tác người dùng), Accessors (truy xuất và lưu trữ trạng thái vào biến), Assertions (xác minh trạng thái, chia làm 3 loại:
assert dừng kiểm thử nếu sai, verify báo lỗi nhưng tiếp tục chạy, waitFor chờ điều kiện thỏa mãn).
| STT |
Tên lệnh Selenese |
Ý nghĩa và chức năng |
| 1 |
open |
Mở một trang web theo đường dẫn URL xác định |
| 2 |
click |
Thực hiện hành động click chuột vào một phần tử |
| 3 |
clickAndWait |
Thực hiện click chuột và chờ tải hoàn tất trang web mới |
| 4 |
verifyTitle / assertTitle |
Xác minh tiêu đề trang web khớp với giá trị mong đợi |
| 5 |
verifyTextPresent |
Xác minh sự tồn tại của một chuỗi văn bản trên trang |
| 6 |
verifyElementPresent |
Xác minh sự tồn tại của một phần tử giao diện theo thẻ HTML |
| 7 |
verifyText |
Xác minh chính xác văn bản và cấu trúc thẻ HTML tương ứng |
| 8 |
verifyTable |
Xác minh nội dung chi tiết của một bảng dữ liệu |
| 9 |
waitForPageToLoad |
Tạm dừng kịch bản cho đến khi trang web mới được tải xong |
| 10 |
waitForElementPresent |
Tạm dừng kịch bản cho đến khi phần tử giao diện mong đợi xuất hiện |
Thiết kế và triển khai thực nghiệm kiểm thử
Tác giả ứng dụng công cụ Selenium IDE (phiên bản tiện ích trên trình duyệt Google Chrome) để thiết lập dự án kiểm thử tự động có tên tệp kịch bản là AutotestForJVNET.side cho hệ thống website JVNET (https://jvnet.vn/).
Môi trường thực nghiệm:
- Máy chủ ứng dụng (Server): https://jvnet.vn/
- Trình duyệt thực thi (Web browser): Google Chrome
- Công cụ kiểm thử: Selenium IDE Extension
- Định dạng tệp dự án: AutotestForJVNET.side
1. Phân tích đặc tả yêu cầu và luồng sự kiện 3 Module kiểm thử
Module 1: Đăng ký tài khoản (Mã CN: Module 1)
- Actor: Bạn đọc / Người dùng.
- Dữ liệu đầu vào: Họ và tên, địa chỉ, số điện thoại, email, năm sinh, giới tính, nguồn biết JVNET, ghi chú; sau đó nhấn nút "Đăng ký".
- Dữ liệu đầu ra và mã lỗi quy định:
- Bỏ trống các trường bắt buộc (họ tên, địa chỉ, SĐT, năm sinh): Hiển thị lỗi mã
[1-1] - "Cột được yêu cầu."
- Sai định dạng (SĐT, email): Hiển thị lỗi mã
[1-2] - "Bạn cần nhập đúng định dạng cho {tên trường}."
- Hợp lệ toàn bộ: Hiển thị thông báo mã
[1-3] - "Cảm ơn bạn đã quan tâm và đăng ký tư vấn với chúng tôi."
Module 2: Tìm kiếm tin tức (Mã CN: Module 2)
- Actor: Bạn đọc.
- Dữ liệu đầu vào: Từ khóa tìm kiếm tin tuyển dụng/tin tức; nhấn biểu tượng "Tìm kiếm".
- Dữ liệu đầu ra và mã lỗi quy định:
- Từ khóa không tồn tại trong CSDL: Hiển thị thông báo mã
[2-1] - "Sorry, but nothing matched your search terms. Please try again with some different keywords."
- Từ khóa tồn tại (không phân biệt chữ hoa/thường): Trả về danh sách bài viết/tin tuyển dụng tương ứng.
Module 3: Liên hệ (Mã CN: Module 3)
- Actor: Bạn đọc cần tư vấn.
- Dữ liệu đầu vào: Họ và tên, số điện thoại, email; nhấn nút "Gọi lại cho tôi".
- Dữ liệu đầu ra và mã lỗi quy định:
- Bỏ trống trường bắt buộc (họ tên, SĐT): Hiển thị lỗi mã
[3-1] - "The field is required."
- Sai định dạng: Hiển thị lỗi mã
[3-2] - "{The field name} entered is invalid."
- Hợp lệ: Hiển thị thông báo mã
[3-3] - "Cảm ơn bạn đã quan tâm và đăng ký tư vấn với chúng tôi."
2. Quy trình cấu hình và thực thi trên Selenium IDE
- Khởi tạo dự án: Khởi chạy Selenium IDE trên Chrome, chọn Create a new project, lưu tên
AutotestForJVNET.side.
- Tạo ca kiểm thử: Thêm test case mới với mã định danh theo chuẩn (ví dụ:
MODULE1_001 - Kiểm tra Họ và tên là trường bắt buộc).
- Thiết lập lệnh điều khiển: Nhập Base URL
https://jvnet.vn/, thiết lập lệnh open với target /, kích hoạt tính năng Record để bắt các sự kiện click, nhập text và các lệnh verify/assert tương ứng.
- Ghi nhận kết quả: Thực thi kịch bản tự động, quan sát nhật ký Log và đối soát kết quả thực tế (Actual result) vào cột Remark trong bảng thiết kế Test Case.
Kết quả và đóng góp
Kết quả chính
- Hệ thống hóa hoàn chỉnh khung lý thuyết kiểm thử phần mềm: làm rõ 4 cấp độ kiểm thử, 6 giai đoạn trong STLC, 7 nguyên tắc cốt lõi, bảng phân cấp 10 mức độ nghiêm trọng của lỗi và 4 kỹ thuật thiết kế test case chuẩn.
- Phân tích chi tiết 6 khía cạnh kiểm thử ứng dụng web và khảo sát, so sánh toàn diện các công cụ hỗ trợ kiểm thử hiệu năng, bảo mật và chức năng.
- Xây dựng thành công bộ kịch bản kiểm thử tự động trên Selenium IDE (
AutotestForJVNET.side) và danh mục test case kiểm thử chức năng cho 3 module nghiệp vụ trọng yếu (Đăng ký, Tìm kiếm, Liên hệ) của website JVNET.
Giải pháp và kiến nghị
- Đề xuất áp dụng các công cụ kiểm thử tự động mã nguồn mở (như Selenium) nhằm giúp các doanh nghiệp phần mềm tại Việt Nam giải quyết bài toán thiếu hụt nhân lực tester và tiết kiệm chi phí bản quyền công cụ (so với các giải pháp thương mại như Ranorex có giá 3500$/năm).
- Kiến nghị đưa quy trình kiểm thử tự động vào giai đoạn kiểm thử hồi quy (regression testing) để nhanh chóng phát hiện lỗi phát sinh khi hệ thống có sự điều chỉnh mã nguồn.
Đóng góp về mặt học thuật và thực tiễn
- Đóng góp tài liệu hướng dẫn kỹ thuật chi tiết về cách cấu hình, sử dụng cú pháp Selenese, thiết lập điểm dừng (breakpoint), điểm bắt đầu (start point) và quản lý bộ kiểm thử (test suite) trên công cụ Selenium IDE.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế
- Khóa luận mới chỉ tập trung nghiên cứu sâu thành phần Selenium IDE, chưa triển khai lập trình kịch bản nâng cao trên Selenium WebDriver hay cấu hình hạ tầng kiểm thử phân tán với Selenium Grid.
- Selenium IDE còn tồn tại các nhược điểm cố hữu được văn bản nêu rõ: khó khăn trong việc kiểm thử trên nền tảng di động (mobile testing), chưa hỗ trợ kiểm thử cơ sở dữ liệu trực tiếp, và cần thiết lập thêm cấu hình phức tạp nếu muốn đọc dữ liệu kiểm thử từ tệp bên ngoài.
- Phạm vi thực nghiệm mới dừng lại ở kiểm thử chức năng giao diện của 3 module trên website JVNET, chưa mở rộng sang kiểm thử tải chịu lỗi quy mô lớn hay kiểm thử bảo mật chuyên sâu.
Hướng nghiên cứu tiếp
- Mở rộng nghiên cứu sang Selenium WebDriver kết hợp các ngôn ngữ lập trình như Java hoặc Python để xử lý các kịch bản kiểm thử có cấu trúc rẽ nhánh, vòng lặp phức tạp.
- Triển khai Selenium Grid để tự động hóa kiểm thử song song trên nhiều môi trường máy chủ và trình duyệt phân tán.
Giá trị tham khảo
- Đối tượng thụ hưởng:
- Sinh viên chuyên ngành Công nghệ thông tin, Hệ thống thông tin và Kỹ thuật phần mềm đang học tập học phần Kiểm thử phần mềm hoặc thực hiện đồ án tốt nghiệp về Đảm bảo chất lượng phần mềm (QA/QC).
- Kiểm thử viên mới vào nghề (Junior Tester) cần củng cố kiến thức nền tảng về STLC và kỹ năng thực hành kiểm thử tự động không đòi hỏi kỹ năng lập trình phức tạp.
- Nội dung tham khảo giá trị:
- Chương I: Bảng phân loại 10 mức độ nghiêm trọng của lỗi phần mềm, 7 nguyên tắc kiểm thử và các kỹ thuật phân tích giá trị biên / phân vùng tương đương.
- Chương II: Khung hướng dẫn 6 nội dung kiểm thử ứng dụng web toàn diện.
- Chương III: Bảng tra cứu các lệnh Selenese thông dụng và quy trình thiết kế ca kiểm thử tự động trên Selenium IDE.
Câu hỏi thường gặp
1. Tỷ lệ nhân lực giữa kiểm thử viên và lập trình viên tại Việt Nam so với thị trường quốc tế có sự chênh lệch như thế nào?
Trả lời: Theo số liệu trong khóa luận, tại các công ty phần mềm nước ngoài, trung bình cứ 1 lập trình viên cần có 4 kiểm thử viên (tỷ lệ 4:1). Trong khi đó tại Việt Nam, tỷ lệ này bị đảo ngược nghiêm trọng: 5 lập trình viên mới có 1 kiểm thử viên (tỷ lệ 1:5), dẫn đến sự thiếu hụt khoảng 10.000 kỹ sư kiểm thử vào năm 2020 theo khảo sát của bachkhoa-aptech.vn.
2. Lý do tác giả lựa chọn Selenium IDE để nghiên cứu thay vì các công cụ khác như Ranorex là gì?
Trả lời: Ranorex là công cụ thương mại có chi phí rất đắt (lên tới 3500$/năm). Ngược lại, Selenium là phần mềm mã nguồn mở hoàn toàn miễn phí, có cộng đồng hỗ trợ lớn từ Google, chạy được trên nhiều trình duyệt và hệ điều hành. Riêng thành phần Selenium IDE có giao diện trực quan, hỗ trợ cơ chế Record & Playback, dễ cài đặt và sử dụng ngay cả với kiểm thử viên chưa có nhiều kinh nghiệm lập trình.
3. Thang đo mức độ nghiêm trọng của lỗi phần mềm trong khóa luận được chia thành mấy cấp và các mức cao nhất là gì?
Trả lời: Thang đo gồm 10 cấp độ. Các mức độ nghiêm trọng cao nhất gồm: Mức 8 (Quá quắt - hủy hoại cơ sở dữ liệu), Mức 9 (Thảm họa - hệ thống dừng hoạt động hoàn toàn) và Mức 10 (Dịch họa - thảm họa chuyển sang mức lây lan diện rộng).
4. Bộ công cụ Selenium gồm những thành phần nào và sự khác biệt giữa lệnh assert và verify trong Selenese là gì?
Trả lời: Bộ công cụ Selenium gồm 4 thành phần: Selenium IDE, Selenium RC, Selenium WebDriver và Selenium Grid. Trong tập lệnh Selenese, nhóm lệnh xác minh (Assertions) gồm assert và verify: khi một lệnh assert thất bại thì quá trình kiểm thử sẽ dừng lại ngay lập tức; còn khi một lệnh verify thất bại thì hệ thống sẽ ghi nhận thông báo lỗi nhưng vẫn tiếp tục thực thi các bước kiểm thử tiếp theo.
5. Ba module nào của website JVNET được lựa chọn để thực nghiệm và các mã thông báo kết quả của Module 1 (Đăng ký) là gì?
Trả lời: Ba module được kiểm thử gồm Module 1 (Đăng ký), Module 2 (Tìm kiếm) và Module 3 (Liên hệ). Các mã thông báo của Module 1 gồm: [1-1] (Cột được yêu cầu.), [1-2] (Bạn cần nhập đúng định dạng cho {tên trường}.), và [1-3] (Cảm ơn bạn đã quan tâm và đăng ký tư vấn với chúng tôi.).
Kết luận
Khóa luận tốt nghiệp của tác giả Vũ Khánh Huyền đã hệ thống hóa đầy đủ cơ sở lý thuyết về quy trình, cấp độ, nguyên tắc và các kỹ thuật kiểm thử phần mềm chuyên nghiệp. Tác giả đã làm rõ các yêu cầu đặc thù trong kiểm thử ứng dụng web, đồng thời cung cấp tài liệu hướng dẫn kỹ thuật chi tiết về bộ công cụ mã nguồn mở Selenium và tiện ích Selenium IDE. Kết quả thực nghiệm kiểm thử tự động trên 3 module chức năng của website JVNET (https://jvnet.vn/) đã minh chứng tính khả thi và hiệu quả của việc ứng dụng công cụ tự động hóa nhằm nâng cao chất lượng phần mềm và tối ưu hóa chi phí phát triển.