1. Trang chủ
  2. » Tất cả

Luận văn thạc sĩ khoa học máy tính kỹ thuật ma trận đồ thị trong phương pháp kiểm thử hộp trắng

20 0 0

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

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

THÔNG TIN TÀI LIỆU

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG ––––––––––––––––––––––––– NGUYỄN THỊ HỒNG THUỶ KỸ THUẬT MA TRẬN ĐỒ THỊ TRONG PHƯƠNG PHÁP KIỂM THỬ HỘP TRẮNG LUẬN VĂN THẠC SĨ KHOA[.]

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG ––––––––––––––––––––––––– NGUYỄN THỊ HỒNG THUỶ KỸ THUẬT MA TRẬN ĐỒ THỊ TRONG PHƯƠNG PHÁP KIỂM THỬ HỘP TRẮNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái nguyên – 2020 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG ––––––––––––––––––––––––– NGUYỄN THỊ HỒNG THUỶ KỸ THUẬT MA TRẬN ĐỒ THỊ TRONG PHƯƠNG PHÁP KIỂM THỬ HỘP TRẮNG Chuyên ngành: Khoa học máy tính Mã số : 848 01 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: TS Lê Văn Phùng Thái nguyên – 2020 i LỜI CAM ĐOAN Tơi xin cam đoan tồn nội dung luận văn tự sưu tầm, tra cứu thông tin mạng Internet, số sách tham khảo để xếp, hoàn thiện cho phù hợp với nội dung yêu cầu đề tài Đến nay, nội dung luận văn chưa cơng bố hay xuất hình thức Nếu sai tơi xin chịu hồn tồn trách nhiệm Ngày tháng năm 2020 Tác giả Nguyễn Thị Hồng Thuỷ ii LỜI CẢM ƠN Trong suốt trình học tập thực đề tài, em nhận giúp đỡ tận tình bảo ân cần Thầy cô viện Công nghệ thông tin – Viện khoa học công nghệ Việt nam, Thầy cô trường đại học Công nghệ Thông tin Truyền thông, bạn bè đồng nghiệp Đặc biệt giúp đỡ TS Lê Văn Phùng, người thầy trực tiếp hướng dẫn, định hướng, chỉnh sửa kiến thức chun mơn tận tình giúp đỡ em suốt trình nghiên cứu thực luận văn Qua cho phép em bày tỏ lời cảm ơn tới tất thầy cô giáo Viện Công nghệ thông tin Trường Đại học Công nghệ Thông tin Truyền thông, giảng dạy tạo điều kiện thuận lợi giúp đỡ chúng em trình học tập, nghiên cứu Cuối cùng, tơi xin cảm ơn đến gia đình, bạn bè đồng nghiệp chia sẻ động viên giúp đỡ chuyên môn mặt sống, nguồn động viên khích lệ giúp tơi có nghị lực để hồn thành khố học Học viên Nguyễn Thị Hồng Thuỷ iii MỤC LỤC Trang LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC KÝ HIỆU/VIẾT TẮT vi DANH MỤC CÁC HÌNH vii DANH MỤC CÁC BẢNG viii PHẦN MỞ ĐẦU 1 Lý chọn đề tài Đối tượng phạm vi nghiên cứu Mục tiêu nhiệm vụ nghiên cứu Phương pháp nghiên cứu Ý nghĩa khoa học đề tài Bố cục luận văn: CHƯƠNG TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM VÀ KIỂM THỬ HỘP TRẮNG 1.1 Kiểm thử phần mềm 1.1.1 Quan niệm kiểm thử phần mềm 1.1.2 Chiến lược kiểm thử phần mềm 1.1.3 Các mức kiểm thử [9] 1.1.4 Sơ lược phương pháp kiểm thử iv 1.2.1 Ý tưởng kiểm thử hộp trắng 1.2.2 Mô tả số cấu trúc theo lược đồ 1.2.3 Một số hướng kiểm thử hộp trắng CHƯƠNG MỘT SỐ KỸ THUẬT HIỆU QUẢ TRONG PHƯƠNG PHÁP KIỂM THỬ HỘP TRẮNG VÀ CA KIỂM THỬ16 2.1 Một số kỹ thuật phương pháp kiểm thử hộp trắng 16 Có thể tổng hợp số kỹ thuật hiệu phương pháp kiểm thử hộp trắng sau: 16 2.1.1 Kỹ thuật kiểm thử dòng điều khiển 16 2.1.2 Kỹ thuật kiểm thử dòng liệu 18 2.1.3 Kỹ thuật kiểm thử BRO 19 2.1.4 Kỹ thuật kiểm thử đột biến 20 2.2 Ca kiểm thử 22 2.2.1.Một số quan niệm ca kiểm thử 22 2.2.2.Nội dung thiết kế ca kiểm thử 22 2.2.3 Một số phương pháp để thiết kế ca kiểm thử 23 2.3 Kỹ thuật ma trận đồ thị cho thiết kế ca kiểm thử 27 2.3.1 Ý tưởng nội dung kỹ thuật ma trận đồ thị [8] 27 2.3.2 Quy trình kiểm thử phần mềm kỹ thuật ma trận đồ thị 36 CHƯƠNG CHƯƠNG TRÌNH THỬ NGHIỆM KIỂM THỬ PHẦN MỀM BẰNG KỸ THUẬT MA TRẬN ĐỒ THỊ 38 3.1 Chọn mô-đun phần mềm thử nghiệm 38 3.2 Thiết kế ca kiểm thử kiểm thử mô-đun phần mềm 39 v 3.2.1 Quy trình thiết kế 39 3.2.2 Nội dung thiết kế 39 3.3 Một số giao diện chương trình 49 3.3.1 Giao diện thiết kế ca kiểm thử theo kỹ thuật ma trận đồ thị 49 3.3.2 Quá trình test với Mô-đun 54 3.3.3 Q trình test với Mơ-đun 57 3.3.4 Quá trình test với Mô-đun 60 3.3.5 Q trình test với Mơ-đun 62 3.3.6 Kiểm thử vòng lặp While 63 3.4 Đánh giá so sánh kỹ thuật ma trận đồ thị với số kỹ thuật thiết kế ca kiểm thử khác 64 3.5 Đánh giá kết thử nghiệm hướng mở rộng 66 KẾT LUẬN VÀ KIẾN NGHỊ 67 1.Kết luận 67 Kiến nghị 68 TÀI LIỆU THAM KHẢO 69 iv vi DANH MỤC CÁC KÝ HIỆU/VIẾT TẮT BRO: Kiểm thử nhánh tốn tử quan hệ CNTT: Cơng nghệ thơng tin CSDL: Cơ sở liệu E: Số cạnh đồ thị N: Số đỉnh đồ thị P: Số đỉnh điều kiện có đồ thị V(G): Độ phức tạp chu trình v vii DANH MỤC CÁC HÌNH Hình 1.1 Mơ hình chiến lược kiểm thử tổng thể Hình 1.2 Một số cấu trúc lập trình Hình 1.3 Sơ đồ điều khiển chương trình Hình 1.4 Đồ thị chương trình 10 Hình 1.5 Minh hoạ độ phức tạp câu lệnh 10 Hình 1.6 Minh hoạ bước kiểm tra 11 Hình1.7 Lược đồ kiểm thử theo đường dẫn 12 Hình1.8 Lược đồ kiểm thử đường dẫn theo biểu thức điều kiện 13 Hình 1.9.Các kiểu vịng lặp 14 Hình 2.1: Các thành phần đồ thị chương trình 17 Hình 2.2: Các cấu trúc điều khiển phổ biến chương trình 17 Hình 2.3: Mã nguồn hàm foo đồ thị dịng điều khiển 18 Hình 2.4: Sơ đồ điều khiển chương trình 30 Hình 2.5: Sơ đồ luồng điều khiển 30 Hình 2.6 : Đồ thị dịng dùng để xác định ma trận kiểm thử 31 Hình 2.7: Độ phức tạp chu trình xác định từ số miền phẳng đồ thị dòng 32 Hình 2.8 : Đồ thị dòng dùng để xác định ma trận kiểm thử 33 Hình 3.1 Sơ đồ điều khiển chương trình 40 Hình 3.2 Sơ đồ luồng điều khiển 41 Hình 3.3 Đồ thị dòng 42 Hình 3.4 Độ phức tạp chu trình 43 Hình 3.5 Đồ thị dịng 44 Hình 3.6 Giao diện trang chủ 49 Hình 3.7 Giao diện hướng dẫn sử dụng chương trình 50 Hình 3.8 Giao diện chạy chương trình 50 Hình 3.9: Hộp thoại Open để tìm đường dẫn 51 Hình 3.10: Form hiển thị mô-đun cần kiểm thử 51 Hình 3.11 Giao diện xác định tập đường 52 Hình 3.12: Giao diện thông báo lỗi nhập liệu không hợp lệ 53 Hình 3.13: Giao diện test đơn vị chương trình code_1 53 Hình 3.14: Form xử lý với đơn vị chương trình code_2 59 Hình 3.15: Lỗi tìm thấy mơ-đun code_2 60 Hình 3.16: Form kiểm thử ứng với code_3 61 Hình 3.17: Form kiểm thử ứng với code_4 63 viiivi DANH MỤC CÁC BẢNG Bảng 2.1 Ví dụ minh họa đột biến 21 Bảng 2.2 : Những chiến lược kết hợp 23 Bảng 2.3 Tập đường 32 Bảng 2.4 : Ma trận kiểm thử A cách tính độ phức tạp V(G) 34 Bảng 2.5 Bảng ma trận kiểm thử A= (aij) với i,j=1,2,3,4, ,9 xác định sau: 34 Bảng 2.6 : Ví dụ ma trận kiểm thử tích A2= 36 Bảng 3.1-Bảng tính độ phức tạp đồ thị dòng V(G): 45 Bảng 3.2: Bảng ma trận kiểm thử A= (aij) với i,j=1,2,3,4, ,14 45 Bảng 3.3: Các Test path 48 Bảng 3.4: Bảng ca kiểm thử vòng lặp while 49 Bảng 3.5: Bảng TestData1 55 Bảng 3.6: Bảng TestData2 55 Bảng 3.7: Bảng TestData3 55 Bảng 3.8: Bảng TestData4 56 Bảng 3.9: Bảng TestData5 56 Bảng 3.10: Bảng TestData6 56 Bảng 3.11: Bảng TestData7 57 Bảng 3.12: Bảng TestData với code_2 58 Bảng 3.13: Kết bảng TestData với code_2 59 Bảng 3.14: Bảng TestData với code_3 61 Bảng 3.15: Bảng TestData với code_4 62 PHẦN MỞ ĐẦU Lý chọn đề tài Quy trình phát triển phần mềm thường trải qua nhiều giai đoạn, kiểm thử phần mềm hoạt động chủ chốt nhằm phát lỗi đảm bảo chất lượng phần mềm Trước sản phẩm phát hành, tất chức giao diện, ứng dụng sản phẩm cần qua kiểm thử Kiểm thử hiệu phát sai sót, tránh lỗi trước phát hành sản phẩm Để kiểm thử đạt hiệu cao, người kiểm thử cần vạch chiến lược kiểm thử, tích hợp kỹ thuật thiết kế ca kiểm thử Một kỹ thuật đó, khơng thể khơng nhắc đến kỹ thuật ma trận đồ thị Kỹ thuật ma trận đồ thị kỹ thuật phương pháp kiểm thử hộp trắng Ma trận kiểm thử sử dụng liệu có cấu trúc để kiểm tra đường Ma trận kiểm thử công cụ mạnh việc đánh giá cấu trúc điều khiển chương trình Qua luận văn này, tơi mong muốn người có kiến thức kiểm thử phần mềm nói chung, kiểm thử hộp trắng nói riêng Đặc biệt, tơi mong đóng góp vào việc xây dựng quy trình thiết kế ca kiểm thử kỹ thuật ma trận đồ thị Trên lí mà tơi chọn đề tài: “Kỹ thuật ma trận đồ thị phương pháp kiểm thử hộp trắng” làm luận văn thạc sĩ Đối tượng phạm vi nghiên cứu - Kiểm thử phần mềm nói chung kiểm thử hộp trắng nói riêng - Một số kỹ thuật thiết kế ca kiểm thử - Kỹ thuật ma trận đồ thị để thiết kế ca kiểm thử - Xây dựng phần mềm thử nghiệm kiểm thử kỹ thuật ma trận đồ thị - Áp dụng kỹ thuật ma trận đồ thị để kiểm thử phần mềm so sánh với số kỹ thuật thiết kế ca kiểm thử khác Mục tiêu nhiệm vụ nghiên cứu - Luận văn tập trung nghiên cứu, tìm hiểu kiểm thử phần mềm, phương pháp kiểm thử hộp trắng, ca kiểm thử, đặc biệt kiểm thử phần mềm kỹ thuật ma trận đồ thị - Thiết kế chương trình kiểm thử để kiểm thử số đơn vị chương trình Phương pháp nghiên cứu - Phương pháp nghiên cứu lý thuyết: Sưu tập tài liệu, tổng hợp phương pháp kiểm thử phầm mềm, tập trung vào phương pháp kiểm thử hộp trắng, nghiên cứu chi tiết quy trình thực kỹ thuật ma trận đồ thị - Phương pháp nghiên cứu thực nghiệm: Cài đặt thử nghiệm chương trình kiểm thử phần mềm kỹ thuật ma trận đồ thị - Phương pháp trao đổi khoa học: Trao đổi nội dung nghiên cứu với người hướng dẫn, đồng nghiệp để đề xuất giải nội dung luận văn đề Ý nghĩa khoa học đề tài Kết thử nghiệm đề tài mặt thể tính mặt lý thuyết, mặt vừa mang tính minh hoạ vừa thể khả ứng dụng hiệu Bố cục luận văn: Toàn nội dung luận văn chia thành ba chương sau: Chương 1: Tổng quan kiểm thử phần mềm kiểm thử hộp trắng Chương 2: Một số kỹ thuật hiệu phương pháp kiểm thử hộp trắng ca kiểm thử Chương 3: Chương trình thử nghiệm kiểm thử phần mềm kỹ thuật ma trận đồ thị 3 CHƯƠNG TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM VÀ KIỂM THỬ HỘP TRẮNG 1.1 Kiểm thử phần mềm 1.1.1 Quan niệm kiểm thử phần mềm Kiểm thử phần mềm (Software Testing) yếu tố quan trọng vấn đề xác minh thẩm định Việc kiểm thử cung cấp thành luỹ cuối để thẩm định mặt chất lượng, chứng thực hơn, phát lỗi [7] Theo Glen Myers, 1979, kiểm thử phần mềm trình vận hành chương trình để tìm lỗi Một ca kiểm thử tốt ca kiểm thử có xác suất cao tìm lỗi chưa phát Một ca kiểm thử thắng lợi ca kiểm thử làm lộ lỗi cịn chưa phát Với cách nhìn này, mục tiêu thiết kế ca kiểm thử để phát cách hệ thống loại lỗi khác với chi phí thời gian cơng sức Phát lỗi công việc kiểm thử Nhưng kiểm thử phần mềm gỡ lỗi Kiểm thử phần mềm yếu tố góp phần bảo đảm chất lượng phần mềm, khâu điển hình kiểm sốt đặc tả, thiết kế, lập mã Kiểm thử phần mềm trình thực thi chương trình với mục đích tìm lỗi, đảm bảo sản phẩm phần mềm đáp ứng xác, đầy đủ theo yêu cầu khách hàng Kiểm thử phần mềm cung cấp mục tiêu, nhìn độc lập phần mềm, điều cho phép việc đánh giá hiểu rõ rủi ro thực thi phần mềm Kiểm thử phần mềm tạo điều kiện tận dụng tối đa tư đánh giá sáng tạo để phát điểm mà người khác chưa nhìn thấy 1.1.2 Chiến lược kiểm thử phần mềm Chiến lược kiểm thử tích hợp kỹ thuật thiết kế “ca kiểm thử” tạo thành dãy bước nhằm hướng dẫn q trình kiểm thử phần mềm thành cơng [9] 4 Ca kiểm thử (test case) tình kiểm thử tương ứng với mạch hoạt động chương trình Nó bao gồm tập giá trị đầu vào danh sách kết đầu mong muốn thực tế Chiến lược kiểm thử đặt với mục tiêu nhằm phác thảo lộ trình để: - Nhà phát triển tổ chức việc bảo đảm chất lượng kiểm thử; - Khách hàng hiểu công sức, thời gian nguồn lực cần cho kiểm thử Chiến lược kiểm thử cần đạt yêu cầu sau: - Tích hợp khâu lập kế hoạch, thiết kế ca kiểm thử, tiến hành kiểm thử, thu thập đánh giá thông tin kết quả; - Đủ mềm dẻo để cổ vũ óc sáng tạo, đáp ứng yêu cầu khách hàng; - Thích ứng với mức kiểm thử cụ thể; - Đáp ứng đối tượng quan tâm khác; 1.1.3 Các mức kiểm thử [9] Trong tiến trình kiểm thử, người ta chia thành nhiều mức kiểm thử Về phương diện thực hành người ta thường chia thành mức bản: Mức Kiểm thử đơn vị (Unit testing); Mức Kiểm thử tích hợp (Integration testing); Mức Kiểm thử hệ thống (System testing), bao gồm: - Kiểm thử chức (functional test: system and interface) - Kiểm thử phục hồi (recovery test) - Kiểm thử chịu tải (extra: stress and load test) - Kiểm thử thi hành (performance test) - Kiểm thử an ninh (security test) Mức Kiểm thử chấp nhận (acceptance testing)/thẩm định Có tiến trình thực kiểm thử: Tiến trình Tiến trình thực kiểm thử tương ứng với tiến trình phát triển (theo mơ hình) Tiến trình Tiến trình kiểm thử thường theo mơ hình chiến lược kiểm thử tổng thể: Kiểm thử đơn vị Kiểm thử tích hợp Môđun đơn vị Môđun chức năng, hệ Kiểm thử hệ thống Cả phần cứng, phần mềm Kiểm thử thẩm định Hệ thống thực Hình 1.1 Mơ hình chiến lược kiểm thử tổng thể 1.1.4 Sơ lược phương pháp kiểm thử Bất kỳ sản phẩm kỹ nghệ kiểm thử theo hai cách [1,2,5,6,15]: Cách Kiểm thử chức năng/hộp đen: cho liệu đầu vào đúng/sai, kiểm tra đầu đúng/sai, tức kiểm thử xem chức có vận hành không, không quan tâm đến cấu trúc bên chức Cách Kiểm thử cấu trúc/hộp trắng: quan tâm đến mối quan hệ đầu vào đầu chức mà cịn quan tâm, đến cấu trúc bên trong, quan tâm chi tiết đến đầu vào, đầu thành phần cấu thành ăn khớp chúng nữa, tức bảo đảm vận hành bên thực theo đặc tả tất thành phần bên quan tâm kiểm tra cách chi tiết Đối với phần mềm máy tính, kiểm thử hộp đen biểu thị việc kiểm thử tiến hành giao diện phần mềm Mặc dù chúng thiết kế để phát lỗi, kiểm thử hộp đen dùng để thể chức phần mềm vận hành, vào chấp nhận đúng, tạo ta đúng, tính tồn vẹn thơng tin ngồi (như tệp liệu) trì Phép kiểm thử hộp đen xem xét số khía cạnh hệ thống để ý tới cấu trúc logic bên phần mềm 1.2 Kiểm thử hộp trắng 1.2.1 Ý tưởng kiểm thử hộp trắng Kiểm thử hộp trắng (white-box test) quan tâm đến mối quan hệ đầu vào đầu chức mà cịn quan tâm đến cấu trúc bên trong, quan tâm chi tiết đến đầu vào đầu thành phần cấu thành ăn khớp chúng nữa, tức bảo đảm vận hành bên thực theo đặc tả tất thành phần bên quan tâm kiểm tra cách chi tiết [9] Kiểm thử hộp trắng hướng tới việc xem xét kỹ chi tiết thủ tục Các đường logic qua phần mềm kiểm thử cách đưa trường hợp kiểm thử, vốn thực tập xác định điều kiện /hoặc chu trình “Trạng thái chương trình” xem xét nhiều điểm khác để xác định liệu trạng thái dự kiến hay khẳng định có tương ứng với trạng thái thực không [9] Bản chất khiếm khuyết phần mềm lý phải kiểm thử hộp trắng Hơn nữa, việc kiểm thử hộp đen, dù làm kỹ lưỡng đến đâu sót nhiều loại lỗi Theo Beizer: “Lỗi ẩn nấp ngóc ngách tập hợp biên giới” Việc kiểm thử hộp trắng có nhiều khả phát chúng hơn, Kiểm thử hộp trắng (white box) việc kiểm tra đoạn mã chương trình xem có vận hành thiết kế hay không Kiểm thử hộp trắng dựa việc xem xét cấu trúc bên chương trình theo cấu trúc điều khiển hoạt động chúng Nó có nhiều tên gọi khác glass testing, structure testing, open box testing, clear box testing [Beizer 1995] Đối tượng kiểm thử hộp trắng mã nguồn mô-đun đơn vị [7,8] 7 Kiểm thử hộp trắng sử dụng chiến lược cụ thể sử dụng mã nguồn chương trình/đơn vị phần mềm cần kiểm thử nhằm kiểm tra xem chương trình/đơn vị phần mềm có thực so với thiết kế đặc tả hay không Trong phương pháp kiểm thử hộp đen cho phép phát lỗi/khiếm khuyết quan sát được, kiểm thử hộp trắng cho phép phát lỗi/khiếm khuyết tiềm ẩn bên chương trình/đơn vị phần mềm, lỗi thường khó phát phương pháp kiểm thử hộp đen Kiểm thử hộp đen kiểm thử hộp trắng thay cho mà chúng cần sử dụng kết hợp với quy trình kiểm thử thống nhằm đảm bảo chất lượng phần mềm Tuy nhiên, để áp dụng phương pháp kiểm thử hộp trắng, người kiểm thử khơng cần hiểu rõ giải thuật mà cịn cần có kỹ kiến thức tốt ngơn ngữ lập trình dùng để phát triển phần mềm, nhằm hiểu rõ mã nguồn chương trình/đơn vị phần mềm cần kiểm thử Do vậy, việc áp dụng phương pháp kiểm thử hộp trắng thường tốn thời gian cơng sức chương trình/đơn vị phần mềm có kích thước lớn Vì lý này, phương pháp kiểm thử hộp trắng chủ yếu sử dụng cho kiểm thử đơn vị 1.2.2 Mô tả số cấu trúc theo lược đồ Trong phương pháp kiểm tra tính đắn chương trình, lược đồ dùng để: - Trừu tượng hóa cú pháp mã lệnh; - Làm khuôn mẫu cho nguyên tắc kiểm tra theo trường hợp - Kiểm tra tính đắn toàn lược đồ 8 UNTIL SEQUENCE IF WHILE CASE Hình 1.2 Một số cấu trúc lập trình 1.2.3 Một số hướng kiểm thử hộp trắng 1.2.3.1 Kiểm thử theo câu lệnh (Statement Testing) Thiết kế trình kiểm thử cho câu lệnh chương trình thực lần Phương pháp kiểm thử xuất phát từ ý tưởng [1]: - Trừ phi câu lệnh thực hiện, khơng ta khơng thể biết có lỗi xảy câu lệnh hay khơng - Việc kiểm thử với giá trị đầu vào không đảm bảo cho trường hợp Ví dụ: Đoạn chương trình thực tính: result = 0+1+ +|valuel|, result

Ngày đăng: 28/02/2023, 20:12

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w