Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 85 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
85
Dung lượng
2,39 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ LUYỆN THỊ LAN HƢƠNG KIỂM THỬ ĐƠN VỊ CHO HỆ THỐNG LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội - 2014 1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ LUYỆN THỊ LAN HƢƠNG KIỂM THỬ ĐƠN VỊ CHO HỆ THỐNG 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Ĩ CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. TRẦN THỊ MINH CHÂU Hà Nội – 2014 2 Lời cam đoan Tôi xin cam đoan rằng luận văn cao học này do chính tôi thực hiện. Những kết quả được tổng hợp và nghiên cứu từ các tài liệu tham khảo sử dụng trong luận văn này được thu thập từ các nguồn thông tin được công bố trên các sách báo, tạp chí khoa học chuyên ngành đáng tin cậy và kiến thức, kinh nghiệm của bản thân. Tôi hoàn toàn chịu trách nhiệm trước nhà trường về sự cam đoan này. Hà Nội, ngày 31 tháng 10 năm 2014 Học viên Luyện thị Lan Hương 3 Lời cảm ơn Em xin gửi lời cảm ơn chân thành tới các thầy cô giảng viên trong bộ môn Kỹ thuật phần mềm, khoa Công nghệ thông tin, trường Đại học Công nghệ đã tận tình giảng dạy và truyền đạt kiến thức, kinh nghiệm cho em trong suốt thời gian em học tập tại trường. Em xin được gửi lời cảm ơn sâu sắc nhất tới cô giáo TS. Trần Thị Minh Châu, cô đã luôn giúp đỡ, hướng dẫn và chỉ bảo cho em trong suốt quá trình học tập và thực hiện đề tài luận văn. Bên cạnh những kết quả em đạt được vẫn còn những vấn đề mà em cũng không tránh khỏi những thiếu sót trong quá trình thực hiện luận văn, em kính mong các thầy cô thông cảm cho em. Em mong nhận được sự góp ý, chia sẻ, đánh giá của các thầy cô. Đó là những kinh nghiệm quý báu cho quá trình học tập và làm việc của em sau này. Em xin cảm ơn chân thành cảm ơn. Hà Nội, ngày 31 tháng 10 năm 2014 Học viên Luyện Thị Lan Hương 4 Mục lục Lời cam đoan 2 Lời cảm ơn 3 Mục lục 4 Bảng các từ viết tắt 6 Danh mục hình vẽ 7 Danh mục bảng biểu 8 Chương 1. Giới thiệu 10 1.1 Đặt vấn đề 10 1.2 Nội dung nghiên cứu 10 1.3 Cấu trúc luận văn 11 Chương 2.Tổng quan về kiểm thử phần mềm 12 2.1 Chất lượng phần mềm 12 2.2 Kiểm thử và vai trò của kiểm thử 12 2.3 Các mục tiêu của kiểm thử 13 2.4 Các hoạt động kiểm thử 14 2.5 Các mức độ kiểm thử 14 Kiểm thử đơn vị 15 Kiểm thử tích hợp, 17 Kiểm thử hệ thống 18 Kiểm thử chấp nhận. 20 Kiểm thử hồi quy 20 Chương 3.Các kỹ thuật kiểm thử phần mềm 22 3.1 Kiểm thử hộp đen 22 3.1.1. Kỹ thuật phân lớp tương đương(Equivalence Class Testing) 22 3.1.2. Kỹ thuật phân tích giá trị biên (Boundary Value Testing) 25 3.1.3. Kỹ thuật bảng quyết định (Descision Table Testing) 29 3.2 Kiểm thử hộp trắng 31 3.2.1. Kỹ thuật dòng điều khiển (Control Flow Testing) 31 3.2.2. Kỹ thuật dòng dữ liệu (Data Flow Testing) 34 5 Chương 4.Bài toán áp dụng 37 4.1. Bài toán 1 37 4.1.1. Áp dụng kỹ thuật phân lớp tương đương 38 4.1.2. Áp dụng kỹ thuật Bảng quyết định 38 4.1.3. Áp dụng kỹ thuật kiểm thử dòng điều khiển 39 4.1.4. Áp dụng kỹ thuật kiểm thử dòng dữ liệu 45 4.1.5. Kết luận 48 4.2. Bài toán 2 51 4.2.1. Áp dụng kỹ thuật phân lớp tương đương 52 4.2.2. Áp dụng kỹ thuật bảng quyết định 54 4.2.3. Áp dụng kỹ thuật dòng điều khiển 54 4.2.4. Áp dụng kỹ thuật dòng dữ liệu 61 4.2.5. Kết luận 66 4.3. Bài toán 3 68 4.3.1. Áp dụng kỹ thuật Domain testing 69 4.3.2. Áp dụng kỹ thuật Bảng quyết định 69 4.3.3. Áp dụng kỹ thuật dòng điều khiển 74 4.3.4. Áp dụng kỹ thuật dòng dữ liệu 79 4.3.5. Kết luận 80 Chương 5.Kết luận 83 5.1. Kết quả của luận văn 83 5.2. Hướng nghiên cứu tiếp theo 83 Tài liệu tham khảo 84 6 Bảng các từ viết tắt Viết tắt Tên đầy đủ Ghi chú UT Unit Test Kiểm thử đơn vị ST System test Kiểm thử hệ thống AT acceptance test Kiểm thử chấp nhận EP Equivalence partitioning Phân lớp tương đương ĐK Điều kiện Eff Effects Hành động CS Checksum CFG Control flow graph Đồ thị dòng điều khiển DFG Data flow graph Đồ thị dòng dữ liệu EO Expected output Kết quả mong đợi 7 Danh mục hình vẽ Hình 2.1 Mô hình phát triền phầm mềm chữ V 15 Hình 2.2 Kỹ thuật bộ cuống và bộ lái trong chiến lươc tích hợp dần 18 Hình 3.1 Trực quan mô tả phân lớp tương đương. 22 Hình 3.2 Kỹ thuật kiểm thử biên mở rộng 26 Hình 3.3 Các biên kiểm thử trong trường hợp xấu nhất. 27 Hình 3.4 Kết hợp kiểm thử biên rường hợp xấu nhẩt & kiểm thử biên mở rộng. 28 Hình 3.6 So sánh các kỹ thuật kiểm thử biên. 28 Hình 3.7 Sơ đồ dòng điều khiển 32 Hình 3.8 Các ký hiệu sử dụng trong đồ thị 32 Hình 3.9 Mối quan hệ giữa các độ đo kiểm thử dòng dữ liệu. 36 Hình 4.1Sơ đồ dòng điều khiền cho bài toán 1 – mã nguồn 1 42 Hình 4.2 Sơ đồ dòng điều khiền cho bài toán 1 – mã nguồn 2 44 Hình 4.3 Sơ đồ dòng dữ liệu cho bài toán 1 – mã nguồn 1 46 Hình 4.4 Sơ đồ dòng dữ liệu cho bài toán 1 – mã nguồn 2 48 Hình 4.5 Sơ đồ dòng điều khiển cho bài toán 2 – mã nguồn 1 58 Hình 4.6 Sơ đồ dòng điều khiển cho bài toán 2 – mã nguồn 2 60 Hình 4.7 Sơ đồ dòng dữ liệu cho bài toán 2 – mã nguồn 1 63 Hình 4.8 Sơ đồ dòng dữ liệu cho bài toán 2 – mã nguồn 2 65 Hình 4.9 Sơ đồ dòng điều khiển cho bài toán 3 76 Hình 4.10 Sơ đồ dòng dữ liệu cho bài toán 3 79 8 Danh mục bảng biểu Bảng 3.1 Cấu trúc bảng quyết định 29 Bảng 4.2 Các ca kiểm thử sinh ra theo kỹ thuật phân lớp tương đương 38 Bảng 4.3 Bảng quyết định cho bài toán 1. 39 Bảng 4.4 Các ca kiểm thử sinh ra theo kỹ thuật bảng quyết định 39 Bảng 4.5 Quy ước các điều kiện, hành động trong sơ đồ CFG của bài toán 1 41 Bảng 4.6 Các ca kiểm thử sinh ra theo kỹ thuật dòng điều khiển với mã nguồn 1 43 Bảng 4.7 Các ca kiểm thử sinh ra theo kỹ thuật dòng điều khiển với mã nguồn 2 45 Bảng 4.8 Quy ước ký hiệu của các điều kiện trong sơ đồ DFG của bài toán 1 45 Bảng 4.9 Các ca kiểm thử sinh ra theo kỹ thuật dòng dữ liệu với mã nguồn 1 47 Bảng 4.10 Các ca kiểm thử sinh ra theo kỹ thuật dòng dữ liệu với mã nguồn 2 48 Bảng 4.11 So sánh độ bao phủ của các kỹ thuật kiểm thử với mã nguồn 1 48 Bảng 4.12 So sánh độ bao phủ của các kỹ thuật kiểm thử với mã nguồn 2 49 Bảng 4.13 Thống kê số lỗi phát hiện được khi thực thi hai mã nguồn – bài toán 1 49 Bảng 4.14 Bảng hệ số tỷ lệ free float của chỉ số HNX 52 Bảng 4.15 Các ca kiểm thử sinh ra theo kỹ thuật phân lớp tương đương 53 Bảng 4.16 Các ca kiểm thử sinh ra theo kỹ thuật bảng quyết định 54 Bảng 4.17 Quy ước các điều kiện, hành động trong sơ đồ CFG của bài toán 2 – mã nguồn 1 57 Bảng 4.18 Các ca kiểm thử sinh ra bởi kỹ thuật dòng điều khiển – mã nguồn 1 59 Bảng 4.19 Quy ước các điều kiện, hành động trong sơ đồ CFG của bài toán 2 – mã nguồn 2 59 Bảng 4.20 Các ca kiểm thử sinh ra bởi kỹ thuật dòng điều khiển – mã nguồn 2 61 Bảng 4.21 Quy ước, ký hiệu các điều kiện của sơ đồ DFG của bài toán 2 – mã nguồn 1 61 Bảng 4.22 Quy ước, ký hiệu các điều kiện của sơ đồ DFG của bài toán 2 – mã nguồn 1 62 Bảng 4.23 Các ca kiểm thử sinh ra bởi kỹ thuật dòng dữ liệu – mã nguồn 1 63 Bảng 4.24 Quy ước, ký hiệu các điều kiện của sơ đồ DFG của bài toán 2 – mã nguồn 2 64 Bảng 4.254 Các ca kiểm thử sinh ra bởi kỹ thuật dòng dữ liệu – mã nguồn 2 66 Bảng 4.265 So sánh độ bao phủ của các kỹ thuật kiểm thử với mã nguồn 1 66 Bảng 4.27 So sánh độ bao phủ của các kỹ thuật kiểm thử với mã nguồn 2 67 Bảng 4.28 Thống kê số lỗi phát hiện được khi thực thi hai mã nguồn – bài toán 2 67 Bảng 4.29 Quy ước các điều kiện, hành động trong sơ đồ CFG của bài toán 3 75 9 Bảng 4.30 So sánh độ phủ của các kỹ thuật kiểm thử 80 Bảng 4.31 Thống kê số lỗi phát hiện được khi thực thi hai mã nguồn – bài toán 3 81 [...]... hoạt động lập trình 2.5.1 Kiểm thử đơn vị Theo [2], đơn vị (unit) là một thành phần phần mềm nhỏ nhất mà ta có thể kiểm thử được như hàm, thủ tục, lớp hay phương thức đều có thể được xem là đơn vị Các thành phần đơn vị này sẽ được kiểm thử tại cấp độ kiểm thử mức đơn vị trong quy trình kiểm thử phần mềm Kiểm thử đơn vị hay còn gọi là unit testing (UT), là cấp độ kiểm thử cho phép kiểm tra, tìm kiếm lỗi... thể bỏ qua khi kiểm thử tích hợp là phải tiến hành kiểm thử hồi quy mỗi khi tích hợp thêm mô đun mới hay sửa đổi một mô đun trong số các ô đun đã kiểm thử 2.5.3 Kiểm thử hệ thống Kiểm thử hệ thống (ST) là cấp độ thực hiện việc kiểm thử toàn bộ các chức năng của hệ thống có phù hợp với yêu cầu đặc tả hay không Kiểm thử hệ thống được thực hiện sau khi giai đoạn kiểm thử đơn vị và kiểm thử tích hợp đã... và tiến hành kiểm thử chúng Nếu như kiểm thử đơn vị kiểm tra các thành phần và đơn vị riêng lẻ thì kiểm thử tích hợp lại kết hợp chúng lại với nhau và kiểm tra sự giao tiếp và tương tác giữa chúng Kiểm thử tích hợp là giai đoạn tiếp theo của kiểm thử đơn vị được thực hiện bởi nhóm kiểm thử viên và tập trung vào việc tích hợp các thành phần đơn vị của hệ thống [2] Trước khi thực thi kiểm thử tích hợp... quan đến chất lượng của toàn bộ hệ thống Điểm khác nhau giữa kiểm thử tích hợp và kiểm thử hệ thống là kiểm thử hệ thống chú trọng các hành vi và lỗi trên toàn hệ thống, còn kiểm thử tích hợp chú trọng 19 sự giao tiếp giữa các đơn thể hoặc đối tượng khi chúng làm việc cùng nhau Thông thường ta phải thực hiện kiểm thử đơn vị và kiểm thử tích hợp để đảm bảo mọi thành phần đơn vị và sự tương tác giữa chúng... hiện kiểm thử hệ thống Sau khi hoàn thành giai đoạn kiểm thử tích hợp thì một hệ thống phần mềm được hình thành cùng với các thành phần đã được kiểm tra đầy đủ Tại thời điểm này, lập trình viên hoặc kiểm thử viên bắt đầu kiểm thử phần mềm như một hệ thống hoàn chỉnh Việc lập kế hoạch cho kiểm thử hệ thống nên bắt đầu từ giai đoạn hình thành và phân tích các yêu cầu Kiểm thử hệ thống làm nhiệm vụ kiểm. .. thuật kiểm thử phần mềm Chương 3 trình bày các kỹ thuật kiểm thử phần mềm được áp dụng cho mức độ kiểm thử đơn vị Trong kiểm thử phần mềm, chúng ta thường dùng hai phương pháp chính là kiểm thử tĩnh (static testing) và kiểm thử động (dynamic testing) Kiểm thử động bao gồm các chiến lược: kiểm thử hộp đen (black box testing) và kiểm thử hộp trắng (white box testing) 3.1 Kiểm thử hộp đen Kiểm thử hộp... ta phải đảm bảo rằng các thành phần đơn vị đã thực hiện UT thành công Mục tiêu chính của kiểm thử tích hợp là phát hiện lỗi giao tiếp xảy ra giữa các đơn vị, tích hợp các thành phần đơn vị đơn lẻ thành các hệ thống nhỏ và cuối cùng là tích hợp thành một hệ thống hoàn chỉnh chuẩn bị cho kiểm thử ở mức hệ thống Có một số phép kiểm thử đơn giản trên giao tiếp giữa đơn vị với các thành phần liên quan khác,... việc kiểm thử từng đơn vị là chưa đủ Một chiến lược cần quan tâm trong kiểm thử tích hợp là nên tích hợp dần từng đơn vị Một thành phần đơn vị tại một thời điểm được tích hợp vào một nhóm các đơn vị khác đã tích hợp trước đó và đã hoàn tất các đợt kiểm thử tích hợp trước đó Lúc này, ta chỉ cần kiểm thử giao tiếp của đơn vị mới thêm vào với hệ thống các đơn vị đã tích hợp trước đó, điều này sẽ làm cho. .. tả hệ thống hay không Các ca kiểm thử cần phải được viết đủ chi tiết cho các hành vi hoặc chức năng được kiểm thử, các thông tin bắt buộc cần có trong ca kiểm thử bao gồm: mục đích của ca kiểm thử, môi trường thực thi kiểm thử, các bước chi tiết để tiến hành kiểm thử, dữ liệu đầu vào, dữ liệu đầu ra mong đợi 2.5.4 Kiểm thử chấp nhận Thông thường sau giai đoạn kiểm thử hệ thống là giai đoạn kiểm thử. .. đơn vị, các ưu, nhược điểm của từng kỹ thuật và các bài toán sẽ áp dụng cho từng kỹ thuật kiểm thử Từ những tìm hiều về các kỹ thuật kiểm thử, tiến hành áp dụng thử nghiệm các kỹ thuật kiểm thử để sinh ca kiểm thử cho bài toán thực tế Dựa trên các kết quả đó, tiến hành tổng hợp phân tích để đưa ra chiến lược kiểm thử sẽ áp dụng cho hàm/ đơn 11 vị cần tiến hành kiểm thử đơn vị nhằm đảm bảo số ca kiểm thử . thành phần đơn vị này sẽ được kiểm thử tại cấp độ kiểm thử mức đơn vị trong quy trình kiểm thử phần mềm. Kiểm thử đơn vị hay còn gọi là unit testing (UT), là cấp độ kiểm thử cho phép kiểm tra,. phần đơn vị đơn lẻ thành các hệ thống nhỏ và cuối cùng là tích hợp thành một hệ thống hoàn chỉnh chuẩn bị cho kiểm thử ở mức hệ thống. Có một số phép kiểm thử đơn giản trên giao tiếp giữa đơn vị. kiểm thử 14 Kiểm thử đơn vị 15 Kiểm thử tích hợp, 17 Kiểm thử hệ thống 18 Kiểm thử chấp nhận. 20 Kiểm thử hồi quy 20 Chương 3.Các kỹ thuật kiểm thử phần mềm 22 3.1 Kiểm thử hộp đen 22 3.1.1.