Tái cấu trúc mã Javascript trong kiểm thử tự động trên Selenium Framework

7 8 0
Tái cấu trúc mã Javascript trong kiểm thử tự động trên Selenium Framework

Đang tải... (xem toàn văn)

Thông tin tài liệu

Bài báo này đưa ra một cách tiếp cận mới của kịch bản kiểm thử tự động tạo mã JavaScript tái cấu trúc ứng dụng Web. Selenium là framework cốt lõi, cung cấp các API linh hoạt để kiểm thử tự động hóa.

Hà Thị Minh Phương 259 Tái cấu trúc mã Javascript kiểm thử tự động Selenium Framework Hà Thị Minh Phương Khoa Công nghệ Thông tin Truyền thông, Đại học Đà Nẵng htmphuong@sict.udn.vn Tóm tắt Kịch kiểm tra tự động đóng vai trị quan trọng kiểm thử tự động Kiểm thử tự động trở thành chủ đề nghiên cứu nóng ứng dụng Web để tăng chất lượng kiểm thử Để tái cấu trúc mã JavaScript ứng dụng Web thuận tiện hơn, cách tiếp cận tạo kịch tự động từ trường hợp kiểm thử - test case xác định giới thiệu báo Trước tiên, mơ tả trường hợp kiểm thử sử dụng định dạng XML Sau đó, Selenium framework - tảng hỗ trợ nhiều trình duyệt kiểm thử, phương pháp để chuyển đổi mô tả XML vào tập lệnh kiểm tra dựa khung Selenium đề xuất để phục vụ cho việc kiểm thử tự động ứng dụng Web Từ khóa: kiểm thử tự động, tái cấu trúc, XML, JavaScript, Selenium Đặt vấn đề Hiện ứng dụng Web phổ biến nhiều hơn ứng dụng Winform, trình duyệt Web dựa chuẩn HTML5 CSS3 Điều cho việc lập trình giao diện người dùng ứng dụng Web trở nên dễ dàng thuận lợi Mặc dù phát triển nhanh chóng cơng nghệ, chương trình lập trình tay thay tự động tạo ra, mã phải xếp lại, điều đòi hỏi cải thiện chất lượng phần mềm phải tăng lên Để phát sửa lỗi, kỹ sư có lựa chọn để thơng qua kịch kiểm thử sử dụng trình gỡ lỗi [1] Tuy nhiên, vấn đề tương thích nhiều trình duyệt gây phiền hà cho nhà phát triển người kiểm thử, thiết kế lập trình trang web kỹ thuật JavaScript với trình duyệt phải có phân tích HTML / CSS cơng cụ JavaScript Đây thách thức lớn đảm bảo chất lượng bảo trì phần mềm, cần thiết phải ứng dụng web để tái cấu trúc mã JavaScript xem xét việc chuyển ứng dụng web trình duyệt Martin Fowler [2] unit test – kiểm thử đơn vị điều kiện tiên cho việc tái cấu trúc ứng dụng Web Đối với việc tái cấu trúc mã, bước định xây dựng hệ thống unit test hồn chỉnh, khơng khơng có thay đổi hàm chương trình trước sau tái cấu trúc, khó khăn để đảm bảo cho lập trình hiệu Để đảm bảo chất lượng phần mềm tái cấu trúc, unit test phần tất yếu Tuy nhiên, functional function – kiểm thử chức hiệu có ích JavaScript unit test [3] Các lý để giải thích cho việc sau: Một unit test sử dụng mô-đun logic mà thuật toán thực Unit test chỉ giám sát kết kiểm tra đánh giá hay sai giá trị từ kết mong đợi, mã JavaScript thực hiệu trang Web Hai là, mã JavaScript nên tương thích với trình duyệt khác Một trang Web hiển thị trình duyệt khác Kết luận trước bắt đầu tái cấu trúc lại JavaScript, cần phải xây dựng tích hợp hệ thống kiểm thử chức cho ứng dụng Web 260 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA CITA 2017 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC” Bài viết tổ chức sau phần I đặt vấn đề, phần II giới thiệu kiểm thử ứng dụng Web tự động hóa dựa Selenium Phần III trình bày ngắn gọn trình tự động tạo tập lệnh chức Phần IV thảo luận thuật tốn chuyển đổi việc thay đổi biểu thức thống thành tập lệnh thực thi Phần V đưa kết luận cơng trình tương lai Giới thiệu kiểm thử tự động Công cụ kiểm thử tự động quan trọng kiểm thử tự động Các chức công cụ tương tự Bên cạnh việc ghi lại hành động người dùng, cần phải thực nhiều tính hơn, chẳng hạn thực kịch hành động tạo kịch kiểm thử Kiểm thử tự động ứng dụng Web sử dụng để kiểm tra hồi quy ngành công nghiệp để thực giảm chi phí [4] Rất nhiều công cụ kiểm tra tự động xuất cho ứng dụng Web, chẳng hạn QTP, Win Runner, Robot Silk Test [5] etc Trong lĩnh vực nghiên cứu MBT, Tuomas, Tommi Mika thực framework làm việc chế hướng theo từ khóa, chúng kết hợp mơ hình thử nghiệm trừu tượng với tập lệnh kiểm tra lần đầu tiên[7] Trên thực tế, họ tập trung vào điểm khác với ngữ cảnh kiểm thử mục đích ứng dụng Hình mơ tả cấu trúc framework kiểm thử tự động Selenium ứng dụng Web bao gồm Selenium Core, Selenium IDE, Selenium RC Selenium Web Driver Nó khơng mơ loạt hành động người dùng mà phát lại kiện mà người kiểm tra thực trình thử nghiệm Hình Kiến trúc Selenium framework 1) Selenium Core cơng cụ lõi tồn framework, thư viện chức năng, lập trình JavaScript Các mơ-đun khác Selenium phụ thuộc vào Trong kiến trúc trên, Selenium Core tảng mà đưa vào trang Web kiểm thử hướng dẫn cho test thực thi 2) Selenium IDE trình duyệt plugin Firefox Nó ghi lại thực lệnh Selenium Các lệnh Selenium dễ dàng chuyển đổi thành tất ngôn ngữ lập trình hỗ trợ, giúp người kiểm tra dễ dàng sửa đổi sử dụng lại trường hợp kiểm thử 3) Selenium RC, viết tắt Remote Control, khung hỗ trợ ngôn ngữ tiên tiến để gọi Selenium Core, gọi API Nó có máy chủ Selenium giám sát nhận hướng dẫn gửi Selenium Client Sau nhận lệnh, Selenium RC chuyển đổi hướng dẫn vào mã JavaScript cho trình duyệt khác Như thể hình 2, Hà Thị Minh Phương 261 Selenium RC gọi hàm lõi cách chèn mã vào trang Web Remote Control hỗ trợ tính toán lưới Hơn nữa, kiểm thử Selenium điều khiển Server cục bộ, lệnh song song gửi đến máy chủ sử dụng thuật toán song song bạn triển khai nhiều máy chủ Hình Hoạt động Selenium Remote Control 4) Selenium Web Driver phiên (v2.0), khác với Selenium Remote Control Vì trình điều khiển Web khơng đưa tập lệnh vào trang Web, việc gọi trình duyệt cần trợ giúp API địa [6] Nó khuyến cáo tài liệu thức tính ổn định hiệu tốt Selenium RC Ngồi ra, người kiểm tra từ bỏ sử dụng Selenium Server kiểm thử tự động mà khơng cần thuật tốn song song Định nghĩa mô tả cho test case 3.1 Định nghĩa cấu trúc XML cho Test Case Selenium framework có cú pháp riêng để xác định test case Mỗi Selenese biểu diễn cho bước kiểm tra danh sách chúng lưu trường hợp kiểm thử định dạng HTML Tuy nhiên, thông tin Selenese không đủ Cần thiết đề xuất cú pháp mạnh linh hoạt, kết hợp lợi định dạng liệu XML Selenese Nó gọi Extension Selenium Command Line (ESCL) XSelenese Các tính XML đưa giải pháp tốt Lý mở rộng biểu thức lệnh Selenium XML thay HTML sau - Sử dụng tổ hợp thẻ tham chiếu để mối quan hệ test case với việc tái sử dụng lại - Sử dụng lược đồ XML để chuẩn hóa kiểu liệu XML xác nhận hợp lệ tệp XML Hai tính làm người dùng tùy chỉnh cú pháp cho yêu cầu kiểm tra khác Và cần vài quy tắc cấu hình nên sửa đổi tái sử dụng test case mà hệ thống hệ hoạt động Lược đồ XML cho test case đơn xác định sau: Hình Cấu trúc Tag Test Case XML Root Element 262 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA CITA 2017 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC” Hình mơ tả chi tiết bước kiểm thử Mỗi nút bước phải chứa số thẻ selenese, sử dụng để mô tả vài hành động người dùng trước xác nhận kết đầu Lưu ý nút xác minh có thuộc tính có tên "ref" Nó liên kết đến nút khác xác định có hệ thống kiểm thử cho việc tái sử dụng Và nút selenese có nút nó, chúng tag command, tag locator giá trị tương ứng tag Ba nút tương ứng với ba phần Selenese 3.2 Định nghĩa cấu trúc XML cho Test Suites Bản đặc tả dựa XML test case có số khiếm khuyết làm để hiển thị mối quan hệ test case không tường minh Cụ thể, loại test case độc lập tách rời Đó ý tưởng tốt để xây dựng bảng đăng ký test suite, không nút xác thực tham chiếu khơng thể tìm thấy hệ thống kiểm thử Do đó, tệp XML khác sử dụng để hiển thị test suites Hình Cấu trúc XML Test Suites Trong hình 4, test suit chứa test case Nhưng giới thiệu tham số "reverse-case " Hình mơ tả test suite đơn giản cấu trúc XML thứ tự test case xếp nút test case Test suit chứa test case bao gồm “register”, “login”, “change password” “log out” Thuộc tính name tag test-case định danh Hình Test Suite XML Demo 3.3 Thực thi kịch kiểm thực tự động Hình Mơ hình lớp test case tạo Hà Thị Minh Phương 263 Làm để trích xuất liệu phân tích định dạng liệu tương ứng mã tương ứng Test case cần thiết để thể đơn vị kiểm thử nhỏ test suite phải phù hợp với phạm vi mã lập trình tạo Đối với trình bày phần trước, có ba lớp bên kịch kiểm thử tạo tự động điều hướng đến trang CPMISS, nhập thơng tin đăng nhập người dùng, nhấp vào nút đăng nhập sau xác minh ngữ cảnh sau đăng nhập Trong sơ đồ lớp hình trên, test case coi lớp độc lập kịch kiểm tra bước kiểm tra lớp bên Sử dụng lớp cải thiện khả đọc sử dụng lại mã lập trình "Test-suite.xml" "test-case.xml" Sơ đồ Lớp (Hình 6) cho biết hai tệp tin cấu hình XML Các đối tượng phân tích chuyển đổi thẻ XML thành mã kịch Các API Selenium RC dễ dàng Web Driver người kiểm thử muốn gọi đối tượng tĩnh, thực thi Selenese mà khơng có chuyển đổi Trong thực tế, cơng việc trích xuất đối số lệnh từ tệp cấu hình XML đặt chúng vào lớp test case theo thứ tự Sau phân tích tất tệp cấu hình test case test suite, mối quan hệ tham chiếu cần trích cấu trúc liệu test suite nút xác nhận XML Như demo hình 7, lớp "TestLoginCPMISS" mã test case thực thi tạo tất phương pháp Tất kịch test case tạo tự động cơng cụ có tính chung sau: - Tất lớp test case mở rộng từ lớp cha trừu tượng "DefaultTestCase" - Tất bước kiểm thử lớp bên bước có loại riêng thân để phân biệt dù có phải bước xác minh hay không - Mỗi bước xác minh lớp bên phải đăng ký lớp test suite - Khởi tạo vector kiểm thử bước thực theo thuộc tính id XML Bây mã giả kịch kiểm thử chuyển đổi tự động đưa sau: Thuật tốn 1: Phân tích XML liệu kịch Như thuật toán hiển thị trên, q trình phân tích cú pháp test case dựa XML vào kịch kiểm thử mã hố JAVA Nó chia thành ba phần Mỗi phần ánh xạ tới thẻ XML tag test case tệp Trước sau phân tích nội dung Selenese, xác thực trước xác thực sau đăng nhập phải xử lý truy vấn đối 264 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA CITA 2017 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC” tượng tham chiếu có thuộc tính tham chiếu Thuật toán cốt lõi việc tạo mã phân tíchdữ liệu lệnh từ XML tệp cấu hình chứa tất thơng tin kịch kiểm thử tự sinh Và sau đó, thơng tin tương ứng dịng lệnh Selenium trích xuất Nếu Selenese nhận được, Selenium cung cấp loạt API để chuyển đổi nội dung thành phần mã tương đồng Những điểm quan trọng tạo bảng lập đồ ánh xạ tìm kiếm nhanh chóng Ngồi tính này, nội dung bước chuyển đổi trực tiếp từ đối số lệnh Selenium, trích xuất trình đọc XML sử dụng DOM Sau đó, script cần phải chạy, số thư viện * jar JDK môi trường phải thiết lập Kết phân tích test case Login sau Hình Script Login Test Case tự động tạo Bây kịch kiểm thử chạy liên tục tạo báo cáo, từ kết bước thực hiển thị Trong danh sách hiển thị kết này, mục tương ứng với lệnh kiểm tra kết thực hiển thị bảng kết Bên cạnh đó, thời gian số dịng lập trình được trình bày giúp người kiểm thử đánh giá hiệu suất xác định nguyên nhân lỗi cách nhanh chóng Hình Kết kiểm tra Như kết hình cho thấy, trang kết kiểm tra tệp định dạng HTML ghi lại kết tập lệnh kiểm tra thực thi Tiêu đề tệp hiển thị thông tin ngữ cảnh kiểm tra, Hà Thị Minh Phương 265 bao gồm phiên trình duyệt Web, phiên Selenium thời gian chạy Dưới tiêu đề, mục danh sách log ghi thực Selenese Màu đánh dấu kết hiển thị OK Failure cho biết kết kịch kiểm thử 3.4 Đánh giá Selenium framework Selenium công cụ mã nguồn mở, chúng hoạt động môi trường tảng rộng lớn Điều tạo dễ dàng cho người mà chưa có kinh nghiệm hiểu nội dung thực Nó cầu nối nhóm cơng nghệ nhóm nghiệp vụ làm việc nhóm dự án kiểm thử Khả sử dụng lại mã nguồn điểm bật framework Selenium Chúng ta thực test case khác mà có bước thực thi tương tự Khi liệu kiểm thử thay đổi khơng cần phải làm việc lại với kịch Selenium mà viết Kết luận Bài báo đưa cách tiếp cận kịch kiểm thử tự động tạo mã JavaScript tái cấu trúc ứng dụng Web Selenium framework cốt lõi, cung cấp API linh hoạt để kiểm thử tự động hóa Mơ tả định dạng XML test case test suite nghiên cứu Chi phí kiểm tra việc tái cấu trúc mã JavaScript giảm tương tác thủ công Để nâng cao hiệu kiểm tra giảm can thiệp người kiểm thử, tập trung vào làm để tạo kịch kiểm thử tự động với mơ hình dựa kỹ thuật kiểm thử References S Roy Choudhary, D Zhao, H Versee, and A Orso Water: Web application test repair In Proc of the 1st Int Workshop on End-to-End Test Script Engineering, 2011 Martin Fowler, Kent Beck, John Brant, Refactoring: Improving the Design of Existing Code, U.S., 1999, pp 11-21 Antawan Holmes and Marc Kellogg, Automating Functional Tests Using Selenium, Proceedings of AGILE 2006 Conference, 2006 McMahon, C, History of a Large Test Automation Project Using Selenium, 2009 Zhenghua Feng, Ju Gao, Hongwei Zeng, Research of Web Application Test Automation, Computer Engineering and Design, 2010 Web Site, http://docs.seleniumhq.org/docs/ Tuomas Pajumen, Tommi Takala and Mika Katara Model-Based Testing a General Purpose Keyword-Driven Test Automation Framework International Conference on Software Testing Verification and Validation Workshops 2011 ... cảnh kiểm thử mục đích ứng dụng Hình mơ tả cấu trúc framework kiểm thử tự động Selenium ứng dụng Web bao gồm Selenium Core, Selenium IDE, Selenium RC Selenium Web Driver Nó khơng mơ loạt hành động. .. luận Bài báo đưa cách tiếp cận kịch kiểm thử tự động tạo mã JavaScript tái cấu trúc ứng dụng Web Selenium framework cốt lõi, cung cấp API linh hoạt để kiểm thử tự động hóa Mơ tả định dạng XML test... luận cơng trình tương lai Giới thiệu kiểm thử tự động Công cụ kiểm thử tự động quan trọng kiểm thử tự động Các chức công cụ tương tự Bên cạnh việc ghi lại hành động người dùng, cần phải thực nhiều

Ngày đăng: 17/12/2021, 09:06

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan