Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 66 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
66
Dung lượng
1,73 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI NGUYỄN HƢƠNG GIANG NGHIÊN CỨU CÁC KỸ THUẬT KIỂM THỬ HỘP TRẮNG LUẬN VĂN THẠC SĨ MÁY TÍNH HÀ NỘI, 2015 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI NGUYỄN HƢƠNG GIANG NGHIÊN CỨU CÁC KỸ THUẬT KIỂM THỬ HỘP TRẮNG Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 LUẬN VĂN THẠC SĨ MÁY TÍNH Người hướng dẫn khoa học:TS Lê Văn Phùng HÀ NỘI, 2015 LỜI CẢM ƠN Đầu tiên xin gửi lời cảm ơn chân thành đến thầy TS Lê Văn Phùng - Viện Công nghệ thông tin - Viện Hàn lâm Khoa học Công nghệ Việt Nam tận tình hướng dẫn, bảo cho suốt trình làm luận văn Tôi xin gửi lời cảm ơn đến thầy cô trường Đại học sư phạm Hà Nội 2, thầy cô Viện Công nghệ thông tin - Viện Hàn lâm Khoa học Công nghệ Việt Nam truyền đạt kiến thức giúp đỡ suốt trình học Tôi xin gửi lời cảm ơn tới đồng nghiệp, gia đình bạn bè người động viên tạo điều kiện giúp đỡ suốt thời gian học vừa qua LỜI CAM ĐOAN Tôi xin cam đoan toàn nội dung luận văn tự nghiên cứu, đọc, dịch tài liệu, tổng hợp thực hiện, công trình nghiên cứu hướng dẫn khoa học thầy TS Lê Văn Phùng Các số liệu, kết luận văn trung thực, rõ ràng Trong luận văn có sử dụng số tài liệu tham khảo trình bày phần tài liệu tham khảo Tôi xin chịu trách nhiệm với nội dung viết luận văn Hà nội, ngày … tháng 12 năm 2015 Ngƣời viết luận văn Nguyễn Hƣơng Giang MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN MỞ ĐẦU .1 Lý chọn đề tài Nhiệm vụ nghiên cứu Đối tượng phạm vi nghiên cứu Phương pháp nghiên cứu Dự kiến đóng góp đề tài CHƢƠNG TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM Tổng quan kỹ nghệ phần mềm 1.1 Khái niệm kiềm thử 1.2 Chiến lược kiểm thử 1.2.1 Khái niệm chiến lược kiểm thử 1.2.2 Mô hình chiến lược tổng thể 1.2.3 Một số chiến lược kiểm thử khác 1.2.3.1 Chiến lược kiểm thử hệ thời gian thực 10 1.2.3.2 Kiểm thử Alpha Beta 11 1.2.3.3 Kiểm thử so sánh 13 1.3 Các phương pháp kiểm thử 14 1.4 Các kỹ thuật kiểm thử 15 1.4.1 Kỹ thuật kiểm thử hộp đen (Black – box testing) 16 1.4.2 Kỹ thuật kiểm thử hộp trắng (white – box testing) 16 Kết luận .17 CHƢƠNG CÁC KỸ THUẬT KIỂM THỬ HỘP TRẮNG 18 2.1 Đồ thị dòng 18 2.2 Ma trận kiểm thử 23 2.3 Điều kiện logic với chiến lược kiểm thử miền nhánh 38 2.4 Điều khiển theo dòng liệu 46 2.5 Cấu trúc chu trình – giá trị đặc trưng 47 CHƢƠNG XÂY DỰNG PHẦN MỀM THỬ NGHIỆM ỨNG DỤNG KỸ THUẬT KIỂM THỬ HỘP TRẮNG 50 3.1 Môi trường thử nghiệm 50 3.1.1 Giới thiệu ngôn ngữ C# 50 3.1.1.1 C# ngôn ngữ đơn giản 50 3.1.1.2 C# ngôn ngữ đại 51 3.1.1.3 C# ngn ngữ hướng đối tượng 51 3.2 Dữ liệu đầu vào yêu cầu đầu 52 3.2.1 Dữ liệu đầu vào: 52 3.2.2 Yêu cầu đầu 52 3.3 Thiết kế ca kiểm thử 52 3.3.1 Quy trình thực chương trình 52 3.3.2 Ví dụ minh họa chương trình 53 3.4 Kết thử nghiệm đánh giá 53 3.4.1 Giao diện form phần mềm 53 3.4.2 Chọn file nguồn 54 3.4.3 Kết thực nút Open 54 3.4.4 Kết thực nút Tính độ phức tạp 55 3.4.5 Kết thực nút Tập kiểm thử 56 KẾT LUẬN 57 DANH MỤC CÁC TÀI LIỆU THAM KHẢO 58 DANH MỤC CÁC HÌNH VẼ, BẢNG BIỂU DANH MỤC HÌNH Hình 1.1.Mô hình chiến lược kiểm thử tổng thể Hình 2.1 Các cấu trúc đồ thị dòng (sequence, if, while, until, case) 18 Hình 2.2 Sơ đồ điều khiển chương trình 21 Hình 2.3 Sơ đồ luồng điều khiển 22 Hình 2.4 Đồ thị dòng 22 Hình 2.5 Sơ đồ điều khiển chương trình ví dụ 30 Hình 2.6 Sơ đồ điều khiển chương trình mức gộp ví dụ 31 Hình 2.7 Đồ thị dòng mức gộp ví dụ 32 Hình 2.8 Độ phức tạp chu trình xác định từ đồ thị dòng mức gộp 34 Hình 2.9 Xác định ca kiểm thửbằng đường điều kiện 44 Hình 2.10 Đồ thị dòng để xác định tập đường nhỏ phủ lệnh 45 Hình 2.11 Xác định điều kiện cho đường 45 Hình 2.12 Dạng vòng lặp thứ 51 Hình 2.13 Dạng vòng lặp thứ hai 52 Hình 2.14 Kiểu vòng lặp lồng 52 Hình 2.15 Kết hợp vòng lặp trước với vòng lặp sau 48 Hình 2.16 Vòng lặp phi cấu trúc 49 Hình 3.1 Giao diện form 54 Hình 3.2 Cửa sổ chọn file nguồn cho chương trình 54 Hình 3.3 Hiển thị file nguồn 55 Hình 3.4 Kết độ phức tạp 55 Hình 3.5 Kết Tập kiểm thử 56 DANH MỤC BẢNG Bảng 2.1 Bảng tính độ phức tạp đồ thị dòng V(G): 24 Bảng 2.2 Bảng kết tập đường kiểm thử 27 Bảng 2.3 Bảng kiểm thử kết 41 Bảng 2.4 Bảng kiểm thử có ràng buộc 41 Bảng 2.5.Tập giá trị bảo đảm ràng buộc đầu 42 Bảng 2.6 Tập giá trị bảo đảm ràng buộc đầu C 42 Bảng 2.7.Xác định đầu để kiểm thử 43 Bảng 2.8 Tập đường nhỏ phủ lệnh 45 MỞ ĐẦU Lý chọn đề tài Các kỹ thuật kiểm thử hộp trắng có vai trò quan trọng việc đưa ứng dụng vào áp dụng thực tế Kiểm thử giai đoạn trình phát triển, hoàn thành sản phẩ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ử Một sản phẩm thiết kế tốt tránh khỏi sai sót Kiểm thử hiệu phát sai sót này, tránh lỗi trước phát hành Kiểm thử đứng vai trò người sử dụng, giúp cho sản phẩm có thích ứng phù hợp với thị hiếu nhu cầu người dùng Chính lẽ đó, kiểm thử việc cần thiết, cần nghiên cứu kiểm thử nhằm góp phần xác định chất lượng phần mềm vừa xây dựng Kỹ thuật kiểm thử (technical testing) hộp trắng (white box) dựa vào thuật giải cụ thể, dựa vào cấu trúc liệu bên đơn vị phần mềm cần kiểm thử để xác định đơn vị phần mềm có thực không Vậy ta phải quan tâm đến kỹ thuật kiểm thử? Vì chọn kỹ thuật kiểm thử phù hợp sẽ: - Giảm chi phí phát triển - Tăng độ tin cậy sản phẩm - Giúp tìm nhiều lỗi - Chi phí (thời gian, công sức) - Sinh kỹ thuật kiểm thử chạy tốt Vì mạnh dạn chọn đề tài cho luận văn thạc sĩ “Nghiên cứu kỹ thuật kiểm thử hộp trắng” 2 Mục đích nghiên cứu - Nâng cao kiến thức công nghệ phần mềm, bảo đảm toán học khoa học máy tính - Thực hành kỹ thuật xác định ca kiểm thử công nghệ kiểm thử hộp trắng Nhiệm vụ nghiên cứu - Nghiên cứu tổng quan kiểm thử phần mềm - Nghiên cứu tổng hợp kỹ thuật sử dụng để kiểm thử hộp trắng kỹ thuật đồ thị dòng, ma trận kiểm thử, điều kiện logic, điều khiển theo dòng liệu, cấu trúc chu trình,… - Lập trình thử nghiệm nhiều kỹ thuật nghiên cứu để xác định ca kiểm thử xây dựng kịch kiểm thử cho toán cụ thể Đối tƣợng phạm vi nghiên cứu - Đối tượng nghiên cứu đơn vị phần mềm (một đoạn lệnh/mô-đun/chương trình).Phạm vi nghiên cứu đề tài kỹ thuật kiểm thử hộp trắng kiểm thử phần mềm Phƣơng pháp nghiên cứu - Phương pháp tổng hợp phân tích vấn đề liên quan đến đề tài, - Phương pháp thống kê kết hợp với phương pháp chuyên gia, - Phương pháp kết hợp lý thuyết với thực nghiệm máy tính Dự kiến đóng góp đề tài - Xác định tiêu chuẩn thích hợp cho việc chọn phương pháp thiết kế ca kiểm thử ứng dụng 44 Hình 2.9 Xác định ca kiểm thửbằng đường điều kiện Ví dụ: Xét cấu trúc điều khiển chương trình Do while records remain Read record If record field1 = then process record; store in buffer; increment counter; Else if record field2 = then reset record; Else process record; store in file; 10 Endif Endif 11 Enddo 45 Hình 2.10 Đồ thị dòng để xác định tập đường nhỏ phủ lệnh Độ phức tạp đo số miền = Bảng 2.8 Tập đường nhỏ phủ lệnh Tập đường a 11 b 2-3 4-5 10 c 2-3 10 d 2-3 10 Hình 2.11 Xác định điều kiện cho đường 46 2.4 Điều khiển theo dòng liệu Phương pháp kiểm thử theo dòng liệu tuyển chọn đoạn đường chương trình tương ứng nhằm định vị việc xác định biến sử dụng biến chương trình Đã có số chiến lược kiểm thử dòng liệu so sánh chúng Giả sử câu lệnh chương trình gán với số câu lệnh hàm không cải biên tham số biến toàn cục Với câu lệnh S ta định nghĩa: DEF(S) = { X/ câu lệnh S chứa định nghĩa X} USE(S) = { X/ câu lệnh chứa sử dụng X} Nếu S câu lệnh if câu lệnh vòng lặp DEF(S) rỗng, USE(S) xây dựng tùy theo điều kiện S Trong chiến lược lần vết theo dòng liệu, giả thiết biến X câu lệnh S sống câu lệnh S’ có đường từ S tới S’ mà không chứa định nghĩa khác X Một dây chuyền DU sử dụng X ký hiệu là: DU = [ X,S,S’] với X DEF(S) USE(S’), định nghĩa X S sống S’ Chiến lược kiểm thử theo dòng liệu đòi hỏi rằng: DU phủ lần Đánh giá chiến lược theo dòng liệu: kiểm thử DU không bảo đảm phủ tất nhánh chương trình; nhiên nhánh không phủ Du kiểm thử Với chiến lược theo dòng liệu, phần lớn trạng thái chương tình kiểm soát 47 Kiểm thử dòng liệu hữu ích với đường chương trình có chứa câu lệnh if vòng lặp 2.5 Cấu trúc chu trình – giá trị đặc trƣng Kiểm thử theo vòng lặp (loop testing) kỹ thuật kiểm thử hộp trắng, tập trung hoàn toàn vào tính hợp lệ kết cấu vòng lặp Có loại vòng lặp (đơn, lồng nhau, nối tiếp, phi cấu trúc) Với loại vòng lặp, thường quan tâm đến giá trị lặp: hai giá trị biên giá trị Kiểm thử điều khiển theo vòng lặp đơn dạng một: kiểm tra điều kiện sau thực công việc, tiếp, sai quay lại thực công việc đó: Hình 2.12 Dạng vòng lặp thứ Kiểm thử điều khiển theo vòng lặp đơn dạng hai: kiểm tra điều kiện trước thực công việc, thực công việc, sai bỏ qua công việc đó: Hình 2.13 Dạng vòng lặp thứ hai Các cách chọn giá trị kiểm thử cho vòng lặp đơn: Bỏ qua vòng lặp (0 lần lặp) Chọn giá trị lặp: 1,2 ( lặp lần, lặp lần) Chọn giá trị lặp m (lặp m lần với m[...]... có thể chia các kỹ thuật kiểm thử thành hai loại: 16 - Kỹ thuật kiểm thử hộp đen (Black – box testing) hay còn gọi là kỹ thuật kiểm thử chức năng - Kỹ thuật kiểm thử hộp trắng (white – box testing) hay còn gọi là kỹ thuật kiểm thử cấu trúc (structural testing) 1.4.1 Kỹ thuật kiểm thử hộp đen (Black – box testing) Kiểm thử hộp đen hay còn gọi kiểm thử hướng dữ liệu (data driven) hay là kiểm thử hướng... Trong kỹ thuật này, người kiểm thử xem phần mềm như là một hộp đen Người kiểm thử hoàn toàn không quan tâm đến cấu trúc và hành vi bên trong của chương trình Người kiểm thử chỉ cần quan tâm đến việc tìm các hiện tượng mà phần mềm không hành xử theo đúng đặc tả của nó Do đó, dữ liệu kiểm thử sẽ xuất phát từ đặc tả 1.4.2 Kỹ thuật kiểm thử hộp trắng (white – box testing) Kiểm thử hộp trắng hay còn gọi là kiểm. .. khi kiểm tra các môđun nhỏ.Tuy nhiên, kiểm thử hộp trắng có thể không đầy đủ vì kiểm thử hết các lệnh không chứng tỏ là chúng ta đã kiểm thử hết các trường hợp có thể.Ngoài ra chúng ta không thể kiểm thử hết các đường đi với các vòng lặp lớn Kiểm thử hộp đen chú trọng vào việc kiểm tra các quan hệ vào/ra và những chức năng giao diện bên ngoài, nó thích hợp hơn cho các hệ thống phần mềm lớn hay các. .. 18 CHƢƠNG 2 CÁC KỸ THUẬT KIỂM THỬ HỘP TRẮNG 2.1 Đồ thị dòng Một kỹ thuật kiểm thử hộp trắng đầu tiên được TomMcCabe đề nghị là kiểm thử đƣờng cơ sở Phương pháp đường cơ sở giúp cho người thiết kế trường hợp kiểm thử có thể suy dẫn ra một cách đo độ phức tạp logic của thiết kế thủ tục và dùng cách này như một hướng dẫn để xác định một tập cơ sở các đường thực hiện Các trường hợp kiểm thử được suy... chương trình .Các kỹ thuật thiết kế kiểm thử hộp đen được dùng trong hầu hết quá trình tích hợp, mặc dù các kiểm thử hộp trắng cũng có thể được dùng để bao quát đa số các đường điều khiển.Sau khi phần mềm đã được dùng tích hợp (được xây dựng), một tập hợp các phép kiểm thử sẽ được tiến hành .Các tiêu chuẩn hợp lệ (được thiết lập trong phân tích yêu cầu) cũng phải được kiểm thử. Việc kiểm thử hợp lệ được... kiểm thử 8 - Cho phép người lạ kiểm thử một cách thô bạo - Người kiểm thử chỉ quan tâm khi kiểm thử bắt đầu Nên xuất phát từ thực tiễn mà phân công trách nhiệm thử: - Người phát triển chịu trách nhiệm kiểm thử đơn vị do mình phát triển để bảo đảm thực hiện theo đúng thiết kế, có thể tham gia kiểm thử tích hợp; không khoán trắng chương trình cho người kiểm thử mà phải cùng làm việc với người kiểm thử. .. lược kiểm thử bổ trợ khác như: - Kiểm thử hệ thời gian thực - Kiểm thử Alpha và Beta - Kiểm thử so sánh 10 1.2.3.1 Chiến lƣợc kiểm thử hệ thời gian thực Hệ thời gian thực là hệ thống đáp ứng đúng, chính xác các sự kiện của môi trường Kiểm thử hệ thống thời gian thực là rất khó Những người thiết kế ca kiểm thử không chỉ phải xem xét các trường hợp kiểm thử hộp đen và hộp trắng mà còn phải xem xét cả việc... dụng kiểm thử hộp đen là chưa đủ.Bởi vì, kiểm thử chức năng chỉ dựa trên đặc tả của môđun nên không thể kiểm thử được các trường hợp không được khai báo trong đặc tả Ngoài ra, do không phân tích mã nguồn nên không thể biết được môđun nào của chương trình đã hay chưa được kiểm thử, khi đó phải kiểm thử lại hay bỏ qua những lỗi tiềm ẩn trong gói phần mềm Phương pháp kiểm thử hộp trắng và kiểm thử hộp. .. đầu, việc kiểm thử tập trung vào từng mô-đun riêng biệt bảo đảm nó ban hành đúng đắn như một đơn vị Do đó mới có tên kiểm thử đơn vị Kiểm thử đơn vị dùng rất nhiều các kỹ thuật kiểm thử hộp trắng, kiểm soát các đường đặc biệt trong cấu trúc điều khiển của một lớp mô-đun nhằm phát hiện tối đa các lỗi Mặt khác, các mô-đun phải được lắp ghép hay tích hợp lại để tạo nên phần mềm hoàn chỉnh Việc kiểm thử tích... tả, kiểm thử hộp đen cho các sản phẩm này được thực hiện với cùng ca kiểm thử và cùng các dữ liệu vào - Khi so sánh các kết quả thu được, nếu có khác biệt nghĩa là có sai trong một sản phẩm nào đó 1.3 Các phƣơng pháp kiểm thử Thiết kế kiểm thử cho phần mềm và các sản phẩm kỹ nghệ khác có thể có tính thách đố như việc thiết kế ban đầu cho chính bản thân sản phẩm Người kỹ sư phần mềm thường kiểm thử