Nghiên cứu và xây dựng công cụ kiểm thử ứng dụng Web

66 687 2
Nghiên cứu và xây dựng công cụ kiểm thử ứng dụng Web

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ ĐOÀN MẠNH ĐỨC NGHIÊN CỨU VÀ XÂY DỰNG CÔNG CỤ KIỂM THỬ ỨNG DỤNG WEB LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội – 2014 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ ĐOÀN MẠNH ĐỨC NGHIÊN CỨU VÀ XÂY DỰNG CÔNG CỤ KIỂM THỬ ỨNG DỤNG WEB Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm Mã số: 60480103 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. VÕ ĐÌNH HIẾU Hà Nội – 2014 1 LỜI CẢM ƠN Luận văn Thạc sĩ này được thực hiện tại Đại học Công Nghệ - Đại học Quốc Gia Hà Nội dưới sự hướng dẫn của TS. Võ Đình Hiếu. Xin được gửi lời cảm ơn sâu sắc đến thầy về định hướng khoa học, liên tục quan tâm, tạo điều kiện thuận lợi trong suốt quá trình nghiên cứu hoàn thành luận văn này. Tôi xin được gửi lời cảm ơn đến các thầy, cô trong Bộ môn Công nghệ phần mềm cũng như Khoa Công nghệ thông tin đã mang lại cho tôi những kiến thức vô cùng quý giá và bổ ích trong quá trình theo học tại trường. Tôi cũng xin chân thành cảm ơn đến gia đình tôi, những sự quan tâm và động viên của bố, mẹ và em gái đã giúp tôi có thêm nghị lực, cố gắng để hoàn thành luận văn này. Cuối cùng, xin gửi lời cảm ơn chân thành nhất đến các bạn cùng học K19, các bạn đồng nghiệp đã giúp đỡ tôi trong suốt 2 năm học tập. Hà Nội, ngày 30 tháng 10 năm 2014 Đoàn Mạnh Đức 2 LỜI CAM ĐOAN Tôi xin cam đoan luận văn “Nghiên cứu và xây dựng công cụ kiểm thử ứng dụng Web” là công trình nghiên cứu của cá nhân tôi dưới sự hướng dẫn của TS. Võ Đình Hiếu, trung thực và không sao chép của tác giả khác. Trong toàn bộ nội dung nghiên cứu của luận văn, các vấn đề được trình bày đều là những tìm hiểu và nghiên cứu của chính cá nhân tôi hoặc là được trích dẫn từ các nguồn tài liệu có ghi tham khảo rõ ràng, hợp pháp. Tôi xin chịu mọi trách nhiệm và mọi hình thức kỷ luật theo quy định cho lời cam đoan này. Hà Nội, ngày 30 tháng 10 năm 2014 Đoàn Mạnh Đức 3 MỤC LỤC LỜI CẢM ƠN 1 LỜI CAM ĐOAN 2 MỤC LỤC 3 DANH SÁCH CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 5 DANH MỤC CÁC BẢNG 6 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 7 LỜI GIỚI THIỆU 9 CHƢƠNG 1 TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 11 1.1. Các khái niệm cơ bản 11 1.1.1. Khái niệm kiểm thử phần mềm 11 1.1.2. Mức kiểm thử 12 1.1.3. Kiểm thử tự động 18 1.1.4. Ứng dụng Web 19 1.2. Kỹ thuật kiểm thử tĩnh 20 1.2.1. Rà soát 20 1.2.2. Kiểm thử dòng dữ liệu tĩnh 21 1.3. Kỹ thuật kiểm thử động 23 1.3.1. Kiểm thử hàm 23 1.3.2. Kiểm thử dòng điều khiển 24 1.3.3. Kiểm thử dòng dữ liệu động 26 1.4. Các loại kiểm thử ứng dụng Web 29 CHƢƠNG 2 CÁC CÔNG CỤ KIỂM THỬ TỰ ĐỘNG CHO CÁC ỨNG DỤNG WEB 33 2.1. Công cụ kiểm thử tự động tĩnh 33 2.1.1. Công cụ kiểm thử ngôn ngữ lập trình phía máy chủ 33 2.1.2. Công cụ kiểm thử ngôn ngữ lập trình phía máy khách 35 2.2. Công cụ kiểm thử tự động động 37 2.2.1. Công cụ kiểm thử giao diện người dùng 37 2.2.2. Công cụ kiểm thử hàm 38 2.2.3. Công cụ kiểm thử khả năng chịu tải của ứng dụng Web 40 2.3. Thư viện hỗ trợ xây dựng công cụ kiểm thử tự động 41 CHƢƠNG 3 XÂY DỰNG CÔNG CỤ KIỂM THỬ TỰ ĐỘNG 44 3.1. Đặt vấn đề bài toán 44 4 3.2. Phân tích bài toán 45 3.3. Thỏa thuận khi sử dụng công cụ 50 3.4. Xây dựng công cụ 50 3.5. Ứng dụng công cụ vào thực tế 54 3.5.1. Ứng dụng vào form thành viên đăng nhập 54 3.5.2. Ứng dụng vào form đăng ký nhận bản tin 58 3.6. Đánh giá ưu nhược điểm của công cụ 60 CHƢƠNG 4 KẾT LUẬN 61 4.1. Tóm tắt kết quả làm được 61 4.2. Hạn chế 61 4.3. Hướng nghiên cứu 61 TÀI LIỆU THAM KHẢO 62 PHỤ LỤC 63 Phụ lục 1: Kết quả sau khi thực hiện kiểm thử form thành viên đăng nhập 63 Phụ lục 2: Kết quả sau khi thực hiện kiểm thử form đăng ký nhận bản tin 64 5 DANH SÁCH CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT API Application Programming Interface, giao diện lập trình ứng dụng. C-S Client-Server, máy khách – máy chủ. CSS Cascading Style Sheets, là ngôn ngữ được dùng để miêu tả cách trình bày các tài liệu viết bằng ngôn ngữ HTML và XHTML. HTML Hypertext Markup Language, ngôn ngữ đánh dấu tạo website. HTTP HyperText Transfer Protocol - Giao thức truyền tải siêu văn bản được dùng để trao đổi giữa máy khách và máy chủ ứng dụng Web. HTTPS Hypertext Transfer Protocol Secure, là sự kết hợp giữa giao thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao đổi thông tin một cách bảo mật trên Internet. STT Số thứ tự TDD Testing Driven Development, kỹ thuật phát triển phần mềm dựa trên kiểm thử. URL Uniform Resource Locator, đường dẫn tham chiếu tới tài nguyên trên Internet. 6 DANH MỤC CÁC BẢNG Bảng 1.1. Các điều kiện con kết hợp trong câu lệnh điều kiện 26 Bảng 1.2. Một số lỗi thường gặp trên ứng dụng Web 32 Bảng 2.1. Minh họa một số quy ước về lập trình của Microsoft. 34 Bảng 2.2. Hàm và từ khóa thường dùng của Selenium WebDriver 42 Bảng 3.1. Một số điều kiện đầu vào với input trong ứng dụng Web 47 Bảng 3.2. Một số dữ liệu đầu vào mẫu cho input ngày tháng Việt Nam 49 Bảng 3.3. Kết quả thực hiện kiểm thử bằng công cụ kiểm thử tự động với form đăng ký nhận bản tin 59 7 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1. Mã nguồn minh họa Driver và Stub 13 Hình 1.2. Kiểm thử hồi quy được thực hiện tại các mức kiểm thử khác nhau. 17 Hình 1.3. Các câu lệnh tuần tự có bất thường loại 1. 22 Hình 1.4. Câu lệnh có bất thường loại 2. 22 Hình 1.5. Sơ đồ chuyển trạng thái của một biến tương ứng với những bất thường về dòng dữ liệu. 23 Hình 1.6. Các biểu tượng xây dựng đồ thị dòng điều khiển. 25 Hình 1.7. Mã nguồn tính tổng các số từ 1 đến 9. 25 Hình 1.8. Đồ thị dòng điều khiển của mã nguồn hình 1.9 25 Hình 1.9. Ví dụ mã nguồn hàm ReturnAverage. 27 Hình 1.10. Đồ thị dòng dữ liệu minh họa hàm ReturnAverage. 28 Hình 2.1. Giao diện Fxcop 33 Hình 2.2. Mã nguồn được phân tích bởi Fxcop 34 Hình 2.3. Kết quả phân tích từ Fxcop 35 Hình 2.4. Giao diện công cụ JSLint 36 Hình 2.5. Mã nguồn được phân tích bởi JSLint 36 Hình 2.6. Kết quả phân tích từ JSLint 36 Hình 2.7. Giao diện Browser Shots 38 Hình 2.8. Giao diện người dùng trên các trình duyệt khác nhau. 38 Hình 2.9. Giao diện Selenium IDE. 38 Hình 2.10. Các thao tác xử lý được Selenium IDE ghi lại. 39 Hình 2.11. Mã HTML của ca kiểm thử được Selenium IDE lưu lại. 40 Hình 2.12. Giao diện công cụ loader.io 41 Hình 2.13. Kết quả khi thực thi kiểm thử với loader.io. 41 Hình 3.1. Form thêm người dùng trên ứng dụng Web. 44 Hình 3.2. Minh họa hộp thông báo đăng nhập thành công 46 Hình 3.3. Minh họa dòng thông báo từ ứng dụng Web đến người dùng 46 8 Hình 3.4. Các dữ liệu mẫu sinh ra từ kỹ thuật kiểm thử giá trị biên mạnh. 49 Hình 3.5. Giao diện công cụ kiểm thử tự động. 50 Hình 3.6. Thêm ô textbox chứa input. 51 Hình 3.7. Lựa chọn các điều kiện cần kiểm thử của input. 51 Hình 3.8. Lỗi xuất hiện được thông báo cho kiểm thử viên. 52 Hình 3.9. Kiểm tra tính hợp lệ của điều kiện của độ dài tối thiểu và tối đa. 52 Hình 3.10. Thông báo không tìm thấy phần tử có id như đã nhập. 53 Hình 3.11. Điều kiện và giá trị được sinh ra khi lựa chọn điều kiện cho input. 53 Hình 3.12. Mã nguồn hàm ngẫu nhiên sinh ra chuỗi ký tự có độ dài là 53 tham số truyền vào. 54 Hình 3.13. Kết quả sau khi thực hiện kiểm thử form. 54 Hình 3.14. Giao diện form thành viên đăng nhập. 55 Hình 3.15. Thông báo không được bỏ trống tên đăng nhập. 55 Hình 3.16. Thông báo tên đăng nhập không được nhỏ hơn 6 ký tự. 55 Hình 3.17. Thông báo sai tên đăng nhập hoặc mật khẩu. 55 Hình 3.18. Lấy id của input. 56 Hình 3.19. Điền thông tin form thành viên đăng nhập vào công cụ. 56 Hình 3.20. Chọn điều kiện cho các input. 57 Hình 3.21. Kết quả kiểm thử form thành viên đăng nhập. 57 Hình 3.22. Giao diện form đăng ký nhận bản tin. 58 Hình 3.23. Thông báo không được bỏ trống email. 58 Hình 3.24. Thông báo nhập sai định dạng email. 58 Hình 3.25. Điền thông tin form đăng ký nhận bản tin vào công cụ. 59 Hình 3.26. Chọn điều kiện cho input email. 59 [...]... các tìm hiểu về kiểm thử phần mềm như các khái niệm cơ bản về kiểm thử, các mức kiểm thử, ca kiểm thử, các kỹ thuật kiểm thử tĩnh và động Chương một cũng sẽ đưa ra khái niệm về ứng dụng Web, phân biệt ứng dụng Web với ứng dụng máy khách – máy chủ và các loại kiểm thử cần chú trọng cho ứng dụng Web Chương hai sẽ giới thiệu các công cụ kiểm thử tự động phổ biến hiện nay dành cho ứng dụng Web, ngoài việc... j, và o tất cả các cạnh (j; k) sao cho có một p-use của biến x tại (j; k) 1.4 Các loại kiểm thử ứng dụng Web Ứng dụng Web về bản chất cũng là một phần mềm, chính vì vậy các loại kiểm thử áp dụng cho phần mềm cũng áp dụng cho ứng dụng Web Tuy nhiên có một số loại kiểm thử cần chú trọng hơn trong ứng dụng Web như kiểm thử giao diện người dùng, kiểm thử hiệu năng và kiểm thử an ninh, bảo mật Kiểm thử. .. từ kiểm thử mức đơn vị đến kiểm thử mức chấp nhận và áp dụng kiểm thử hồi quy để thực hiện lại việc kiểm thử các mức kiểm thử đơn vị, tích hợp và hệ thống 17 Kiểm thử hồi quy Kiểm thử mức đơn vị Kiểm thử mức tích hợp Kiểm thử mức hệ thống Kiểm thử mức chấp nhận Hình 1.2 Kiểm thử hồi quy được thực hiện tại các mức kiểm thử khác nhau Ưu điểm của kiểm thử hồi quy là đảm bảo các chức năng vẫn hoạt động... giữa Ứng dụng Web và Website Về mặt hoạt động thì cả ứng dụng Web lẫn Website đều là các ứng dụng phần mềm được người dùng tương tác thông qua trình duyệt Web chính vì thế nên khái niệm ứng dụng Web và Website thường quy về chung làm một Tuy nhiên Website thiên về khuynh hướng chỉ truyền tải thông tin đến người dùng còn ứng dụng Web thiên về khuynh hướng tương tác qua lại giữa người dùng và ứng dụng. .. cung cấp thông tin và cách sử dụng từng công cụ, luận văn còn phân tích ưu nhược điểm của các công cụ giúp người đọc có một gợi ý trước khi lựa chọn công cụ phù hợp cho ứng dụng cần kiểm thử Xuất phát trên thực tế, mỗi ứng dụng Web đều có những yêu cầu đặc thù riêng biệt nên việc sử dụng các công cụ kiểm thử tự động đã có sẵn có thể không thỏa mãn hoặc phù hợp với việc kiểm thử các ứng dụng này Luận văn... hộp trắng là kiểm thử hộp thủy tinh, hộp trong suốt hay kiểm thử cấu trúc, phương pháp này thường được dùng ở mức kiểm thử đơn vị Kiểm thử hộp trắng cũng chia ra làm kiểm thử hộp trắng tĩnh và hộp trắng động Kiểm thử hộp trắng tĩnh chính là thực hiện các kỹ thuật rà soát còn kiểm thử hộp trắng động là sử dụng các kỹ thuật kiểm thử luồng điều khiển, kiểm thử luồng dữ liệu động và kiểm thử miền Ưu điểm... liệu đầu vào một cách hiệu quả thì các tiến trình xử lý tiếp theo mới được đảm bảo hoạt động tốt Một vấn đề nữa là hiện nay có rất nhiều công cụ hỗ trợ cho việc kiểm thử tự động ứng dụng Web, tuy nhiên hầu hết các công cụ chỉ hỗ trợ cho việc thực thi tự động các ca kiểm thử còn việc thiết kế các ca kiểm thử lại rất hạn chế Chương ba sẽ trình bày về ý tưởng, phân tích và xây dựng công cụ kiểm thử tự động... mỗi ca kiểm thử 1.1.3 Kiểm thử tự động Kiểm thử phần mềm là một công việc tốn nhiều thời gian và chi phí, thông thường thời gian dành cho việc kiểm thử chiếm hơn 50% tổng thời gian phát triển phần mềm Ngoài ra, để thực hiện kiểm thử đòi hỏi kiểm thử viên phải kiên nhẫn và tỉ mỉ, chính những điều này dẫn tới sự cần thiết của kiểm thử tự động Kiểm thử tự động sẽ thực hiện tự động các ca kiểm thử theo... ra Kiểm thử tự động giúp rút ngắn thời gian, chi phí, nhân lực cho dự án phần mềm Một ưu điểm nữa là kiểm thử tự động cung cấp cho chúng ta khả năng để thực hiện kiểm thử hồi quy với các chức năng mà mã nguồn liên tục thay đổi Tuy nhiên đối với một số ca 19 kiểm thử phức tạp thì không thể sử dụng kiểm thử tự động mà vẫn cần phải thực hiện kiểm thử thủ công 1.1.4 Ứng dụng Web Khái niệm ứng dụng Web Ứng. .. việc kiểm tra lại để đảm bảo rằng chương trình phần mềm vẫn hoạt động tốt, không phát sinh ra lỗi, kiểm thử hồi quy sẽ thực hiện việc này Kiểm thử hồi quy không phải là một mức kiểm thử giống như các mức đã nêu ở trên, nó có thể thực hiện lại các mức kiểm thử và sử dụng lại các ca kiểm thử đã được xây dựng Hình 1.2 minh họa việc thực hiện kiểm thử ở các mức lần lượt từ kiểm thử mức đơn vị đến kiểm thử . 2.2.1. Công cụ kiểm thử giao diện người dùng 37 2.2.2. Công cụ kiểm thử hàm 38 2.2.3. Công cụ kiểm thử khả năng chịu tải của ứng dụng Web 40 2.3. Thư viện hỗ trợ xây dựng công cụ kiểm thử tự. 1.3.1. Kiểm thử hàm 23 1.3.2. Kiểm thử dòng điều khiển 24 1.3.3. Kiểm thử dòng dữ liệu động 26 1.4. Các loại kiểm thử ứng dụng Web 29 CHƢƠNG 2 CÁC CÔNG CỤ KIỂM THỬ TỰ ĐỘNG CHO CÁC ỨNG DỤNG WEB. XÂY DỰNG CÔNG CỤ KIỂM THỬ TỰ ĐỘNG 44 3.1. Đặt vấn đề bài toán 44 4 3.2. Phân tích bài toán 45 3.3. Thỏa thuận khi sử dụng công cụ 50 3.4. Xây dựng công cụ 50 3.5. Ứng dụng công cụ vào

Ngày đăng: 11/07/2015, 10:17

Từ khóa liên quan

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

Tài liệu liên quan