Sử dụng các công cụ kiểm thử tự động kiểm thử web Shopee: Selenium IDE, Selenium Webdriver. Kiểm thử 3 chức năng cơ bản của web: Chức năng đăng ký qua số điện thoại, Chức năng đăng nhập qua số điện thoại, Chức năng mua hàng
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 SỬ DỤNG CÔNG CỤ SELENIUM ĐỂ KIỂM THỬ WEBSITE BÁN HÀNG SHOPEE GVHD: Nguyễn Ngọc Quang Nhóm: 11 Thành viên: Trịnh Bảo Kiên MSV: 2020604877 Trần Quang Minh MSV: 2020601982 Nguyễn Tuấn Nam MSV: 2020608122 Nguyễn Hữu Đạt MSV: 2021600814 Lớp: KTPM – IT6084.2 Khóa: K15 + K16 Hà Nội – Năm 2023 PHẦN MỞ ĐẦU Trong xu hội nhập nay, công ty, doanh nghiệp nước gặp nhiều khó khăn tính cạnh tranh thị trường ngày trở nên gay gắt liệt Vì vậy, công ty doanh nghiệp trọng, chất lượng sản phẩm Mỗi sản phẩm trước đưa đến tay khách hàng, phải kiểm thử kỹ lưỡng, đảm bảo sản phẩm khơng có có phát sinh lỗi, đáp ứng đủ nhu cầu khách hàng Qua đó, kiểm thử phần mềm tiêu tốn thời gian, kinh phí nguồn nhân lực mà kiểm thử thủ cơng chưa đáp ứng Vì vậy, để giải cho vấn đề công cụ kiểm thử tự động dần trở thành trợ thủ đắc lực cho đội ngũ phát triển hướng tới Selenium công cụ kiểm thử tự động mã nguồn mở mạnh mẽ cho việc kiểm thử ứng dụng Web Selenium chạy hầu hết phần mềm trình duyệt, hệ điều hành máy tính, hỗ trợ nhiều ngơn ngữ lập trình khác Tuy nhiên việc tiếp cận phát triển công cụ kiểm thử tự động ứng dụng vào kiểm thử phần mềm Việt Nam chưa phổ biến Vì nhóm 11 trình bày đề tài “Sử dụng công cụ Selenium để kiểm thử website shopee ” với mong muốn tìm hiểu sâu kiểm thử phần mềm nói chung kiểm thử tự động nói riêng, với cách tiếp cận cơng cụ kiểm thử tự động Selenium để ứng dụng vào thực tế, tạo tiền đề cho định hướng tương lai sau tốt nghiệp đại học trở thành kỹ sư kiểm thử phần mềm chuyên nghiệp PHẦN KIẾN THỨC NỀN TẢNG 2.1 Quy trình kiểm thử phần mềm Hình 1: Quy trình kiểm thử phần mềm Kiểm thử phần mềm trình thực thi chương trình với mục đích tìm lỗi Kiểm thử phần mềm bảo đảm sản phẩm phần mềm đáp ứng xác, đầy đủ theo yêu cầu khách hàng, yêu cầu sản phẩm đề đặt Kiểm thử phần mềm cung cấp mục tiêu, nhìn độc lập phần mềm, điều cho phép việc đánh giá hiểu rõ rủi ro thực thi phần mềm Kiểm thử phần mềm tạo điều kiện cho bạn tận dụng tối đa tư đánh giá sáng tạo để bạn phát điểm mà người khác chưa nhìn thấy Người thực kiểm thử gọi kiểm thử viên (Tester) Về bản, quy trình kiểm thử phần mềm gồm giai đoạn: - Requirement Analysis (Phân tích yêu cầu) - Test Planning (Lập kế hoạch kiểm thử) - Test Case Development (Phát triển kịch kiểm thử) - Environment Setup (Thiết lập môi trường kiểm thử) - Test Execution (Thực kiểm thử) - Test Cycle Closure (Kết thúc chu kỳ kiểm thử) - Requirement Analysis (Phân tích yêu cầu) 2.1.1 Requirement Analysis (Phân tích yêu cầu) Trong giai đoạn này, tester phân tích tài liệu Prototype (Tài liệu đặc tả yêu cầu) tạo Software Development Life Cycle (Vòng đời phát triển phần mềm) để kiểm tra yêu cầu khách hàng đưa ra. Yêu cầu chia làm dạng: Functional (Chức năng) Non-Functional (Phi chức năng) u cầu Functional mơ tả tính cịn Non-Functional mơ tả hiệu năng, tính bảo mật, tính hữu dụng phần mềm Trong q trình phân tích, u cầu cịn mơ hồ xem xét lại, tester đồng thời làm việc với bên liên quan để làm rõ vấn đề Cuối cùng, tester xác định loại kiểm thử dùng độ ưu tiên hoạt động kiểm thử, xác định mơi trường test cần chuẩn bị Hình 2 : Phân tích yêu cầu 2.1.2 Test Planning (Lập kế hoạch kiểm thử) Sau giai đoạn một, tester tiến hành Lập kế hoạch kiểm thử để kiểm tra xem phần mềm có đáp ứng yêu cầu hay không Kế hoạch kiểm thử tài liệu tổng quan việc kiểm thử dự án bao gồm thông tin sau: - Phạm vi kiểm thử, hướng tiếp cận, quy trình kiểm thử, tài nguyên nhân lực test - Các chức năng/module cần kiểm tra ; công cụ môi trường kiểm thử cần có - Ai test chức ? - Khi bắt đầu thực viết hoàn thành test case ? - Khi bắt đầu thực hoàn thành test ? 2.1.3 Test Case Development (Phát triển kịch kiểm thử) Sau có Test Plan, Tester bắt đầu xây dựng Test Case dựa yêu cầu phần mềm Test Case cần mô tả chi tiết liệu đầu vào, hành động, kết mong đợi để xác định chức ứng dụng phần mềm có hoạt động hay khơng Template của Test Case có nhiều trường hợp bắt buộc phải có mục chính: ID, mục đích kiểm thử, bước thực hiện, kết mong đợi & kết thực tế Nếu sử dụng tool để thực test tự động (Automation testing) chức giao diện sản phẩm, tester tạo thêm kịch kiểm thử gọi Test Script Test Script hướng dẫn chi tiết viết mã code nhằm hỗ trợ kiểm thử trường hợp test thủ cơng tay khó khăn Các Tester team review chéo Test Case tránh bỏ sót trường hợp test quan trọng Một Test Case chất lượng giúp đảm bảo chất lượng sản phẩm, hạn chế lỗi rủi ro cho khách hàng Hình 3 : Biểu mẫu Test Case với thành phần 2.1.4 Environment Setup (Thiết lập môi trường kiểm thử) Thiết lập môi trường thử nghiệm hoạt động độc lập bắt đầu với giai đoạn phát triển kịch kiểm thử Môi trường kiểm thử developers tạo để deploy sản phẩm hồn thiện phần lập trình. Sau thiết lập môi trường thử nghiệm, tester thực nhanh Smoke Testing (Kiểm thử khói) để kiểm tra tính sẵn sàng mơi trường thử nghiệm đồng thời tính ổn định build sản phẩm Trường hợp xuất lỗi môi trường không ổn định hay build lỗi chức chính, tester báo lại developers sửa Nếu môi trường build đủ ổn định để tiến hành test chi tiết, tester tiến hành giai đoạn - Thực kiểm thử 2.1.5 Test Execution (Thực kiểm thử) Khi developers code đưa sản phẩm lên môi trường kiểm thử, tester thực thi dựa Test Case viết Trong trình test, phát bug (lỗi) tester log (viết) lên tool quản lý lỗi Bug lập trình viên giao lại cho người xử lý Khi developers fix bug xong, tester nhận lại tiến hành kiểm thử. Nếu lỗi sửa, tính hoạt động ổn định, tester đổi trạng thái thành Close Bug Trường hợp lỗi chưa fix thành công, trạng thái đổi thành Re-open để developers thực fix lại Khi bug fix thành cơng đóng lại việc test tính Trong q trình kiểm thử phần mềm, tester ưu tiên kiểm tra chức trước, chức phụ giao diện thực test sau Quá trình kiểm thử phần mềm bắt buộc phải tuân thủ thời gian đề ra, người team đôn đốc để kịp tiến độ bàn giao sản phẩm Cuối cùng, tester thực làm báo cáo tùy theo yêu cầu dự án để đánh giá việc kết thúc quy trình kiểm thử phần mềm 2.1.6 Test Cycle Closure (Kết thúc chu kỳ kiểm thử) Ở giai đoạn cuối cùng, tester chuẩn bị báo cáo kết thúc kiểm thử, tổng hợp lại số trình test Cả team phát triển ngồi họp để đánh giá toàn tiêu chí xác định kiểm thử đủ hay chưa Những tiêu chí khác tùy theo dự án, thông thường bao gồm: - Số lượng test case tối đa thực thi Passed - Tỷ lệ lỗi giảm xuống mức định - Deadline chốt từ giai đoạn làm kế hoạch kiểm thử Quy trình kiểm thử phần mềm thường kết thúc sản phẩm bàn giao cho khách hàng Ngoài ra, hoạt động kiểm thử kết thúc trường hợp sau: - Khi dự án bị hủy bỏ - Khi mục tiêu hồn thành - Khi việc bảo trì cập nhật hồn thành 2.2 Kiểm thử hộp trắng Kiểm thử hộp trắng hay gọi kiểm thử logic, kỹ thuật kiểm thử cho phép kiểm tra cấu trúc bên chương trình Kiểm thử hộp trắng có ưu nhược điểm sau: - Ưu điểm: Kiểm thử hộp trắng có ưu điểm kiểm thử rõ ràng cấu trúc bên ứng dụng, khơng phải kiểm thử mị khơng có chủ đích - Nhược điểm: Chính tính kiểm thử rõ ràng nên phát lỗi thơng thường, khó phát lỗi tiềm ẩn Các kỹ thuật kiểm thử hộp trắng 2.2.1 Kiểm thử đường – đồ thị dòng - Là kỹ thuật dùng kiểm thử hộp trắng Tom McCabe đưa Đồ thị dòng gần giống đồ thị luồng điều khiển chương trình - Là nhiều phương pháp miêu tả thuật giải Đây phương pháp trực quan cho thấy dễ dàng thành phần thuật giải mối quan hệ việc thực thành phần - Kỹ thuật đường - đồ thị dịng giúp người thiết kế ca kiểm thử nhận độ phức tạp logic thủ tục - Gồm loại thành phần : nút cung nối kết chúng Hình 4: Các loại nút đồ thị dịng điều khiển Hình 5: Các kiểu cấu trúc đồ thị dòng Nếu đồ thị dòng điều khiển chứa nút định nhị phân ta gọi đồ thị dịng điều khiển nhị phân Ta ln chi tiết hóa đồ thị dịng điều khiển thành đồ thị dòng điều khiển nhị phân Hình 6: Đồ thị dịng điều khiển nhị phân 2.2.2 Kiểm thử dựa luồng điều khiển Đường thi hành (Execution path) : kịch thi hành đơn vị phần mềm tương ứng, cụ thể danh sách có thứ tự lệnh thi hành ứng với lần chạy cụ thể đơn vị phần mềm, điểm nhập đơn vị phần mềm đến điểm kết thúc đơn vị phần mềm Mỗi TPPM có từ đến n (có thể lớn) đường thi hành khác Mục tiêu phương pháp kiểm thử luồng điều khiển đảm bảo đường thi hành ₫ơn vị phần mềm cần kiểm thử chạy Rất tiếc thực tế, công sức thời gian để đạt mụctiêu lớn, đơn vị phần mềm nhỏ 2.3 Kiểm thử hộp đen Kỹ thuật kiểm thử hộp đen hay gọi kiểm thử vào/ra Trong kỹ thuật này, người kiểm thử xem phần mềm hộp đen Người kiểm thử hồn tồn khơng quan tâm đến cấu trúc bên chương trình mà quan tâm tới liệu đầu vào đầu sau xử lý liệu kiểm thử xuất phát từ đặc tả Kiểm thử hộp đen có ưu nhược điểm sau: - Ưu điểm: Kiểm thử hộp đen khơng có mối liên quan đến mã lệnh, người kiểm thử tìm lỗi mà lập trình viên khơng tìm thấy - Nhược điểm: Kiểm thử hộp đen “giống bóng tối mà khơng có đèn” kiểm thử viên phần mềm kiểm tra thực xây dựng Đó lý mà có nhiều trường hợp mà kiểm thử viên hộp đen viết nhiều test case để kiểm tra thứ mà cần kiểm tra test case nhất, trường hợp số phần chương trình khơng kiểm tra chút Sau xin giới thiệu chung vài kỹ thuật kiểm thử hộp đen, chi tiết nghiên cứu viết sau Đoán lỗi: kỹ quan trọng tester, chí gọi nghệ thuật Một kiệt tác trực giác Phương pháp đặc biệt dựa vào kinh nghiệm kiến thức tester Nhiều tester cố gắng đoán xem phần hệ thống mà có khả ẩn chứa lỗi Với phương pháp này, họ không cần công cụ hay kịch kiểm thử bắt đầu vào việc Kiểm thử dựa vào đồ thị nguyên nhân - kết (Cause Effect Graphing): kỹ thuật thiết kế kiểm thử phần mềm liên quan đến việc xác định trường hợp (điều kiện đầu vào) hiệu ứng (điều kiện đầu ra) Vì hệ thống phát triển tảng OOP, đó, có đồ thị đối tượng mà hệ thống định nghĩa kết nối Từ đồ thị này, dễ dàng biết mối quan hệ đối tượng mà hệ thống xử lý, từ cho kịch kiểm thử phù hợp PHẦN CÔNG CỤ SELENIUM 3.1 Giới thiệu chung Selenium Selenium (thường viết tắt SE) phần mềm mã nguồn mở, phát triển Jason Huggins, sau tiếp tục nhóm ThoughtWorks vào năm 2004 Selenium công cụ hỗ trợ kiểm tra tự động cho ứng dụng chạy web Selenium hỗ trợ kiểm tra hầu hết trình duyệt phổ biến Firefox, Internet Explorer, Chrome, Safari, hệ điều hành chủ yếu Windows, Linux, Mac, Selenium hỗ trợ số lớn ngôn ngữ lập trình C#, Java, Perl, PHP, Python, Ruby, Khơng vậy, Selenium kết hợp thêm với số công cụ khác Bromien, Junit, Nunit.[2] 3.2 Đặc điểm Selenium Mã nguồn mở: Đây điểm mạnh Selenium so sánh với test tool khác Vì mã nguồn mở nên sử dụng mà khơng phải lo lắng phí quyền hay thời hạn sử dụng Cộng đồng hỗ trợ: Vì mã nguồn mở nên Selenium có cộng đồng hỗ trợ mạnh mẽ Bên cạnh đó, Google nơi phát triển Selenium nên hoàn tồn n tâm hổ trợ miễn phí có vấn đề vềSelenium Tuy nhiên, điểm yếu Selenium Vì cơng cụ hồn tồn miễn phí, cộng đồng lại đơng nên vấn đề nhiều giải pháp, số giải pháp khơng hữu ích Mặc khác, hối thúc hay deadline cho hỗ trợ Selenium hỗ trợ nhiều ngôn ngữ lập trình Selenium hỗ trợ chạy nhiều hệ điều hành khác với mức độ chỉnh sửa script khơng có Thực điều phụ thuộc phần lớn vào khả viết script người dùng 3.3 Thành phần Selenium 10