Nghiên cứu một số kỹ thuật kiểm thử phần mềm và xây dựng ứng dụng kiểm thử

71 471 0
Nghiên cứu một số kỹ thuật kiểm thử phần mềm và xây dựng ứng dụng kiểm thử

Đ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

MỤC LỤC MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG I:TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM 1.1 Công Nghệ Phần Mềm gì? 1.2 Các lĩnh vực Công Nghệ Phần Mềm .5 1.2.1 Các yêu cầu phần mềm (Software requirements) 1.2.2 Thiết kế phần mềm (Software design) 1.2.3 Xây dựng phần mềm (software construction) 1.2.4 Kiểm Thử Phần Mềm (software testing) 1.2.5 Bảo trì phần mềm (Software maintenance) 1.2.6 Quản lí cấu hình phần mềm (Software Configuration Management – SCM): 1.2.7 Quản lí Công Nghệ Phần Mềm (Software Engineering Management) 1.2.8 Quy trình Công Nghệ Phần Mềm (Software engineering process) .10 1.2.9 Các phương thức công cụ Công Nghệ Phần Mềm 10 1.2.10 Chất lượng phần mềm .10 CHƯƠNG 2: VẤN ĐỀ CHẤT LƯỢNG PHẦN MỀM VÀ KIỂM THỬ PHẦN MỀM 12 2.1 Sản phẩm phần mềm vấn đề kiểm thử phần mềm 12 2.1.1 Sản phẩm phần mềm gì? 12 2.1.2 Thế lỗi phần mềm? 13 2.1.3 Tại lỗi phần mềm xuất hiện? 14 2.1.4 Chi phí cho việc sữa lỗi 15 2.1.5 Kiểm thử phần mềm gì? 16 2.2 Chất lượng phần mềm .17 2.3 Qui trình kiểm thử phần mềm .19 CHƯƠNG 3: CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM 22 3.1 Nguyên tắc kiểm thử phần mềm 23 3.1.1 Mục tiêu kiểm thử 23 3.1.2 Luồng thông tin kiểm thử .23 3.1.3 3.2 Thiết kế trường hợp kiểm thử .24 Kỹ thuật kiểm thử hộp trắng (White-Box Testing) 26 3.2.1 Kiểm thử đường dẫn sở (Basic Path Testing) 28 3.2.2 Kiểm thử cấu trúc điều khiển 31 3.3 Kỹ thuật kiểm thử hộp đen (Black-Box Testing) 38 3.3.1 Phân hoạch tương đương 39 3.3.2 Phân tích giá trị biên (BVA - Boundary Value Analysis) 42 3.3.3 Kỹ thuật đồ thị nhân-quả (Cause-Effect Graph) 43 3.4 Kiểm thử đơn vị .44 3.4.1 Các lý kiểm thử đơn vị 45 3.4.2 Các thủ tục kiểm thử đơn vị 47 3.5 Kiểm thử tích hợp 48 3.5.1 Kiểm thử tích hợp từ xuống (Top-Down Integration) 49 3.5.2 Chiến lược kiểm thử từ lên (Bottom-Up Testing) 51 3.5.3 Kiểm thử hồi qui 52 3.5.4 Các ghi kiểm thử tích hợp .53 3.6 Kiểm thử tính hợp lệ 55 3.6.1 Điều kiện kiểm thử tính hợp lệ .55 3.6.2 Duyệt lại cấu hình 56 3.6.3 Kiểm thử Alpha Beta .56 3.7 Kiểm thử hệ thống 57 3.7.1 Kiểm thử khôi phục 58 3.7.2 Kiểm thử bảo mật .58 3.7.3 Kiểm thử ứng suất 59 3.7.4 Kiểm thử khả thực 60 CHƯƠNG 4: ỨNG DỤNG 61 KẾT LUẬN 69 DANH MỤC HÌNH 70 TÀI LIỆU THAM KHẢO 71 LỜI MỞ ĐẦU Hàng ngày thường nghe câu chuyện cố phần mềm máy tính hay lỗ hổng bảo mật an toàn thông tin như: Một ngân hàng đưa thông báo sai lệch cân thu chi cho tài khoản, Hỏa vệ tinh dò đường đột ngột biến mất, cửa hàng nhỏ in hóa đơn sai cho khách hàng hay tin tặc đột nhập lấy cắp hàng triệu số thẻ tín dụng Tại cố xảy ra? Phải người lập trình viên tạo chương trình làm việc rõ ràng không lỗi? Ngày với phát triển vũ bão Công nghệ thông tin nói chung Công Nghệ Phần Mềm nói riêng, việc phát triển phần mềm ngày hỗ trợ công cụ tiên tiến, yêu cầu khách hàng chức chương trình nhiều, liên kết, trao đổi, xử lí thông tin chéo chương trình ngày cao, cộng với giới hạn thời gian chi phí khiến cho chương trình ngày phức tạp việc đảm bảo chương trình chạy không bị lỗi dường điều Đó lí để “Kiểm Thử Phần Mềm” (Software Testing) đời Kiểm Thử Phần Mềm trình liên tục, xuyên suốt giai đoạn phát triển phần mềm để đảm bảo phần mềm thoả mãn yêu cầu thiết kế yêu cầu đáp ứng nhu cầu người dùng Các kỹ thuật Kiểm Thử Phần Mềm đã, nghiên cứu, việc Kiểm Thử Phần Mềm trở thành qui trình bắt buộc dự án phát triển phần mềm giới Kiểm Thử Phần Mềm hoạt động tốn kém, thời gian khó phát hết lỗi Vì vậy, việc Kiểm Thử Phần Mềm đòi hỏi phải có chiến lược phù hợp, kế hoạch hợp lý việc thực quản lí chặt chẽ Đề tài tập trung nghiên cứu, tìm hiểu, đánh giá kỹ thuật dùng Kiểm Thử Phần Mềm, vị trí Kiểm Thử Phần Mềm Công Nghệ Phần Mềm thiết kế chương trình tự động kiểm tra liên kết website Đề tài chia làm chương: Chương tổng quan Công Nghệ Phần Mềm Chương vấn đề chất lượng phần mềm kiểm thử phần mềm Chương phần đề tài, tập trung vào phân tích đánh giá kỹ thuật kiểm định phần mềm Cuối chương thiết kế chương trình kiểm thử CHƯƠNG I:TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM Trong chương I trình bày vấn đề lĩnh vực Công Nghệ Phần Mềm theo cách thống Viện Kĩ thuật Điện điện Tử IEEE, vai trò, phạm vi lĩnh vực để thấy vị trí Kiểm Thử Phần Mềm ngành Công Nghệ Phần Mềm 1.1 Công Nghệ Phần Mềm gì? Đã có nhiều định nghĩa Công Nghệ Phần Mềm, theo Ian Sommerville [8]: Công Nghệ Phần Mềm hoạt động bao gồm: đặc tả, phát triển, đưa vào hoạt động, bảo trì loại bỏ phần mềm cách có hệ thống Các kỹ sư phần mềm cung cấp kỹ thuật công cụ để phát triển hệ thống phần mềm Theo Stephen R Schach [9]: Công Nghệ Phần Mềm hoạt động nhằm đảm bảo chất lượng phần mềm, hoàn thành sản phầm thời hạn điều kiện giới hạn ngân sách làm hài lòng khách hàng Và theo từ điển tin học IEEE [10], Công Nghệ Phần Mềm việc áp dụng cách có hệ thống nguyên tắc, tiêu chuẩn đảm bảo chất lượng để phát triển, đưa vào hoạt động bảo trì sản phẩm phần mềm Như vậy, Công Nghệ Phần Mềm lĩnh vực nghiên cứu tin học, nhằm đưa nguyên lí, phương pháp, công cụ, cách tiếp cận phương tiện phục vụ cho việc thiết kế, cài đặt bảo trì sản phẩm phần mềm, đảm bảo tiêu chuẩn chất lượng 1.2 Các lĩnh vực Công Nghệ Phần Mềm Với mục đích: đưa nhìn tổng quan Công Nghệ Phần Mềm thống toàn giới; Tạo ranh giới để phân biệt Công Nghệ Phần Mềm với lĩnh vực khác ngành Công nghệ thông tin Khoa học máy tính, Quản lí dự án, Công nghệ máy tính hay Toán học; Miêu tả vấn đề Công Nghệ Phần Mềm; phạm vi Công Nghệ Phần Mềm; Cung cấp tảng đại cương cho chương trình phát triển, hệ thống chứng quyền Viện Kỹ thuật Điện Điện Tử (IEEE) chia Công Nghệ Phần Mềm thành 10 lĩnh vực [7] theo hình 1.1 Hình 1.1: Các lĩnh vực Công Nghệ Phần Mềm Trong phần đề tài trình bày khái quát chức năng, vai trò phạm vi lĩnh vực Công Nghệ Phần Mềm 1.2.1 Các yêu cầu phần mềm (Software requirements) Một yêu cầu phần mềm [7] thuộc tính thể phần mềm tạo để giải vấn đề Ví tự động hóa khâu người sử dụng, hỗ trợ doanh nghiệp định hay điều khiển thiết bị Cũng xem yêu cầu chức phải tồn hệ thống Chức người, quy trình doanh nghiệp thiết bị hệ thống khác nên yêu cầu phần mềm định nghĩa tổng hợp yêu cầu người sử dụng phận khác tổ chức từ môi trường nơi phần mềm sử dụng Cần phân biệt số loại yêu cầu: + Yêu cầu chức yêu cầu không chức năng: Yêu cầu chức yêu cầu dịch vụ mà hệ thống phải đáp ứng; Yêu cầu không chức ràng buộc mà hệ thống phải tuân theo + Yêu cầu hệ thống yêu cầu phần mềm: Hệ thống phối hợp hoạt động thành phần nhằm thực mục đích định trước, bao gồm thành phần như: phần cứng, phần mềm, người, thông tin, kỹ thuật, dịch vụ … Yêu cầu hệ thống yêu cầu cho toàn hệ thống Khi hệ thống chứa thành phần phần mềm yêu cầu phần mềm yêu cầu hệ thống 1.2.2 Thiết kế phần mềm (Software design) Thiết kế phần mềm [7] quy trình việc định nghĩa kiến trúc, thành phần, giao diện đặc tính khác hệ thống hay thành phần hệ thống kết quy trình Cơ thiết kế phần mềm: Cung cấp khái niệm làm rõ vai trò phạm vi thiết kế phần mềm Đó phái niệm chung, ngữ cảnh, quy trình kỹ thuật sử dụng thiết kế phần mềm Một số đặc trưng thiết kế phần mềm: Đó trùng lặp, điều khiển thao tác kiện, phân tán thành phần, lỗi khả chịu lỗi, tương tác biểu diễn cuối tính đồng liệu Kiến trúc cấu trúc phần mềm: Kiến trúc phần mềm miêu tả hệ thống thành phần hệ thống phần mềm mối liên hệ chúng Một số đặc tính kiến trúc phần mềm là: điểm nhìn, phong cách thiết kế, thiết kế mẫu tập hợp chương trình sử dụng lại Các thích thiết kế phần mềm: Bao gồm quy định, chuẩn dùng để miêu tả, giải thích thiết kế Các phương pháp chiến lược thiết kế: Phương pháp thiết kế phải đến miêu tả, sau phương pháp thiết kế hướng chức năng, phương pháp thiết kế hướng đối tượng, thiết kế cấu trúc liệu trung tâm thiết kế hướng thành phần 1.2.3 Xây dựng phần mềm (software construction) Xây dựng phần mềm [7] việc làm trực tiếp để tạo sản phẩm phần mềm bao gồm hoạt động viết mã chương trình, kiểm tra, kiểm thử đơn vị, kiểm thử tích hợp gỡ lỗi Xây dựng phần mềm bao gồm lĩnh vực nhỏ: Cơ xây dựng phần mềm: nguyên lí xây dựng phần mềm là: Giảm tới mức tối thiểu độ phức tạp; Dự đoán trước thay đổi; Tạo đầu mối để kiểm tra cuối tuân thủ theo chuẩn Quản lí xây dựng phần mềm: Quản lí xây dựng phần mềm bao gồm chủ đề nhỏ mô hình xây dựng, kế hoạch xây dựng đo lường xây dựng Các khía cạnh thực hành xây dựng phần mềm: thiết kế xây dựng, ngôn ngữ xây dựng, lập trình, kiểm thử, tái sử dụng, chất lượng xây dựng tích hợp 1.2.4 Kiểm Thử Phần Mềm (software testing) Các khái niệm, vai trò kỹ thuật Kiểm Thử Phần Mềm trình chi tiết Chương II đề tài 1.2.5 Bảo trì phần mềm (Software maintenance) Trong trình hoạt động số khuyết điểm bộc lộ, môi trường hoạt động thay đổi yêu cầu người dùng phát sinh đòi hỏi phải có trình bảo trì phần mềm [7] Quá trình bảo trì phần mềm bắt đầu thời gian bảo hành phần mềm kết thúc hay hỗ trợ sau cài đặt chuyển giao, hoạt động bảo trì phần mềm thực xuất sớm Bảo trì phần mềm định nghĩa hoạt động để đảm bảo hỗ trợ sản phẩm phần mềm hoạt động tốt Các hoạt động thực trước sau chuyển giao phần mềm, bao gồm: Lập kế hoạch cho hoạt động sau chuyển giao, cho hoạt động bảo trì yêu cầu hậu cần cho hoạt động chuyển giao Các hành động bảo trì phần mềm sau chuyển giao bao gồm việc sửa chữa phần mềm, đào tạo tạo kênh thông tin trao đổi hỗ trợ 1.2.6 Quản lí cấu hình phần mềm (Software Configuration Management – SCM): Một hệ thống tập thành phần tổ chức để thực chức hay tập chức Cấu hình hệ thống [7] đặc tính vật lí hay thuộc chức phần cứng, phần mềm hay tổng hợp phần mềm phần cứng Những thuộc tính phối hợp với theo thủ tục, cách để phục vụ cho mục đích định trước Quản lí cấu hình lĩnh vực áp dụng kỹ thuật, trực tiếp quản lí theo dõi hệ thống để xác định ghi nhận đặc tính vật lí chức cấu hình thành phần hệ thống, điều khiển thay đổi đặc tính đó, ghi nhận thông báo trình thay đổi trạng thái cài đặt, kiểm tra đảm bảo thỏa mãn với yêu cầu định trước 1.2.7 Quản lí Công Nghệ Phần Mềm (Software Engineering Management) Quản lí Công Nghệ Phần Mềm [7] định nghĩa ứng dụng quản lí hoạt động lập kế hoạch, phối hợp hoạt động, đo lường, giám sát, điều khiển thông báo để đảm bảo phát triển bảo trì phần mềm cách có hệ thống đảm bảo chất lượng Quản lí Công Nghệ Phần Mềm phân thành lĩnh vực nhỏ, phân thành hai hướng quản lí đánh giá Công Nghệ Phần Mềm Khởi tạo xác đinh phạm vi: bao gồm số công việc xác định cân đối yêu cầu, phân tích khả tạo quy trình cho việc kiểm tra, xét lại yêu cầu Lập kế hoạch dự án phần mềm: Bao gồm việc tạo quy trình, xác định khả chuyển giao, ảnh hưởng, lên kế hoạch ước lượng chi phí, cấp phát tài nguyên, quản lí rủi ro, quản lí chất lượng… Công bố dự án phần mềm: Đó thực thi kế hoạch, quản lí hợp đồng cung cấp, thực thi quy trình đo lường, quy trình quản lí, quy trình điều khiển thông báo Kiểm tra đánh giá: Xác định mức độ thỏa mãn yêu cầu, kiểm tra đánh giá hiệu Kết thúc: Xác đinh thời điểm kết thúc hành động kết thúc Đánh giá Công Nghệ Phần Mềm: Bao gồm việc khởi tạo giữ vững cam kết đánh giá, lập kế hoạch đánh giá, thực kế hoạch đanh giá 1.2.8 Quy trình Công Nghệ Phần Mềm (Software engineering process) Quy trình Công Nghệ Phần Mềm [7] phân thành hai mức, mức thứ bao gồm kĩ thuật hành động người quản trị sử dụng thực quy trình vòng đời phần mềm, trình phát triển, bảo trì thu hồi Mức thứ hai tập trung vào việc định nghĩa, cài đặt, quản lí, đánh giá, thay đổi cải tiến quy trình vòng đời phần mềm 1.2.9 Các phương thức công cụ Công Nghệ Phần Mềm Các công cụ phát triển phần mềm [7] sản phẩm, công cụ sử dụng để trợ giúp quy trình vòng đời phần mềm, hệ thống hóa Công Nghệ Phần Mềm Các phương thức Công Nghệ Phần Mềm [7] đảm bảo hoạt động thực thực cách có hệ thống, đảm bảo thành công 1.2.10 Chất lượng phần mềm Có nhiều định nghĩa khác chất lượng phần mềm [7] , Phil Crosby -1979 [33] định nghĩa chất lượng phần mềm làm theo yêu cầu người sử dụng, IBM hướng tới thị trường, coi chất lượng phần mềm hài lòng khách hàng Mới chất lượng phần mềm định nghĩa theo chuẩn ISO9001-00 mức độ đáp ứng đặc tính phần mềm 10 Nếu phần mềm phát triển sản phẩm mang tính phổ dụng để sử dụng cho nhiều khách hàng, việc thực kiểm thử chấp nhận với khách hàng không thực tế Đa số người xây dựng sản phẩm phần mềm sử dụng kiểm thử alpha beta để phát lỗi mà người dùng cuối tìm thấy  Kiểm thử alpha Kiểm thử alpha thực khách hàng vị trí người phát triển Phần mềm sử dụng môi trường tự nhiên với người phát triển “xem xét vai trò” người dùng ghi lại lỗi vấn đề sử dụng Kiểm thử alpha thực môi trường điều khiển  Kiểm thử beta Kiểm thử beta thực nhiều người dùng cuối phần mềm Không giống kiểm thử alpha, người phát triển nói chung mặt Tuy nhiên, kiểm thử beta ứng dụng “sống” phần mềm môi trường không điều khiển người phát triển Khách hàng ghi lại tất vấn đề gặp phải trình kiểm thử beta báo cáo cho người phát triển khoảng thời gian đặn Với thông tin phản hồi vấn đề báo cáo trình kiểm thử beta, người phát triển thay đổi chuẩn bị để phát hành sản phẩm phần mềm cho tất khách hàng 3.7 Kiểm thử hệ thống Phần mềm thành phần hệ thống lớn dựa máy tính Cuối cùng, phần mềm kết hợp chặt chẽ với thành phần khác hệ thống (như phần cứng, người, thông tin, ) dãy kiểm thử tích hợp tính hợp lệ hệ thống thực Các kiểm thử rơi phạm vi trình công nghệ phần mềm không thực đơn độc người phát triển phần mềm Tuy nhiên, bước thực trình thiết kế kiểm thử 57 phần mềm làm tăng khả tích hợp phần mềm thành công hệ thống lớn Kiểm thử hệ thống thực tế tập kiểm thử khác với mục đích thực đầy đủ hệ thống dựa máy tính Mặc dù kiểm thử có mục đích khác nhau, tất công việc nhằm kiểm tra tất thành phần hệ thống tích hợp cách hợp lý thực chức xác định 3.7.1 Kiểm thử khôi phục Nhiều hệ thống dựa máy tính cần khôi phục sai sót tiếp tục trình xử lý khoảng thời gian xác định trước Trong vài trường hợp, hệ thống phải hệ thống tha thứ lỗi, tức là, lỗi xử lý không làm cho toàn chức hệ thống bị ngưng trệ Trong trường hợp khác, thất bại hệ thống phải hiệu chỉnh khoảng thời gian xác định xuất thiệt hại nghiêm trọng kinh tế Kiểm thử khôi phục kiểm thử hệ thống có tác động đến phần mềm bị lỗi theo nhiều cách khác kiểm tra khôi phục thực hợp lý Nếu việc khôi phục tự động (được thực hệ thống) việc khởi tạo lại, kỹ thuật điểm kiểm soát, khôi phục liệu bắt đầu lại ước lượng cho xác Nếu việc khôi phục yêu cầu can thiệp người, thời gian trung bình để khôi phục ước lượng để xác định giới hạn chấp nhận 3.7.2 Kiểm thử bảo mật Bất kỳ hệ thống dựa máy tính có quản lý thông tin nhạy cảm dẫn đến hoạt động có khả gây thiệt hại (hoặc lợi ích) không cách cho cá nhân mục tiêu cho việc thâm nhập không bất hợp pháp Sự thâm nhập trải qua phạm vi rộng hoạt động: hacker cố gắng thâm nhập hệ thống để giải trí; nhân viên bất mãn cố gắng thâm nhập để 58 trả thù; cá nhân không lương thiện cố gắng thâm nhập để thu lợi cá nhân trái phép Kiểm thử tính bảo mật cố gắng kiểm tra kỹ thuật bảo vệ xây dựng hệ thống bảo vệ khỏi việc truy nhập bất hợp pháp Trong trình kiểm thử tính bảo mật, người kiểm thử đóng vai trò cá nhân muốn thâm nhập hệ thống Người kiểm thử cố gắng tìm mật thông qua phương tiện bên ngoài, công hệ thống với phần mềm thiết kế để bẻ gãy phòng thủ xây dựng; làm tê liệt hệ thống từ chối phục vụ cho yêu cầu khác; cố ý gây lỗi hệ thống thâm nhập hệ thống khôi phục; xem liệu không bảo mật để tìm chìa khoá thâm nhập hệ thống; … Với tài nguyên thời gian cho, hệ thống bảo mật dù tốt cuối bị thâm nhập trái phép Vai trò người thiết kế hệ thống làm cho chi phí thâm nhập lớn giá trị thông tin bị lấy cắp bị phá hủy 3.7.3 Kiểm thử ứng suất Trong suốt trình kiểm thử phần mềm trước, kỹ thuật hộp trắng hộp đen dẫn đến ước lượng triệt để chức khả thực chương trình chuẩn tắc Kiểm thử ứng suất thiết kế để đối chiếu chương trình với trạng thái không chuẩn tắc Kiểm thử ứng suất thực hệ thống với mục đich tìm giới hạn hệ thống thất bại yêu cầu tài nguyên với chất lượng, tần suất, số lượng không bình thường, chẳng hạn:  Các kiểm thử cụ thể thiết kế cho trường hợp tỷ lệ ngắt cao bình thường  Tốc độ liệu đầu vào tăng cường độ để xác định chức đáp ứng đầu vào 59  Thực trường hợp kiểm thử mà yêu cầu nhớ tối đa tài nguyên khác, thí dụ yêu cầu mở nhiều tập tin chiếm dụng đồng thời nhiều thiết bị ngoại vi  Thiết kế trường hợp kiểm thử gây nên thất bại hệ điều hành ảo  Thực trường hợp kiểm thử gây nên tìm kiếm mức cho liệu đĩa Một dạng khác kiểm thử ứng suất kỹ thuật gọi kiểm thử độ nhạy Trong hoàn cảnh (phổ biến thuật toán toán học) miền liệu nhỏ chứa biên liệu hợp lệ chương trình gây nên xử lý đặc biệt xử lý sai sót ảnh hưởng suy giảm khả thực Kiểm thử độ nhạy cố gắng để phát tổ hợp liệu lớp liệu hợp lệ mà gây nên xử lý không ổn định không hợp lệ 3.7.4 Kiểm thử khả thực Với hệ thống nhúng thời gian thực, phần mềm cung cấp chức yêu cầu không tuân theo yêu cầu khả thực không chấp nhận Kiểm thử khả thực thiết kế để kiểm thử khả thực theo thời gian thực phần mềm ngữ cảnh hệ thống tích hợp Kiểm thử khả thực xuất tất bước trình kiểm thử Thậm chí mức đơn vị, khả thực module riêng biệt đánh việc thực kiểm thử hộp trắng Tuy nhiên, điều không xảy thành phần hệ thống tích hợp đầy đủ mà khả thực hệ thống biết Các kiểm thử khả thực thường kết hợp với kiểm thử ứng suất thường yêu cầu trang bị phần cứng phần mềm Bằng việc cung cấp hệ thống, người kiểm thử phát trạng thái mà dẫn đến suy giảm thất bại hệ thống 60 CHƯƠNG 4: ỨNG DỤNG Với phát triển nhanh rộng internet nhiều ứng dụng phát triển, tiêu biểu ứng dụng Web Những ứng dụng cho phép chia sẻ thông tin số lượng lớn người dùng Tuy nhiên internet hệ thống tập trung, bao gồm số lượng lớn thành phần hệ thống đơn lẻ, với thuộc tính, hiệu khác Do ứng dụng web có số đặc tính như, phân tán, đa phương tiện, chạy nhiều hệ điều hành khác nhau, tương tác động … Và điều dẫn tới việc phát triển bảo trì ứng dụng web khó khăn so với ứng dụng truyền thống - Các trang Web ngày phổ biến toàn giới Nó chứng tỏ ưu hiệu so với loại văn khác - Về chất trang Web văn gồm kí tự, hình ảnh, âm siêu liên kết(hyperlink) Tuy nhiên trang Web có số khác biệt: - Không giống liệu lưu trữ độc lập, trang Web không bị bó buộc máy định Người ta liên kết với nhiều trang Web khác toàn giới thông qua mạng Internet  Có nhiều công cụ để sử dụng, rẻ tiền giúp người bình thường tạo trang Web cho Trên thực tế, có nhiều yếu tố khác cấu thành trang Web Vì vậy, công việc người kiểm tra là:  Các kí tự với kích thước, font chữ, màu sắc khác nhau, động tĩnh  Hình ảnh: động tĩnh  Siêu liên kết: dạng kí tự hình ảnh  Các mục quảng cáo  Drop-down selection box  Vùng xuất nhập liệu người dùng  Tính tương thích trình duyệt Web 61 Ví dụ phát triển ứng dụng để kiểm thử tự động website Trước mô tả thiết kế ứng dụng, phân tích số đặc điểm kiểm thử website Ngày nay, việc kiểm thử web chủ yếu tập trung vào kiểm thử chức để kiểm thử thành phần web để đảm bảo thực dúng chức mong muốn Kiểu kiểm thử thường bao gồm phân tích thành phần web kiểm tra phù hợp tiêu chuẩn đặc tả mở rộng Các kiểu kiểm thử chức bao gồm: - Kiểm thử cú pháp HTML: Kiểm tra file HTML để xác định phù hợp với đặc tả ngôn ngữ chuẩn tài liệu - Kiểm thử liên kết (links checking): Kiểm tra toàn website để phát liên kết bị lỗi - Kiểm thử khuôn dạng (form testing): Kiểm tra kiểu liệu vào, tên biến với vài khuôn dạng định trước - Kiểm thử giao dịch dạng “ điểm cuối tới điểm cuối”: Tương tự kiểm tra đường dẫn hoàn chỉnh kiểm thử luồng liệu - Kiểm thử thành phần Java: Java applets ứng dụng thực thi phía Client hay ứng dụng java khác chạy Server, kiểu ứng dụng cần phải kiểm thử tương tự ứng dụng khác Bên cạnh dạng kiểm thử chức trên, số dạng kiểm thử liên quan tới kĩ thuật kiểm thử sử dụng cho ứng dụng web - Kiểm thử tải: Kiểm tra để đảm bảo thời gian đáp ứng - Kiểm thử khả sử dụng: Tập trung vào việc kiểm tra xem thiết kế website dễ hay khó sử dụng - Kiểm thử browser: Kiểm tra tương thích với browsers khác Kỹ thuật Black-box Mỗi trang Web liên kết với vô số trang Web khác Vì công việc bạn lập sơ đồ trang Web xem độc lập, sau bạn xác định mối liên kết chúng với Rất 62 may mắn hầu hết trang Web gồm câu, hình ảnh, liên kết nên không khó khăn để kiểm tra Câu văn Công việc tương tự kiểm tra tài liệu phần mêm: cú pháp, thuật ngữ, nội dung, chủ đề Các siêu liên kết Nó dạng câu văn hình ảnh Bạn phải kiểm tra xem có liên kết với trang đích có hiển thị hay không Các siêu liên kết phải thể rõ ràng Thông thường chúng gạch biểu tượng chuột chuyển sang hình bàn tay vị trí siêu liên kết Nếu siêu liên kết có chức mở email, bạn phải điền đầy đủ thông tin, gửi kiểm tra xem có gửi không Các hình ảnh Các lỗi hình ảnh thường phát dễ dàng nhờ phương pháp hộp đen Nếu có hình ảnh bất kỳbị lỗi, không lên có thông báo lỗi Thông thường câu văn hình ảnh trộn lẫn với nhau, bạn phải thay đổi kích cỡ cửa sổ để xem ảnh hưởng lên hình ảnh Các Form Bạn phải kiểm tra xem vị trí, kích thước dòng văn bản, hình ảnh, vùng liệu tương tác, xếp hợp lý có bị thay đổi kích thước cửa sổ thay đổi hay không Ðồng thời bạn phải xem vùng tương tác có chấp nhận liệu đưa kết xác bạn nhấn Enter? Các đối tượng đặc điểm khác Trang Web có đặc điểm khác như: tính toán, quảng cáo, tìm kiếm, Bạn phải kiển tra xem chúng có hoạt động tốt không Kỹ thuật Gray-box Ðây kết hợp phương pháp Hộp Ðen Hộp Trắng Bạn vừa kiểm tra theo phương pháp Hộp Ðen, đồng thời xem xét phương pháp làm việc chương trình phương pháp Hộp Trắng Phần lớn trang Web viết ngôn ngữ HTML HTML trang Web kiểm tra phương pháp Hộp Xám bơiû HTML ngôn ngữ lập trình mà Markup Language Bạn làm trang Web với chương trình xử lý văn thông thường phải tuân theo tiêu chuẩn định Kỹ thuật White-box Có nhiều phương pháp để thiết kế Web như: DHTML, Java, JavaScript, ActiveX, VBScript, Perl, CGI, ASP XML Không thiết bạn phải am hiểu hoàn toàn loại ngôn ngữ thực 63 phương pháp hộp trắng, bạn cần hiểu sơ lược dựa mã nguồn để lập Testcase *Lưu ý: Ngày nay, người ta hay đề cập đến vấn đề bảo mật mạng Bởi hacker thường tìm cách khác để thâm nhập, lấy liệu phá hoại trang Web Người ta cho cần lập trình theo bước đơn giản cách qua cửa sau lỗ hỗng bảo mật hacker vào phá trang Web Trên thực tế, hacker phải làm việc tìm cách riêng để thâm nhập Tất nhiên bạn lập trình theo bước đạt mục đích, công thức e = mc2 có kí tự Einstein phải tốn nhiều công sức tìm Vì vậy, người kiểm tra phải tìm cách để phát lỗ hổng để bịt chúng lại Nhưng điều không dễ dàng người thường nghĩ Kiểm tra cấu hình tương thích  Phần cứng: máy tính Mac, PC, TV, đồng hồ, có hệ điều hành, cách bố trí, phần mềm liên lạc riêng Mỗi yếu tố ảnh hưởng đến thể trang Web hình  Trình duyệt Web phiên bản: có nhiều trình duyệt với phiên khác Một số chạy hệ thống định, loại khác không Ví dụ: Nestcape Navigator 3.04 4.05 Internet Explorer 3.02, 4.01 5.00 Mosaic 3.0, Opera, Emacs Mỗi trinh duyệt, phiên có đặc điểm khác Do người thiết kế Web cần chọn đặc điểm cho trang Web trình duyệt Bạn cần phải kiểm tra yếu tố:  Chức duyệt: phần lớn trình duyệt Web cho phép người sử dụng chọn chức tuỳ thích(hiển thị hay không hiển thị gì, tính bảo mật,)  Ðộ phân giải màu sắc hình  Kích thước chữ Tốc độ Modem Do giới hạn thời gian, luận văn phát triển công cụ kiểm thử tự động, kiểm thử liên kết website, đưa báo cáo chi tiết liên kết lỗi Chương trình viết Visual C++ giao diện giao diện dòng lệnh Dưới mô hình sử dụng mô hình hoạt động ứng dụng 64 Analysis URL system Users Store URL in Queue Loading the data Analysing the data temporal memory Finding related URL Internet Hình 4.1 Mô hình ứng dụng 65 Reporting data to user Receiving the URL address Yes No available? Display error No Storing into a Queue Loading the data from URL Storing data in temperatory Analysing the data Finding related URL No No related URL? Yes Reporting to user Hình 4.2 Mô hình hoạt động Mô tả hệ thống: Sự hoạt động hệ thống mô tả mô hình hoạt động hình 4.2 Khởi đầu người dùng nhập liệu vào thông qua file cấu hình nhập trực tiếp từ dòng lệnh Các liệu đầu vào bao gồm địa website cần kiểm thử số thông số cấu hình khác Địa website lưu hàng đợi Tiếp theo địa lấy khỏi hàng đợi tải về, kết liệu tải lưu hàng đợi khác Pha phân tích tìm kiếm phân tích liệu tải hàng đợi, xác định liên kết đặt vào hàng đợi chứa liên kết chưa kiểm tra, đồng 66 thời đưa kết cho người sử dụng Chương trình kết thúc hàng đợi rỗng Hình 4.3 Hướng dẫn chạy chương trình Hình 4.4: Chương trình chạy 67 Hình 4.5: Chương trình chạy in kết file Hình 4.6: Kết 68 KẾT LUẬN Ở Việt Nam ngành Công Nghệ Phần Mềm coi non trẻ, chưa có nhiều thành tựu lớn Kiểm Thử Phần Mềm vấn đề mẻ Việc nghiên cứu lựa chọn kỹ thuật chiến lược Kiểm Thử Phần Mềm phù hợp giúp cho việc kiểm thử có hiệu quả, giảm chi phí thời gian Việc xây dựng tài liệu Kiểm Thử Phần Mềm hợp lý giúp cho việc tổ chức, quản lý thực kiểm thử có hiệu Trong khuôn khổ đề tài tốt nghiệp, Em nghiên cứu kĩ thuật chiến lược kiểm thử, phát triển chương trình kiểm thử cho ứng dụng web Do thời gian giới hạn nên chương trình dừng lại chức kiểm thử liên kết website, thời gian tới tiếp tục phát triển chương trình để trở thành ứng dụng kiểm thử web hoàn chỉnh, bổ sung thêm chức kiểm thử cú pháp, kiểm thử java scripts, kiểm thử khuôn dạng liệu kiểm thử giao dịch web Hiện vấn đề Kiểm Thử Phần Mềm chưa đầu tư quan tâm mức Việt Nam ta trình xây dựng ngành công nghiệp phần mềm xem nhẹ việc Kiểm Thử Phần Mềm xác suất thất bại cao, nữa, hầu hết công ty phần mềm có uy tín đặt yêu cầu nghiêm ngặt phần mềm tài liệu kiểm thử kèm không chấp nhận Kết nghiên cứu áp dụng thực tế cho đề tài dự án phát triển phần mềm, làm tài liệu tham khảo cho sở tiến tới việc đưa qui trình Kiểm Thử Phần Mềm thành qui trình bắt buộc dự án phát triển phần mềm họ 69 DANH MỤC HÌNH STT NỘI DUNG Trang Hình 1.1: Các lĩnh vực Công Nghệ Phần Mềm Hình 2.1 – Sản phẩm phần mềm 13 Hình 2.2 – Các nguyên nhân gây lỗi phần mềm 14 Hình 2.3 – Chi phí sửa lỗi theo thời gian phát lỗi 16 Hình 2.4 - Kiểm thử phần mềm số ngữ cảnh 18 Hình 2.5 – Giai đoạn kiểm thử xử lý phần mềm 19 Hình 2.6 – Qui trình kiểm thử phần mềm 21 Hình 3.7 - Luồng thông tin kiểm thử 24 Hình 3.8- Ví dụ chu trình điều khiển 28 10 Hình 3.9- Ký hiệu đồ thị lưu trình 29 11 Hình 3.4 - Độ phức tạp Cyclomat 30 12 Hình 3.5 – Các kiểu vòng lặp 37 13 Hình 3.6 – (a) Kiểm thử đơn vị; (b) Môi trường kiểm thử đơn vị 47 14 Hình 3.7 - Kiểm thử top-down 51 15 Hình 3.8 – Tích hợp Bottom-Up 52 16 Hình 4.1 Mô hình ứng dụng 65 17 Hình 4.2 Mô hình hoạt động 66 18 Hình 4.3 Hướng dẫn chạy chương trình 67 19 Hình 4.4: Chương trình chạy 67 20 Hình 4.5: Chương trình chạy in kết file 68 21 Hình 4.6: Kết 68 70 TÀI LIỆU THAM KHẢO [1] Nguyễn Xuân Huy (1994), Công Nghệ Phần Mềm , Đại học tổng hợp Tp HCM [2] Nguyễn Quốc Toản (2000), Bài giảng nhập môn Công trình học phần mềm, Đại học quốc gia Hà Nội [3] Ngô Trung Việt (1997), Kĩ nghệ phần mềm, Nhà xuất giáo dục [4] Lê Thị Mỹ Hạnh (2004), Một số vấn đề Kiểm Thử Phần Mềm, luận văn thạc sĩ [5] Nguyễn Trung Hòa (2004), Nhập môn Công Nghệ Phần Mềm, đại học Huế [6] Jeff Tian (2005), Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement, Wiley-IEEE Computer Society Press [7] Alain Abran and James W Moore (2004), Guide to the Software Engineering Body of Knowledge, IEEE Computer Society [8] Ian Sommerville (1996), Software Engineering 5th edition, Addison-Wesley [9] Stephen R Schach (1993), Software Engineering 2nd Edition, AddisonWesley [10] IEEE Computer Society (1990), IEEE Standard Glossary of Software Engineering Terminology, ISBN 1-55937467 [11] Roger S Pressman (2001), Software Engineering: A Practitioner’s approach, McGraw-Hill [12] Burnstein, I (2003) Practical Software Testing Springer-Verlag, New York [13] Black, R (2004), Critical Testing Processes Addison-Wesley, Reading, MA [14] Beizer, B (1995) Black-Box Testing: Techniques for Functional Testing of Software and Systems John Wiley & Sons, Inc., New York [15] Beizer, B (1990) Softvare Testing Techniques, 2nd Ed International Thomson Computer Press, Boston [16] Clarke, L A., Hassel, J., and Richardson, D J (1982) A close look at domain IEEE Trans on Software Engineering, 8:380-390 71

Ngày đăng: 11/08/2016, 16:45

Từ khóa liên quan

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

Tài liệu liên quan