xu hướng áp dụng tự động hoá đang được triển khai rộng rãi ở nhiều lĩnh vực, trong đó có kiểm thử phần mềm. Đặc biệt, khi kiểm thử phần mềm là công đoạn chiếm phần lớn thời gian trong quá trình phát triển dự án phần mềm thì sự ra đời của các công cụ kiểm thử tự động càng có ý nghĩa hơn bao giờ hết, giúp tiết kiệm thời gian, công sức và tiền bạc. Selenium là một công cụ hỗ trợ kiểm thử tự động dành cho các ứng dụng Web, hoạt động trên hầu hết các trình duyệt phổ biến hiện nay như Firefox, Chrome, Internet Explorer, Safari, v.v. cũng như hỗ trợ số lượng lớn các ngôn ngữ lập trình Web phổ biến. Công cụ Selenium hiện được đánh giá là một trong những công cụ tốt nhất cho kiểm thử tự động các ứng dụng Web.
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC NGHIỆM HỌC PHẦN MÔN: ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM ĐỀ TÀI: TÌM HIỂU VỀ CÔNG CỤ KIỂM THỬ TỰ ĐỘNG SELENIUM VÀ ỨNG DỤNG VÀO KIỂM THỬ WEBSITE BÁN MÁY TÍNH GHVD: Th.s Nguyễn Đức Lưu Nhóm: 15 Thành viên nhóm: Phạm Thị Việt Anh – 2019600941 Đỗ Thị Thu Hương – 2019600527 Lù Thị Thu Hằng – 2019600148 Đỗ Thị Băng Nhi – 2019601360 Nguyễn Hồng Nhị - 2019601454 Hà nội, năm 2021 MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM 1.1 Chất lượng phần mềm đảm bảo chất lượng phần mềm 1.1.1 Định nghĩa chất lượng phần mềm 1.1.2 Định nghĩa đảm bảo chất lượng phần mềm .7 1.2 Lỗi phần mềm 1.2.1 Định nghĩa lỗi phần mềm phân loại lỗi phần mềm .7 1.2.2 Các nguyên nhân gây lỗi phần mềm 1.2.3 Chi phí cho việc sửa lỗi phần mềm 1.3 Quy trình xử lý lỗi phần mềm .10 1.3.1 Bước 1: Đưa lỗi lên phần mềm quản lý lỗi 12 1.3.2 Bước 2: Gán lỗi cho nhân viên phát triển 13 1.3.3 Bước 3: Xử lý lỗi 13 1.3.4 Bước 4: Kiểm thử lại 14 CHƯƠNG 2: GIỚI THIỆU VỀ CÔNG CỤ SELENIUM IDE .15 2.1 Khái niệm selenium 15 2.2 Các đăc điểm selenium 15 2.2.1 Mã nguồn mở 15 2.2.2 Cộng đồng hỗ trợ 15 2.2.3 Selenium hỗ trợ nhiều ngơn ngữ lập trình 15 2.2.4 Selenium hỗ trợ chạy nhiều OS khác .15 2.2.5 Chạy test case backround 15 2.2.6 Không hỗ trợ Win app: 15 2.3 Cấu trúc selenium 16 2.4 Selenium IDE (Intergrated Development Environment) .17 2.4.1 Tại phải sử dụng SE IDE 17 2.4.2 Khi sử dung SE IDE 17 2.4.3 Cài đặt selenium IDE .18 2.4.4 Cụ thể Selenium IDE 19 CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM 21 3.1 Giới thiệu trang web bán máy tính 21 3.1.1 Giao diện trang chủ bán máy tính 21 3.1.2 Giao diện trang quản trị 24 3.2 Thực viết test cases thủ công .25 3.2.1 Viết test cases trang bán hàng (Lê Thanh Lưu) .25 3.2.2 Viết test cases trang quản trị (Lê Thanh Bình, Nguyễn Việt Hưng) 3.3 26 Thực Selenium IDE 26 KẾT LUẬN .28 TÀI LIỆU THAM KHẢO 29 DANH MỤC HÌNH ẢNH Hình 1.1 Sơ đồ Chi phí cho việc sửa lỗi phần mềm 10 Hình 1.2 Sơ đồ Các trạng thái lỗi .10 Hình 1.3 Sơ đồ Qui trình xử lý lỗi .11 Hình 2.1 Cấu trúc Selenium 16 Hình 2.2 Selenium download page 18 Hình 2.3 Link chứa Selenium IDE cần download .18 Hình 2.4 Sau cài đặt Selenium IDE thành công 19 Hình 3.1 Giao diện 21 Hình 3.2 Xem sản phẩm theo logo hãng DELL 21 Hình 3.3 Xem chi tiết sản phẩm 22 Hình 3.4 Giỏ hàng .22 Hình 3.5 Thông tin mua hàng 23 Hình 3.6 Giới thiệu menu 23 Hình 3.7 Hướng dẫn sử dụng trang web 24 Hình 3.8 Liên hệ với 24 Hình 3.9 Giao diện trang quản trị .25 Hình 3.10 Viết test cases thủ công trang bán hàng 25 Hình 3.11 Viết test cases cho trang quản trị 26 Hình 3.12 Giao diện Selenium IDE 26 Hình 3.13 Selenium test automation 27 Hình 3.14 Báo test auto thành công 27 LỜI NĨI ĐẦU Ngày nay, cơng nghệ thơng tin nói chung cơng nghệ phần mềm nói riêng chiếm vị trí quan trọng tiến trình cơng nghiệp hố, đại hoá đất nước Song song với việc phát triển công nghệ phần mềm tiềm ẩn thách thức cho dành doanh nghiệp, nhà phát triển phần mềm việc kiểm soát lỗi, chất lượng đầu sản phẩm Tuy nhiên Việt Nam, số lượng kiểm thử viên chưa đáp ứng với nhu cầu thị trường Tại Hội nghị Quốc tế kiểm thử phần mềm tự động (12/2011, TP HCM), chuyên gia nhận định: “Với đà tăng trưởng mạnh mẽ ngành gia công phần mềm, vài năm tới, Việt Nam thiếu khoảng10.000 kiểm thử viên.” Bên cạnh đó, xu hướng áp dụng tự động hố triển khai rộng rãi nhiều lĩnh vực, có kiểm thử phần mềm Đặc biệt, kiểm thử phần mềm công đoạn chiếm phần lớn thời gian trình phát triển dự án phần mềm đời cơng cụ kiểm thử tự động có ý nghĩa hết, giúp tiết kiệm thời gian, công sức tiền bạc Selenium công cụ hỗ trợ kiểm thử tự động dành cho ứng dụng Web, hoạt động hầu hết trình duyệt phổ biến Firefox, Chrome, Internet Explorer, Safari, v.v hỗ trợ số lượng lớn ngơn ngữ lập trình Web phổ biến Công cụ Selenium đánh giá công cụ tốt cho kiểm thử tự động ứng dụng Web Vậy nên nhóm 15 chúng em lựa chọn đề tài tìm hiểu cơng cụ kiểm thử tự động selenium ứng dụng vào kiểm thử website bán máy tính Để thực đề tài nhóm chúng em chia gồm ba chương là: Chương 1: Tổng quan đảm bảo chất lượng phần mềm Giới thiệu sơ qua môn học đảm bảo chất lượng phần mềm, lấy ví dụ Chương 2: Giới thiệu công cụ Selenium IDE Chương nhằm mục đích giới thiệu nêu cách cài đặt Selenium IDE automation testing Chương 3: Kết thực nghiệm Chúng em thực viết test case tay sử dụng selenium IDE để chạy test case chúng em viết CHƯƠNG 1: TỔNG QUAN VỀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM 1.1 Chất lượng phần mềm đảm bảo chất lượng phần mềm 1.1.1 Định nghĩa chất lượng phần mềm Có nhiều định nghĩa chất lượng phần mềm đưa tổ chức, cá nhân khác Trong phạm vi viết trình bày số định nghĩa tiêu biểu *Định nghĩa theo IEEE(1991): Định nghĩa 1: Chất lượng phần mềm mức độ mà hệ thống, thành phần hệ thống hay tiến trình đáp ứng yêu cầu đặc tả Định nghĩa 2: Chất lượng phần mềm mức độ mà hệ thống, thành phần hệ thống hay tiến trình đáp ứng yêu cầu mong đợi khách hàng hay người sử dụng *Phân tích hai quan điểm IEEE: Theo quan điểm thứ IEEE: bị phụ thuộc nhiều vào tài liệu đặc tả yêu cầu, dẫn đến việc xấc định yêu cầu bị sai, thiếu phần mềm làm với đặc tả chưa phần mềm có chất lượng Theo quan điểm thứ hai IEEE: khách hàng khơng có kiến thức cơng nghệ, họ đưa mong muốn vô lý thay đổi yêu cầu với phần mềm nhiều lần, chí thay đổi giai đoạn cuối Điều gây nhiều khó khăn cho việc phát triển phần mềm *Định nghĩa theo Pressman: Chất lượng phần mềm phù hợp yêu cầu cụ thể hiệu chức năng, tiêu chuẩn phát triển phần mềm ghi lại rõ ràng tài liệu với đặc tính ngầm định tất phần mềm phát triển chuyên nghiệp Định nghĩa Pressman đề xuất ba yêu cầu với chất lượng phần mềm phải đáp ứng phát triển phần mềm: Các yêu cầu chức rõ ràng nhân tố định chất lượng đầu phần mềm Các tiêu chuẩn chất lượng phần mềm nói đến hợp đồng Các đặc tính ngầm định cần đáp ứng q trình phát triển cho dù khơng nói đến rõ ràng hợp đồng 1.1.2 Định nghĩa đảm bảo chất lượng phần mềm Định nghĩa theo Daniel Galin: Đảm bảo chất lượng phần mềm (Software Quality Assure) tập hợp hành động cần thiết lên kế hoạch cách hệ thống để cung cấp đầy đủ niềm tin trình phát triển phần mềm phù hợp để thành lập yêu cầu chức kỹ thuật yêu cầu quản lý theo lịch trình hoạt động giới hạn ngân sách 1.2 Lỗi phần mềm 1.2.1 Định nghĩa lỗi phần mềm phân loại lỗi phần mềm Định nghĩa lỗi phần mềm: Có nhiều định nghĩa lỗi phần mềm hiểu phát biểu cách đơn giản "Lỗi phần mềm khơng khớp chương trình đặc tả nó" Dựa vào định nghĩa, ta phân loại lỗi phần mềm thành dạng: Lỗi sai: Sản phẩm phần mềm xây dựng khác với đặc tả Lỗi thiếu: Các yêu cầu sản phẩm phần mềm có đặc tả lại khơng có sản phẩm thực tế Lỗi thừa: Sản phẩm thực tế có tính khơng có tài liệu đặc tả 1.2.2 Các nguyên nhân gây lỗi phần mềm Lỗi phần mềm đến từ nhiều nguyên nhân khác nhau, có nguyên nhân chủ quan nguyên nhân khách quan Dưới chín nguyên nhân chủ yếu gây lỗi phần mềm: *Định nghĩa yêu cầu bị lỗi: Những lỗi việc xác định yêu cầu thường nằm phía khách hàng Một số lỗi thường gặp là: định nghĩa sai yêu cầu, lỗi khơng hồn chỉnh, thiếu u cầu quan trọng trọng yêu cầu không thật cần thiết *Các lỗi giao tiếp khách hàng nhà phát triển: Hiểu lầm giao tiếp khách hàng nhà phát triển nguyên nhân gây lỗi Những lỗi thường xuất giai đoạn đầu dự án Một số lỗi hay gặp phải: hiểu sai dẫn tài liệu yêu cầu, hiểu sai thay đổi khách hàng trình bày lời nói tài liệu, hiểu sai phản hồi thiếu quan tâm đến đề cập khách hàng Giải pháp khắc phục: Cần có ủy ban liên kết khách hàng nhà cung cấp để tránh lỗi giao tiếp Ủy ban quản trị dự án đứng đầu khách hàng phải giới thiệu người hiểu mặt nghiệp vụ vào ủy ban *Sai lệch có chủ ý với yêu cầu phần mềm: Trong số trường hợp nhà phát triển cố tình làm sai lệnh yêu cầu tài liệu đặc tả Nguyên nhân việc đến từ áp lực thời gian, ngân sách, hay cố tình sử dụng lại mơ-đun từ dự án trước mà chưa phân tích đầy đủ thay đổi để thích nghi với yêu cầu Giải pháp khắc phục: Dựa thống kê để định xem giải pháp nào, xếp ưu tiên xem bỏ yêu cầu hay sử dụng lại mô-đun *Các lỗi thiết kế logic: Lỗi phần mềm xảy trình chuyên gia thiết kế hệ thống, kiến trúc sư hệ thống, kỹ sư phần mềm, nhà phân tích xây dựng phần mềm theo yêu cầu Các lỗi điển hình bao gồm: Định nghĩa yêu cầu phần mềm thuật tốn sai Quy trình định nghĩa có chứa trình tự lỗi Sai sót định nghĩa biên > hay ≥ Thiếu sót trạng thái hệ thống phần mềm u cầu *Các lỗi lập trình: Có nhiều lý dẫn đến việc lập trình viên gây lỗi lập trình Những lý bao gồm: hiểu sai tài liệu thiết kế, ngôn ngữ; sai sót ngơn ngữ lập trình; sai sót việc áp dụng cơng cụ phát triển; sai sót lựa chọn liệu *Không tuân thủ theo tài liệu hướng dẫn tiêu chuẩn lập trình: Các lỗi phần mềm đến từ việc khơng tuân thủ tài liệu tiêu chuẩn lập trình tổ chức phát triển phần mềm *Thiếu sót q trình kiểm thử: Lỗi phần mềm đến từ q trình kiểm thử mà người kiểm thử để lọt lỗi Những lỗi đến từ nguyên nhân sau đây: Kế hoạch kiểm thử chưa hồn chỉnh, để sót u cầu cần kiểm thử Lỗi tài liệu báo cáo kiểm thử Việc sửa chữa lỗi phát không hoàn chỉnh áp lực thời gian hay thiếu cẩn thận Giải pháp: Lên kế hoạch kiểm thử cụ thể giai đoạn đầu dự án *Các lỗi thủ tục: Các thủ tục hướng dẫn cho người sử dụng bước tiến trình Chúng có tầm quan trọng đặc biệt hệ thống phần mềm phức tạp mà tiến trình thực nhiều bước, bước có nhiều kiểu liệu cho phép kiểm tra kết trung gian Các lỗi đến từ việc viết thủ tục *Các lỗi tài liệu: Các lỗi tài liệu vấn đề đội phát triển bảo trì có sai sót tài liệu liên quan Những lỗi nguyên nhân gây lỗi giai đoạn phát triển giai đoạn bảo trì 10 2.2.6 Khơng hỗ trợ Win app: Selenium hỗ trợ tương tác với Browser mà không hỗ trợ làm việc với Win app, kể Win dialog Download/Upload – ngoại trừ Browser Alarm Vậy nên, để xử lý trường hợp cần tương tác với hệ thống hay app thứ ba, cần hay nhiều thư viện khác AutoIt hay Coded UI 2.3 Cấu trúc selenium Selenium gồm phần: Selenium IDE Selenium RC (Selenium1– Selenium Remote Control) Selenium Gird Selenium WebDriver (Selenium 2) Hình 2.4 Cấu trúc Selenium Trong đó: Selenium IDE (Integrated Development Environment) Là công cụ cho phép Record/Playback test script Đây add-on hỗ trợ cho Google Chrome Chúng ta Record 18 trình duyệt Google Chrome, bù lại, Playback trình duyện khác IE, Chrome… Selenium Gird Là hệ thống hỗ trợ người dùng thực thi test script nhiều trình duyệt cách song song mà không cần phải chỉnh sửa test script Selenium RC, Selenium WebDriver thư viện cho phép lập trình (scripting) test script ngơn ngữ lập trình khác Python, Java, C#, Ruby 2.4 Selenium IDE (Intergrated Development Environment) Selenium IDE thành phần Selenium Nó hoạt động trình duyệt Google Chrome add-on Tác dụng Selenium IDE ghi lại trình tạo mẫu test case có khả phát lại q trình tạo test case Hơn nữa, hỗ trợ lưu test case nhiều định dạng file khác html, java, php… 2.4.1 Tại phải sử dụng SE IDE Selenium IDE sử dụng ưu điểm sau: Miễn phí Dễ cài đặt sử dụng Tự động ghi phát lại thao tác hay trình tạo test case Lưu test case dạng file với định dạng khác html, php, java… Có thể thực tay thiết lập điểm dừng 2.4.2 Khi sử dung SE IDE Ta sử dụng Selenium IDE dự án có thời gian thực kiểm thử dài Selenium IDE tốn thời gian trọng việc ghi tạo test case Chức test cần gần hoàn thiện ổn định Selenium IDE kiểm thử ghi lại trình kiểm thử trực tiếp trình duyệt 19 Sử dụng dự án có chức test cần kiểm thử lại nhiều lần Selenium ghi lại lưu test case dạng file định dạng khác nên không công sức tạo lại test case 2.4.3 Cài đặt selenium IDE Bước 1: Truy cập trang web http://docs.seleniumhq.org/download sau di chuyển xuống phần Selenium IDE để lựa chọn phiên Selenium IDE cần download Hình 2.5 Selenium download page Bước 2: Click vào link chứa Selenium IDE cần download Sau nhấn Add to Google Chrome, trình duyệt Google Chrome tự động add Selenium IDE 20 ... trình Web phổ biến Cơng cụ Selenium đánh giá công cụ tốt cho kiểm thử tự động ứng dụng Web Vậy nên nhóm 15 chúng em lựa chọn đề tài tìm hiểu cơng cụ kiểm thử tự động selenium ứng dụng vào kiểm thử. .. trúc selenium Selenium gồm phần: Selenium IDE Selenium RC (Selenium1 – Selenium Remote Control) Selenium Gird Selenium WebDriver (Selenium 2) Hình 2.4 Cấu trúc Selenium Trong đó: Selenium. .. án phần mềm đời công cụ kiểm thử tự động có ý nghĩa hết, giúp tiết kiệm thời gian, công sức tiền bạc Selenium công cụ hỗ trợ kiểm thử tự động dành cho ứng dụng Web, hoạt động hầu hết trình duyệt