DSpace at VNU: NGHIÊN CỨU VÀ ỨNG DỤNG GIẢI PHÁP KIỂM THỬ TỰ ĐỘNG PHẦN MỀM Nguyen Thi Hoa tài liệu, giáo án, bài giảng ,...
ĐẠI HỌC QUỐC GIA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN NGUYỄN THỊ HÒA NGHIÊN CỨU VÀ ỨNG DỤNG GIẢI PHÁP KIỂM THỬ TỰ ĐỘNG PHẦN MỀM Ngành: Công nghệ thông tin Chuyên ngành: Quản lý Hệ thống thông tin Mã số: 11110034 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS ĐINH VĂN DŨNG HÀ NỘI - 2014 MỞ ĐẦU Sự cần thiết đề tài Chúng ta chứng kiến tăng trưởng đáng kinh ngạc nghà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 hà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 nghá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ử 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 Khi có thay đổi phần mềm, đồng nghĩa việc kiểm thử chức mới, chức cũ cần kiểm tra kỹ để đảm bảo chúng hoạt động tốt Đó hoạt động kiểm thử hồi qui Hiện tại, kiểm thử hồi qui công ty nhỏ vừa nước 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 đưa nhìn tồng quan việc nghiên cứu áp dụng tự động hóa kiểm thử phần mềm nay, hệ công cụ kiểm thử tự động nghiên cứu hai phương pháp luận tự động hóa kiểm thử hướng liệu hướng từ khóa Cuối cùng, luận văn áp dụng kiểm thử tự động kiểm thử chức phần mềm Ads Editor với công cụ Robot Framework Nội dung luận văn Với mục đích trên, luận văn có nội dung sau: Luận văn tổng hợp lý thuyết kiểm thử phần mềm kiểm thử tự động - giải pháp góp phần nâng cao suất, chất lượng hoạt động kiểm thử phần mềm Luận văn mô tả phương pháp kiểm thử hướng liệu phương pháp kiểm thử hướng từ khóa Nền tảng lý thuyết thử nghiệm luận văn Luận văn mô tả bước trình áp dụng kiểm thử hướng liệu hướng từ khóa vào kiểm thử hệ thống thực tế, góp phần giảm chi phí việc kiểm thử số sản phẩm phần mềm Cấu trúc luận văn Với mục tiêu xây dựng giải pháp tự động hóa cho kiểm thử hồi qui, luận văn chia làm bốn chương: Chương I: Tổng quan kiểm thử tự động Chương giới thiệu khái niệm kiểm thử, kiểm thử tự động, vai trò lợi ích ứng dụng kiểm thử tự động hoạt động kiểm thử phần mềm Chương trình bày bước để tiếp cận kiểm thử tự động vấn đề gặp phải trình áp dụng kiểm thử tự động.Ngồi tổng hợp tình hình thị trường kiểm thử tự động, tình hình nghiên cứu áp dụng kiểm thử tự động Chương II: Giải pháp kiểm thử tự động hướng liệu hướng từ khóa Từ nghiên cứu Chương I, chương giới thiệu hai giải pháp kiểm thử tự động hướng liệu hướng từ khóa Chương III: Thử nghiệm kiểm thử hướng liệu từ khóa Chương giới thiệu sơ lược với bạn đọc phần mềm quản lý quảng cáo trực tuyến Ads Editors Lý cần thiết phải xây dựng hệ thống kiểm thử tự động để kiểm thử cho hệ thống Ads Editors Đưa bước xây dựng kiểm thử hướng liệu hướng từ khóa việc áp dụng kiểm thử tự động chức “Post changes/ Get changes” Chương IV: Kết luận khuyến nghị Trong chương này, tổng kết lại kết đóng góp mà việc thực đề tài đem lại Ngồi ra, chúng tơi đề xuất phương hướng nghiên cứu tiếp theo, nhằm giúp cho đề tài trở nên hoàn thiện CHƯƠNG TỔNG QUAN KIỂM THỬ TỰ ĐỘNG PHẦN MỀM 1.1 Giới thiệu Khái niệm Kiểm thử phần mềm qui trình thực chương trình hay hệ thống với mục đích tìm lỗi, Myer định nghĩa Error! Reference source not found Có kiểm thử, đánh giá yêu cầu chức yêu cầu phi chức (tính tin cậy, tính khả dụng, tính hiệu quả, khả bảo trì, bảo mật, tính di động) phần mềm Lỗi phần mềm tìm muộn, sau sản phẩm đến tay người dùng tốn nhiều thời gian tiền bạc để sửa lỗi Do đó, kiểm thử phần mềm thực trình phát triển phần mềm Hiện nay, cơng cụ hỗ trợ lập trình giúp tăng cải thiện suất làm việc lập trình viên lên nhiều Điều dẫn đến tăng áp lực lên kiểm thử viên, người thường đứng vị trí nút cổ chai việc bàn giao sản phẩm phần mềm Đòi hỏi kiểm thử viên phải kiểm thử nhiều khoảng thời gian Nên việc cần làm với kiểm thử viên tìm cách để vừa đảm bảo chất lượng phần mềm, đồng thời phải rút ngắn thời gian kiểm thử, đồng nghĩa với việc tăng suất kiểm thử Cũng giống nhiều nghành nghề khác, nghĩ đến việc tăng suất lao động, người ta nghĩ đến tự động hóa Vậy kiểm thử tự động gì? Kiểm thử tự động trình thực cách tự động bước kịch kiểm thử Mục đích kiểm thử tự động giảm thiểu thời gian, cơng sức kinh phí, tăng độ tin cậy, tăng tính hiệu giảm nhàm chán cho kiểm thử viên trình kiểm thử phần mềm Error! Reference source not found Kiểm thử phần mềm hay kiểm thử kiểm thử phần mềm tự động phân chia thành kiểm thử tĩnh kiểm thử động, kiểm thử động bao gồm kiểm thử chức kiểm thử phi chức Mỗi loại kiểm thử đóng vai trò quan trọng đảm bảo chất lượng phần mềm, kiểm thử tĩnh thực kiểm thử giai đoạn sớm trình phát triển phần mềm, phát lỗi tài liệu thiết kế, mã nguồn Kiểm thử động thực mã nguồn thực thi, nhằm phát lỗi chức phần mềm có hoạt động thiết kế không, lỗi phi chức phần mềm có hoạt động mong muốn người dùng khơng Do có nhiều thuật ngữ liên quan đến kiểm thử kiểm thử tự động giới thiệu hết phạm vi luận văn Nên luận văn đề cập đến khái niệm kiểm thử chức kiểm thử hồi qui, tập trung vào áp dụng kiểm thử tự động chức giai đoạn kiểm thử hồi qui Kiểm thử chức Giống tên gọi nó, kiểm thử chức đảm bảo chức phần mềm hoạt động yêu cầu đặc tả phần mềm, Chức phần mềm mà xây dựng để làm Vậy kiểm thử chức kiểm tra xem phần mềm làm yêu cầu có đặc tả hay ca sử dụng (use cases) Có thể có số chức mà giả sử thỏa mãn không nhắc đến tài liệu ngầm hiểu kiểm thử viên Kiểm thử chức thực tất mức kiểm thử: kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử chấp nhận… Kiểm thử hồi qui Như nói trên, xây dựng phiên hệ thống sửa lỗi, thêm chức năng, vơ tình gây lỗi Nhiều có thay đổi nhỏ gây vấn đề lớn sức tưởng tượng đội phát triển Để tránh việc đáng tiếc xảy ra, cần kiểm thử lại phần mềm để đảm bảo chức chạy tốt tiếp tục chạy tốt Để góp phần nâng cao hiệu kiểm thử hồi qui vừa kết hợp kỹ thuật lựa chọn kiểm thử nói đây, với việc thực kiểm thử cách tự động Tuy nhiên, phạm vi luận văn này, tập trung vào việc thực thực thi kiểm thử kiểm thử hồi qui cách tự động 1.2 Qui trình kiểm thử tự động Theo Douglas Hoffman, tiến trình hiệu để thực tự động hóa kiểm thử bao gồm bước hình Error! Reference source not found Lập kế hoạch tự động hóa Thiết kế hệ thống tự động Phát triển hệ thống Lựa chọn đánh giá công cụ tự động Giới thiệu triển khai hệ thống Rà soát lại đánh giá Hình Tiến trình tự động hóa 1.3 Lợi ích thách thức kiểm thử tự động 1.3.1 Lợi ích 1.3.2 Thách thức kiểm thử tự động 1.4 Thị trường kiểm thử tự động Trên giới Một nghiên cứu thị trường thực tháng 11 & tháng 12 năm 2012 số nước Bắc Mỹ châu Âu xu hướng kiểm thử tự động cho hệ thống doanh nghiệp năm 2013 kiểm thử tự động ngày nhận quan tâm đầu tư doanh nghiệp Có 204 doanh nghiệp tổng số 594 doanh nghiệp xác nhận lên kế hoạch tăng cường đầu tư vào kiểm thử tự động đảm bảo chất lượng phần mềm 12 tháng tới Chỉ có 24.6% nhận định khơng lên kế hoạch lĩnh vực Tại Việt Nam Theo báo cáo dịch vụ phần mềm toàn cầu hàng năm từ Gartner, Việt Nam đứng tốp 30 nước gia công phần mềm hàng đầu giới cho gia công phần mềm đứng tốp 10 khu vực Châu Á – Thái Bình Dương Kiểm thử phần mềm nghành công nghiệp nắm giữ nhiều tiềm cho Việt Nam, đặc biệt lĩnh vực gia công phần mềm, nơi mà kiểm thử phần mềm thu hút quan tâm giới trẻ Error! Reference source not found Tuy nhiên nguồn nhân lực kiểm thử phần mềm đặc biệt kiểm thử tự động Việt Nam không đáp ứng nhu cầu nhà tuyển dụng 1.5 Tình hình nghiên cứu kiểm thử tự động Khung kiểm thử tự động xuất từ lâu, tổng quát hóa sau: Thế hệ khung phi cấu trúc, có liệu kiểm thử nhúng vào đoạn mã (Script) thường có đoạn mã cho kiểm thử Các đoạn mã chủ yếu sinh sử dụng công cụ “chụp chạy lại” (Capture and replay) viết thủ cơng Kiểu đoạn mã thường khơng có khả bảo trì mà hệ thống kiểm thử có thay đổi đoạn mã liên quan phải thực lại công việc chụp chạy lại Thế hệ khung thứ hai có mã nguồn thiết kế tốt, mơ-đun hóa, mạnh, có tài liệu có khả bảo trì Đoạn mã khơng thực thi kiểm thử mà ví dụ cài đặt, làm sạch, phát lỗi phục hồi Dữ liệu kiểm thử nhúng trực tiếp vào đoạn mã nên có mã nguồn điều khiển (Driver scripts) cho kiểm thử Mã nguồn hầu hết viết tay khả bảo trì u cầu cần có kỹ lập trình mà kiểm thử viên khơng có Thế hệ khung thứ ba có tất đặc tính tốt tìm thấy hệ thứ hai, ngồi việc liệu kiểm thử tách khỏi mã nguồn có thêm nhiều lợi ích đáng kể Lợi ích đoạn mã dùng cho nhiều kiểm thử cách cần điều chỉnh liệu kiểm thử thêm số kiểm thử cách bình thường Lợi ích thứ hai thực thiết kế kiểm thử việc thực viết mã nguồn để thực thi kiểm thử hai công việc riêng rẽ, việc thực người có kiến thức lĩnh vực kiểm thử, biết cách xây dựng kiểm thử có chất lượng tốt việc thứ hai thực người có kĩ lập trình mà khơng có kĩ thiết kế kiểm thử Khái niệm gọi kiểm thử hướng liệu (Datadriven testing) Kiểm thử hướng từ khóa (Keyword-driven testing) thêm từ khóa điều khiển việc thực thi kiểm thử vào liệu kiểm thử Error! Reference source not found Việc áp dụng khung hệ thứ ba kiểm thử tự động mục tiêu khóa luận Chi tiết kiểm thử hướng liệu kiểm thử hướng từ khóa giới thiệu cụ thể chương 1.6 Tình hình ứng dụng kiểm thử tự động Bảng Phân loại công cụ kiểm thử phần mềm tự động Loại công cụ # Miêu tả chức Quản lý thông tin kiểm thử Công cụ giải pháp hỗ trợ kỹ thuật kiểm thử (Test information management đảm bảo chất lượng, giúp tạo, cập nhật bảo trì thơng ) tin kiểm thử đa dạng, bao gồm kiểm thử, kịch bản, liệu, kết kiểm thử vấn đề phát Điều khiển thực thi kiểm Công cụ giải pháp hỗ trợ thiết lập thực kiểm thử, thử (Test execution and tập hợp đánh giá kết kiểm thử control) Tạo kiểm thử tự động (Test Giải pháp công cụ tạo chương trình kiểm thử generation) cách tự động Phân tích độ phủ kiểm thử Công cụ giải pháp thực phân tích mật độ phủ (Test coverage analysis) kiểm thử dự tiêu chí lựa chọn Đo hiệu (Performance Công cụ giải pháp hỗ trợ việc đo kiểm tra hiệu testing and measurement) hệ thống Giả lập phần mềm (Software Chương trình phát triển để giả lập chức simulators ) hành động hệ thống bên thành phần/hệ thống cần thiết cho việc kiểm thử Kiểm thử hồi qui (Regression Công cụ hỗ trợ kiểm thử hồi qui hoạt động “Ghi” testing) “Chụp chạy lại” (recording, capturing and replaying) CHƯƠNG GIẢI PHÁP KIỂM THỬ TỰ ĐỘNG HƯỚNG DỮ LIỆU VÀ TỪ KHÓA Chương giới thiệu khái niệm chung kiểm thử tự động phần mềm, nhấn mạnh luân văn tập trung vào khung kiểm thử tự động qui mô lớn Khung kiểm thử tự động tập hợp giả định, khái niệm công cụ cung cấp để hỗ trợ cho quy trình kiểm thử tự động Nó hệ thống tích hợp thiết lập qui tắc tự động hóa sản phẩm cụ thể chức năng, nguồn liệu kiểm thử chi tiết đối tượng mơ-đun tái sử dụng khác Error! Reference source not found Với mục tiêu áp dụng khung kiểm thử tự động hướng liệu từ khóa, Chương trình bày yêu cầu khung kiểm thử tự động, nghiên cứu giải pháp kiểm thử hướng liệu (Data –driven testing) hướng từ khóa (Keyword-driven testing) 2.1 Yêu cầu chức khung tự động hóa kiểm thử Những yêu cầu mức cao khung kiểm thử tự động liệt kê ngắn gọn Bảng Error! Reference source not found Bảng 2: Yêu cầu mức cao cho khung kiểm thử tự động Tự động thực thi Là yêu cầu số kiểm thử tự động, thực thi kiểm thử thơi kiểm thử chưa đủ, khung kiểm thử tự động phải có khả phân tích kết kiểm thử, kiểm soát lỗi xuất báo cáo Dễ sử dụng Cho phép người dùng thiết kế chỉnh sửa kịch kiểm thử, sau chạy giám sát trạng thái trình kiểm thử mà khơng cần phải có kỹ lập trình Khả bảo trì Khả bảo trì liệu kiểm thử mã nguồn khung kiểm thử tự động phải sửa đổi thật nhanh dễ dàng hệ thống kiểm thử có thay đổi Có khả tạo thêm nhiều tính cho khung kiểm thử tự động Những yêu cầu Bảng phân chia nhiều yêu cầu chi tiết sau: 2.1.1 Thực thi kiểm thử mà không cần phải giám sát Khung kiểm thử (Framework) phải bắt đầu thực thi kiểm thử sau nhấn vào nút (Button), điều có nghĩa khung phải cài đặt mơi trường kiêm thử phải kiểm tra tất điều kiện thỏa mãn 2.1.2.Bắt đầu dừng thực thi kiểm thử Khung kiểm thử tự động phải có khả bắt đầu thực thi kiểm thử cách thủ cơng Tốt tự động thực thi kiểm thử thời gian xác định hay sau kiện (ví dụ: Có phiên hệ thống cần kiểm thử) Cách dễ để bắt đầu thực thi kiểm thử từ câu lệnh viết thủ cơng sử dụng tính hệ điều hành cho việc tạo lịch Bắt đầu kiểm thử sau có kiện xuất thực tương tự việc sử dụng cơng cụ bên ngồi (External tools) 2.1.3.Kiểm sốt lỗi 2.1.4.Thẩm định kết kiểm thử 2.1.5.Gán trạng thái kiểm thử Sau kiểm thử thực thi kết xác minh cần gán trạng thái cho kết cuối Nếu trình thực thi kiểm thử, khơng xuất lỗi tất phép so sánh kết thực tế kết mong muốn hoàn toàn khớp với kiểm thử (Test case) có trạng thái đạt yêu cầu (Pass), nghĩa nội dung cần kiểm thử hoạt động yêu cầu Nếu trường hợp khác trạng thái kiểm thử thất bại (Failed), nghĩa nội dung cần kiểm thử không thỏa mãn yêu cầu kiểm thử 2.1.6 Xử lý lỗi mong muốn 2.1.7.Ghi lại thông tin chi tiết 2.1.8.Báo cáo tự động 2.2 Kiểm thử hướng liệu (Data-driven testing) 2.2.1.Giới thiệu Những mã nguồn kiểm thử đơn giản thường có liệu nhúng sẵn trong, dẫn đến vấn đề cần thay đổi liệu kiểm thử, mã nguồn cần thay đổi theo Điều vấn đề lớn người cần thay đổi mã nguồn người mà viết nên mã nguồn từ ban đầu, vấn đề lớn người khác khơng có kinh nghiệm lập trình Việc nhúng liệu kiểm thử mã nguồn kiểm thử có thêm vấn đề khác muốn tạo thêm kiểm thử với bước tương tự có thay đổi liệu kiểm thử ln ln u cầu phải lập trình Nhiệm vụ dễ dàng – chép liệu ban đầu sửa phần liệu kiểm thử – u cầu phải có kiến thức lập trình Việc tái sử dụng dẫn đến việc phần mềm bị thay đổi tồn mã nguồn phải viết lại Error! Reference source not found Bởi vấn đề mà việc nhúng liệu kiểm thử vào mã nguồn kiểm thử giải pháp phù hợp xây dựng khung kiểm thử tự động Cách tiếp cận tốt đọc liệu kiểm thử từ nguồn liệu bên thực kiểm thử dựa Cách tiếp cận gọi kiểm thử hướng liệu 2.2.2.Sửa đổi lưu trữ liệu 2.2.3.Xử lý liệu kiểm thử 10 Việc cài đặt đoạn mã để thực phân tích liệu hướng kiểm thử dễ dàng đến mức ngạc nhiên với ngôn ngữ kịch đại 2.2.4.Hứa hẹn vấn đề kiểm thử hướng liệu 2.3 Kiểm thử hướng từ khóa (Keyword-driven testing) 2.3.1.Giới thiệu Phần giới thiệu kiểm thử hướng liệu (data-driven testing) cho thấy hướng tiếp cận có nhiều hứa hẹn, đồng thời cho thấy giới hạn lớn tất kiểm thử tương đương việc tạo kiểm thử hoàn toàn u cầu phải có nỗ lực lập trình Một giải pháp cho giới hạn này, đưa Fewster Graham Kaner tiếp cận hướng từ khóa mà khơng có liệu kiểm thử mà đạo việc làm với liệu kiểm thử tách khỏi mã nguồn đưa tệp tin bên Những đạo gọi từ khóa (Keywords) kĩ sư kiểm thử sử dụng chúng để xây dựng nên kiểm thử cách dễ dàng Error! Reference source not found Ý tưởng đơn giản giống kiểm thử hướng liệu đọc liệu kiểm thử từ tệp tin bên chạy kiểm thử dựa Như Fewster Graham, kiểm thử hướng từ khóa mở rộng kiểm thử hướng liệu Error! Reference source not found.Error! Reference source not found.2.3.2.Sửa đổi lưu trữ liệu kiểm thử 2.3.3 Xử lý liệu kiểm thử 2.3.4.Từ khóa mức khác Một định quan trọng cần thực thiết kế từ khóa mức từ khóa sử dụng.Trong Error! Reference source not found., từ khóa sử dụng mức thấp (như Input, Push), làm cho chúng trở nên phù hợp với kiểm thử mức chi tiết mức giao diện Khi kiểm thử chức mức cao hơn, mức logic nghiệp vụ (Business logic), từ khóa mức thấp thường khiến cho kiểm thử dài từ khóa mức cao có khả sử dụng Đơi sử dụng từ khóa vừa mức thấp, vừa mức cao Hình cho thấy từ khóa mức cao làm cho kiểm thử trở nên ngắn 11 Hình 2: Sử dụng từ khóa mức cao 2.3.5.Những khó khăn hứa hẹn 2.4.Phương pháp tích hợp kiểm thử hướng liệu từ khóa Hình 3: Tích hợp kiểm thử hướng liệu từ khóa 12 CHƯƠNG THỬ NGHIỆM KIỂM THỬ HƯỚNG DỮ LIỆU VÀ TỪ KHĨA 3.1 Mơ tả đối tượng kiểm thử 3.1.1.Phần mềm Ads Editor Ads Editor ứng dụng quản lý chiến dịch quảng cáo trực tuyến (Ads advertising campaigns), hoạt động Window, cho phép người dùng tải liệu, sửa đổi đẩy liệu từ máy tính lên server Google Adword Qui trình để sử dụng cơng cụ Ads Editor sau: Tải nhiều tài khoản, thực thay đổi máy tính cá nhân đẩy liệu lên máy chủ Google Adword 3.1.2.Chức “Post Changes” “Get Changes” liệu 3.1.3.Các vấn đề cần khắc phục kiểm thử chức “Post changes” “Get changes” liệu 3.2.Yêu cầu tự động hóa kiểm thử Từ vấn đề trên, cần phải xây dựng hệ thống giúp cho kiểm thử viên thực kiểm thử tự động “post change/ get changes” liệu Gọi hệ thống “Hệ thống kiểm thử tự động” (HTKTTĐ) Dưới yêu cầu mà HTKTTĐ phải đáp ứng: - Đọc liệu kiểm thử từ tệp tin excel: Tệp tin bao gồm liệu chỉnh sửa “campaign, ad group, text ad, keyword” theo kiểm thử - Thực “Post change” tự động cho ứng dụng thứ Error! Reference source not found minh họa việc thêm liệu ứng dụng Ads Editor sau đẩy ứng dụng lên máy chủ - Thực “Get changes” tự động so sánh liệu “Get changes” ứng dụng với liệu “Post changes” ứng dụng thứ Xuất kết tệp tin log để kiểm thử viên kiểm tra kết kiểm thử 3.3.Môi trường thử nghiệm Để ứng dụng giải pháp kiểm thử tự động sử dụng kiểm thử tự động hướng liệu kiểm thử hướng từ khóa, kiến trúc kiểm thử ứng dụng Ads Editor thể đây: 13 Hình 4: Mơi trường kiểm thử tự động ứng dụng Ads Editor 3.3.1.Khung kiểm thử tự động Robot framework Cài đặt Robot Framework Thư viện Robot framework 3.3.2.Ranorex Hình 5: Kiến trúc bậc cao thể giao tiếp Robot framework Ads Editor Trước thực thi kiểm thử tự động Robot framework, cần có thao tác khởi động thư viện từ xa 3.4.Thiết kế kiểm thử hướng liệu từ khóa 14 3.4.1.Thiết kế kiểm thử Các bước kiểm thử mà kiểm thử viên chuẩn bị Bảng Bảng 3: Bài kiểm thử “Post changes added new ad group sucessfully” Điều kiện tiền đề Các bước thực kiểm thử Kết mong muốn - Have download Application 1: Application 1: campaign C Select campaign C New ad group is Click on tab [Ad group] generated Click on button [Add new] Data is edited as in file Edit data as in file data test data test - For example: Name = A, max cpc =1 Post changes Application 2: Application 2: Can get changes data with Get changes data of campaign C number get changes as Compare data get changes on number data post changes application with data post change Data get changes and data on application one post changes must be map 3.4.2.Thiết kế kiểm thử hướng liệu Dữ liệu kiểm thử cho kiểm thử “Post changes added new ad group sucessfully” tạo từ tệp tin excel, Sheet 1: “Add new ad group” Mỗi lần thực thi kiểm thử cho kiểm thử trên, liệu kiểm thử đọc lên từ tệp tin excel, lần truyền vào dòng liệu, sau kết thúc kiểm thử cho liệu lặp lại với liệu khác 3.4.3.Thiết kế từ khóa cho kiểm thử 3.4.3.1.Thiết kế từ khóa mức cao Bảng 4: Các từ khóa xây dựng cho bước thực kiểm thử Miêu tả # Tên keyword Load Data From Excel File Thực tải liệu kiểm thử từ file excel Select Campaigns Tabpage Lựa chọn cửa sổ Campaign Select campaign C Lựa chọn campaign 15 Miêu tả # Tên keyword Select Ad Groups Tabpage Lựa chọn cửa sổ Ad groups Add new ad group A of campaign Thêm liệu C Count changes of campaign C that Đếm thay đổi campaign C đẩy lên máy will be posted chủ (để sau so sánh với số lượng liệu tải về) Post change data of campaign C Đẩy liệu lên máy chủ Get changes Thực tải liệu thay đổi từ máy chủ ứng dụng Select campaign tabpage Mở tab Campaign Select campaign C Lựa chọn campaign tương ứng có thay đổi liệu Select ad group tab page Mở tab Ad group campaign có thay đổi liệu 10 Verify Data In Grid View Thực so sánh liệu cho ad group 3.4.3.2.Thiết kế từ khóa mức thấp Danh sách từ khóa nghiệp vụ thể Bảng 12 Miêu tả # Tên keyword Add account Lựa chọn đăng nhập tài khoản khác Fill In Email Address And Password Điền thông tin email mật Click OK on Select Campange Chọn nút (button) OK lựa chọn Campaign Wait For Downloaded Click Close Button At Download Đóng hình sau tải liệu xong Campaigns Screen Select Campaigns Tabpagec Chuyển sang tab campaign Search In Textfield Search Tìm kiếm trường văn (text field) Search In Data Grid View And Click Tìm kiếm bảng liệu lựa chọn Select Ad Groups Tabpage Lựa chọn cửa sổ Ad groups 10 Open Edit Selected Ad Groups If Mở cửa sổ sửa ad group cửa sổ Closed đóng All Campaigns Kiểm tra campaign tải chưa 16 Miêu tả # Tên keyword 11 Select All Unposted Local Changes 12 Wait For All Post Changed Has Đợi tất thay đổi Been Completed đẩy lên máy chủ 13 Quit Ads Editor 14 Verify and Expand Edit Selected Ad Kiểm tra xem cửa sổ sửa liệu Ad Groups group có mở khơng 15 Expand Edit Selected Ad Groups Mở rộng cửa sổ sửa liệu Ad group 16 Verify and Click Colapse Message Kiểm tra xem có hiển thị cửa sổ thông báo lỗi, cảnh cáo 17 Click collapse message Thu nhỏ cửa sổ thông báo lỗi, cảnh cáo 18 Select all items Lựa chọn tất liệu thay đổi 19 Click revert selected changes Hủy tất thay đổi 20 Click result table Click vào kết hiển thị lưới liệu (data gridview) Lựa chọn tất thay đổi máy mà chưa đẩy lên máy chủ Đóng ứng dụng Bảng 5: Danh sách từ khóa nghiệp vụ Bên cạnh từ khóa nghiệp vụ, từ khóa tái sử dụng viết kiểm thử khác thể Bảng 13 Bảng 6: Danh sách từ khóa dùng chung Miêu tả # Tên keyword Start Ad Editor Sign in Ads Editor Select campaign C Select ad group A of campaign C Edit data of ad group A of campaign C Remove data of ad group A of campaign C Add new ad group A of campaign C Count changes of campaign C that will be posted Post change data of campaign C Load Data From Excel File 10 17 Khởi động Ad Editor Đăng nhập Lựa chọn liệu cần sửa Lựa chọn liệu cần sửa Sửa liệu Xóa liệu Thêm liệu Đếm số lượng thay đổi Đẩy liệu lên server Tải liệu từ tệp tin excel Miêu tả # Tên keyword 11 Revert All Changes Đưa liệu có thay đổi ứng dụng giá trị chưa có thay đổi 12 Verify Data In Grid View Kiểm tra liệu bảng liệu 13 Quit Ads Editor Tắt ứng dụng Ads Editor 14 Wait For All Changes Posted Sucessful Đợi đến tất thay đổi đẩy lên máy chủ 15 Post Change Sucessful Thực đẩy liệu thay đổi lên máy chủ thành công Ở miêu tả việc xây dựng từ khóa dùng chung, hay từ khóa mức thấp “Add new ad group A of campaign C” Mã nguồn từ khóa sau: Arguments ${Ad Group Name} | ${Status} | ${Default max.CPC bid} | ${Max CPM bid} | ${CPA bid} | ${Mobile bid adjustment} ${Is Add Ad Group Button Exist}= Rn Wait For Element Exist ${Add Ad Group Button} ${Time Out} Run Keyword If ${Is Add Ad Group Button Exist}==False Fail Add ad group button is not exist Rn Click Element ${Add Ad Group Button} # Set name Rn Send Keys ${Ad Group Name} # set status Rn Send Keys {Tab} Run Keyword If '${Status}'=='Paused' Rn Send Keys {Down} # Default max CPC bid Rn Send Keys {Tab} Rn Send Keys ${Default max.CPC bid} # Max CPM bid Rn Send Keys {Tab} Rn Send Keys {Tab} Rn Send Keys ${Max CPM bid} # CPA bid Rn Send Keys {Tab} Rn Send Keys ${CPA bid} # Mobile bid adjustment Rn Send Keys {Tab} Rn Send Keys {Tab} Rn Send Keys ${Mobile bid adjustment} 18 Trong đó, biến cài đặt phần argument biến tương ứng với trường liệu ad group mà thay đổi liệu thành liệu tệp tin liệu kiểm thử ad group A: ${Ad Group Name} | ${Status} | ${Default max.CPC bid} | ${Max CPM bid} | ${CPA bid} | ${Mobile bid adjustment} Để thực bước thêm ad group truyền liệu từ tệp tin kiểm thử tự động vào trường tương ứng ad group, ta kiểm tra xem nút (Button) thêm liệu có tồn khơng Nếu có thực tiếp bước sau, khơng thơng báo lỗi “Fail Add ad group button is not exist “ Sau kiểm tra nút thêm liệu tồn bình thường, cần lựa chọn (click) nút để thực thêm ad group Rn Click Element ${Add Ad Group Button} Sau ad group xuất hiện, việc lại cần làm sửa đổi liệu ad group liệu liệu kiểm thử Lúc trỏ chuột trường ad group name, nên cần có bước truyền liệu # Set name Rn Send Keys ${Ad Group Name} Sau truyền liệu cho trường tên, cần sử dụng phím tab để di chuyển đến trường sau truyền liệu: # set status Rn Send Keys {Tab} Run Keyword If '${Status}'=='Paused' Rn Send Keys {Down} Tương tự với trường khác ad group Như ta tạo xong từ khóa “Add new ad group A of campaign C” Việc tạo từ khóa bậc cao từ từ khóa bậc thấp đơn giản, giống việc ghép bước lại với để tạo thành chuỗi hành động hồn chỉnh Như từ khóa “Select campaign C” tạo việc ghép hai từ khóa mức thấp “Search In Textfield Search” “Search In Data Grid View And Click” Arguments ${Campaign Name} # Search campaign in text field Search In Textfield Search # ${Campaign Name} Search In Data Grid View And Click Search In Data Grid View And Click ${Campaign Name} 3.5 Thử nghiệm đánh giá kết 19 Trong trình nhập liệu chỉnh sửa post changes, hệ thống cần phải xác thực liệu đầu vào để đảm tính đắn liệu Tất thao tác xuất tới tệp tin log Trong trường hợp có lỗi, kiểm thử viên kiểm tra log để xác định nguyên nhân lỗi khắc phục cố Thông tin log hiển thị lỗi trả tương ứng trường hợp kiểm thử có lỗi 3.5.1.Phương pháp đánh giá Nếu gọi thời gian thực toàn kiểm thử tay T1, thời gian thực toàn kiểm thử Robot framework T2 Khi suất đạt là: [Năng suất] = (|T1 – T2|)/T1 Dựa vào giá trị [Năng suất] xác định hiệu việc sử dụng kiểm thử tự động với Robot framework Bên cạnh việc đánh giá kiểm thử tự động kiểm thử thủ công mặt thời gian, ta thấy việc kiểm thử tự động kiểm thử thủ công cho kết kiểm thử cho liệu kiểm thử 3.5.2.Phân tích kết Thời gian thực kiểm thử từ chuẩn bị đến kết thúc kiểm thử “Post changes added new ad group sucessfully” tính sau: Bảng 7: Đánh giá kết kiểm thử tự động Thực tay (phút) Thực tự động(phút) Download liệu 5 Thao tác khác 2 Thao tác Khởi động Robot framework, khởi động remote library Cập nhật test case 2 Thực kiểm thử Điền kết kiểm thử tới file kiểm thử Báo cáo kết kiểm thử Tổng thời gian 21 Năng suất tăng: 18 14.29% Thống kê thực máy cho kiểm thử, việc “post changes/ get changes” hồn tồn phụ thuộc vào tình trạng mạng máy chủ Google Adword nên kiểm thử tự động giúp rút ngắn thời gian bước sửa liệu, so sánh liệu sau “get changes” tổng hợp báo cáo kết kiểm thử 20 Để nâng cao suất nữa, cần phải cấp cho kiểm thử viên nhiều máy tính để thực thi kiểm thử song song 21 CHƯƠNG KẾT LUẬN VÀ KHUYẾN NGHỊ Thơng qua việc tìm hiểu lý thuyết kiểm thử kiểm thử tự động, áp dụng lý thuyết vào việc xây dựng hệ thống kiểm thử tự động, luận văn đạt kết sau: Tổng hợp lý thuyết kiểm thử kiểm thử tự động, lợi ích thách thức kiểm thử tự động phương pháp luận tiếp cận thử động, bước cần phải làm muốn áp dụng tự động hóa kiểm thử Luận văn áp dụng lý thuyết để xây dựng kiểm thử tự động cho chức quan trọng phần mềm, góp phần giảm chi phí, nguồn lực thời gian thực kiểm thử Đó áp dụng khung Robotframework để xây dựng kiểm thử tự động Luận văn xây dựng từ khóa dùng chung từ khóa nghiệp vụ sử dụng để kiểm thử tự động cho chức phần mềm Ads Editor Các từ khóa dùng chung tái sử dụng kiểm thử chức khác Ads Editor Nội dung mã nguồn từ khóa thể phần phụ lục Thông qua luận văn này, nhận thấy kiểm thử tự động giải pháp tốt việc nâng cao suất chất lượng kiểm thử Đồng thời giúp nâng cao kỹ kiến thức cho kiểm thử viên Góp phần giảm thời gian phát triển sản phẩm mà đảm bảo chất lượng phần mềm Kiểm thử tự động thị trường tiềm không cho nhà đầu tư mà lĩnh vực khát nhân lực Việt Nam, từ mang đến nhiều hội cho kiểm thử viên bạn trẻ ngồi ghế nhà trường Tuy nhiên, để phát huy tốt khả kiểm thử phần mềm tự động, cần phải lựa chọn chức tự động hóa cách cẩn thận, hiệu Khơng phải chức tự động hóa mang lại hiệu Việc lựa chọn chức khơng làm giảm thiểu chi phí tự động hóa mà nâng cao hiệu tự động kiểm thử Kiểm thử tự động đem lại lợi ích qua q trình sử dụng lâu dài Do vậy, có ý định sử dụng kiểm thử tự động, cần phải khuyến khích việc sử dụng kiểm thử tự động, chế, sách để phát triển kiểm thử tự động Có vậy, kiểm thử tự động thực đem lại hiệu to lớn cho tổ chức Trong tương lai, tập trung nghiên cứu theo hướng sau: Thứ nhất, Áp dụng tự động hóa cho việc tạo kiểm thử, tạo liệu kiểm thử tự Thứ hai, áp dụng chức khác toàn kiểm thử liên quan đến kiểm động thử hồi qui bao gồm thay đổi nhiều liệu, thêm nhiều liệu, chức khác thao tác người dùng hệ thống 22 Thứ ba, tiếp tục nghiên cứu sửa đổi hệ thống kiểm thử tự động để kiểm thử tự động cho ứng dụng khác Có thể kế thừa mơ hình hệ thống kiểm thử tự động tại, nhiên cần phải sửa đổi phương pháp thiết lập test case kịch kiểm thử để phù hợp với ứng dụng hỗ trợ 23 ... not found Kiểm thử phần mềm hay kiểm thử kiểm thử phần mềm tự động phân chia thành kiểm thử tĩnh kiểm thử động, kiểm thử động bao gồm kiểm thử chức kiểm thử phi chức Mỗi loại kiểm thử đóng vai... thử tự động, tình hình nghiên cứu áp dụng kiểm thử tự động Chương II: Giải pháp kiểm thử tự động hướng liệu hướng từ khóa Từ nghiên cứu Chương I, chương giới thi u hai giải pháp kiểm thử tự động. .. mức cao cho khung kiểm thử tự động Tự động thực thi Là yêu cầu số kiểm thử tự động, thực thi kiểm thử kiểm thử chưa đủ, khung kiểm thử tự động phải có khả phân tích kết kiểm thử, kiểm soát lỗi xuất