ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN THỊ THEN NGHIÊN CỨU TÍNH KHẢ KIỂM THỬ CỦA ỨNG DỤNG TRÊN NỀN WEB LUẬN VĂN THẠC SỸ NGÀNH CÔNG NGHỆ THÔNG TIN Hà Nội - 2014 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN THỊ THEN NGHIÊN CỨU TÍNH KHẢ KIỂM THỬ CỦA ỨNG DỤNG TRÊN NỀN 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Ỹ NGÀNH CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. Đặng Văn Hƣng Hà Nội - 2014 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com i LỜI CAM ĐOAN Tôi xin cam đoan luận văn này là công trình nghiên cứu của cá nhân tôi, dƣới sự hƣớng dẫn trực tiếp từ phía TS. Các số liệu, nội dung tham khảo đƣợc trích dẫn có nguồn gốc rõ ràng, tuân thủ tôn trọng quyền tác giả. Kết quả cuối cùng đạt đƣợc của luận văn là thành quả của quá trình nghiên cứu của bản thân, chƣa từng đƣợc công bố dƣới bất kỳ hình thức nào.
Tôi xin chịu trách nhiệm về nghiên cứu trong luận văn. Tác giả Trần Thị Then LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ii LỜI CẢM ƠN Để hoàn thành đề tài luận văn này , bên ca ̣nh sƣ̣ chủ đô ̣ng cố gắ ng của bản thân, tôi đã nhâ ̣n đƣơ ̣c sƣ̣ ủng hô ̣ và giúp đỡ nhiê ̣t tiǹ h tƣ̀ các tâ ̣p thể , cá nhân trong và ngoài trƣờng. Qua đây, cho phép tôi đƣơ ̣c bày tỏ lòng cảm ơn sâu sắ c tới thầ y giáo hƣớng dẫn, TS. Đặng Văn Hƣng, giảng viên bộ môn Công nghệ phần mềm trƣờng Đại học công nghê ̣ – Đa ̣i ho ̣c Quố c gia Hà Nô ̣i, ngƣời đã trƣ̣c tiế p đô ̣ng viên, đinh ̣ hƣớng và hƣớng dẫn tâ ̣n tin ̀ h trong quá triǹ h ho ̣c tâ ̣p và hoàn thành đề tài luận văn này.
Đồng kính gửi lời cảm ơn đến tập thể các thầy , cô giáo trong trƣờng Đa ̣i ho ̣c công nghê ̣ – Đa ̣i ho ̣c Quố c gia Hà Nô ̣i đã trau dồ i kiế n thƣ́c cho tôi , điề u đó là nề n tảng quí báu góp phần to lớn trong quá triǹ h vâ ̣n du ̣ng vào hoàn thiê ̣n luâ ̣n văn. Cuố i cùng, tôi xin đƣơ ̣c gƣ̉i lòng biế t ơn sâu sắ c đế n gia điǹ h , bạn bè, đồ ng nghiê ̣p đã ta ̣o điề u kiê ̣n về vâ ̣t chấ t cũng nhƣ tinh thầ n , luôn sát cánh bên tôi , đô ̣ng viên giúp tôi yên tâm học tập và kết thúc khóa học. Xin chân thành cảm ơn! Tác giả Trần Thị Then LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com iii MỤC LỤC LỜI CAM ĐOAN. ii DANH MỤC CÁC KÝ HIỆU , THUẬT NGỮ, CHỮ VIẾT TẮT.
v DANH MỤC CÁC BẢNG. vi DANH MỤC CÁC HÌNH VẼ. 1 Tính cấp thiết và mục tiêu của đề tài. 1 Phƣơng pháp nghiên cƣ́u.
1 Bố cục của luận văn .1 Tầm quan trọng của tính khả kiểm thử .2 Khái niệm tính khả kiểm thử.3 Các khái niệm liên quan tính khả kiểm thử .4 Một số yếu tố ảnh hƣớng đến tính khả kiểm thử .5 Một số độ đo tính khả kiểm thử .1 Độ đo cấu trúc và hành vi.2 Độ đo luồng dữ liệu .6 Kết chƣơng. 14 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com iv CHƢƠNG 2. KỸ THUẬT LÀM TĂNG TÍNH KHẢ KIỂM THỬ.1 Tính khả kiểm thử của tài liệu đặc tả .2 Tính khả kiểm thử của thiết kế kiến trúc .3 Tính khả kiểm thử của thiết kế chi tiết.4 Kiểm thử xây dựng sẵn .5 Khung và công cụ hỗ trợ kiểm thử. TÍNH KHẢ KIỂM THỬ CỦA ỨNG DỤNG TRÊN NỀN WEB .1 Đặc trƣng chính của các ứng dụng trên nền web .2 Tính khả kiểm thử của các ứng dụng trên nền web .1 Khía cạnh là một phần mềm.2 Tính khả kiểm thử cho phần máy chủ .3 Tính khả kiểm thử cho phần trình duyệt.
44 TÀI LIỆU THAM KHẢO. 45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com v DANH MỤC CÁC KÝ HIỆU , THUẬT NGỮ, CHỮ VIẾT TẮT CHỮ VIẾT TẮT, THUẬT STT GIẢI NGHĨA NGỮ, KÝ HIỆU Khi phát triển một phần mềm chúng ta không chỉ tạo ra phần chƣơng trình mà thƣờng tạo ra nhiều sản phẩm trung gian khác nhƣ các tài liệu đặc tả 1 Artifact yêu cầu, tài liệu thiết kế, mã nguồn và chƣơng trình phần mềm. Tiếng Anh dùng từ artifact để chỉ chung các sản phẩm này Simple Object Access Protocol – Giao thức truy 2 SOAP cập đối tƣợng đơn giản 3 Use case Ca sử dụng Software Requirements Specification – Đặc tả 4 SRS yêu cầu phần mềm Behavior Driven Development – Phát triển 5 BDD hƣớng hành vi Built – in test – Kiểm thử xây dựng sẵn, đi kèm 6 BIT với cài đặt phần mềm LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com vi DANH MỤC CÁC BẢNG Bảng 1 Kịch bản thuộc tính chất lƣợng dạng bảng. 19 Bảng 2 Một số công cụ và khung kiểm thử.
26 Bảng 3 Url có ngữ nghĩa. 33 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com vii DANH MỤC CÁC HÌNH VẼ Hình 1 Ví dụ về một file log. 8 Hình 2 Chạy javac ở chế độ thƣờng và chế độ verbose. 9 Hình 3 Sáu yếu tố ảnh hƣởng đến tính khả kiểm thử.
10 Hình 4 Một kịch bản thuộc tính chất lƣợng cho tính khả kiểm thử. 18 Hình 5 Các chiến thuật khả kiểm thử. 20 Hình 6 Kiến trúc của mô-đun với mã tự kiểm tra [13]. 23 Hình 7 Công cụ hỗ trợ lấy thông tin về ứng dụng.
24 Hình 8 Kiến trúc chung của ứng dụng web. 29 Hình 9 Mô hình tổng quát của các ứng dụng trên nền web. 31 Hình 10 Ví dụ url. 33 Hình 11 Màn hình SOAP UI.
36 Hình 13 Ví dụ sử dụng Selenium với Java. 36 Hình 14 Một đoạn mã HTML của trang web asp. 38 Hình 15 Một đoạn mã HTML của trang web ruby-lang. 39 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com viii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 1 PHẦN MỞ ĐẦU Tính cấp thiết và mục tiêu của đề tài Sự phát triển và lan tỏa rộng rãi của Internet trên toàn cầu những năm gần đây là cơ sở đánh dấu cho sự bùng nổ mạnh mẽ của các ứng dụng đƣợc viết trên nền web.
Các ứng dụng này có sự tăng mạnh về số lƣợng cũng nhƣ doanh thu. Do đó để có sự canh tranh cao, các công ty phần mềm đang không ngừng tìm cách cải tiến chất lƣợng ứng dụng, giảm chi phí, đồng thời đẩy nhanh tốc độ xây dựng ứng dụng. Làm việc trong một đơn vị xây dựng phần mềm trong gần năm năm, tôi đã tham gia vào không ít dự án với vai trò là kỹ sƣ kiểm thử, trƣởng nhóm kiểm thử và nhận thấy nỗ lực kiểm thử và sửa lỗi của các dự án quá lớn (chiếm tới 60-70% nỗ lực cả dự án). Và các nỗ lực này tập trung nhiều nhất ở hai giai đoạn kiểm thử là kiểm thử chức năng và kiểm thử hồi quy.
Ngoài nỗ lực kiểm thử lớn, tác giả còn nhận thấy có nhiều lỗi tiềm ẩn mà trong quá trình kiểm thử rất khó hoặc gần nhƣ không có khả năng tìm ra. Thông qua đề tài này, tôi mong muốn tìm ra phƣơng pháp để việc kiểm thử dễ dàng thực hiện hơn, tránh đƣợc các lỗi tiềm ẩn nhằm giảm bớt các thiệt hại do lỗi không đƣợc phát hiện gây ra, đồng thời là cơ sở để giảm nỗ lực, chi phí cho việc kiểm thử. Phương pháp nghiên cứu Để đề tài đạt đƣợc kết quả nhƣ mục tiêu đặt ra, trong luận văn tôi đã đề xuất và áp dụng các phƣơng pháp nghiên cứu nhƣ sau: - Nghiên cứu tài liệu: Nghiên cứu các khái niệm về tính khả kiểm thử và tập trung vào các kỹ thuật làm tăng tính khả kiểm thử. Đây là mảng kiến thức mà các nghiên cứu trên thế giới vẫn còn hạn chế, các khái niệm còn chƣa LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2 có sự thống nhất do đó đòi hỏi nhiều kiến thức nền tảng để lựa chọn thông tin cho phù hợp với mục tiêu đặt ra ban đầu.
- Phân tích và áp dụng: Qua việc phân tích các đặc thù của ứng dụng web tôi đƣa ra một số chú ý để tăng tính khả kiểm thử cho lớp ứng dụng này. Các đề xuất này đƣợc trao đổi với các đồng nghiệp để nhận đƣợc góp ý từ đội phát triển phần mềm, gồm cả lập trình viên, kiểm thử viên. Bố cục của luận văn Phần còn lại của luận văn đƣợc trình bày theo các phần chính sau: Chƣơng 1: Tổng quan. Chƣơng này trình bày một số kiến thức cơ sở về tính khả kiểm thử nhƣ các khái niệm, các yếu tố ảnh hƣởng đến tính khả kiểm thử, lợi ích khi chúng ta chú ý đến tính khả kiểm thử.
Chƣơng 2: Kỹ thuật làm tăng tính khả kiểm thử. Chƣơng này trình bày một số khái niệm về tính khả kiểm thử thông qua các độ đo cấu trúc thiết kế và chƣơng trình. Chƣơng này cũng trình bày một số kỹ thuật điển hình nhằm tăng tính khả kiểm thử của một hệ thống phần mềm nói chung. Chƣơng 3: Tính khả kiểm thử của ứng dụng trên nền web.
Chƣơng này phân tích đặc điểm của ứng dụng web và đề xuất một số điểm quan trọng cần chú ý để tăng tính khả kiểm thử của các ứng dụng web nói chung. Kết luận: Tổng hợp các kết quả đạt đƣợc, tồn tại và hƣớng mở rộng của đề tài. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3 CHƢƠNG 1. TỔNG QUAN Trong chƣơng này, chúng ta sẽ xem xét các khái niệm cơ bản nhất khi nói về tính khả kiểm thử [1].
Bao gồm các khái niệm, tầm quan trọng, các yếu tố tác động đến tính khả kiểm thử. Mục tiêu là để cho ngƣời đọc có cái nhìn tổng quan nhất về tính khả kiểm thử.1 Tầm quan trọng của tính khả kiểm thử Tính khả kiểm của phần mềm là một trong những khái niệm quan trọng trong thiết kế và kiểm thử chƣơng trình và các thành phần phần mềm. Xây dựng các chƣơng trình và các thành phần với tính khả kiểm thử cao luôn luôn làm đơn giản hóa việc thực hiện kiểm thử, giảm chi phí kiểm thử và tăng chất lƣợng phần mềm. Chi phí kiểm thử đang chiếm khoảng 50% chi phí sản xuất một phần mềm.
Tăng tính khả kiểm thử là điều kiện cần thiết để giảm tận gốc chi phí kiểm thử phần mềm nói riêng và chi phí sản xuất phần mềm nói chung.