Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 56 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
56
Dung lượng
1,92 MB
Nội dung
ĐẠ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 ĐẠ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 i LỜI CAM ĐOAN Tôi xin cam đoan luận văn công trình nghiên cứu cá nhân tôi, dƣới hƣớng dẫn trực tiếp từ phía TS Đặng Văn Hƣng 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 cuối đạt đƣợc luận văn thành trình nghiên cứu thân, chƣa đƣợc công bố dƣới hình thức Tôi xin chịu trách nhiệm nghiên cứu luận văn Tác giả Trần Thị Then ii LỜI CẢM ƠN Để hoàn thành đề tài luận văn , bên ca ̣nh sƣ̣ chủ đô ̣ng cố gắ ng của bản thân, đã nhâ ̣n đƣơ ̣c sƣ̣ ủng hô ̣ và giúp đỡ nhiê ̣t tiǹ h tƣ̀ các tâ ̣p thể , cá nhân trƣờng Qua đây, cho phép đƣơ ̣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 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 quá triǹ h ho ̣c tâ ̣p hoàn thành đề tài luận văn Đồng kính gửi lời cảm ơn đến tập thể thầy , cô giáo 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 , điề u đó là nề n tảng quí báu góp phần to lớn quá triǹ h vâ ̣n du ̣ng vào hoàn thiê ̣n luâ ̣n văn Cuố i cùng, 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 , sát cánh bên , đô ̣ng viên giúp yên tâm học tập kết thúc khóa học Xin chân thành cảm ơn! Tác giả Trần Thị Then iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN 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Ẽ vii PHẦN MỞ ĐẦU Tính cấp thiết mục tiêu đề tài Phƣơng pháp nghiên cƣ́u Bố cục luận văn CHƢƠNG TỔNG QUAN 1.1 Tầm quan trọng tính khả kiểm thử 1.2 Khái niệm tính khả kiểm thử 1.3 Các khái niệm liên quan tính khả kiểm thử 1.4 Một số yếu tố ảnh hƣớng đến tính khả kiểm thử 1.5 Một số độ đo tính khả kiểm thử 12 1.5.1 Độ đo cấu trúc hành vi 12 1.5.2 Độ đo luồng liệu 13 1.6 Kết chƣơng 14 iv CHƢƠNG KỸ THUẬT LÀM TĂNG TÍNH KHẢ KIỂM THỬ 15 2.1 Tính khả kiểm thử tài liệu đặc tả 15 2.2 Tính khả kiểm thử thiết kế kiến trúc 18 2.3 Tính khả kiểm thử thiết kế chi tiết 22 2.4 Kiểm thử xây dựng sẵn 22 2.5 Khung công cụ hỗ trợ kiểm thử 23 2.6 Tổng kết 27 sCHƢƠNG TÍNH KHẢ KIỂM THỬ CỦA ỨNG DỤNG TRÊN NỀN WEB 28 3.1 Đặc trƣng ứng dụng web 28 3.2 Tính khả kiểm thử ứng dụng web 31 3.2.1 Khía cạnh phần mềm 31 3.2.2 Tính khả kiểm thử cho phần máy chủ 32 3.2.3 Tính khả kiểm thử cho phần trình duyệt 35 KẾT LUẬN 44 TÀI LIỆU THAM KHẢO 45 v DANH MỤC CÁC KÝ HIỆU , THUẬT NGỮ, CHỮ VIẾT TẮT STT CHỮ VIẾT TẮT, THUẬT NGỮ, KÝ HIỆU Artifact GIẢI NGHĨA Khi phát triển phần mềm chúng ta không tạo phần chƣơng trình mà thƣờng tạo nhiều sản phẩm trung gian khác nhƣ tài liệu đặc tả yêu cầu, tài liệu thiết kế, mã nguồn chƣơng trình phần mềm Tiếng Anh dùng từ artifact để chung sản phẩm SOAP Simple Object Access Protocol – Giao thức truy cập đối tƣợng đơn giản Use case Ca sử dụng SRS Software Requirements Specification – Đặc tả yêu cầu phần mềm BDD Behavior Driven Development – Phát triển hƣớng hành vi BIT Built – in test – Kiểm thử xây dựng sẵn, kèm với cài đặt phần mềm vi DANH MỤC CÁC BẢNG Bảng Kịch thuộc tính chất lƣợng dạng bảng 19 Bảng Một số công cụ khung kiểm thử 26 Bảng Url có ngữ nghĩa 33 vii DANH MỤC CÁC HÌNH VẼ Hình Ví dụ file log Hình Chạy javac chế độ thƣờng chế độ verbose Hình Sáu yếu tố ảnh hƣởng đến tính khả kiểm thử 10 Hình Một kịch thuộc tính chất lƣợng cho tính khả kiểm thử 18 Hình Các chiến thuật khả kiểm thử 20 Hình Kiến trúc mô-đun với mã tự kiểm tra [13] 23 Hình Công cụ hỗ trợ lấy thông tin ứng dụng 24 Hình Kiến trúc chung ứng dụng web 29 Hình Mô hình tổng quát ứng dụng web 31 Hình 10 Ví dụ url 33 Hình 11 Màn hình SOAP UI 35 Hình 12 WebDriver 36 Hình 13 Ví dụ sử dụng Selenium với Java 36 Hình 14 Một đoạn mã HTML trang web asp.net 38 Hình 15 Một đoạn mã HTML trang web ruby-lang 39 viii 32 tính khả kiểm thử trừ phần giao diện đƣợc áp dụng cho phần máy chủ Ở phần trình duyệt, phần giao diện, tƣơng tác, nhƣng lại kết phần máy chủ tạo Do đặc tính kiểm thử kỹ thuật làm tăng tính kiểm thử cho phần giao diện áp dụng cho phần đầu phía máy chủ Nhƣ khía cạnh phần mềm, tính chất kỹ thuật khả kiểm thử nói chung cho phần mềm áp dụng cho ứng dụng web nhƣng tập trung theo hai thành phần máy chủ phần ứng dụng chạy trình duyệt Ở phần chúng ta phân tích đặc trƣng riêng từ cần chú ý số đặc thù chúng 3.2.2 Tính khả kiểm thử cho phần máy chủ Áp dụng lý thuyết Chƣơng 2, để tăng tính khả kiểm thử cho phần máy chủ, chúng ta cần: Tăng khả điều khiển máy chủ Tăng khả quan sát kết phía máy chủ 3.2.2.1 Khả điều khiển Để tăng khả điểu khiển máy chủ, chúng ta thấy thông tin từ phía trình duyệt gửi lên máy chủ yêu cầu (request) mà đặc trƣng url 11 Một ví dụ thƣờng gặp với url đƣợc mô tả Hình 10 Chúng ta thấy xâu ký tự có nhiều phần, đặc biệt phần cuối tham số gửi đến máy chủ 11 http://www.ietf.org/rfc/rfc3986.txt 33 Hình 10 Ví dụ url Vì url liệu để chúng ta kiểm thử độc lập phần máy chủ, chúng ta cần chú ý đến tính khả kiểm thử url Nếu url đƣợc sinh từ mã nguồn cách tùy ý gây khó khăn để quan sát kiểm soát Do url cần đƣợc thiết kế dễ đọc, ngắn gọn, dễ hiểu, dễ suy đƣợc kết mong đợi yêu cầu Các url dạng API đặc biệt đề cập Phần 2.1 Do cần thiết kế chú ý tính khả kiểm thử API cho url Chúng ta cần đặc tả cách rõ ràng, xác, không mơ hồ Tốt chúng ta thiết kế url mang ngữ nghĩa Url mang ngữ nghĩa (semantic url) url thân mang thông tin cần thiết, không cần phải tham số, gọi RESTful url Bảng sau so sánh url thông thƣờng url ngữ nghĩa Non-semantic URL Semantic URL http://example.com/index.php?page=name http://example.com/name http://example.com/index.php?page=consulting/marketing http://example.com/consulting/marketing http://example.com/products?category=2&pid=25 http://example.com/products/2/25 http://example.com/cgi-bin/feed.cgi?feed=news&frm=rss http://example.com/news.rss http://example.com/kb/index.php?cat=8&id=41 http://example.com/kb/8/41 http://example.com/index.php?mod=profiles&id=193 http://example.com/profiles/193 Bảng Url có ngữ nghĩa12 Tóm lại để tăng khả điều khiển máy chủ chúng ta cần chú ý thiết kế url, đặc biệt url mã nguồn sinh 12 http://en.wikipedia.org/wiki/Semantic_URL 34 3.2.2.2 Khả quan sát Để tăng khả quan sát phía máy chủ, file log phần mềm phục vụ phía máy chủ nhƣ apache13, nginx14 làm tốt việc Để tốt mức ứng dụng phía máy chủ, chúng ta cần ghi file log trình xử lý, tính toán phía máy chủ yêu cầu 3.2.2.3 Công cụ hỗ trợ Qua kinh nghiệm chúng thấy phần mềm SOAP UI 15 phần mềm hỗ trợ tốt kiểm thử máy chủ cách độc lập Hình 11 hình giao diện SOAP UI Tuy tên có giao thức SOAP nhƣng phần mềm hỗ trợ tích cực kiểm thử phần máy chủ nói chung, với ta không cần trình duyệt để hiển thị kiểm tra kết nhƣng đƣa lệnh kiểm tra tính đúng đắn kết Ngoài việc chạy, công cụ hỗ trợ tốt phần tƣơng tác để giúp ngƣời kiểm thử tạo ca kiểm thử thông qua việc khám phá trang web kết 13 http://www.apache.org/ http://nginx.org/ 15 http://www.soapui.org/ 14 35 Hình 11 Màn hình SOAP UI16 3.2.3 Tính khả kiểm thử cho phần trình duyệt Ở phần trình duyệt, chúng ta cần chú ý đến tính khả kiểm thử trang web viết ngôn ngữ HTML Để tăng tính khả kiểm thử cho trang web, ví dụ viết mã kiểm thử tự động, áp dụng lý thuyết Chƣơng 2, chúng ta cần: Tăng khả điều khiển trang web Tăng khả quan sát trang web 3.2.3.1 Công cụ hỗ trợ Khác với phần trƣớc, phần trình duyệt chúng muốn giới thiệu công cụ phổ biến Selenium17 Selenium cài đặt 16 17 http://en.wikipedia.org/wiki/SoapUI https://code.google.com/p/selenium/ 36 WebDriver18 WebDriver công cụ để tự động hóa kiểm thử ứng dụng web Cụ thể cung cấp giao diện lập trình ứng dụng giúp viết mã kiểm thử với trang web dễ dàng hơn, không phụ thuộc vào trình duyệt cụ thể (minh họa Hình 11), tƣơng tự nhƣ JUnit cho Java Hình 12 WebDriver Hình 13 đoạn mã Java sử dụng selenium để tƣơng tác với trang import import import import org.openqa.selenium.By; org.openqa.selenium.WebDriver; org.openqa.selenium.WebElement; org.openqa.selenium.htmlunit.HtmlUnitDriver; public class Example { public static void main(String[] args) { // Create a new instance of the html unit driver // Notice that the remainder of the code relies on the interface, // not the implementation WebDriver driver = new HtmlUnitDriver(); // And now use this to visit Google driver.get("http://www.google.com"); // Find the text input element by its name WebElement element = driver.findElement(By.name("q")); // Enter something to search for element.sendKeys("Cheese!"); 18 // Now submit the form WebDriver will find the form for us from the element https://w3c.github.io/webdriver/webdriver-spec.html element.submit(); // Check the title of the page System.out.println("Page title is: " + driver.getTitle()); driver.quit(); } } Hình 13 Ví dụ sử dụng Selenium với Java 37 web, thực hành động thay cho ngƣời kiểm thử phải làm tay Khi viết đoạn mã chúng ta thấy chúng ta cần điều khiển trang web, quan sát kết quả, thông tin trang web Do để tăng khả điểu khiển khả quan sát, tức tăng tính khả kiểm thử, ta phải chú ý đến việc giúp định vị phần tử trang web cách dễ dàng Ở ví dụ chúng ta có lệnh xác định phần tử có thuộc tính name “q” 3.2.3.2 Tăng khả điều khiển trang web Để tăng khả điều khiển trang web, chúng ta cần dễ dàng truy cập thành phần trang web Thông thƣờng trang HTML phức tạp đƣợc sinh từ mã nguồn, nên cấu trúc chúng nhiều đọc đƣợc Ví dụ nhƣ Hình 14 đoãn mã HTML trang web http://asp.net Có thể thấy việc đọc file để lấy đƣợc phần tử hình việc không dễ dàng 38 Hình 14 Một đoạn mã HTML trang web asp.net Trong đoạn mã trang https://www.ruby-lang.org/en/ lại dễ đọc nhƣ Hình 15 39 Hình 15 Một đoạn mã HTML trang web ruby-lang Nhƣ để tăng khả điều khiển trang web chúng ta cần chú ý đến mã HTML sinh từ ứng dụng máy chủ Các trang web thực chất máy trạng thái hữu hạn Khi thiết kế trang web, cần phân tích máy trạng thái để tăng tính khả kiểm thử trang web nhƣ giảm số trạng thái, giảm chu trình giảm tính không đơn định dãy truyền ứng 3.2.3.3 Tăng khả quan sát trang web Để tăng khả quan sát, dễ thấy, chúng ta cần thiết kế trang web cho phần thông tin trùng lặp có trùng lặp cần biết số lƣợng phần tử xuất trang web Từ việc quan sát kiểm tra kết dễ dàng, xác 40 3.3 Áp dụng đánh giá độ đo tính khả kiểm thử dự án cụ thể Theo mục tiêu ban đầu đặt ra, tác giả mong muốn thông qua nghiên cứu tạo sở cho việc áp dụng, nâng cao khả kiểm thử nhƣ độ tin cậy dự án mà tác giả tham gia Dựa nghiên cứu đạt đƣợc, tác giả thực đánh giá toàn yếu tố ảnh hƣởng đến tính khả kiểm thử kết đánh giá giúp cho tác giả có nhìn tổng thể cách thức để nâng cao khả kiểm thử hệ thống thay cách nhìn phiến diện việc cần áp dụng kiểm thử tự động trƣớc thực nghiên cứu 3.3.1 Đánh giá tính khả kiểm thử tài liệu mô tả Tài liệu chưa cung cấp đủ thông tin: Các dự án đơn vị phải tuân thủ quy trình phát triển tƣơng đối nghiêm ngặt, bắt buộc phải xây dựng tài liệu mô tả trƣớc cài đặt, sau xây dựng tài liệu có thực xem xét tài liệu qua nhiều vòng Tuy nhiên, giai đoạn viết tài liệu thƣờng không dự đoán đƣợc hết thông tin cần thiết làm đầu vào cho giai đoạn cài đặt, kiểm thử yêu cầu khách hàng có nhiều thay đổi, đó, tài liệu hoàn chỉnh giai đoạn đầu chƣa đủ đáp ứng cho giai đoạn cài đặt, kiểm thử Tài liệu chưa cập nhật theo cài đặt: Cũng lý trên, bƣớc cài đặt thƣờng thực theo trao đổi lập trình viên kỹ sƣ giải pháp, việc cập nhật tài liệu kỹ sƣ giải pháp thực sau Do đó, cài đặt tài liệu có sai khác định Điều làm cho việc truy vết, so sánh tài liệu, cài đặt sau gặp phải vấn đề không trùng khớp, nên theo tài liệu hay theo cài đặt Chưa sử dụng ngôn ngữ hình thức tài liệu thiết kế: Việc sử dụng ngôn ngữ hình thức thiết kế đƣợc nghiên cứu đánh giá mang lại nhiều lợi ích, giảm thiểu rủi ro cho hệ thống có ảnh hƣởng lớn đến kinh doanh Tuy nhiên, đơn vị tác giả công tác chƣa sử dụng cách mô tả Lý quen với cách làm cũ, theo lối mòn chƣa có kiến thức vững ngôn ngữ 41 3.3.2 Đánh giá tính khả kiểm thử cài đặt Bản cài đặt có tốt hay không, có khả kiểm thử tốt hay không phụ thuộc vào khả năng, trình độ lập trình viên Trong đơn vị đẩy mạnh công tác tuyển dụng nhân trẻ, tham gia với vai trò cộng tác viên để giảm bớt chi phí trả cho nhân công Điều dẫn đến rủi ro việc cài đặt không đảm bảo chất lƣợng nhân trƣờng thƣờng chƣa thật chuyên, sử dụng thành thạo ngôn ngữ lập trình cụ thể Đơn vị thành lập phận phụ trách công nghệ nhƣ đào tạo nội công nghệ Tuy nhiên, cán đào tạo vừa phụ trách công việc phát triển giải pháp vừa thực tìm hiểu đào tạo nên kiến thức giới hạn kinh nghiệm làm việc, chƣa theo sát cải tiến đơn vị cung cấp tảng ngôn ngữ lập trình nhƣ công cụ phát triển 3.3.3 Đánh giá tính khả kiểm thử Kiểm thử kèm theo Toàn tài liệu mô tả dự án chƣa đề cập đến vấn đề tự kiểm thử hệ thống nhƣ ràng buộc thiết kế, cài đặt nhằm đảm bảo khả tự kiểm tra hệ thống Đây vấn đề chung toàn dự án đơn vị Tuy nhiên, chƣa có giải pháp chí chƣa có kế hoạch để đƣa việc Kiểm thử kèm theo vào thực Một lý dẫn đến chƣa có kế hoạch thực Kiểm thử kèm theo sức ép thời gian sản phẩm Theo [15], để tiến hành Kiểm thử kèm theo cần tạo mã nguồn kiểm thử trƣớc tạo mã nguồn chƣơng trình Trong đó, để đảm bảo ba đến sáu tháng đƣa ý tƣởng sản phẩm kinh doanh, việc viết thêm mã nguồn đƣợc coi việc tốn thời gian Thêm nữa, sản phẩm từ lên ý tƣởng đến thành hình đƣa triển khai có luân chuyển ngƣời lớn, việc làm thuận tiện cho bƣớc tƣơng lai không đƣợc chú trọng Thông qua việc tìm hiểu việc xây dựng mã nguồn giúp hệ thống tự kiểm tra sau lần dịch lại Tác giả thật mong muốn tạo 42 tƣ đầy đủ cách để giảm thiểu rủi ro tƣơng lai thay nhìn vào lợi ích tạm thời, ngắn hạn trƣớc mắt 3.3.4 Đánh giá tính khả kiểm thử Công cụ kiểm thử Việc không đặt mục tiêu, kế hoạch từ đầu việc sử dụng Công cụ kiểm thử dẫn đến điều kiện chuẩn bị cho việc kiểm thử tự động gặp nhiều khó khăn chí không áp dụng kiểm thử tự động đƣợc Cụ thể tác giả thực kiểm thử tự động hệ thống tác giả tham gia công cụ Selenium gặp số vấn đề sau: - Thiết kế giao diện có nhiều lớp, ID không dẫn đến bắt thành phần giao diện không xác - Giao diện có nhiều thông tin, dẫn đến phải nhập nhiều số liệu trang làm cho việc bắt thành phần khó 3.3.5 Đánh giá tính khả kiểm thử Bộ kiểm thử Bộ kiểm thử tốt hay không, khoa học hay không, rõ ràng hay không dựa khả năng, kinh nghiệm phân tách, viết kỹ sƣ kiểm thử Trong nhân kiểm thử đa số sinh viên trƣờng, kinh nghiệm ỏi, việc học tập trƣờng chƣa chuyên biệt môn kiểm thử Do đó, tài liệu kiểm thử chƣa đồng chất lƣợng, tính khả kiểm thử chƣa cao Ngoài ra, tài liệu yêu cầu ngƣời dùng có thay đổi liên tục, Bộ kiểm thử thƣờng phải cập nhật theo Trong đó, liên kết tài liệu mô tả yêu cầu Bộ kiểm thử dừng lại liên kết tiêu đề chức lớn, chƣa có công cụ hỗ trợ để liên kết ý, yêu cầu nhỏ Do đó, việc đối chiếu thay đổi Bộ kiểm thử tài liệu mô tả yêu cầu khó truy lại 3.3.6 Đánh giá tính khả kiểm thử Quy trình kiểm thử Đây tiêu chí đƣợc đánh giá tƣơng đối tốt đơn vị kiểm thử viên đƣợc tham gia vào dự án từ sớm chiến lƣợc kiểm thử đƣợc xác 43 định rõ ràng giai đoạn đầu dự án Mặc dù mang nặng tính hình thức Sau đánh giá lại yếu tố tính khả kiểm thử dự án, ta thấy, để tăng tính khả kiểm thử dự án yếu tố quan trọng tài liệu mô tả, tài liệu thiết kế Các yêu cầu kiến trúc, tính tách biệt phân hệ, chức năng, rõ ràng tài liệu định hƣớng, tác động đến toàn yếu tố lại giúp tăng độ đo tính khả kiểm thử cho yếu tố lại Ngoài ra, để tăng tính khả kiểm thử hệ thống, cần có mục tiêu, kế hoạch thực từ giai đoạn thu thập yêu cầu từ khách hàng Việc nhắm đến mục tiêu giảm chi phí kiểm thử thông qua việc áp dụng kiểm thử tự động việc khó thực hệ thống không đảm bảo yếu tố chuẩn bị cho việc áp dụng kiểm thử tự động 44 KẾT LUẬN Qua kinh nghiệm làm việc nhận thấy công việc kiểm thử đơn vị thực chủ yếu thủ công, tốn kém, nhiều điểm chƣa hiệu Đó lý tìm hiểu đề tài tính khả kiểm thử Qua nghiên cứu, khảo sát, thấy vấn đề mẻ, đặc biệt Việt Nam Trên giới có tài liệu nghiên cứu tính khả kiểm thử cho lớp ứng dụng web Từ lý trên, luận văn cố gắng tổng hợp, trình bày khái niệm kiến thức liên quan tính khả kiểm thử hệ thống phần mềm tập trung vào nghiên cứu số kỹ thuật quan trọng, hiệu giúp làm tăng tính khả kiểm thử hệ thống phần mềm Tiếp vận dụng kiến thức tìm hiểu để đề xuất áp dụng cho ứng dụng web, phổ biến ngày Đóng góp luận văn Chƣơng Ở chƣơng này, dựa phân tích đặc thù ứng dụng web, luận văn chia kỹ thuật làm tăng tính khả kiểm thử vào hai thành phần quan trọng ứng dụng web phần máy chủ phần chạy trình duyệt ngƣời sử dụng Tiếp dựa đặc tính phần máy chủ phần chạy trình duyệt luận văn đề xuất vấn đề cần chú ý ứng dụng web Qua nghiên cứu triển khai áp dụng vào dự án làm việc bƣớc đầu kiến thức đƣợc đội phát triển ủng hộ Tuy nhiên cần thêm thời gian để đánh giá mức độ hiệu đề xuất Trong thời gian tới hy vọng dựa phản hồi việc áp dụng đề xuất nêu để hoàn thiện, cải tiến tiếp giúp ích cho công việc đơn vị mà phổ biến cộng đồng phát triển phần mềm web 45 TÀI LIỆU THAM KHẢO Tiếng Anh [1] E Mulo, Design for Testability in Software Systems, 2007: Master thesis [2] R V Binder, Testing Object-Oriented Systems: Models, Patterns, and Tools (ARP/AOD) Vol., 1999 [3] S Jungmayr, Dissertation Improving testability of object-oriented systems, 2003: [4] R V Binder, "Design for testability in object-oriented systems," Communications of the ACM, vol Volume 37 , no Issue 9, Sept 1994 [5] IEEE, 610-1990 - IEEE Standard Computer Dictionary: A Compilation of IEEE Standard Computer Glossaries, 1009 [6] ISO, ISO/IEC TR 9126-2 Software engineering Product quality Part 2: External metrics, 2003 [7] Y L Trao and C Robach, "Testability measurements for data flow designs.," METRICS'97 IEEE Computer Society, 1997 [8] M Wynne and A Hellesoy, The Cucumber Book: Behaviour-Driven Development for Testers and Developers, Pragmatic Bookshelf, 2012 [9] L Bass, P Clements and R Kazman, Software architecture in practice (3rd edition), Pearson, 2013 [10] E Gamma, R Helm, R Johnson and J Vlissides, Design patterns: elements of reusable object-oriented software, Addison-Wesley Professional, 1995 [11] B Baudry, Y L Traon and G Sunye, Testability analysis of a UML class diagram., In Proceedings of the 8th International Symposium on Software 46 Metrics (METRICS ‟02), pages 54–63 IEEE Computer Society., 2002 [12] T Jeon, S Lee and H Seung, "Increasing the Testability of Object-Oriented Frameworks with Built-in Tests," in Lecture Notes in Computer Science Volume 2402, 2002, pp 169-182, 2002 [13] C Mao, Y Lu and J Zhang, "Regression Testing for Component-based Software via Built-in Test Design," in SAC '07 Proceedings of the 2007 ACM symposium on Applied computing 1416-1421 , 2007 [14] A C W Finkelstein, A Savigni, E Kimmerstorfer and B Pröll, "Ubiquitous Web Application Development - A Framework for Understanding," in Proc of SCI2002, 2002 [15]Jon Galloway, Phil Haack, Scott Hanselman, Scott Guthrie, Rob Conery, "Professional ASP.NET MVC 2", 2010 [...]... 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. .. số độ đo của tính khả kiểm thử một phần của phần mềm Để giảm chi phí và tăng hiệu quả kiểm thử, việc đo đạc và tăng tính khả kiểm thử cần đƣợc thực hiện càng sớm càng tốt để tránh phải thiết kế lại hoặc cài đặt lại về sau Điều này có nghĩa chúng ta phải chú ý tính khả kiểm thử của tài liệu đặc tả đầu tiên, tiếp đó là phải chú ý đến tính khả kiểm thử của thiết kế, rồi mới đến tính khả kiểm thử mã nguồn,... chƣơng sau, chúng ta sẽ nghiên cứu cụ thể hơn về một trong những cách để đo đạc một cách định lƣợng tính khả kiểm thử của một hệ thống 1.3 Các khái niệm liên quan tính khả kiểm thử Khả năng kiểm soát và khả năng quan sát là hai khái niệm mấu chốt của tính khả kiểm thử [4] Để kiểm thử một thành phần, ta cần phải kiểm soát đƣợc đầu vào và quan sát đƣợc đầu ra Khả năng kiểm soát là khả năng điều khiển dễ... quan nhất về tính khả kiểm thử 1.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... tiêu kiểm thử không phải là đạt đƣợc một mức độ bao phủ kiểm thử hộp trắng, ví dụ bao phủ 100% dòng lệnh, thì mô tả giao diện không có ảnh hƣởng gì nhiều đến việc đạt mục tiêu Ngoài định nghĩa về tính khả kiểm thử trên có một số định nghĩa khác về tính khả kiếm thử Theo [4], tính khả kiểm thử là sự dễ dàng và chi phí tƣơng đối để tìm ra lỗi phần mềm Theo thuật ngữ của IEEE [5], tính khả kiểm thử gồm:... đ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 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ử. .. interval; 9 // Set the refresh interval 10 } Yếu tố về bộ kiểm thử: Bộ kiểm thử là một tập các ca kiểm thử và các bƣớc để thực hiện các ca kiểm thử đó Bộ kiểm thử hƣớng dẫn cách để dự đoán các kết quả kiểm thử, do đó nó giúp cho việc kiểm thử hệ thống dễ dàng hơn Bộ kiểm thử cũng đƣợc sử dụng lại mỗi khi kiểm thử hồi quy một hệ thống Nếu việc kiểm thử hồi quy này đƣợc thực hiện tự động một cách hiệu quả... động kiểm thử Vòng đời của hệ thống (giả sử rằng kiểm thử hồi quy và bảo trì là nhiệm vụ thƣờng xuyên) Tính khả kiểm thử rất quan trọng đối với kiểm thử viên và lập trình viên vì nó giúp họ kiểm soát đƣợc nỗ lực kiểm thử Khách hàng cũng sẽ đƣợc lợi ích nếu chất lƣợng sản phẩm cao hơn và tốc độ sửa lỗi nhanh hơn Những tính chất của tính khả kiểm thử nhƣ: xây dựng mã nguồn phục vụ kiểm thử tự động,... á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 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: ... xem xét mã nguồn, phân tích hình thức, tiêu chuẩn kiểm thử cao hơn Thay đổi các thành phần có tính khả kiểm thấp để tăng tính khả kiểm Tự tin hơn với các thành phần có tính khả kiểm cao Phân tích rủi ro đối với các thành phần có tính khả kiểm thấp để xác định các rủi ro của hệ thống cũng nhƣ tìm ra nguyên nhân gốc 1.2 Khái niệm tính khả kiểm thử Khi phát triển một phần mềm chúng ta không chỉ ... đến tính khả kiểm thử ứng dụng web 31 Hình Mô hình tổng quát ứng dụng web 3.2 Tính khả kiểm thử ứng dụng web Ứng dụng web phần mềm, nhiên chúng có đặc điểm riêng Chúng ta xem xét tính khả kiểm. .. CHƢƠNG TÍNH KHẢ KIỂM THỬ CỦA ỨNG DỤNG TRÊN NỀN WEB Chƣơng nghiên cứu số đặc điểm ứng dụng web để từ phân tích tính khả kiểm thử trình bày Chƣơng loại ứng dụng đặc thù Từ đƣa số đề xuất cần chú ý tính. .. trợ kiểm thử 23 2.6 Tổng kết 27 sCHƢƠNG TÍNH KHẢ KIỂM THỬ CỦA ỨNG DỤNG TRÊN NỀN WEB 28 3.1 Đặc trƣng ứng dụng web 28 3.2 Tính khả kiểm thử ứng dụng web