Kỹ thuật kiểm thử các ứng dụng web

  • Số trang: 124 |
  • Loại file: PDF |
  • Lượt xem: 28 |
  • Lượt tải: 0
tailieuonline

Đã đăng 27609 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ------------ NGUYỄN THỊ NGỌC HƯƠNG KỸ THUẬT KIỂM THỬ CÁC ỨNG DỤNG WEB LUẬN VĂN THẠC SĨ Hà nội – 2011 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ------------ NGUYỄN THỊ NGỌC HƯƠNG KỸ THUẬT KIỂM THỬ CÁC ỨNG DỤNG WEB Ngành : Công nghệ thông tin Chuyên ngành : Hệ thống thông tin Mã số : 60 48 05 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Nguyễn Ngọc Bình Hà nội – 2011 Luận văn Thạc sĩ 2011 2 Kỹ thuật kiểm thử trên các ứng dụng Web MỤC LỤC LỜI CAM ĐOAN ............................................................................................. 1 BẢNG KÝ HIỆU ............................................................................................... 6 BẢNG CÁC HÌNH VẼ ...................................................................................... 8 DANH MỤC CÁC BẢNG ............................................................................... 10 MỞ ĐẦU ......................................................................................................... 12 CHƢƠNG 1:CÁC KHÁI NIỆM,PHƢƠNG PHÁP VÀ CHIẾN LƢỢC KIỂM THỬ PHẦN MỀM, SO SÁNH KIỂM THỬ WEB VÀ KIỂM THỬ PHẦN MỀM ................................................................................................................ 14 1.1. Đặt vấn đề ........................................................................................................... 14 1.2. Các khái niệm cơ bản về kiểm thử phần mềm ...................................................... 14 1.2.1. Khái niệm kiểm thử phần mềm? .......................................................................... 14 1.2.2. Mục đích của kiểm thử ........................................................................................ 14 1.3. Điều kiện kiểm thử .............................................................................................. 15 1.3.1. Điều kiện liên quan đến ứng dụng ................................................................... 15 1.3.2. Điều kiện liên quan đến môi trƣờng................................................................. 15 1.4. Các giai đoạn kiểm thử phần mềm[18] ................................................................ 16 1.4.1. Kiểm thử đơn vị (Unit Test) ............................................................................ 16 1.4.2. Kiểm thử tích hợp(Integration test).................................................................. 16 1.4.3. Kiểm thử hệ thống(System Test) ..................................................................... 16 1.4.4. Kiểm thử chấp nhận sản phẩm-Acceptance test ............................................... 17 1.4.5. Kiểm thử hồi quy-Regression Testing ............................................................. 17 1.5. Các phƣơng pháp kiểm thử .................................................................................. 18 1.5.1. Kiểm thử tĩnh - Static testing .......................................................................... 18 1.5.2. Kiểm thử động – Dynamic testing[12] ............................................................. 18 1.6. Các chiến lƣợc kiểm thử ...................................................................................... 18 1.6.1. Kiểm thử hộp đen (Black-Box Testing) ........................................................... 18 1.6.2. Kiểm thử hộp trắng- White box testing ............................................................ 18 1.6.3. Kiểm thử hộp xám-Gray box testing ................................................................ 19 1.7. So sánh giữa kiểm thử Web và kiểm thử phần mềm............................................. 19 1.7.1. Khái niệm kiểm thử Website[16] ..................................................................... 20 1.7.2. So sánh sự khác nhau giữa các mô hình ứng dụng ........................................... 20 1.7.3. So sánh sự khác nhau giữa phần cứng và phần mềm ........................................ 22 1.7.4. Sự khác nhau giữa các hệ thống khách chủ truyền thống và Web .................... 24 1.7.5. Các điều khiển giao diện ngƣời dùng[13] ........................................................ 27 1.7.6. Các ứng dụng trên trình chủ ............................................................................ 29 1.7.7. Các vấn đề về khả năng tƣơng tác[8] ............................................................... 31 Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 3 Kỹ thuật kiểm thử trên các ứng dụng Web CHƢƠNG 2: TỔNG QUAN VỀ KỸ THUẬT, NGUYÊN TẮC CƠ BẢN CỦA VIỆC LẬP KẾ HOẠCH KIỂM THỬ VÀ CÁC THÀNH PHẦN ỨNG DỤNG WEB ................................................................................................................ 33 2.1. Tổng quan về kiểm thử các ứng dụng Web .......................................................... 33 2.2. Kiến trúc ứng dụng phân tán................................................................................ 33 2.2.1. Hệ thống khách –chủ truyền thống .................................................................. 33 2.2.2. Hệ thống khách- chủ trên Web ........................................................................ 34 2.3. Kiến trúc thành phần của ứng dụng Web[8] ......................................................... 37 2.3.1. Những thành phần phía trình chủ..................................................................... 37 2.3.2. Những thành phần dịch vụ cơ bản của ứng dụng ............................................. 37 2.3.3. Những chƣơng trình dựa trên mở rộng của trình chủ Web[6] ........................... 39 2.3.4. Những thành phần dịch vụ của ứng dụng khác ................................................ 41 2.3.5. Thành phần truyền thông ................................................................................. 44 2.4. Nguyên tắc cơ bản để lập kế hoạch kiểm thử ....................................................... 44 2.4.1. Kế hoạch kiểm thử .......................................................................................... 44 2.4.2. Tài liệu kế hoạch kiểm thử .............................................................................. 44 2.4.3. Các mẫu kế hoạch kểm thử (test plan templates) ............................................. 45 CHƢƠNG 3: TRÌNH BÀY CÁC KIỂU KIỂM THỬ TRONG KIỂM THỬ ỨNG DỤNG WEB VÀ CÁCH ỨNG DỤNG .................................................. 46 3.1. Kỹ thuật Kiểm thử giao diện ngƣời dùng ............................................................. 46 3.1.1. Kỹ thuật Kiểm thử thiết kế giao diện ngƣời dùng................................................. 46 3.1.2. Kỹ thuật kiểm thử khả năng sử dụng và truy cập ................................................. 62 3.1.3. Các vấn đề cần xem xét của kiểm thử .................................................................. 63 3.2. Kỹ thuật kiểm thử chức năng: .............................................................................. 64 3.2.1. Kiểm thử đơn giản chấp nhận chức năng ......................................................... 64 3.2.2. Kiểm thử chức năng hƣớng tác vụ ................................................................... 65 3.2.3. Kỹ thuật kiểm thử lỗi ép buộc ......................................................................... 66 3.2.4. Kỹ thuật kiểm thử điều kiện biên và phân tích lớp tƣơng đƣơng ...................... 66 3.2.5. Kỹ thuật kiểm thử dạng khám phá ................................................................... 66 3.3. Kỹ thuật kiểm thử phía trình chủ ......................................................................... 67 3.3.1. Kỹ thuật sử dụng các tệp log ........................................................................... 67 3.3.2. Kỹ thuật sử dụng các công cụ giám sát ............................................................ 68 3.3.3. Kỹ thuật tạo các giao diện kiểm thử và các trình điều khiển kiểm thử .............. 71 3.3.4. Kỹ thuật thiết lập lại trình chủ ......................................................................... 72 3.3.5. Kỹ thuật sử dụng script trong kiểm thử trình chủ ............................................. 72 3.4. Sử dụng script để kiểm thử .................................................................................. 72 3.4.1. Kỹ thuật quản trị hệ thống ............................................................................... 72 3.4.2. Kỹ thuật kiểm thử trực tiếp trình chủ ............................................................... 72 3.4.3. Kỹ thuật làm việc với ứng dụng độc lập với giao diện ..................................... 73 3.4.4. Kỹ thuật xem xét dữ liệu: (các tệp log và các báo cáo) .................................... 73 3.4.5. Kỹ thuật sử dụng script để hiểu rõ kết quả kiểm thử ........................................ 73 3.5. Kỹ thuật kiểm thử cơ sở dữ liệu ........................................................................... 73 3.5.1. Các phƣơng pháp kiểm thử hộp trắng .............................................................. 74 3.5.2. Các phƣơng pháp kiểm thử hộp đen ................................................................ 75 3.6. Kỹ thuật kiểm thử trợ giúp .................................................................................. 76 3.6.1. Các phƣơng pháp kiểm thử .............................................................................. 76 3.6.2. Những vấn đề cần xem xét về kiểm thử trợ giúp .............................................. 76 3.7. Kỹ thuật kiểm thử cài đặt .................................................................................... 78 Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 4 Kỹ thuật kiểm thử trên các ứng dụng Web 3.7.1. Các tiện ích kiểm thử chƣơng trình cài đặt, xóa cài đặt ................................... 78 3.7.2. Những vấn đề cần xem xét về kiểm thử ........................................................... 78 3.8. Kỹ thuật kiểm thử khả năng tƣơng thích và cấu hình ........................................... 82 3.8.1. So sánh kiểm thử cấu hình với kiểm thử khả năng tƣơng thích ........................ 82 3.8.2. Các vấn đề của kiểm thử cấu hình và khả năng tƣơng thích ............................ 82 3.8.3. Các vấn đề cần xem xét về kiểm thử................................................................ 83 3.9. Kỹ thuật kiểm thử bảo mật Web .......................................................................... 85 3.9.1. Kiểm thử yêu cầu và thiết kế ........................................................................... 86 3.9.2. Kiểm thử mã nguồn ứng dụng[9] ..................................................................... 86 3.9.3. Kiểm thử mã nguồn của hãng thứ ba ............................................................... 86 3.9.4. Kiểm thử xâm nhập (Penetration testing) ......................................................... 87 3.9.5. Kiểm thử sự bảo vệ ngƣời sử dụng qua các thiết lập của trình duyệt[14].......... 88 3.10. Kỹ thuật kiểm thử hiệu năng................................................................................ 88 3.10.1 Kỹ thuật tạo dữ liệu thử............................................................................... 89 3.10.2 Kỹ thuật thiết lập môi trƣờng kiểm thử ........................................................ 89 3.10.3 Kỹ thuật thiết lập các tham số của bộ kiểm thử ............................................ 89 CHƢƠNG 4: ÁP DỤNG KIỂM THỬ TRÊN ỨNG DỤNG WEB CỤ THỂ, ĐÁNH GIÁ VÀ ĐỀ XUẤT ............................................................................. 91 4.1. 4.2. 4.3. 4.3.1. 4.3.2. Kế hoạch kiểm thử Website Hand-made Flower Shop ......................................... 91 Mô phỏng 2 Use Case cụ thể ............................................................................. 101 Thực hiện kiểm thử ........................................................................................... 107 Kiểm thử bằng tay ............................................................................................. 107 Kiểm thử tự động bằng tool ............................................................................... 111 PHỤ LỤC ...................................................................................................... 114 A. Các công cụ kiểm thử Web .................................................................................... 116 A.1. Browershots .................................................................................................. 116 A.2. Superpreview ................................................................................................ 116 A.3. Cross brower testing ...................................................................................... 116 A.4. Spoon brower sandbox .................................................................................. 116 A.5. Browerseal .................................................................................................... 116 A.6. IE tester......................................................................................................... 116 A.7. Watchfire linkbot pro .................................................................................... 117 A.8. Parasoft web king .......................................................................................... 117 A.9. Macromedia homsite ..................................................................................... 117 A.10. Xenu‘s link sleuth ......................................................................................... 117 A.11. Dr.watson...................................................................................................... 117 A.12. Reasoning illuma .......................................................................................... 117 A.13. Test center .................................................................................................... 118 B. Các công cụ kiểm thử hiệu năng và kiểm thử tải Web ............................................ 118 B.1. Empirix eload................................................................................................ 118 B.2. Compuware qacenter performancedition ....................................................... 118 B.3. XML load testing .......................................................................................... 118 B.4. Mecury interactive application performance management ............................. 119 B.5. Segue silkperformers ..................................................................................... 119 B.6. Loadtesting.com portent ................................................................................ 119 B.7. Webpartner stress testing ............................................................................... 119 C. Công cụ kiểm tra tự động mã nguồn mở ................................................................ 119 D. Một số công cụ mã nguồn mở khác........................................................................ 120 Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 5 Kỹ thuật kiểm thử trên các ứng dụng Web KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ...................................................... 114 TÀI LIỆU THAM KHẢO .............................................................................. 122 Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 6 Kỹ thuật kiểm thử trên các ứng dụng Web BẢNG KÝ HIỆU Ký hiệu Thuật ngữ RAM Random Access Memory CPU UI LAN HTML Central Processing Unit User Interface Local area network Hypertext Markup Language XML EXtensible Markup Language DHTML Dynamic Hypertext Markup Language CSS SDI SDI- single document interface MDI Multiple document interface CORBA Common Object Request Broker Architecture DCOM Distributed Common Object Model API Application Programming Interface DLL Dynamic link library PDA Personal Digital Assistant SDK Soffware Development Kit JVM FPT HTTP RDBMS Java Virtual Machine File Transfer Protocol Hypertext Transfer Protocol Relational Database Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Ý nghĩa Mục tham chiếu Bộ nhớ truy cập ngẫu nhiên Bộ xử lý trung tâm Giao diện ngƣời dùng Mạng nội bộ Ngôn ngƣ̃ đánh dấ u siêu văn bản 1.3.2 Ngôn ngữ đánh dấu mở rộng 1.7.4 1.7.1 1.7.1 1.7.3 1.7.4 1.7.4 Giao diện đơn tài liếu 1.7.4 1.7.4 Giao diện đa tài liệu 1.7.4 Công nghệ chuyển đổi giao diện Mô hình đối tƣợng phân tán Giao diện lập trình ứng dụng Thƣ viện liên kết động Các thiết bị số cầm tay Bộ công cụ phát triển phần mềm Máy ảo Java 1.7.7 Giao thức truyền tập tin 2.3.2 Giao thức truyền tải siêu văn bản Trình chủ cơ sở dữ liệu 2.3.2 1.7.7 1.7.6 1.7.5 2.2.2 2.2.2 2.2.2 2.3.2 Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 SQL SOAP Management System Struct Query Language CGI Simple Object Access Protocol Common Gateway ASP Active Server Page JSP Java Server Page PERL Practical Extraction and Reporting Language Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng 7 Kỹ thuật kiểm thử trên các ứng dụng Web quan hệ Ngôn ngữ truy vấn có cấu trúc Giao thức truy cập đối tƣợng đơn giản 2.3.2 2.3.2 2.3.2 Ngôn ngữ máy chủ ASP(công nghệ Microsoft) Ngôn ngữ máy chủ JSP(công nghệ Sun) Công cụ soạn kịch bản 2.3.2 2.3.2 2.3.2 Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 8 Kỹ thuật kiểm thử trên các ứng dụng Web BẢNG CÁC HÌNH VẼ Số thứ tự 1 2 3 4 5 6 7 8 9 10 11 12 13 Hình Hình 1.1 Hình 1.2 Hình 1.3 Hình 1.4 Hình 1.5 Hình 1.6 Hình 1.7 Hình 1.5 Hình 1.6 Hình 1.7 Hình 1.8 Hình 1.9 Hình 1.10 14 15 Hình 1.11 Hình 1.12 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Hình 1.13 Hình 1.14 Hình 1.15 Hình 1.16 Hình 1.17 Hình 2.1 Hình 2.2 Hình 2.3 Hình 2.4 Hình 2.5 Hình 3.1 Hình 3.2 Hình 3.3 Hình 3.4 Hình 3.5 Mục tham chiếu Cấu hình hai máy Mục 1.3.2 Sơ đồ tranh chấp tài nguyên Mục 1.3.2 Cấu trúc kiểm thử hộp đen Mục 1.6.1 Cấu trúc kiểm thử hộp trắng Mục 1.6.2 Cấu trúc của đồ thị luồng Mục 1.6.2 Độ phức tạp Cyclomat Mục 1.6.2 Các kiểu vòng lặp Mục 1.6.2 Kiểm thử hộp xám Mục 1.6.3 Mô hình ứng dụng Mục 1.7.2 Các hệ thống máy tính lớn Mục 1.7.2 Các hệ thống máy tính cá nhân để bàn Mục 1.7.2 Các hệ thống khách – chủ Mục 1.7.2 Môi trƣờng phần cứng và phần mềm đƣợc Mục 1.7.3 điều khiển Một hệ thống khách –chủ trên mạng LAN Mục 1.7.3 Các trình khách truyền thống và trình Mục 1.7.4 khách Web Hai thể hiện của một ứng dụng Mục 1.7.4 Nhiều cửa sổ của ứng dụng Mục 1.7.4 dụng giao diện đa tài liệu Mục 1.7.4 Ứng dụng giao diện đơn tài liệu Mục 1.7.4 Khả năng tƣơng tác Mục 1.7.7 Hệ thống thin-client Mục 2.2.1 Hệ thống thick-client Mục 2.2.1 Hệ thống Web ba tầng Mục 2.2.2 Ứng dụng thin-client trên Web Mục 2.2.2 Ứng dụng thick-client trên Web Mục 2.2.2 Phép ẩn dụ dựa trên tài liệu Mục 3.1.1 Phép ẩn dụ dựa trên thiết bị Mục 3.1.1 Lựa chọn qua nút radio Mục 3.1.1 Lựa chọn qua trình đơn kéo xuống Mục 3.1.1 Các điều khiển HTML bao gồm một hộp Mục 3.1.1 văn bản chuẩn HTML và một hộp văn bản Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Mô tả Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 31 Hình 3.6 32 Hình 3.7 33 Hình 3.8 34 Hình 3.9 35 36 37 Hình 3.10 Hình 3.11 Hình 3.12 38 Hình 3.13 39 40 Hình 3.14 Hình 3.15 41 Hình 3.16 42 Hình 3.17 43 Hình 3.18 44 Hình 3.19 45 Hình 3.20 46 47 48 Hình 3.21 Hình 3.22 Hình 4.1 9 Kỹ thuật kiểm thử trên các ứng dụng Web cuộn Các điều khiển HTML bao gồm một trình đơn kéo xuống Các liên kết đồ họa, liên kết văn bản khi di chuyển chuột qua và trƣờng văn bản Đoạn mã HTML cho liên kết đồ họa, liên kết văn bản khi di chuyển chuột qua va liên kết văn bản Bảng, mẫu, và khung mô phỏng các điều khiển giao diện trong Windows Thông điệp lỗi dựa trên trình duyệt minh họa phản hồi phía trình chủ Không tƣơng thích của trình duyệt- Trình duyệt A Không tƣơng thích của trình duyệt- Trình duyệt B Tệp log ví dụ (System Monitor Utility )có thể ghi lại việc sử dụng tài nguyên hệ thống Windows Performance Monitor- ghi nhận các loại hoạt động phần cứng khác nhau Window Event Viewer – Tiện ích ghi nhận thông tin log Windows System Information- cho biết tài nguyên phần cứng và môi trƣờng phần mềm Terminal System Information- cho phép xem thông tin hệ thống Windows Task Manager- Xem ứng dụng hiện tại và tiến trình đang chạy, số liệu đo lƣờng sử dụng CPU và bộ nhớ Ví dụ giao diện kiểm thử Các điểm tƣơng tác Biểu đồ mô phỏng 2 use case Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Mục 3.1.1 Mục 3.1.1 Mục 3.1.1 Mục 3.1.1 Mục 3.1.1 Mục 3.1.1 Mục 3.1.1 Mục 3.1.1 Mục 3.3.1 Mục 3.1.3 Mục 3.3.1 Mục 3.3.1 Mục 3.3.1 Mục 3.3.1 Mục 3.3.1 Mục 3.3.1 Mục 3.5 Mục 4.2 Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 10 Kỹ thuật kiểm thử trên các ứng dụng Web DANH MỤC CÁC BẢNG Số thứ Bảng tự 1 Bảng 1.1 Mô tả Mục tham chiếu So sánh sự khác nhau giữa các mô hình Mục 1.7.2 ứng dụng So sánh sự khác nhau giữa phần cứng và Mục 1.7.3 phần mềm 2 Bảng 1.2 3 Bảng 1.3 So sánh Các ứng dụng phía trình khách Mục 1.7.4 4 Bảng 1.4 So sánh xử lý sự kiện Mục 1.7.4 5 Bảng 1.5 6 Bảng 1.6 7 Bảng 1.7 So sánh xử lý các cửa sổ và thể hiện của Mục 1.7.4 ứng dụng So sánh các ứng dụng trên trình chủ và các Mục 1.7.6 ứng dụng trên trình khách Các cấu hình trình chủ phân tán Mục 1.7.6 8 9 10 Bảng 3.1 Bảng 3.3 Bảng 3.4 11 Bảng 4.1 12 13 14 15 16 17 18 19 20 21 22 23 24 Bảng 4.2 Bảng 4.3 Bảng 4.4 Bảng 4.5 Bảng 4.6 Bảng 4.7 Bảng 4.8 Bảng 4.9 Bảng 4.10 Bảng 4.11 Bảng 4.12 Bảng 4.13 Bảng 4.14 25 Bảng 4.15 Đánh giá kinh nghiệm ngƣời dùng Các nút lệnh khẳng định và hủy bỏ Liệt kê một số phần tử giao diện ngƣời dùng cần đƣợc kiểm thử Danh sách các tài liệu đã có của dự án (có thể thêm/bớt các lọai tài liệu cho phù hợp) Rủi ro do kế hoạch Rủi ro do kinh phí và tài nguyên Rủi ro vận hành Rủi ro do kỹ thuật Kiểm thử Giai đoạn 1 Kiểm thử giai đoạn 2 Các công cụ sau sẽ đƣợc dùng cho dự án Môi trƣờng kiểm thử Nhân sự Hệ thống Các mốc thời gian kiểm thử - giai đoạn 1 Các mốc thời gian kiểm thử - giai đoạn 2 Ca sử dụng cho tác nhân ngƣời dùng internet Ca sử dụng cho tác nhân quản trị viên Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Mục 3.1.1 Mục 3.1.1 Mục 3.1.1 Mục 4.1 Mục 4.1 Mục 4.1 Mục 4.1 Mục 4.1 Mục 4.1 Mục 4.1 Mục 4.1 Mục 4.1 Mục 4.1 Mục 4.1 Mục 4.1 Mục 4.1 Mục 4.2 Mục 4.2 Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 26 Bảng 4.16 27 Bảng 4.17 11 Kỹ thuật kiểm thử trên các ứng dụng Web Các ca kiểm thử cho ngƣời dùng internet Mục 4.2 từ ca sử dụng tìm kiếm sản phẩm Các ca kiểm thử cho quản trị viên thêm Mục 4.2 sản phẩm Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 12 Kỹ thuật kiểm thử trên các ứng dụng Web MỞ ĐẦU Cùng với sự phát triển nhanh chóng của công nghệ thông tin nói chung và công nghệ phần mềm nói riêng, việc phát triển phần mềm ngày càng đƣợc hỗ trợ bởi nhiều công cụ tiên tiến, từ đó giúp cho việc phát triển phần mềm đỡ vất vả và có tính hiệu quả cao. Nhƣng, do tính phức tạp của phần mềm và những giới hạn về thời gian và chi phí, cho dù các hoạt động đảm bảo chất lƣợng phần mềm nói chung và kiểm thử nói riêng ngày càng chặt chẽ và khoa học vẫn không đảm bảo đƣợc các sản phẩm phần mềm đang đƣợc ứng dụng là không bị lỗi. Lỗi phần mềm tiềm ẩn luôn là một vấn đề khó chịu và gây những thiệt hại lớn. Chính vì vậy, chúng ta cần quan tâm tới vấn đề kiểm thử phần mềm nhƣ một vấn đề sống còn của sản phẩm phần mềm. Những năm gần đây, các tổ chức phát triển phần mềm tại Việt Nam đã bắt đầu nghiên cứu và quan tâm hơn đến lĩnh vực kiểm thử phần mềm. Tuy nhiên, vấn đề kiểm thử phần mềm tại nƣớc ta chƣa đƣợc phát triển. Nƣớc ta đang trong quá trình xây dựng một ngành công nghiệp phần mềm thì vấn đề kiểm thử phần mềm phải đƣợc đặt lên hàng đầu, nếu không, xác suất triển khai phần mềm thất bại là rất cao. Ngoài ra, các công ty phát triển phần mềm lớn và uy tín luôn đặt ra đòi hỏi là phần mềm phải có tài liệu kiểm thử đi kèm thì mới đƣợc chấp nhận. Lĩnh vực Web rất có tiềm năng mang lại lợi nhuận cao trong các dự án kinh doanh.Tuy nhiên, thách thức chính mà chúng ta gặp phải trong kiểm thử các ứng dụng web là nắm bắt đƣợc các công nghệ liên quan để làm chủ tốt hơn môi trƣờng. Chúng ta cần hiểu sự ảnh hƣởng của các công nghệ Web đối với sự tƣơng tác giữa các thành phần phần mềm, cũng nhƣ xem các hệ thống Web là một khối thống nhất. Kiểm thử viên cũng cần phải biết làm thế nào để thực hiện kiểm thử các ứng dụng Web. Điều này đòi hỏi kiểm thử viên phải hiểu biết các loại kiểm thử, các vấn đề của kiểm thử, các loại lỗi phần mềm thƣờng gặp và các rủi ro về chất lƣợng đặc trƣng đối với các ứng dụng Web. Nhƣ vậy chỉ có những hiểu biết vững chắc về kiểm thử phần mềm và những kiến thức thấu đáo về các công nghệ Web, chúng ta mới có thể kiểm thử tốt các hệ thống Web. Trong giới hạn luận văn, tôi tập chung trình bày tổng quan về kiểm thử phần mềm và kiểm thử các ứng dụng Web, các phƣơng pháp kiểm thử có thể ứng dụng trong kiểm thử úng dụng web, các công cụ kiểm thử và cách ứng dụng. Cấu trúc luận văn gồm các phần nhƣ sau: Phần mở đầu: Nội dung phần mở đầu chỉ ra vai trò và tầm quan trọng của kiểm thử phần mềm nói chung và kiểm thử Web nói riêng trên thế giới và Việt Nam Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 13 Kỹ thuật kiểm thử trên các ứng dụng Web Chƣơng 1: Trình bày các khái niệm, phƣơng pháp và chiến lƣợc kiểm thử phần mềm, so sánh kiểm thử ứng dụng Web và kiểm thử phần mềm. Chƣơng 2:Tổng quan về ứng dụng Web và các nền tảng kỹ thuật cũng nhƣ các nguyên tắc cơ bản của lập kế hoạch kiểm thử Chƣơng 3: Trình bày các kiểu kiểm thử, các công cụ kiểm thử có thể ứng dụng trong kiểm thử ứng dụng Web và cách ứng dụng Chƣơng 4: Áp dụng kiểm thử trên ứng dụng Web cụ thể, đánh giá và đề xuất Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 14 Kỹ thuật kiểm thử trên các ứng dụng Web CHƢƠNG 1:CÁC KHÁI NIỆM,PHƢƠNG PHÁP VÀ CHIẾN LƢỢC KIỂM THỬ PHẦN MỀM, SO SÁNH KIỂM THỬ WEB VÀ KIỂM THỬ PHẦN MỀM 1.1. Đặt vấn đề Kiểm thử mềm là một quy trình bắt buộc trong phát triển phần mềm. Các kỹ thuật kiểm thử áp dụng cho kiểm thử phần mềm là các kỹ thuật kiểm thử cơ bản nhƣ: kiểm thử chức năng (functionality test), kiểm thử ép buộc lỗi(forced-error test), phân tích điều kiện biên (boundary condition) và phân tích lớp tƣơng đƣơng (equivalence class analysis),v.v 1.2. Các khái niệm cơ bản về kiểm thử phần mềm 1.2.1. Khái niệm kiểm thử phần mềm? Kiểm thử phần mềm là hoạt động nhằm tìm kiếm, phát hiện các lỗi của phần mềm được kiểm thử về thiết kế, mã nguồn, chức năng, dữ liệu, bảo mật, thân thiện với người dùng, tài liệu kèm theo, môi trường hoạt động, tốc độ hoạt động, khả năng tải của hệ thống, thường được chia thành các nhóm là nhóm thuộc về chức năng, nhóm không thuộc chức năng, nhóm thuộc về cấu trúc và nhóm liên quan đến các thay đổi [16] Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìm lỗi. [14] Kiểm thử phần mềm là hoạt động khảo sát thực tiễn sản phẩm hay dịch vụ phần mềm trong đúng môi trường chúng dự định sẽ được triển khai nhằm cung cấp cho người có lợi ích liên quan những thông tin về chất lượng của sản phẩm hay dịch vụ phần mềm ấy. Mục đích của kiểm thử phần mềm là tìm ra các lỗi hay khiếm khuyết phần mềm nhằm đảm bảo hiệu quả hoạt động tối ưu của phần mềm trong nhiều ngành khác nhau. [15] 1.2.2. Mục đích của kiểm thử  Phát hiện lỗi.  Một trƣờng hợp kiểm thử tốt là trƣờng hợp có nhiều khả năng tìm thấy các lỗi chƣa từng bị phát hiện bao giờ.  Một kiểm thử thành công là kiểm thử phát hiện ra lỗi chƣa tìm thấy  Thiết kế các ca kiểm thử để tìm kiếm các lỗi/khuyết tật  Thực hiện chƣơng trình để tìm các lỗi/khuyết tật Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 15 Kỹ thuật kiểm thử trên các ứng dụng Web 1.3. Điều kiện kiểm thử Điều kiện kiểm thử là các nhân tố quan trọng trong kiểm thử ứng dụng Web. Điều kiện kiểm thử là các tình huống trong đó các ứng dụng cần đƣợc kiểm thử hoạt động. Có hai loại điều kiện kiểm thử đƣợc mô tả dƣới đây. 1.3.1. Điều kiện liên quan đến ứng dụng Điều kiện liên quan đến ứng dụng bao gồm việc chạy cùng một bộ kiểm thử từ vựng(trong MSWord) trong chế độ Normal View và sau đó chạy lại trong chế dộ Page View. Nếu một phép thử sinh ra lỗi, phép thử khác không sinh ra lỗi,thì bạn có thể kết luận có một điều kiện liên quan đến ứng dụng sinh ra lỗi 1.3.2. Điều kiện liên quan đến môi trƣờng Khi một lỗi sinh ra bởi các điều kiện bên ngoài ứng dụng cần đƣợc kiểm thử, các điều kiện đƣợc xem là liên quan đến môi trƣờng.Môi trƣờng tĩnh (lỗi về khả năng tƣơng thích và cấu hình):Một môi trƣờng hoạt động trong đó khả năng không tƣơng thích có thể tồn tại, bất kể các điều kiện biến đổi nhƣ tốc độ xử lý và dung lƣợng bộ nhớ Hình 1.1 Cấu hình hai máy[8] Môi trƣờng động(RAM, không gian đĩa, bộ nhớ, băng thông mạng…).Một môi trƣờng trong đó các thành phần tƣơng thích khác có thể tạo ra lỗi liên quan đến bộ nhớ hay các điều kiện về độ trễ. Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 16 Kỹ thuật kiểm thử trên các ứng dụng Web Hình 1.2 Sơ đồ tranh chấp tài nguyên [8] 1.4. Các giai đoạn kiểm thử phần mềm[18] 1.4.1. Kiểm thử đơn vị (Unit Test) Các phƣơng pháp thiết kế phần mềm đều chia phần mềm thành những mô- đun hoặc thành các chƣơng trình nhỏ có các dữ liệu vào và kết quả riêng. Chúng ta gọi các mô-đun hay chƣơng trình đó là các đơn vị phần mềm. Trên các đơn vị này chúng ta sẽ tiến hành kiểm thử đơn vị. Một khi đơn vị phần mềm đã đƣợc mã hoá, nghĩa là lập trình và hồ sơ kiểm thử đơn vị tƣơng ứng đã đƣợc hoàn thành thì kiểm thử đơn vị có thể đƣợc tiến hành. Thực hiện các trƣờng hợp kiểm thử đã đƣợc mô tả. Nếu có lỗi xảy ra cần phải chỉnh sửa lại đơn vị phần mềm. Thực hiện kiểm thử đơn vị lại. Nếu tất cả các trƣờng hợp đã đƣợc kiểm thử hết và thành công thì kiểm thử đơn vị sẽ kết thúc 1.4.2. Kiểm thử tích hợp(Integration test) Kiểm thử tích hợp kết hợp các thành phần của một ứng dụng và kiểm thử nhƣ một ứng dụng đã hoàn thành. Trong khi của kiểm thử đơn vị kiểm tra các thành phần và đơn vị riêng lẻ thì kiểm thử tích hợp kết hợp chúng lại với nhau và kiểm tra sự giao tiếp giữa chúng. 1.4.3. Kiểm thử hệ thống(System Test) Mục đích kiểm thử hệ thống là kiểm thử thiết kế và toàn bộ hệ thống (sau khi tích hợp) có thỏa mãn yêu cầu đặt ra hay không. Kiểm thử hệ thống bắt đầu khi tất cả các bộ phận của phần mềm đã đƣợc tích hợp thành công. Thông thƣờng loại kiểm thử này tốn rất nhiều công sức và thời gian. Trong nhiều trƣờng hợp, việc kiểm thử đòi hỏi một số thiết bị phụ trợ, phần mềm hoặc phần cứng đặc thù, đặc biệt là các ứng dụng thời gian thực, hệ thống phân bố, hoặc hệ thống nhúng. Ở mức độ hệ thống, ngƣời Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 17 Kỹ thuật kiểm thử trên các ứng dụng Web kiểm thử cũng tìm kiếm các lỗi, nhƣng trọng tâm là đánh giá về hoạt động, thao tác, sự tin cậy và các yêu cầu khác liên quan đến chất lƣợng của toàn hệ thống. 1.4.4. Kiểm thử chấp nhận sản phẩm-Acceptance test Thông thƣờng, sau giai đoạn kiểm thử hệ thống là kiểm thử chấp nhận sản phẩm, đƣợc khách hàng thực hiện (hoặc ủy quyền cho một nhóm thứ ba thực hiện). Mục đích của kiểm thử chấp nhận sản phẩm là để chứng minh phần mềm thỏa mãn tất cả yêu cầu của khách hàng và khách hàng chấp nhận sản phẩm (và trả tiền thanh toán hợp đồng). Kiểm thử chấp nhận sản phẩm có ý nghĩa hết sức quan trọng, mặc dù trong hầu hết mọi trƣờng hợp, các phép kiểm thử của kiểm thử hệ thống và kiểm thử chấp nhận sản phẩm gần nhƣ tƣơng tự, nhƣng bản chất và cách thức thực hiện lại rất khác biệt. Đối với những sản phẩm dành bán rộng rãi trên thị trƣờng cho nhiều ngƣời sử dụng, thông thƣờng sẽ thông qua hai loại kiểm thử gọi là kiểm thử Alpha – Alpha Test và kiểm thử Beta – Beta Test. Với Alpha Test, ngƣời dùng kiểm thử phần mềm ngay tại nơi phát triển phần mềm, lập trình viên sẽ ghi nhận các lỗi hoặc phản hồi, và lên kế hoạch sửa chữa. Với Beta Test, phần mềm sẽ đƣợc gửi tới cho ngƣời dùng để kiểm thử ngay trong môi trƣờng thực, lỗi hoặc phản hồi cũng sẽ gửi ngƣợc lại cho lập trình viên để sửa chữa. Thực tế cho thấy, nếu khách hàng không quan tâm và không tham gia vào quá trình phát triển phần mềm thì kết quả kiểm thử chấp nhận sản phẩm sẽ sai lệch rất lớn, mặc dù phần mềm đã trải qua tất cả các kiểm thử trƣớc đó. Sự sai lệch này liên quan đến việc hiểu sai yêu cầu cũng nhƣ sự mong chờ của khách hàng. Ví dụ đôi khi một phần mềm xuất sắc vƣợt qua các phép kiểm thử về chức năng thực hiện bởi nhóm thực hiện dự án, nhƣng khách hàng khi kiểm thử sau cùng vẫn thất vọng vì bố cục màn hình nghèo nàn, thao tác không tự nhiên, không theo tập quán sử dụng của khách hàng v.v... Gắn liền với giai đoạn kiểm thử chấp nhận sản phẩm thƣờng là một nhóm những dịch vụ và tài liệu đi kèm, phổ biến nhƣ hƣớng dẫn cài đặt, sử dụng v.v... Tất cả tài liệu đi kèm phải đƣợc cập nhật và kiểm thử chặt chẽ. 1.4.5. Kiểm thử hồi quy-Regression Testing Kiểm thử hồi quy là kiểm thử kiểm tra lại các phần mềm đã đƣợc kiểm tra trƣớc đó. Kiểm tra để phát hiện các hoạt động của phần mềm không bị thay dổi trừ khi có các yêu cầu thay đổi. Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 18 Kỹ thuật kiểm thử trên các ứng dụng Web 1.5. Các phƣơng pháp kiểm thử 1.5.1. Kiểm thử tĩnh - Static testing Quy về việc kiểm tra một số thứ mà nó không phải đang chạy, đang kiểm tra, đang xem lại. Đây là phƣơng pháp kiểm thử phần mềm cần phải duyệt lại các yêu cầu và các đặc tả bằng tay bằng cách sử dụng giấy, bút để kiểm tra logic, các chi tiết mà không cần chạy chƣơng trình. Cũng có thể tự động hóa kiểm thử tĩnh bằng cách thực hiện kiểm tra toàn bộ các chƣơng trình đƣợc phân tích bằng cách sử dụng một trình thông dịch hoặc biên dịch để xác nhận tính hợp lệ của chƣơng trình. 1.5.2. Kiểm thử động – Dynamic testing[12] Là quá trình kiểm thử, chạy và sử dụng phần mềm. Dùng máy để kiểm tra và chạy chƣơng trình để kiểm tra lỗi của chƣơng trình. Kiểm tra các hoạt động của câu lệnh.Chúng ta tiến hành biên dịch và chạy chƣơng trình sau đó nhập các giá trị đầu vào và kiểm tra xem dữ liệu đầu ra có đúng không. Có bốn phƣơng pháp kiểm thử động đó là kiểm thử đơn vị – Unit Tests, Kiểm thử tích hợp – Intergration Tests, Kiểm thử hệ thống – System Tests, và Kiểm thử chấp nhận sản phẩm – Acceptance Tests. 1.6. Các chiến lƣợc kiểm thử Các kỹ thuật kiểm thử phần mềm có thể đƣợc chia thành 3 loại: Kỹ thuật kiểm thử hộp đen (black-box testing), kỹ thuật kiểm thử hộp trắng (White-box testing), kỹ thuật kiểm thử hộp xám (Gray-box testing). 1.6.1. Kiểm thử hộp đen (Black-Box Testing) Kỹ thuật kiểm thử hộp đen (black-box testing): Là kỹ thuật kiểm thử giao diện, nó kiểm thử dựa trên giao diện của phần mềm đã có hay còn đƣợc gọi là kiểm thử mù (Blind testing) [1] IN PUT BLACK BOX OUT PUT Hình 1.3: Kiểm thử hộp đen 1.6.2. Kiểm thử hộp trắng- White box testing Kiểm thử hộp trắng là một kĩ thuật kiểm thử mà các kĩ sƣ phần mềm sử dụng để kiểm tra các đoạn mã làm việc theo đúng mong đợi.Kiểm thử hộp trắng là kiểm thử có Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội Luận văn Thạc sĩ 2011 19 Kỹ thuật kiểm thử trên các ứng dụng Web tập trung vào cấu trúc chƣơng trình để tìm ra các lỗi bên trong chƣơng trình (Theo IEEE 1990). Kiểm thử hộp trắng là kiểm thử cấu trúc, kiểm thử hộp rõ ràng(clear box testing), kiểm thử hộp kính(glass box testing) (Theo Beizer 1995). IN PUT(i) if(i<10) printf(“i=%d”,i); OUT PUT(i) Hình 1.4 : Kiểm thử hộp trắng 1.6.3. Kiểm thử hộp xám-Gray box testing Kiểm thử hộp xám là sự kết hợp giữa kiểm thử hộp đen và kiểm thử hộp trắng. Mục đích của việc kiểm thử này là tìm ra những nhƣợc điểm có liên quan tới lỗi thiết kế, hoặc lỗi thi hành của hệ thống. IN PUT GRAY BOX OUT PUT Hình 1.5: Kiểm thử hộp xám 1.7. So sánh giữa kiểm thử Web và kiểm thử phần mềm Công nghệ Web đòi hỏi những phƣơng pháp phân tích lỗi và kiểm thử mới, giả sử bạn đã có kinh nghiệm kiểm thử trong môi trƣờng truyền thống. Để thực hiện hiệu quả việc kiểm thử Web, chúng ta cần hiểu sự khác nhau về kiến trúc và công nghệ giữa kiểm thử truyền thống và kiểm thử Web. Khác với phần mềm, những ứng dụng dựa trên website cần sự kiểm thử tích cực, vì chúng luôn hoạt động nhƣ một hệ thống đa ngƣời dùng với sự hạn chế về dải thông. Cần triển khai một số kiểm thử nhƣ: Sự tích hợp, khả năng chịu tải, sự linh động và khả năng thích ứng, độ nét và khả năng thích ứng chéo với trình duyệt. Bạn cũng cần tiến hành kỹ lƣỡng cả về kiểm thử tự động và điều khiển. Ví dụ nhƣ việc kiểm thử đồ họa tải nhanh và tính toán thời gian tải rất quan trọng cho bất cứ website nào. Có những công cụ kiểm thử lý tƣởng đảm bảo chất lƣợng. Sau khi hoàn tất kiểm thử, thì nên tiến hành kiểm thử beta cần thiết cho các website và những ứng dụng dựa trên web. Khi website đã tải lên, việc kiểm thử cuối cùng mới đƣợc kiểm soát. Khoa Công Nghệ Thông Tin Học viên: Nguyễn Thị Ngọc Hƣơng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
- Xem thêm -