BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUỐC TẾ HỒNG BÀNG --------------------------------------- BÁO CÁO ĐỒ ÁN KẾT THÚC MÔN HỌC CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN ỨNG DỤNG SELENIUM TRONG KIỂM THỬ WEBSITE DI ĐỘNG GVHD: Nguyễn Minh Đế Sinh viên: Trương Minh Trí MSSV:2111111240 Sinh viên:Nguyễn Cao Triều MSSV:2111111028 TP.HCM– Năm 2024 LỜI CẢM ƠN Lời đầu tiên em xin gửi lời cảm ơn đến các thầy cô và trường Đại học Quốc tế Hồng Bàng đã tạo điều kiện cho em được hoàn thành đồ án tốt nghiệp. Đặc biệt là Thầy Nguyễn Minh Đế đã hướng dẫn và giúp đỡ em trong suốt quá trình làm đồ án tốt nghiệp. Trong quá trình thực hiện đồ án, do kinh nghiệm và thời gian làm đồ án tốt nghiệp còn nhiều hạn chế, chúng em sẽ không tránh khỏi những thiếu sót. Em rất mong được sự góp ý từ thầy để đồ án tốt nghiệp của em có thể hoàn thiện hơn.
Em xin chân thành cảm ơn! TP.HCM, ngày 19 tháng 4 năm 2023 MỤC LỤC DANH MỤC TỪ VIẾT TẮT , THUẬT NGỮ DSD Đặc tả kỹ thuật thiết kế SDLC Quy trình phát triển phần mềm (Software Development Life Cycle) CSDL Cơ sở dữ liệu Test case Kịch bản kiểm thử DANH MỤC HÌNH VẼ DANH MỤC BẢNG BIỂU LỜI NÓI ĐẦU Với sự phát triển không ngừng của công nghệ thông tin và công nghệ phần mềm, việc xây dựng phần mềm ngày càng trở nên hiệu quả hơn nhờ vào sự hỗ trợ của các công cụ tiên tiến. Tuy nhiên, với độ phức tạp ngày càng tăng của phần mềm và các hạn chế về thời gian và nguồn lực, việc đảm bảo chất lượng phần mềm vẫn là một thách thức lớn. Kiểm thử phần mềm là một quá trình quan trọng và liên tục trong mọi giai đoạn của việc phát triển phần mềm. Mặc dù các kỹ thuật và công cụ kiểm thử ngày càng được nghiên cứu và áp dụng, việc phát hiện và khắc phục lỗi vẫn là một nhiệm vụ khó khăn.
Điều này đòi hỏi một chiến lược kiểm thử phù hợp và một kế hoạch thực hiện được quản lý chặt chẽ. Trong bối cảnh này, việc tiếp cận với thư viện kiểm thử tự động Selenium và ứng dụng nó trong kiểm thử các trang web di động là một hướng tiếp cận có ý nghĩa lớn. Điều này sẽ giúp chúng em có cái nhìn sâu hơn về quy trình kiểm thử phần mềm và phát triển kỹ năng cần thiết cho sự nghiệp trong tương lai. Dù chúng em có ít kinh nghiệm và còn một số hạn chế, việc tiếp tục tìm hiểu và áp dụng kiến thức sẽ giúp bạn phát triển.
Sự đóng góp ý kiến từ giáo viên cũng sẽ là một phần quan trọng giúp chúng em hoàn thiện đề tài của mình. • TỔNG QUAN VỀ PHẦN MỀM VÀ KIỂM THỬ PHẦN MỀM 1.1 Phần mềm là gì? 1.1 Khái niệm Phần mềm đề cập đến các ứng dụng hoạt động trong môi trường máy tính, cung cấp các chức năng và công việc cho người sử dụng thông qua phần cứng của máy tính. Một phần mềm thường bao gồm ba phần chính: Chương trình máy tính: Đây là phần quan trọng nhất của một phần mềm, bao gồm mã nguồn (source code) và mã máy (machine code). Mã nguồn là phiên bản của phần mềm được viết bằng ngôn ngữ lập trình cụ thể, trong khi mã máy là phiên bản được biên dịch hoặc biên soạn từ mã nguồn để máy tính có thể thực thi.
Cấu trúc dữ liệu: Đây là phần của phần mềm quản lý dữ liệu, bao gồm cấu trúc làm việc (trong bộ nhớ máy tính) và cấu trúc lưu trữ (trong bộ nhớ ngoại như cơ sở dữ liệu hoặc tệp). Cấu trúc dữ liệu đảm bảo rằng dữ liệu được tổ chức và quản lý một cách hiệu quả. Các tài liệu liên quan: Đây là các tài liệu đi kèm với phần mềm, bao gồm tài liệu hướng dẫn sử dụng (user manual), tài liệu phát triển (developer documentation), tài liệu tham khảo kỹ thuật (technical reference), và các tài liệu khác liên quan đến việc triển khai, sử dụng và bảo trì phần mềm. Tất cả các phần này cùng nhau tạo nên một phần mềm hoàn chỉnh, cung cấp các tính năng và dịch vụ cho người dùng cuối.2 Phân loại phần mềm - Phần mềm hệ thống: Dùng để quản lý hành vi phần cứng máy tính, cung cấp các chức năng cơ bản được người dùng yêu cầu hoặc phần mềm khác chạy đúng (nếu có).
Được thiết kế để cung cấp một nền tảng để chạy phần mềm ứng dụng như hệ điều hành Windows, iOS, Android, trình điều khiển thiết bị Driver… - Phần mềm ứng dụng: • Sử dụng hệ thống máy tính để thực hiện các chức năng đặc biệt hoặc cung cấp các chức năng giải trí ngoài hoạt động cơ bản của chính máy tính. • Phổ biến trong các phần mềm văn phòng như Microsoft Office, phần mềm game, các công cụ và tiện ích khác… - Phần mềm dịch mã (trình biên dịch và trình thông dịch): Dịch các câu lệnh từ mã nguồn của ngôn ngữ lập trình sang dạng ngôn ngữ máy sao cho thiết bị thực thi có thể hiểu được và hiện thực. - Nền tảng ứng dụng (ASP.net, PHP…): Dựa vào nền tảng ứng dụng Web của Microsoft tạo ra các ứng dụng Web, dịch vụ Web (Web Service) 1.2 Quy trình phát triển phần mềm Quy trình phát triển phần mềm là một phần không thể thiếu trong việc tạo ra các sản phẩm phần mềm hiệu quả và chất lượng. Đây là một cấu trúc tổ chức các hoạt động và kết quả tương ứng được sử dụng trong quá trình phát triển sản phẩm phần mềm.
Một quy trình phát triển phần mềm thường bao gồm các giai đoạn sau: Giải pháp và yêu cầu: Giai đoạn này tập trung vào việc khảo sát và thu thập chi tiết các yêu cầu từ khách hàng. Kết quả là tài liệu đặc tả yêu cầu, mô tả đầy đủ về các chức năng, phi chức năng và giao diện của sản phẩm. Thiết kế: Ở giai đoạn này, các nhà phát triển sẽ thực hiện thiết kế dựa trên yêu cầu đã xác định. Kết quả là tài liệu thiết kế tổng thể, thiết kế module và thiết kế cơ sở dữ liệu.
Lập trình: Lập trình viên sẽ tiến hành viết mã nguồn (source code) dựa trên tài liệu giải pháp và thiết kế đã được phê duyệt. Kiểm thử: Các kỹ sư kiểm thử sẽ tạo và thực hiện các kịch bản kiểm thử (test cases) dựa trên tài liệu yêu cầu để đảm bảo rằng sản phẩm đáp ứng các yêu cầu và hoạt động đúng đắn. Kết quả của giai đoạn này là các bản ghi lỗi trên hệ thống quản lý lỗi. Triển khai: Cuối cùng, sản phẩm được triển khai và cung cấp cho khách hàng.
Kết quả là biên bản triển khai được cung cấp cho khách hàng. Quy trình phát triển phần mềm giúp tất cả các thành viên trong dự án làm việc một cách đồng bộ, từ việc xác định yêu cầu đến triển khai sản phẩm, nhằm tạo ra sản phẩm có chi phí thấp và năng suất cao.3 Lỗi phần mềm 1.1 Khái niệm lỗi phần mềm Một lỗi phần mềm là một lỗi, lỗ hổng, thất bại, hoặc có lỗi trong một chương trình máy tính hoặc hệ thống đó là nguyên nhân nó tạo ra kết quả không chính xác hoặc không mong muốn, hoặc vận hành theo cách không được định hướng trước.2 Quy định xác định lỗi phần mềm Một lỗi phần mềm xuất hiện khi vi phạm ít nhất 1 trong 5 quy tắc dưới đây: - Quy tắc 1: Phần mềm không thực hiện một số thứ giống như mô tả trong bản đặc tả phần mềm. - Quy tắc 2: Phần mềm thực hiện một số việc mà bản đặc tả yêu cầu nó không được thực hiện. - Quy tắc 3: Phần mềm thực hiện một số chức năng mà bản đặc tả không đề cập tới.
- Quy tắc 4: Phần mềm không thực hiện một số việc mà bản đặc tả không đề cập tới, nhưng là những việc nên làm. - Quy tắc 5: Đối với người kiểm thử, phần mềm là khó hiểu, khó sử dụng, chậm đối với người sử dụng.3 Vòng đời lỗi Vòng đời của lỗi là một hành trình mà mà lỗi đi qua trong suốt cuộc đời của nó. Nó thay đổi từ tổ chức này sang tổ chức khác, từ dự án này đến dự án khác và nó được điều chỉnh bởi quy trình kiểm thử phần mềm.1: Vòng đời của lỗi Vòng đời của lỗi bao gồm các trạng thái dưới đây: - New: Khi mà lần lỗi được log lên đầu tiên bởi người kiểm thử. - Assigned: Khi lỗi được đăng lên và chỉ định cho lập trình viên nào đó.
- Open: Khi lập trình viên đang sửa lỗi. - Fixed: Khi lập trình viên hoàn thành việc sửa lỗi. - Retest: Người kiểm thử kiểm tra lỗi đã được sửa hay chưa, có phát sinh thêm lỗi mới nào không. - Reopened: Nếu lỗi vẫn còn, người kiểm thử sẽ trả lại cho lập trình viên.
Lỗi phải đi lại một vòng đời như cũ. - Deferred: Lỗi được sửa trong bản phát hành tiếp theo. Lý do có thể là độ ưu tiên của lỗi có thể là thấp, thiếu thời gian để phát hành hoặc lỗi có thể không ảnh hưởng lớn đến phần mềm. - Rejected: Nếu lập trình viên cho rằng không phải lỗi, họ có thể chuyển sang trạng thái này.
- Duplicate: Lỗi được đăng trùng với nhau. - Closed: Khi người kiểm thử đã thấy lỗi được sửa triệt để. - Not a bug/Enhancement: Một số thay đổi trong ứng dụng, không phải là lỗi.4 Kiểm thử phần mềm 1.1 Khái niệm kiểm thử phần mềm Kiểm thử phần mềm là một quy trình quan trọng nhằm đảm bảo độ tin cậy và chất lượng của sản phẩm phần mềm. Mục tiêu chính của kiểm thử phần mềm là xác nhận rằng phần mềm thực hiện đúng các chức năng mà khách hàng mong muốn.
Có hai loại kiểm thử phần mềm chính: Kiểm thử phần mềm thủ công (Manual Testing): Là quá trình kiểm thử được thực hiện bằng tay, các bước thử nghiệm và kiểm tra được thực hiện bởi con người. Kiểm thử tự động (Automation Testing): Là quá trình sử dụng các công cụ và kịch bản tự động hóa để thực hiện các bài kiểm tra, giảm thiểu sự can thiệp của con người. Mục tiêu của kiểm thử phần mềm bao gồm: Phát hiện và báo cáo càng nhiều lỗi (bug) càng tốt trong thời gian kiểm thử xác đinh trước. Chứng minh rằng sản phẩm phần mềm phù hợp với các đặc tả yêu cầu của nó.
Tạo ra các testcase chất lượng nhằm phát hiện lỗi với chi phí thấp nhất. Trong quá trình kiểm thử phần mềm, người kiểm thử có thể là: Software Tester: Chuyên viên kiểm thử phần mềm chịu trách nhiệm thực hiện các bài kiểm tra và báo cáo các lỗi phát hiện được.