Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 41 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
41
Dung lượng
1,42 MB
Nội dung
TRƯỜNG ĐẠI HỌC THƯƠNG MẠI KHOA HTTTKT - TMĐT KHÓA LUẬN TỐT NGHIỆP Nghiên cứu ứng dụng kiểm thử tự động sử dụng Puppeteer - CodeceptJS cho công ty TNHH Seta - International Việt Nam Giáo viên hướng dẫn: Sinh viên thực hiện: ThS Nguyễn Thị Thu Thủy Bùi Thị Lâm Oanh Lớp: 52S21 Mã SV: 16D190026 Hà Nội, 2020 i LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LỜI CẢM ƠN Để hồn thiện khóa luận tốt nghiệp với đề tài “Nghiên cứu ứng dụng kiểm thử tự động sử dụng Puppeteer - CodeceptJS cho công ty TNHH Seta - International Việt Nam” cố gắng thân qua q trình học tập cịn có giúp đỡ nhiều Nhà trường, thầy cô, ban lãnh đạo cán nhân viên công ty TNHH Seta - International Việt Nam Lời đầu tiên, em xin gửi lời cảm ơn chân thành sâu sắc tới cô giáo Th.S Nguyễn Thị Thu Thủy người tận tình hướng dẫn giúp đỡ em nhiều suốt q trình làm khóa luận Cơ giúp em có định hướng đắn thực khóa luận tốt nghiệp kỹ nghiên cứu cần thiết khác Cô người đóng góp ý kiến, sửa giúp em hồn thành tốt bàicó thể Em xin gửi lời cảm ơn chân thành tới ban giám đốc anh/chịlàm việc công ty TNHH Seta-International Việt Nam quan tâm, ủng hộ hỗ trợ cho em trình thực tập thu thập tài liệu Em xin gửi lời cảm ơn tới thầy cô nhà trường thầy cô khoa Hệ Thống Thông Tin Kinh Tế trường đại học Thương Mại chia sẻ cho em kiến thức quý báu suốt trình học tập để em có đủ kiến thức hồn thành tốt khóa luận Với thời gian nghiên cứu kiến thức cịn hạn chế nên khơng tránh khỏi sai sót q trình phân tích, đánh giá Vì thế, em mong nhận ý kiến đóng góp quý thầy cô, ban lãnh đạo Công ty để khóa luận hồn thiện Em xin chân thành cảm ơn! ii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC LỜI CẢM ƠN i MỤC LỤC iii PHẦN MỞ ĐẦU .1 Tầm quan trọng, ý nghĩa vấn đề nghiên cứu Mục tiêu nhiệm vụ nghiên cứu .2 2.1 Mục tiêu nghiên cứu .2 2.2 Nhiệm vụ nghiên cứu .2 Đối tượng phạm vi nghiên cứu .2 3.1 Đối tượng nghiên cứu .2 3.2 Phạm vi nghiên cứu Phương pháp nghiên cứu 4.1 Phương pháp thu thập liệu 4.2 Phương pháp xử lý liệu Kết cấu khóa luận CHƯƠNG I: TỔNG QUAN KIỂM THỬ PHẦN MỀM VÀ KIỂM THỬ TỰ ĐỘNG 1.1 Phần mềm 1.1.1 Khái niệm 1.1.2 Phân loại phần mềm 1.1.3 Quy trình phát triển phần mềm .4 1.1.4 Các mơ hình phát triển phần mềm 1.1.5 Mối quan hệ quy trình phát triển phần mềm kiểm thử phần mềm .8 1.2 Kiểm thử phần mềm 1.2.1 Kiểm thử phần mềm gì? 1.2.2 Vai trò kiểm thử phần mềm 1.2.3 Quy trình kiểm thử phần mềm 10 1.2.4 Quy trình xử lý lỗi 11 1.2.5 Phân loại kỹ thuật kiểm thử 12 1.3 TÌM HIỂU VỀ KIỂM THỬ TỰ ĐỘNG 13 1.3.1 Khái quát chung kiểm thử tự động 13 1.3.2 Lợi ích khó khăn kiểm thử tự động 14 1.3.3 Thị trường kiểm thử tự động 15 iii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 1.3.4 Tình hình nghiên cứu ứng dụng kiểm thử tự động 15 1.3.5 So sánh kiểm thử thủ công kiểm thử tự động 16 CHƯƠNG II: THỰC TRẠNG VIỆC KIỂM THỬ PHẦN MỀM TẠI CÔNG TY TNHH SETA 18 2.1 Tổng quan công ty TNHH Seta - International Việt Nam 18 2.1.1 Giới thiệu chung công ty 18 2.1.2 Quá trình thành lập cơng ty 18 2.1.3 Cơ cấu tổ chức công ty 19 2.1.4 Lĩnh vực hoạt động 21 2.1.5 Kết hoạt động kinh doanh gần 21 2.2 Phân tích thực trạng q trình kiểm thử phần mềm công ty TNHH Seta International Việt Nam 22 2.3 Đánh giá thực trạng q trình kiểm thử phần mềm cơng ty TNHH Seta International Việt Nam 24 CHƯƠNG III: NGHIÊN CỨU VÀ ỨNG DỤNG CÔNG CỤ KIỂM THỬ TỰ ĐỘNG PUPPETEER - CODECEPJS VÀO THỰC TẾ CÔNG TY TNHH SETA 26 3.1 Tìm hiểu cơng cụ kiểm thử tự động PUPPETEER - CODECEPJS 26 3.1.1 Puppeteer gì? 26 3.1.2 Puppeteer làm gì? 26 3.1.3 Tại nên sử dụng Puppeteer cho testing? 26 3.2 ỨNG DỤNG CÔNG CỤ VÀO CÔNG CỤ KIỂM THỬ TỰ ĐỘNG PUPPETEER - CODECEPJS VÀO THỰC TẾ CÔNG TY TNHH SETA 29 3.2.1 Giới thiệu Các phần mềm cần thiết 29 3.2.2 Cài đặt khởi tạo Puppeteer – Codeceptjs ứng dụng 29 iv LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHẦN MỞ ĐẦU Tầm quan trọng, ý nghĩa vấn đề nghiên cứu Chúng ta chứng kiến tăng trưởng đáng kinh ngạc ngành công nghiệp phần mềm vài thập kỷ qua Nếu trước đây, phần mềm máy tính sử dụng để tính tốn khoa học kỹ thuật xử lý liệu, ngày nay, ứng dụng vào mặt đời sống ngày người Từ ứng dụng nhỏ để điều khiển thiết bị gia dụng điện thoại, máy giặt, ti vi, tủ lạnh đến ứng dụng lớn cho nhiều người dùng sử dụng hệ thống quản lý doanh nghiệp, hệ thống hướng dẫn giao thông, hệ thống quản lý việc khám chữa bệnh Có thể nói, cơng nghiệp phần mềm len lỏi đến ngóc ngách nhỏ đời sống người, đòi hỏi chất lượng phần mềm ngày nâng cao Đồng nghĩa với việc cần phải kiểm thử phần mềm chặt chẽ để đảm bảo chất lượng phần mềm Kiểm thử phần mềm khâu sống sản phẩm trước đưa vào sử dụng, góp phần định thành cơng dự án phần mềm Tuy nhiên, kiểm thử phần mềm công việc tiêu tốn nhiều thời gian, tiền bạc, công sức Nhất phần mềm lớn, chi phí tăng lên gấp bội có thay đổi, nâng cấp chức phần mềm Mà điều khơng thể tránh khỏi, phần mềm cần thay đổi để đáp ứng yêu cầu ngày cao người sử dụng Hiện tại, công việc kiểm thử công ty Seta chủ yếu thực kiểm thử thủ công Nhiều chức thay đổi nhỏ phần cần thực kiểm thử lại lớn, bên cạnh việc tốn chi phí, nhân lực, có khả chậm tiến độ, bị lọt lỗi bàn giao sản phẩm Do đó, luận văn mong muốn đưa giải pháp tự động hóa kiểm thử nhằm giảm thiểu chi phí kiểm thử, thời gian, tiền bạc, người, giảm nhàm chán cho kiểm thử viên mà đảm bảo chất lượng sản phẩm Với phát triển mạnh mẽ phát triển phần mềm kiểm thử phần mềm nay, có nhiều cơng cụ hỗ trợ cho kiểm thử tự động, cơng cụ có số phương pháp luận khác Nhưng điều khơng đồng nghĩa với việc lựa chọn cơng cụ tốt, áp dụng kiểm thử tự động tiết kiệm chi phí đảm bảo dự án thành cơng Vì luận văn mong muốn nghiên cứu áp dụng công cụ kiểm thử Puppeteer – Codeceptjs vào thực tế công ty LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Mục tiêu nhiệm vụ nghiên cứu 2.1 Mục tiêu nghiên cứu Xác định vai trò quan trọng giai đoạn kiểm thử quy trình sản xuất phần mềm mục đích việc áp dụng công cụ kiểm thử tự động vào việc kiểm thử Trên sở nghiên cứu phân tích ứng dụng công cụ tự động việc kiểm thử sản phẩm nhằm nâng cao chất lượng phần mềm Bên cạnh đó, kiểm thử tự động giúp rút ngắn thời gian giảm chi phí cho sản phẩm phần mềm Nó giúp cho chun gia kiểm thử tìm lỗi cách xác q trình tạo phần mềm khắc phục hạn chế việc kiểm thử thủ công Việc kiểm thử thực chặt chẽ hạn chế lỗi, nhiên phần mềm nhiều lỗi tiềm ẩn mà việc làm thủ cơng khơng thể nhìn nhận hết dẫn đến khả gây thiệt hại cho nhà sản xuất Vì vậy, việc áp dụng kiểm thử tự động phương pháp tốt để đảm bảo cho yêu cầu người dùng thiết kế ứng dụng phần mềm đáp ứng đầy đủ 2.2 Nhiệm vụ nghiên cứu Để sâu vào tốn mà đề tài đặt ra, ta cần làm rõ nhiệm vụ nghiên cứu sau: - Hệ thống hóa lại kiến thức lý luận liên quan đến đề tài nghiên cứu: Các khái niệm bản, tiến trình kiểm thử, phương pháp, kỹ thuật kiểm thử ứng dụng - Nghiên cứu, đánh giá thực trạng đưa giải pháp cho việc kiểm thử công ty TNHH Seta - Nghiên cứu ứng dụng công cụ kiểm thử tự động Puppeteer – Codeceptjs vào thực tế cơng ty để thấy tính thực tiễn đề tài Nêu kết đạt được, chưa đạt hướng giải vấn đề kiểm thử ứng dụng công cụ Đối tượng phạm vi nghiên cứu 3.1 Đối tượng nghiên cứu - Nghiên cứu công cụ kiểm thử tự động Puppeteer – Codeceptjs vào thực tế công ty - Các kiến thức việc kiểm thử phần mềm kiến thức liên quan 3.2 Phạm vi nghiên cứu - Về không gian: Thực nghiên cứu đề tài công ty TNHH Seta phạm vi toán đặt - Về thời gian: Từ 09/10/2019 đến 03/12/2019 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phương pháp nghiên cứu 4.1 Phương pháp thu thập liệu - Thu thập liệu thứ cấp: Trong khóa luận, em sử dụng phương pháp thu thập liệu như: mạng Internet, tham khảo báo, khóa luận có đề tài tương tự, 4.2 Phương pháp xử lý liệu Phương pháp xử lý liệu khóa luận thực sở tổng hợp vận dụng phương pháp nghiên cứu thống kê, tổng hợp, phân tích, so sánh Kết cấu khóa luận Bố cục luận văn gồm làm ba chương: Chương I: Tổng quan kiểm thử phần mềm kiểm thử tự động: Khái niệm kiểm thử phần mềm, quy trình kiểm thử phần mềm, phương pháp kỹ thuật kiểm thử Tìm hiểu kiến thức liên quan đến kiểm thử tự động ứng dụng việc kiểm thử Chương II: Thực trạng việc kiểm thử phần mềm công ty TNHH Seta International Việt Nam: Giới thiệu công ty, lĩnh vực hoạt động, khái quát cơng ty đạt Bên cạnh đó, tìm hiểu quy trình kiểm thử phần mềm để nhìn nhận ưu, nhược điểm giai đoạn Chương III: Nghiên cứu ứng dụng công cụ kiểm thử tự động Puppeteer – Codeceptjs vào thực tế công ty TNHH Seta - International Việt Nam: Tìm hiểu cơng cụ Puppeteer – Codeceptjs ứng dụng vào thực tiễn tốn, đưa điểm mạnh, điểm yếu cơng cụ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƯƠNG I: TỔNG QUAN KIỂM THỬ PHẦN MỀM VÀ KIỂM THỬ TỰ ĐỘNG 1.1 Phần mềm 1.1.1 Khái niệm Phần mềm tập hợp câu lệnh thị viết nhiều ngôn ngữ lập trình theo trật tự xác định liệu hay tài liệu liên quan nhằm tự động thực số nhiệm vụ hay chức giải vấn đề cụ thể Phần mềm thực chức cách gửi thị trực tiếp đến phần cứng (hay phần cứng máy tính) cách cung cấp liệu để phục vụ chương trình hay phần mềm khác hệ thống 1.1.2 Phân loại phần mềm Có nhiều cách thức phân loại phần mềm, song chia thành hai loại sau: *Theo phương thức hoạt động - Phần mềm hệ thống dùng để vận hành máy tính phần cứng máy tính Đây loại phần mềm mà hệ điều hành liên lạc với chúng để điều khiển quản lý thiết bị phần cứng - Phần mềm ứng dụng để người sử dụng hồn thành hay nhiều cơng việc - Phần mềm chuyển dịch mã bao gồm trình biên dịch trình thơng dịch - Các tảng công nghệ NET, IC:DOANH NGHIỆP… *Theo khả ứng dụng - Phần mềm thời gian thực (các PM anti - virut, PM chat,…) - Phần mềm giải trí (Game, ) - Phần mềm nhúng: chạy thiết bị đặc thù điện thoại di động, TV, máy lạnh, … - Phần mềm phân tán: chạy nhiều thiết bị, phối hợp hoạt động đồng thời với 1.1.3 Quy trình phát triển phần mềm Cũng ngành sản xuất khác, quy trình yếu tố quan trọng đem lại thành cơng cho nhà sản xuất phần mềm, giúp cho thành viên dự án từ người cũ đến người mới, hay ngồi cơng ty xử lý đồng cơng việc tương ứng vị trí thơng qua cách thức chung LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com công ty, hay cấp độ dự án Có thể nói quy trình phát triển/ xây dựng phần mềm có tính chất định để tạo sản phẩm chất lượng tốt với chi phí thấp suất cao Các giai đoạn phát triển sản phẩm phần mềm STT Giai Công việc đoạn Đầu Giải Thực khảo sát chi tiết yêu cầu khách hàng Tài liệu Đặc tả yêu pháp tổng hợp vào tài liệu Giải pháp (Phân tích cầu nghiệp vụ, Phân tích yêu cầu, Đặc tả yêu cầu, Prototype Prototype) Tài liệu giải pháp phải mô tả đầy đủ yêu cầu chức năng, phi chức năng, giao diện Thiết Thực thiết kế tổng hợp vào tài liệu Thiết kế tổng thể, kế Thiết kế (Thiết kế tổng thể, thiết kế CSDL, thiết Thiết kế chi tiết) kế CSDL, Thiết kế chi tiết Lập Lập trình viên thực lập trình theo tài liệu Source code trình Giải pháp Thiết kế phê duyệt Kiểm CBKT tạo kịch kiểm thử theo tài liệu giải Testcases thử pháp Lỗi Hệ thống Thực kiểm thử quản lý lỗi Cập nhật kết vào KBKT, lỗi log đầy đủ Tester Developer phối hợp xử lý lỗi cập nhật Hệ thống quản lý lỗi Triển Triển khai sản phẩm cho Khách hàng Biên triển khai với khách hàng khai LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 1.1.4 Các mơ hình phát triển phần mềm Có nhiều mơ hình phát triển phần mềm khác nhau, số ứng dụng phổ biến giới: *Mơ hình thác nước: Mơ hình bao gồm giai đoạn xử lý nối tiếp sau: Giai đoạn Đặc điểm Phân tích yêu Xác định yêu cầu liên quan đến chức phi chức cầu tài liệu mà hệ thống phần mềm cần có Đầu giai đoạn “Bản đặc tả Phân đặc tả yêu cầu phần mềm” (SRS) tích hệ Xác định làm để hệ thống phần mềm đáp ứng yêu thống thiết kế cầu mà khách hàng yêu cầu tài liệu SRS/ Lập trình Thực viết code để thiết kế hệ thống Kiểm thử Bao gồm kiểm thử thành phần hệ thống, kiểm thử nghiệm thu với tham gia khách hàng, xác định xem phần mềm có đáp ứng yêu cầu họ hay không Cài đặt bảo Cài đặt, cấu hình đào tạo cho khách hàng trì Sửa chữa lỗi phát triển thay đổi khách hàng u cầu => Nhược điểm mơ hình thác nước: Thực tế cho thấy đến giai đoạn cuối dự án có khả nhận sai sót giai đoạn trước phải quay lại để sửa chữa LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Số lượng liệu đầu vào lớn Số lượng liệu đầu vô lớn Số lượng “lối đi” phần mềm lớn Đặc tả phần mềm có tính chất chủ quan, bạn nói lỗi khuyết điểm mắt người dùng Tất trường hợp kết hợp nhau, bạn thu tập điều kiện vô lớn đến mức thử hết * Quy trình sản xuất kiểm thử phần mềm cơng ty Seta Quy trình sản xuất phần mềm công ty Seta: Công ty Seta công ty chuyên sản xuất phần mềm nhận dự án từ nước mà chủ yếu Mỹ Hiện nay, công ty đẩy mạnh dự án liên quan đến cơng nghệ AI (trí tuệ nhân tạo) Đây công nghệ mới, tiên tiến xu hướng thời đại nên công ty nước giới nói chung seta nói riêng trọng Quy trình sản xuất phần mềm cơng ty áp dụng mơ hình Agile linh hoạt Để thực hóa phương pháp Agile quy trình sản xuất phần mềm, sử dụng Scrum Scrum thành viên gia đình Agile, xây dựng q trình thực nghiệm Nó mơ hình vòng lặp để chia phần mềm cần sản xuất thành phần nhỏ chạy độc lập, lấy ý kiến khách hàng thay đổi cho phù hợp trình phát triển để đảm bảo sản phẩm release đáp ứng khách hàng mong muốn Scrum xây dựng khung làm việc với nhóm có thành viên liên chức hợp tác với nhau, quy trình sản xuất thơng qua Sprint Với Scrum q trình sản xuất, nhóm Scrum liên tục thăm dị điều chỉnh hoạt động để giảm rủi ro với tối ưu hóa q trình làm việc Hiện nay, Seta cho thời gian sprint tuần Công ty sử dụng kết hợp phương pháp kiểm thử thủ công tự động để khai thác lợi ích hai khắc phục thiếu sót tương ứng phương pháp Kiểm thử thủ công thống trị lĩnh vực kiểm thử Mặc dù kiểm thử tự động mang lại hiệu cao trình kiểm thử, có số lĩnh vực định khả sử dụng thiết kế đòi hỏi yêu cầu đến kiểm thử thủ công Kiểm thử tự động giúp nhóm kiểm thử tập trung thời gian nỗ lực họ vào việc tạo trường hợp kiểm thử thay quản lý yêu cầu kiểm thử Kiểm 23 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com thử tự động giúp theo dõi quản lý tất nhu cầu kiểm thử, loại kiểm thử cần thiết với phạm vi kiểm thử Kiểm thử tự động giúp đảm bảo sản phẩm phần mềm chất lượng cao phát hành Các công cụ kiểm thử tự động sử dụng để kiểm soát việc thực lần kiểm thử so sánh kết thực tế với kết mong đợi Chủ yếu kiểm thử hồi quy đòi hỏi hành động lặp lặp lại cần kiểm thử tự động Các công cụ kiểm thử tự động sử dụng cho kiểm thử chức phi chức 2.3 Đánh giá thực trạng trình kiểm thử phần mềm công ty TNHH Seta International Việt Nam *Ưu điểm Về quy trình phát triển phần mềm cơng ty Seta: Seta áp dụng quy trình Agile vào công ty Công ty lựa chọn cho quy trình đắn, đáp ứng nhu cầu công nghệ ngày thay đổi nhanh linh hoạt theo thời gian Bên cạnh đó, với quy trình sản xuất phần mềm vậy, tối đa hóa đáp ứng nhu cầu khách hàng kiểm thử khách hàng từ module hoàn thành Với việc rút ngắn chu kỳ chuyển đổi phát triển, cần có tích hợp nhiều yếu tố khác phát triển sản phẩm Để tạo điều kiện cho kiểm thử phân tích thơng minh, liệu thu thập từ nguồn khác hệ thống quản lý yêu cầu, hệ thống kiểm soát thay đổi, hệ thống quản lý tác vụ môi trường kiểm thử Điều ngụ ý cần có cơng cụ tích hợp giúp quản lý yêu cầu, quản lý tác vụ, theo dõi lỗi quản lý kiểm thử Cơng cụ tích hợp hoạt động kho lưu trữ liệu module khác chia sẻ sử dụng chung nhóm phát triển kiểm thử phần mềm Tình hình ứng dụng kiểm thử tự động vào kiểm thử công ty đưa vào nghiên cứu thực Đây xu hướng kiểm thử nay, chứng tỏ công ty trọng vào chất lượng sản phẩm giảm thiểu nỗ lực cho phận kiểm thử *Nhược điểm Trong trình kiểm thử, người có trách nhiệm kiểm thử QA Thông thường người làm việc Tester QA Người ta hay bị nhầm lẫn khái niệm với QA người đảm bảo chất lượng Nhân viên QA người 24 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com đảm nhận nhiệm vụ xây dựng hệ thống, quy trình sản xuất, quản lý chất lượng giám sát, đo lường việc thực chuẩn mực chất lượng đề Công việc thực giai đoạn sản xuất, từ khâu nghiên cứu thị trường, thiết kế,… khâu sản xuất sản phẩm cuối bán hàng, tiêu thụ thị trường, chăm sóc khách hàng QA đưa số liệu thống kê chất lượng sản phẩm dự án dựa tiêu chí khác để đo đếm xem sản phẩm hồn thành phần trăm mong muốn khách hàng, cách vận hành để tạo sản phẩm có tốt hay khơng Cịn Tester hay đóng vai trị QC người xác nhận sản phẩm đạt yêu cầu định hợp đồng, phương pháp chế tạo yêu cầu kỹ thuật QC mang tính vi mơ, liên quan đến loại sản phẩm riêng biệt Từ đây, cho thấy công ty Seta gộp chung hai chức vụ với Điều giảm thiểu khoản kinh phí khơng nhỏ cho vấn đề nhân hai vị trí có chung mục đích đảm bảo chất lượng sản phẩm Tuy nhiên, bên cạnh đó, gây khó khăn cho người QA làm nhiều việc lúc, đảm bảo tồn vẹn tất công việc Hơn nữa, để tránh lãng phí lỗi, kỹ sư kiểm thử, ngồi việc tìm lỗi nên trọng vào vấn đề ngăn ngừa lỗi thay tìm lỗi Việc ngăn ngừa lỗi xảy có giá trị gấp nhiều lần lỗi nghiêm trọng mà tìm thấy tìm thấy lỗi xuất lãng phí Để ngăn ngừa lỗi tốt hơn, kỹ sư kiểm thử nên tham gia vào tất khâu dự án từ phân tích yêu cầu, thiết viết code sớm tốt Về việc áp dụng kiểm thử tự động vào kiểm thử, công ty bắt đầu nghiên cứu ứng dụng nên số lượng nhân viên hiểu biết, tự viết dịng lệnh để chạy cịn Hầu hết, công ty sử dụng kiểm thử thủ công chủ yếu Chỉ có yêu cầu từ phía khách hàng muốn phần mềm áp dụng cơng cụ tự động cơng ty áp dụng Hơn thế, hầu hết công cụ áp dụng miễn phí, tiết kiệm chi phí lại khơng thể khai thác nhiều tính mà kiểm thử tự động mang lại 25 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƯƠNG III: NGHIÊN CỨU VÀ ỨNG DỤNG CÔNG CỤ KIỂM THỬ TỰ ĐỘNG PUPPETEER - CODECEPJS VÀO THỰC TẾ CƠNG TY TNHH SETA 3.1 Tìm hiểu công cụ kiểm thử tự động PUPPETEER - CODECEPJS 3.1.1 Puppeteer gì? Muốn biết Puppeteer làm gì, ta phải hiểu khái niệm Headless browser (trình duyệt không đầu) browser chạy mà không cần giao diện Điều có nghĩa là, đơi cần mở browser lên để duyệt web, mà để lấy liệu, để test, chụp screenshot, đo hiệu performance Ta muốn làm chuyện server khơng có giao diện, lúc Headless browser lựa chọn Puppeteer thư viện Nodejs, có khả điều khiển Chrome headless browser thơng qua code Do vậy, Chrome làm Puppeteer làm Ta dùng NodeJS Puppeteer để làm nhiều việc hữu ích chụp ảnh hình, thu thập liệu, chạy automation test 3.1.2 Puppeteer làm gì? Puppeteer làm nhiều việc, đặc biệt giải vấn đề mà nhiều cơng cụ gặp phải, là: Chỉ lấy HTML trang web Trước đây, việc lấy HTML xem phổ biến, tùy nhiên bây giờ, hầu hết trang dùng Javascript Ajax để lấy liệu render Lấy HTML khơng giải nhiều cơng việc Bên server có số biện pháp để chặn HTTP request đơn (dựa theo user - agent, ) nên dễ bị chặn Với số trang phải đăng nhập có liệu, việc quản lí cookie, đăng nhập, với HTML Agility Pack rắc rối Dùng Headless browser, ta giải toàn vấn đề Đến Google sử dụng headles browser để lấy liệu trang web dùng Ajax 3.1.3 Tại nên sử dụng Puppeteer cho testing? Trong thập kỷ qua, giới chứng kiến xuất ứng dụng web dựa Javascripts mạnh mẽ, frameworks phát triển Các frameworks thách thức vấn đề từ lâu liên kết với làm tê liệt hiệu suất trang web Các yếu tố UI tương tác, tốc độ liều mạch thành phần kiểu 26 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com dáng ấn tượng, bắt đầu tồn trang web điều khơng ảnh hưởng nhiều yếu tố tốc độ CSS HTML đưa vào JS thay ngược lại đơn giản JS hiệu Mặc dù việc sử dụng frameworks Javascript tăng hiệu suất, gây thiệt hại cho nhân viên kiểm thử Nó khiến cho việc kiểm tra gỡ lỗi trở nên ngày phức tạp Puppeteer giới thiệu thư viện nút phép thử nghiệm trình duyệt Chrome *Trình duyệt khơng đầu Như tên gọi, trình duyệt khơng đầu trình duyệt chạy dạng q trình ứng dụng mà khơng có yếu tố giao diện người dùng Các trình duyệt không đầu, Chrome không đầu đơn giản nhanh hơn, tiêu thụ nhớ hơn, linh hoạt ổn định áp lực tự động hóa Google làm việc để đảm bảo hỗ trợ phù hợp cung cấp cho hệ sinh thái DevTools Với việc sử dụng Puppeteer, thu thập liệu web, quét khởi chạy tập lệnh tự động thực với nỗ lực ổn định trước Tự động hóa dễ dàng Selenium dẫn đầu ngành nói đến thử nghiệm tự động hóa Cơng cụ nguồn mở tuyệt vời cộng đồng thử nghiệm chấp nhận với bàn tay mở Nhưng thử nghiệm lớn nhưng, selen yêu cầu trình duyệt cài đặt selen cài đặt đám mây hay máy cục Thêm vào phức tạp tích hợp với đa dạng thành phần, trở nên khó để trình chạy trơn tru Chrome khơng đầu trở thành xu hướng sử dụng tập lệnh tự động vào trình duyệt Việc sử dụng Karma, Mocha Puppeteer với có tất thử nghiệm thực đột ngột cách sử dụng tập lệnh tự động dễ dàng Kiểm tra hồi quy giao diện người dùng trực quan Puppeteer sử dụng để kiểm tra hồi quy yếu tố UI khác Để kiểm tra giao diện người dùng trang web, nên có phiên crom để đảm bảo kiểm soát api tốt Thông thường Mocha sử dụng với Puppeteer để kiểm tra hồi quy tính UI khác Ngồi ra, Mocha cung cấp cho bạn móc sử dụng trước sau thử nghiệm Puppeteer thành cơng chủ yếu đơn giản hóa chức liên quan đến tác vụ tự động thực trình duyệt 27 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm tra ảnh chụp hình Bộ ba cuối Jest, Chrome khơng đầu Puppeteer sử dụng để thử nghiệm dựa ảnh chụp hình Trên thực tế, tính Ảnh chụp hình tự động LambdaTest tận dụng ba công cụ để chụp ảnh hình nhiều trình duyệt chrome Bạn dễ dàng chụp React giá trị hóa khác sử dụng chúng để phân tích thay đổi trạng thái thử nghiệm Jest kèm với hệ sinh thái React mạnh mẽ tích hợp mở đường cho yếu tố JavaScript kiểm tra dễ dàng Puppeteer-ảnh chụp hình-kiểm tra thư viện trình điều khiển rối cho phép tạo ảnh chụp hình kiểm tra Tương tự ava-Puppeteer thư viện khác có sẵn GitHub sớm xuất vào npm Kiểm tra suất Sử dụng Puppeteer, số liệu hiệu suất đo lường phân tích để tối ưu hóa trang web cho thiết bị tốc độ mạng khác Chrome cung cấp DevTools cho phép ghi lại Dòng thời gian hiệu suất mà tự động tiết lộ vấn đề liên quan đến hiệu suất Puppeteer kiểm sốt API cấp cao Giao thức Cơng cụ dành cho nhà phát triển Chrome Sự thành thạo Puppeteer để dễ dàng xử lý yếu tố không đồng hành vi chúng thay đổi trạng thái DOM Bạn chí lưu liệu hiệu suất dạng tệp JSON Đặt bạn sử dụng Puppeteer, bạn Puppeteer Bạn kiểm sốt nhân viên dịch vụ kiểm tra nhớ đệm thời gian tải trang web có khơng có thời gian đệm Thời gian phản hồi trang web theo dõi cách sử dụng answerEnd, với ảnh hưởng băng thông mạng vấn đề liên quan đến độ trễ Tải thử nghiệm cách sử dụng Puppeteer Load Test đơn giản chiếm số lượng phiên tối đa mà bạn có thể chạy trang web Nhiều phiên Puppeteer khởi chạy song song cách dễ dàng thông qua bạn tải thử nghiệm trang web xem xét Puppeteer với tên nó, bạn có mệnh lệnh tuyệt vời chrome khơng đầu mà bạn có khả khởi chạy nhiều phiên thử nghiệm phiên nhiều trình duyệt 28 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Ở đây, phần mềm dành cho số lượng mẫu phần mềm dành cho phiên đồng thời mẫu Kết thúc thử nghiệm (Kiểm thử từ đầu đến cuối) Thử nghiệm từ đầu đến cuối Chấp nhận thường coi thử nghiệm phổ biến Selenium sử dụng trước để thử nghiệm chấp nhận dễ bị lỗi có nhiều lỗi Sau đó, đến Puppeteer với tập trung cải tiến vào kiểm soát API giúp giải biến chứng xuất dạng lỗi Một siêu lực Puppeteer mà khơng cần biết stack bạn hoạt động với khung cơng tác, React, Angular thư viện khác Phần kết luận Thành công puppeteer chrome khơng làm giảm hiệu chúng, thực tế Google hỗ trợ lý chấp nhận cơng nhận tồn cầu Tuy nhiên, vấn đề lớn tính tồn vẹn với chrome khơng đầu tuyệt vời nhiên với trình duyệt khác, bị chùn bước Phải nói rằng, tin tưởng mạnh mẽ công cụ phát triển mạnh mẽ với hệ sinh thái google ngày mở rộng 3.2 ỨNG DỤNG CÔNG CỤ VÀO CÔNG CỤ KIỂM THỬ TỰ ĐỘNG PUPPETEER - CODECEPJS VÀO THỰC TẾ CÔNG TY TNHH SETA 3.2.1 Giới thiệu Các phần mềm cần thiết Phần cung cấp cho bạn cách chạy/ ghi kiểm thử end to end cho dự án bạn, tất điều cần thiết cần thiết mã hóa kiểm thử end to end Với NodeJS, dụng Visual Studio Code nhẹ tiện dễ dàng debug Visual Studio Code nhẹ lại cịn miễn phí, chạy hệ điều hành Window Mac nên bạn tải dùng tại: https://code.visualstudio.com/ Nếu có khả lập trình cao bạn dùng Notepad + + Sublime Text Nhưng để phù hợp với khóa luận, dùng Visual Studio Code 3.2.2 Cài đặt khởi tạo Puppeteer – Codeceptjs ứng dụng *Tạo thư mục mang tên “e2e-test” 29 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Vào thư mục muốn chứa thư mục test chuẩn bị khởi tạo Mình vào ổ D, tạo thư mục có tên “automation_demo” Mở thư mục tạo, mở cmd Git Bash bạn cách giữ Shift + chuột phải, chọn “Open command window here” Sau cửa sổ cmd bật lên, bạn gõ “npm init” “npm” package nodejs, cịn “init” có nghĩa khởi tạo, sau ấn Enter 30 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Nếu khơng có thơng tin cần thay đổi ấn Enter tiếp Sau khởi tạo xong, tệp lưu xuất file “package.json” File chứa dependence cần thiết chạy cho dự án bạn Nếu bạn cần thêm gì, phải khai báo file cài đặt Và giờ, ta thử mở code xem thông tin vừa khai báo lưu lại file chưa cách chọn file “package.json”, chuột phải, chọn “Open with Code” 31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 32 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com .*Cài đặt thư viện Gõ câu lệnh “npm install codecept.js”, nhấn Enter đợi máy cài đặt 33 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Sau thành công thị hình bên Bạn mở code, mục “dependencies” thể codecept.js 2.3.2 cài Khi cài, máy tính tự động cài đặt phiên Tiếp theo, khởi tạo framework cách chạy câu lệnh sau: //node_modules/.bin/codeceptjs npm install puppeteer 34 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Khởi tạo xong, thư mục “Automation_demo” xuất file “codecept.conf.js” Ở đây, lưu tất thông tin, mục đích file dự án Trong hình dưới, “helpers” thể framework sử dụng puppeteer, đường dẫn trang web định test url: “https://www.stage.veritone.com” (đây dự án làm công ty Seta) Bây bắt đầu viết script cho test case có chức đăng nhập Chúng ta tạo file test lấy tên “demo_test.js” thư mục “test_e2e” Các đoạn script lưu file tạo 35 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Và đoạn code viết cho trường hợp đăng nhập thất bại với user name pass word không Đoạn script với luồng khơng khác thực kiểm thử tay, khác dùng ngơn ngữ để cho máy tính hiểu bạn muốn thực hành động Ví dụ đoạn trên: “I.amOnPage(“/login/#/”) có nghĩa đường dẫn “https://www.stage.veritone.com/login/#/” để chuyển trang trình duyệt đến hình login dự án “I.waitForText(“Login”,60)” có nghĩa đợi nhìn thấy dịng “Login” trang trình duyệt 60 60s, thời gian tối đa để tải trang 36 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chúng ta muốn login với trường hợp thất bại, user name password nhập vào trang khơng Nhưng để máy phát chỗ user name password để nhập kí tự vào Chúng ta lấy đường dẫn tới user name bẳng cách vào trang login dự án, ấn F12/element tìm đến khu vực cần thao tác Sau xong đoạn script, bạn chạy cách gõ lệnh “./node_modules/.bin/codecept.js run” Enter Chạy xong báo kết có thơng tin chạy trường hợp bao lâu, case thành công hay thất bại sau: Đến kết thúc phần demo khóa luận 37 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... đề kiểm thử ứng dụng công cụ Đối tượng phạm vi nghiên cứu 3.1 Đối tượng nghiên cứu - Nghiên cứu công cụ kiểm thử tự động Puppeteer – Codeceptjs vào thực tế công ty - Các kiến thức việc kiểm thử. .. Chương III: Nghiên cứu ứng dụng công cụ kiểm thử tự động Puppeteer – Codeceptjs vào thực tế công ty TNHH Seta - International Việt Nam: Tìm hiểu cơng cụ Puppeteer – Codeceptjs ứng dụng vào thực... luận tốt nghiệp với đề tài ? ?Nghiên cứu ứng dụng kiểm thử tự động sử dụng Puppeteer - CodeceptJS cho công ty TNHH Seta - International Việt Nam? ?? cố gắng thân qua q trình học tập cịn có giúp đỡ nhiều