Kiến thức nền tảng: Selenium: Kiến thức cơ bản về Selenium, bao gồm cài đặt, cấu hình và sử dụng các thành phần của Selenium như Selenium WebDriver, Selenium IDE và Selenium Grid. Kiểm thử phần mềm: Hiểu về các khái niệm cơ bản về kiểm thử phần mềm, quy trình kiểm thử và các phương pháp kiểm thử phổ biến. Ý tưởng và chủ đề nghiên cứu: Ý tưởng: Sử dụng Selenium để thực hiện kiểm thử tự động trên trang web Lazada, một trang web bán hàng trực tuyến phổ biến. Chủ đề nghiên cứu: Nghiên cứu về việc áp dụng Selenium để tự động hóa quá trình kiểm thử trang web Lazada, bao gồm việc xác định và thực hiện các kịch bản kiểm thử, xác thực chức năng, kiểm tra giao diện người dùng và đảm bảo tính ổn định và chất lượng của trang web. Nội dung học tập: Cài đặt và cấu hình Selenium: Học cách cài đặt Selenium và cấu hình môi trường phù hợp để làm việc với trang web Lazada. Ngôn ngữ lập trình: Nắm vững một ngôn ngữ lập trình phổ biến như Java, Python hoặc C để viết các kịch bản kiểm thử sử dụng Selenium. Xác định kịch bản kiểm thử: Học cách xác định các kịch bản kiểm thử cho trang web Lazada, bao gồm các tác vụ như đăng nhập, tìm kiếm sản phẩm, thêm vào giỏ hàng và thanh toán. Tương tác với các yếu tố trên trang web: Hiểu cách sử dụng Selenium để tương tác với các yếu tố trên trang web Lazada như nút, biểu mẫu, đường liên kết, v.v. Xác thực chức năng: Học cách xác thực chức năng của trang web Lazada bằng cách kiểm tra kết quả trả về từ các hoạt động kiểm thử. Kiểm thử giao diện người dùng: Thực hiện kiểm thử giao diện người dùng trên trang web Lazada để đảm bảo trải nghiệm người dùng tốt. Kiến thức và kỹ năng cần có: Kiến thức về Selenium và kiểm thử phần mềm cơ bản. Kiến thức cơ bản về ngôn ngữ lập trình để viết các kịch bản kiểm thử. Hiểu biết về trang web Lazada và cách hoạt động của nó. Kiến thức và kỹ năng cần học thêm: Các kỹ thuật kiểm thử phần mềm phức tạp hơn, bao gồm kiểm thử tích hợp và kiểm thử hiệu suất. Sử dụng các công cụ kiểm thử bổ sung và framework như TestNG, JUnit hoặc NUnit để mở rộng khả năng kiểm thử. Cải thiện kỹ năng lập trình để viết mã kiểm thử mạnh mẽ và linh hoạt hơn. Hiểu biết sâu hơn về các nguyên tắc kiểm thử phần mềm và các phương pháp kiểm thử hiệu quả. Mục tiêuChuẩn đầu ra của học phần: Hiểu và áp dụng Selenium để thực hiện kiểm thử tự động trên trang web Lazada. Xây dựng các kịch bản kiểm thử chức năng và giao diện người dùng cho trang web Lazada. Đảm bảo tính ổn định và chất lượng của trang web Lazada thông qua việc kiểm thử tự động sử dụng Selenium. Nắm vững kiến thức và kỹ năng cần thiết để tiếp cận các dự án kiểm thử phần mềm sử dụng Selenium.
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN - BÁO CÁO BÀI TẬP LỚN HỌC PHẦN KIỂM THỬ PHẦN MỀM TÊN CHỦ ĐỀ NGHIÊN CỨU SỬ DỤNG SELENIUM ĐỂ KIỂM THỬ TRANG WEB LAZADA GVHD: Nguyễn Ngọc Quang Nhóm: Sinh viên: Hồng Đức Đạt MSV: 2020607515 Quách Hoài Nam MSV: 2020604929 Phạm Đăng Đức MSV: 2020606036 Nguyễn Văn Tùng MSV: 2020607218 Nguyễn Huy Hồng MSV: 2020605648 Lớp: KTMT02 Khóa: 15 Hà Nội – Năm 2023 MỤC LỤC LỜI MỞ ĐẦU PHẦN : MỞ ĐẦU PHẦN : KIẾN THỨC NỀN TẢNG 2.1 2.2 2.3 QUY TRINH KIỂM THỬ PHẦN MỀM KIỂM THỬ HỘP TRẮNG KIỂM THỬ HỘP ĐEN 11 PHẦN : KẾT QUẢ NGHIÊN CỨU 13 3.1 TỔNG QUAN 13 3.1.1 Khái niệm 13 3.1.2 Các cấp độ kiểm thử phần mềm 13 3.1.3 Kiểm thử đơn vị (Unit Test) 13 3.1.4 Kiểm thử tích hợp (Integration Test) .14 3.1.5 Kiểm thử hệ thống (System Test) 14 3.2 TÌM HIỂU CƠNG CỤ KIỂM THỬ PHẦN NỀM 16 3.2.1 Giới thiệu công cụ 16 3.2.2 Đặc điểm 16 3.2.3 Cài đặt sử dụng công cụ 16 3.3 Giới thiệu phần mềm 17 3.3.1 Giới thiệu 17 3.3.2 Chức phần mềm .18 3.4 Kiểm thử phần mềm 19 3.4.1 Lập kế hoạch kiểm thử (test plan) 19 3.4.2 Phân tích thiết kế kiểm thử .20 3.4.2.1 < Hoàng Đức Đạt> - 20 3.4.2.2 < Phạm Đăng Đức > - < Chức Tìm Kiếm Sản Phẩm> 21 3.4.2.3 < Quách Hoài Nam> - < Chức Xem Sản Phẩm> 22 3.4.2.4 < Nguyễn Văn Tùng > - < Chức giỏ hàng thơng tin tốn> .23 3.4.3 Thực kiểm thử 25 3.4.3.1 < Hoàng Đức Đạt> - 25 3.4.3.2 < Quách Hoài Nam > - < Chức Tìm Kiếm Sản Phẩm> 27 3.4.3.3 < Phạm Đăng Đức > - < Chức Xem Sản Phẩm> 29 3.4.2.4 < Nguyễn Văn Tùng > - < Chức giỏ hàng thơng tin tốn> .31 PHẦN : KIẾN THỨC LĨNH HỘI VÀ BÀI HỌC KINH NGHIỆM .34 Tài liệu tham khảo 35 LỜI MỞ ĐẦU Kiểm thử phần mềm hoạt động giữ vai trò quan trọng để bảo đảm chất lượng phần mềm hoạt động mang tính sống cịn dự án sản xuất gia cơng phần mềm Vì vậy, kiểm thử phần mềm trở thành qui trình bắt buộc dự án phát triển phần mềm giới Ở Việt Nam, ngành công nghiệp phần mềm phát triển khơng thể xem nhẹ việc kiểm thử phần mềm xác suất thất bại cao, nữa, hầu hết công ty phần mềm có uy tín đặt u cầu nghiêm ngặt phần mềm khơng có tài liệu kiểm thử kèm khơng chấp nhận Tuy nhiên, hoạt động kiểm thử thường gặp nhiều khó khăn: Kiểm thử hệ thống phức tạp đòi hỏi nhiều nguồn tài nguyên chi phí cao Tiến trình phát triển phần mềm ln trải qua nhiều hoạt động biến đổi thông tin, mát thơng tin q trình biến đổi yếu tố làm cho hoạt động kiểm thử khó khăn Kiểm thử chưa trọng đào tạo người Không tồn kỹ thuật kiểm thử cho phép khẳng định phần mềm hoàn toàn đắn hay khơng chứa lỗi Với mục đích phát lỗi, kiểm thử phần mềm thường phải trải qua bước: tạo liệu thử, thực thi phần mềm liệu thử quan sát kết nhận Trong bước này, bước tạo liệu đóng vai trị quan trọng nhất, khơng thể tạo liệu từ miền vào chương trình, mà tạo liệu thử có khả phát lỗi cao Vấn đề đặt làm để đánh giá khả phát lỗi liệu thử? Một kinh nghiệm để giúp giải vấn đề này, sử dụng khái niệm chất lượng liệu thử phương tiện để đánh giá liệu thử “tốt” kiểm thử chương trình Ở đây, “tốt” đánh giá liên quan đến tiêu chuẩn chất lượng định trước, thường số dấu hiệu bao phủ chương trình Ví dụ, tiêu chuẩn bao phủ dịng lệnh đòi hỏi liệu thử thực dịng lệnh chương trình lần Nếu liệu thử tìm thấy khơng chất lượng liên quan đến tiêu chuẩn (tức tất câu lệnh thực lần), kiểm thử bắt buộc Do đó, mục tiêu tạo tập kiểm thử thực đầy đủ tiêu chuẩn chất lượng Tiêu chuẩn chất lượng tiêu biểu bao phủ câu lệnh kiểm thử định (thực tất đường dẫn sai qua chương trình) dựa vào việc thực chương trình với số lượng kiểm thử tăng dần để nâng cao độ tin cậy chương trình Tuy nhiên, chúng khơng tập trung vào ngun nhân thất bại chương trình - gọi lỗi Kiểm thử đột biến tiêu chuẩn Tiêu chuẩn tạo phiên chương trình có chứa lỗi đơn giản sau tìm kiểm thử để dấu hiệu lỗi Nếu tìm thấy liệu thử chất lượng làm lộ dấu hiệu tất phiên bị lỗi, tin tưởng vào tính đắn chương trình tăng Kiểm thử đột biến áp dụng cho nhiều ngơn ngữ lập trình kỹ thuật kiểm thử hộp trắng PHẦN : MỞ ĐẦU Kiến thức tảng: - Selenium: Kiến thức Selenium, bao gồm cài đặt, cấu hình sử dụng thành phần Selenium Selenium WebDriver, Selenium IDE Selenium Grid - Kiểm thử phần mềm: Hiểu khái niệm kiểm thử phần mềm, quy trình kiểm thử phương pháp kiểm thử phổ biến Ý tưởng chủ đề nghiên cứu: - Ý tưởng: Sử dụng Selenium để thực kiểm thử tự động trang web Lazada, trang web bán hàng trực tuyến phổ biến - Chủ đề nghiên cứu: Nghiên cứu việc áp dụng Selenium để tự động hóa q trình kiểm thử trang web Lazada, bao gồm việc xác định thực kịch kiểm thử, xác thực chức năng, kiểm tra giao diện người dùng đảm bảo tính ổn định chất lượng trang web Nội dung học tập: - Cài đặt cấu hình Selenium: Học cách cài đặt Selenium cấu hình mơi trường phù hợp để làm việc với trang web Lazada - Ngôn ngữ lập trình: Nắm vững ngơn ngữ lập trình phổ biến Java, Python C# để viết kịch kiểm thử sử dụng Selenium - Xác định kịch kiểm thử: Học cách xác định kịch kiểm thử cho trang web Lazada, bao gồm tác vụ đăng nhập, tìm kiếm sản phẩm, thêm vào giỏ hàng toán - Tương tác với yếu tố trang web: Hiểu cách sử dụng Selenium để tương tác với yếu tố trang web Lazada nút, biểu mẫu, đường liên kết, v.v - Xác thực chức năng: Học cách xác thực chức trang web Lazada cách kiểm tra kết trả từ hoạt động kiểm thử - Kiểm thử giao diện người dùng: Thực kiểm thử giao diện người dùng trang web Lazada để đảm bảo trải nghiệm người dùng tốt Kiến thức kỹ cần có: - Kiến thức Selenium kiểm thử phần mềm - Kiến thức ngơn ngữ lập trình để viết kịch kiểm thử - Hiểu biết trang web Lazada cách hoạt động Kiến thức kỹ cần học thêm: - Các kỹ thuật kiểm thử phần mềm phức tạp hơn, bao gồm kiểm thử tích hợp kiểm thử hiệu suất - Sử dụng công cụ kiểm thử bổ sung framework TestNG, JUnit NUnit để mở rộng khả kiểm thử - Cải thiện kỹ lập trình để viết mã kiểm thử mạnh mẽ linh hoạt - Hiểu biết sâu nguyên tắc kiểm thử phần mềm phương pháp kiểm thử hiệu Mục tiêu/Chuẩn đầu học phần: - Hiểu áp dụng Selenium để thực kiểm thử tự động trang web Lazada - Xây dựng kịch kiểm thử chức giao diện người dùng cho trang web Lazada - Đảm bảo tính ổn định chất lượng trang web Lazada thông qua việc kiểm thử tự động sử dụng Selenium - Nắm vững kiến thức kỹ cần thiết để tiếp cận dự án kiểm thử phần mềm sử dụng Selenium PHẦN : KIẾN THỨC NỀN TẢNG 2.1 QUY TRÌNH KIỂM THỬ PHẦN MỀM Kiểm thử phần mềm bao gồm nhiều giai đoạn với phối hợp nhiều bên liên quan khơng hoạt động đơn lẻ Chính thế, cần có quy trình kiểm thử phần mềm để làm rõ công đoạn, bước kiểm thử, người chịu trách nhiệm việc kiểm thử tiến hành tồn quy trình phát triển phần mềm Nói cách khác, quy trình kiểm thử phần mềm chuỗi hoạt động tiến hành để thực việc kiểm thử Các giai đoạn quy trình kiểm thử phần mềm biểu diễn tổng quát sơ đồ sau: Hình 2.1: Quy trình kiểm thử phần mềm Phân tích u cầu: Nhóm kiểm thử tương tác với bên liên quan để hiểu rõ yêu cầu cụ thể cần cho việc kiểm thử Các yêu cầu chức (xác định phần mềm cần phải làm gì) phi chức (hiệu năng, tính bảo mật hệ thống, màu sắc, v.v.) Hoạt động cụ thể: - Xác định loại kiểm thử thực - Tổng hợp chi tiết mức độ tập trung thứ tự ưu tiên - Chuẩn bị RTM (Requirement Traceability Matrix – tài liệu dạng bảng sử dụng để theo dõi yêu cầu khách hàng kiểm tra xem yêu cầu đáp ứng đầy đủ hay chưa) - Xác định môi trường kiểm thử - Phân tích khả sử dụng kiểm thử tự động - Tài liệu sử dụng: - RTM - Báo cáo khả sử dụng kiểm thử tự động (nếu cần) Lên kế hoạch kiểm thử: Còn gọi tên khác lên chiến lược thử nghiệm Ở giai đoạn này, trưởng nhóm kiểm thử dự tốn chi phí cho dự án chuẩn bị kế hoạch kiểm thử Hoạt động cụ thể: - Lựa chọn công cụ kiểm thử (test tool) - Lên kế hoạch nhân ấn định vai trị trách nhiệm cho người nhóm - Phổ biến cho người nhóm kiểm thử yêu cầu dự án - Tài liệu sử dụng: Bản kế hoạch kiểm thử Tạo ca kiểm thử: Giai đoạn cần phải tạo, xác minh, kiểm tra lại ca kiểm thử Dữ liệu kiểm thử tạo xác định giai đoạn Hoạt động cụ thể: - Tạo ca kiểm thử - Xác minh, kiểm tra lại ca kiểm thử - Tạo liệu kiểm thử Tài liệu sử dụng: - Ca kiểm thử - Dữ liệu kiểm thử Cài đặt môi trường kiểm thử: Môi trường kiểm thử định điều kiện phần cứng phần mềm dự án Thiết lập môi trường kiểm thử thực song song với giai đoạn sinh ca kiểm thử tiêu chí quan trọng q trình kiểm thử Tuy nhiên, nhóm kiểm thử khơng cần tham gia vào giai đoạn có bên liên quan khác hỗ trợ, nhiệm vụ nhóm kiểm thử yêu cầu môi trường kiểm thử cần thiết Hoạt động cụ thể: - Hiểu kiến trúc yêu cầu, thiết lập môi trường chuẩn bị danh sách yêu cầu phần cứng phần mềm cho môi trường thử nghiệm - Thiết lập môi trường kiểm thử Thực kiểm thử: Nhóm kiểm thử thực kiểm thử theo kế hoạch danh sách ca kiểm thử chuẩn bị từ giai đoạn trước Các lỗi phát giai đoạn thơng báo lại cho nhóm phát triển phần mềm để chỉnh sửa thực kiểm thử lại Hoạt động cụ thể: - Thực kiểm thử theo kế hoạch - Làm tài liệu kết kiểm thử, cập nhật lại lỗi ca kiểm thử - Kiểm thử lại lỗi chỉnh sửa - Kiểm tra để đóng lỗi Tài liệu sử dụng: - Ca kiểm thử (cập nhật kết quả) - Báo cáo lỗi Đóng chu trình kiểm thử: Nhóm kiểm thử họp, thảo luận phân tích học rút sau trình kiểm thử, đưa chiến lược cho lần kiểm thử chia sẻ kinh nghiệm cho dự án tương tự Hoạt động cụ thể: - Đánh giá việc hồn thành quy trình kiểm thử dựa vào thời gian, mức độ bao phủ, chi phí chất lượng - Chuẩn bị liệu dựa tiêu chí - Chuẩn bị báo cáo kết thúc kiểm thử - Báo cáo chất lượng sản phẩm cho khách hàng - Phân tích kết kiểm thử để tìm phân bố lỗi theo loại mức độ nghiêm trọng Tài liệu sử dụng: 2.2 Báo cáo kết thúc kiểm thử KIỂM THỬ HỘP TRẮNG Kiểm thử hộp trắng (white-box testing) phương pháp kiểm thử phần mềm, người kiểm thử có hiểu biết cấu trúc nội bộ, mã nguồn, cách thức hoạt động chương trình Kiểm thử hộp trắng tập trung vào việc kiểm tra nội chương trình, bao gồm kiểm tra luồng điều khiển (control flow), điều kiện (condition), nhánh (branch), cấu trúc liệu (data structure) mã nguồn Người kiểm thử sử dụng thông tin cấu trúc mã nguồn để tạo ca kiểm thử dựa việc chạy lệnh, điều kiện, nhánh cụ thể chương trình Hình 2.2 Kiểm thử hộp trắng Dưới khái niệm ưu nhược điểm kiểm thử hộp trắng: Ưu điểm kiểm thử hộp trắng: Độ bao phủ cao: Kiểm thử hộp trắng đạt độ bao phủ cao so với phương pháp kiểm thử khác kiểm thử hộp đen Vì người kiểm thử có thơng tin chi tiết mã nguồn, họ thiết kế ca kiểm thử để thực luồng điều khiển, điều kiện nhánh cụ thể, từ đảm bảo tất đường chương trình thực thi lần Phát lỗi logic: Kiểm thử hộp trắng cho phép người kiểm thử xem xét logic chương trình từ bên trong, từ phát lỗi logic lỗ hổng Bằng cách kiểm tra điều kiện nhánh, người kiểm thử xác định vấn đề liên quan đến xử lý sai lỗi, vịng lặp vơ hạn, điều kiện khơng đúng, nhiều lỗi logic khác Tối ưu hóa mã nguồn: Khi người kiểm thử thực kiểm thử hộp trắng, họ phát gợi ý cải tiến tối ưu hóa mã nguồn Bằng cách xem xét cấu trúc nội chương trình, người kiểm thử tìm phần mã khơng cần thiết, lặp lại, tối ưu hóa, từ giúp cải Ưu điểm kiểm thử hộp đen: Không đảm bảo tính hồn thiện: Kiểm thử hộp trắng khơng thể đảm bảo tính hồn thiện chương trình Mặc dù giúp xác định lỗi vấn đề mã nguồn, khơng thể đảm bảo khơng có lỗi vấn đề tồn phần mềm Kiểm thử hộp trắng Không đảm bảo tính hồn thiện: Kiểm thử hộp trắng khơng thể đảm bảo tính hồn thiện chương trình Mặc dù giúp xác định lỗi vấn đề mã nguồn, khơng thể đảm bảo khơng có lỗi vấn đề tồn phần mềm Kiểm thử hộp trắng Không đảm bảo tính hồn thiện: Kiểm thử hộp trắng khơng thể đảm bảo tính hồn thiện chương trình Mặc dù giúp xác định lỗi vấn đề mã nguồn, khơng thể đảm bảo khơng có lỗi vấn đề tồn phần mềm Kiểm thử hộp trắng Dưới hai phương pháp phổ biến sử dụng kiểm thử hộp trắng: Unit Testing (Kiểm thử đơn vị) Trong Unit Testing, đơn vị nhỏ chương trình, hàm, phương thức lớp, kiểm thử độc lập để đảm bảo tính đắn hoạt động xác Người kiểm thử có hiểu biết cấu trúc nội bộ, mã nguồn logic đơn vị kiểm thử Unit Testing tập trung vào việc kiểm tra tính chức đơn vị chương trình, việc xác định giá trị đầu vào đầu mong đợi, xử lý ngoại lệ đảm bảo yêu cầu mục tiêu đơn vị đáp ứng Mục đích Unit Testing là: Đảm bảo tính đắn đơn vị: Unit Testing giúp xác định sửa chữa lỗi vấn đề xảy đơn vị chương trình Bằng cách kiểm tra đơn vị cách đặc, người kiểm thử xác định lỗi vấn đề liên quan đến xử lý liệu, tính logic tính xác đơn vị Hỗ trợ việc refactor bảo trì mã nguồn: Unit Testing giúp đảm bảo thay đổi mã nguồn không gây lỗi đơn vị kiểm thử Khi thực refactor bảo trì mã nguồn, Unit Testing giúp đảm bảo tính ổn định chức đơn vị, giúp người phát triển tự tin thay đổi mã nguồn Tăng cường tính tin cậy tự động hóa: Unit Testing phần quan trọng việc tạo trì kiểm thử tự động Bằng cách thiết kế thực kiểm thử đơn vị, người kiểm thử tự động hóa q trình kiểm thử, tăng cường tính tin cậy ổn định chương trình Kiểm thử đường (Path testing): Phương pháp tập trung vào việc kiểm tra tất đường mã nguồn Đường xác định cách sử dụng kỹ thuật kiểm thử điều kiện, kiểm thử nhánh kiểm thử luồng điều khiển Người kiểm thử thiết kế ca kiểm thử để đảm bảo đường chương trình thực thi lần Phương pháp kiểm thử đường giúp đạt độ bao phủ cao phát lỗi lỗ hổng logic chương trình 10