Bài giảng Đảm bảo chất lượng phần mềm và kiểm thử - Phần II: Kiểm thử phần mềm

Kiểm thửFM làyếu tốquyết địnhcủa SQA, làkhâu điển hình của rà soát đặc tả, thiết kế, lập mã. †kiểm thửtheo Glen Myers: Là quá trình vận hành chương trình đểtìm ra lỗi. ™Cần vận hành nhưthếnào để: ƒ hiệu suất tìm ra lỗi là cao nhất ? ƒ chí phí (thời gian, công sức) ít nhất? Câu hỏi: Lý do? Vai trò? Mục tiêu? Quan niệm? Lợi ích khác? Loại-mức? Dòng thông tin? Tiến trình

pdf72 trang | Chia sẻ: tuandn | Lượt xem: 2454 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Bài giảng Đảm bảo chất lượng phần mềm và kiểm thử - Phần II: Kiểm thử phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
§¹i häc Quèc gia Hμ néi - §¹i häc c«ng nghÖ Bé m«n C«ng nghÖ phÇn mÒm BÀI GiẢNG CAO HOC ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM VÀ KiỂM THỦ NguyÔn V¨n Vþ Email: vynv@coltech.vnu.vn, mobile: 0912.505.291 Hà nội - 2005 2005 Bộ môn CNFM – Đại học Công nghệ 2 Nguyễn Văn Vỵ KIỂM THỬ PHẦN MỀM Phần II 2005 Bộ môn CNFM – Đại học Công nghệ 3 Nguyễn Văn Vỵ „ Khái niệm kiểm thử „ Các loại kiểm thử „ Thẩm định và xác minh ™ Roger S. Pressman. Software Engineering, a Practitioner’s Approach. 3th Edition, McGraw-Hill, 1992, Bản dich của Ngô Trung vIệt, Phần 4, tập 4 (Chương 17, 18, 23 –bản 2001) ™ Ian Sommerville. Software Engineering, Sixth Edition, Addion Wesley, 2001, Phần 5 và 6. chương 20 ™ E.M.Bennatan, Software Project Management : a practitioner’s approach, McGRAW-HILL Book Company, 2001 Nội dung – Tài liệu 2005 Bộ môn CNFM – Đại học Công nghệ 4 Nguyễn Văn Vỵ † Kiểm thử FM là yếu tố quyết định của SQA, là khâu điển hình của rà soát đặc tả, thiết kế, lập mã. † kiểm thử theo Glen Myers: Là quá trình vận hành chương trình để tìm ra lỗi. ™ Cần vận hành như thế nào để: ƒ hiệu suất tìm ra lỗi là cao nhất ? ƒ chí phí (thời gian, công sức) ít nhất? Câu hỏi: Lý do? Vai trò? Mục tiêu? Quan niệm? Lợi ích khác? Loại-mức? Dòng thông tin? Tiến trình ? A. Khái niệm về kiểm thử phần mềm 2005 Bộ môn CNFM – Đại học Công nghệ 5 Nguyễn Văn Vỵ ƒ Muốn nhìn thấy phần mềm như một phần tử của hệ thống hoạt động (xem sản phẩm) ƒ Hạn chế chi phí cho các thất bại do lỗi gây ra sau này (hiệu quả) ƒ Có kế hoạch tốt nâng cao chất lượng suốt quá trình phát triển (giải pháp). a. Lý do kiểm thử phần mềm 2005 Bộ môn CNFM – Đại học Công nghệ 6 Nguyễn Văn Vỵ „ Chi phí của kiểm thử chiếm: „ 40% tổng công sức phát triển „ ≥ 30% tổng thời gian phát triển „ Với các phần mềm có ảnh hưởng tới sinh mạng, chi phí có thể gấp từ 3 đến 5 lần tổng các chi phí khác cộng lại. „ Kiếm thử tốt sẽ: „ Giảm chi phí phát triển „ Tăng độ tin cậy của sản phẩm phần mềm b.Vai trò kiểm thử phần mềm 2005 Bộ môn CNFM – Đại học Công nghệ 7 Nguyễn Văn Vỵ † Mục tiêu trước mắt: tạo ra các ca kiểm thử để chỉ ra lỗi của phần mềm (tức là “đánh đổ” phần mềm) „ Nghe ra có vẻ mang tính “phá hoại”, Î dễ gây ra những vấn đề về tâm lý. † Mục đích cuối cùng: có một chương trình tốt, chi phí ítÎ xây dựng c. Mục tiêu kiểm thử phần mềm 2005 Bộ môn CNFM – Đại học Công nghệ 8 Nguyễn Văn Vỵ † Khi kiểm thử, ta tiến hành những ca kiểm thử khác nhau: ‹ Ca kiểm thử tốt có xác suất cao tìm ra một lỗi chưa được phát hiện. ‹ Ca kiểm thử thắng lợi làm lộ ra ít nhất một lỗi còn chưa được phát hiện. d. Quan niệm về một kiểm thử tốt 2005 Bộ môn CNFM – Đại học Công nghệ 9 Nguyễn Văn Vỵ † Ca kiểm thử thắng lợi làm lộ ra khiếm khuyết, đồng thời mang lại các lợi ích phụ là thuyết minh: ƒ Chức năng tương ứng với đặc tả (xác minh), ƒ Thực thi phù hợp yêu cầu & đặc tả (thẩm định, xác minh) ƒ Cung cấp các chỉ số độ tin cậy & chất lượng (thẩm định). † Tuy nhiên, kiểm thử không thể khẳng định rằng phần mềm không có khiếm khuyết e. Lợi ích khác của kiểm thử 2005 Bộ môn CNFM – Đại học Công nghệ 10 Nguyễn Văn Vỵ g. Mô hình chữ V - Các mức kiểm thử Phân tích yêu cầu Đặc tả phần mềm Thiết kế kiến trúc Thiết kế chi tiết Lập trình rà soát mã test đơn vị test tích hợp test hệ thống test chấp nhận Xác minh Thẩm định 2005 Bộ môn CNFM – Đại học Công nghệ 11 Nguyễn Văn Vỵ † Kiểm thử đơn vị (unit testing) † Kiểm thử tích hợp (integration testing) † Kiểm thử hệ thống (system testing) ƒ KT chức năng (functional test: system&interface) ƒ KT phục hồi (recovery test) ƒ KT chịu tải (extra: stress & load test) ƒ KT thi hành (performance test) ƒ KT an ninh (security test) g. Các mức – loại hình kiểm thử 2005 Bộ môn CNFM – Đại học Công nghệ 12 Nguyễn Văn Vỵ † Kiểm thử chấp nhận (aceptance testing) „ Kiểm thử alpha (alpha testing) ƒ Người dùng thực hiện ƒ Trong môi trường được quản lý „ Kiểm thử beta (beta testing) ƒ Người dùng thực hiện ƒ Trong môi trường thực g. Các loại hình kiểm thử (t) 2005 Bộ môn CNFM – Đại học Công nghệ 13 Nguyễn Văn Vỵ † Hai phương pháp phổ biến: ƒ Kiểm thử hộp trắng (white box) ƒ Kiểm thử hộp đen (black box) † Các chiến lươc Kiểm thử „ Ứng dụng cho các mức & loại kiểm thử #. „ Một số chiến lược: ƒ Kiểm thử từ trên xuống/dưới lên/lai (tích hợp) ƒ Kiểm thử vụ nổ lớn (big bang –tích hợp) ƒ Kiểm thử hồi quy (tích hợp) ƒ Kiểm thử luồn sợi (hệ thời gian thực) h. Phương pháp và chiến lược kiểm thử 2005 Bộ môn CNFM – Đại học Công nghệ 14 Nguyễn Văn Vỵ ‰ Sơ đồ dòng thông tin của tiến trình kiểm thử i. Biểu đồ dòng thông tin kiểm thử kiểm thử xây dựng Mô hình đô tin cậy đánh giá gỡ lỗi Phần mềmchỉnh sửa Đặc tả phần mềm Cấu hình kiểm thử Dự đoán độ tin cậy Phần mềm tin cậy Phần mềm chưa tin cậy 2005 Bộ môn CNFM – Đại học Công nghệ 15 Nguyễn Văn Vỵ k. Tiến trình thực hiện kiểm thử Thiết kế Ca kiểm thử Chuẩn bị dữ liệu,đk Tiến hành kiểm thử So sánh, đánh giá Yêu cầu, mã nguồn Báo cáo kiểm thử Lập kế kế hoạch KT Kết quả kiểm thử Các ca kiểm thử Kế hoạch kiểm thử Dữ liệu kiểm thử Nhật ký 2005 Bộ môn CNFM – Đại học Công nghệ 16 Nguyễn Văn Vỵ † Mục tiêu thiết kế ca kiểm thử nhằm: ƒ tìm ra nhiều sai nhất ƒ với nỗ lực & thời gian nhỏ nhất. † Trong các thập kỷ 80-90 đã nghiên cứu nhiều loại phương pháp thiết kế ca kiểm thử. † Các phương pháp tốt phải cho một cơ chế: ƒ bảo đảm tính đầy đủ (không sót phần nào) và ƒ cung cấp khả năng thật sự phát hiện được các sai m. Khái niệm về thiết kế ca kiểm thử 2005 Bộ môn CNFM – Đại học Công nghệ 17 Nguyễn Văn Vỵ B. Kiểm thử hộp trắng a. Khái niệm kiểm thử hộp trắng ‰ Đối tượng: mã nguồn ‰ Mức: các mô đun đơn vị ‰ Nội dung là Khám xét: ƒ các chi tiết thủ tục (thuật toán) ƒ con đường logic (luồng điều khiển) ƒ các trạng thái của chương trình (dữ liệu). 2005 Bộ môn CNFM – Đại học Công nghệ 18 Nguyễn Văn Vỵ a. Khái niệm kiểm thử hộp trắng ™ Vấn đề, trở ngai: ¾ Số con đường lôgíc là rất lớn: một chương trình nhỏ: ƒ với 100 dòng PASCAL ƒ với một vòng lặp • số con đường logic có thể tới:1014. • cần 3170 năm để kiểm thử tất mọi con đường và mọi ràng buộc lôgic trên nó! ¾ Nhiều trạng thái dữ liệu khác nhau: đại lượng, giá trị, sự thay đổi trong tiến trình, sự kết hợp 2005 Bộ môn CNFM – Đại học Công nghệ 19 Nguyễn Văn Vỵ „ kiểm thử cái gì? a. mọi lệnh (đầy đủ) b. mọi điều kiện lôgic có thể (rẽ nhánh) c. mọi chu trình trong chương trình (lặp lại) d. mọi cấu trúc dữ liệu được dùng (dữ liệu) e. mọi tiến trình từ đầu Æ kết thúc(từng luồng điều khiển) Câu hỏi: Yêu cầu? Lý do? Các kỹ thuật dùng và nội dung của nó? Chiến lược sử dụng? b. Nội dung cần kiểm thử hộp trắng 2005 Bộ môn CNFM – Đại học Công nghệ 20 Nguyễn Văn Vỵ „ Yêu cầu đặt ra: ¾ Mọi con đường độc lập trong một môđun cần được thực hiện ít nhất một lần. ¾ Mọi ràng buộc logic được thực hiện cả hai phía đúng (true) & phía sai (false). ¾ Tất cả các vòng lặp ở biên của nó & cả các biên vận hành phải được thực hiên. ¾ Mọi cấu trúc dữ liệu nội tại được dùng để bảo đảm hiệu lực thi hành của nó c. Yêu cầu kiểm thử hộp trắng 2005 Bộ môn CNFM – Đại học Công nghệ 21 Nguyễn Văn Vỵ „ Vì sao tốn tiền cho kiểm thử hộp trắng? ƒ Các sai logic & giả thiết không đúng tỷ lệ nghịch với xác suất để một con đường logic được thi hành. ƒ Thực tế: mọi con đường lôgic đều có thể được thi hành trên 1 cơ sở nhất định ƒ Có những sai chính tả có thể là ngẫu nhiên trên đường ta không kiểm tra. d. Lý do kiểm thử hộp trắng 2005 Bộ môn CNFM – Đại học Công nghệ 22 Nguyễn Văn Vỵ 1. Đồ thị dòng (Tom McCabe đưa ra đầu tiên). 2. Ma trận kiểm thử (số đường đi, trọng số). 3. Điều kiện lôgic – chiến lược miền và BRO 4. Điều khiển theo dòng dữ liệu 5. Các cấu trúc chu trình – giá trị đặc trưng e. Các kỹ thuật sử dụng 2005 Bộ môn CNFM – Đại học Công nghệ 23 Nguyễn Văn Vỵ f0. Khái niệm về đồ thị dòng „ Là một kỹ thuật dựa trên cấu trúc điều khiển của chương trình. „ Gần giống đồ thị luồng điều khiển của chương trình. „ Nhận được từ đồ thị luồng điều khiển bằng cách: • gộp các lệnh tuần tự • thay lệnh rẽ nhánh và điểm kết thúc của các đường điều khiển bằng 1 nút vị tự f. Kỹ thuật đồ thị dòng 2005 Bộ môn CNFM – Đại học Công nghệ 24 Nguyễn Văn Vỵ „ Cấu trúc gồm: ƒ mỗi nút (hình tròn) biểu thị một hay một số lệnh tuần tự, hoặc thay cho điểm hội tụ các đường điều khiển. ƒ mỗi cạnh nối hai nút biểu diễn dòng điều khiển, „ Kết quả đồ thi dòng: ƒ Chia mặt phẳng thành nhiều miền. ƒ Có nút vị từ biểu thị sự phân nhánh hoặc hội nhập của các cung. f1. Cấu trúc đồ thị dòng 2005 Bộ môn CNFM – Đại học Công nghệ 25 Nguyễn Văn Vỵ „ Các cấu trúc cơ bản của đồ thị dòng: case f2. Các kiểu cấu trúc thành phần đồ thị dòng if while until 2005 Bộ môn CNFM – Đại học Công nghệ 26 Nguyễn Văn Vỵ „ xét biểu đồ điều khiển của một chương trình f3. Ví dụ: cấu trúc điều khiển chương trình 8 11 1 2 6 3 9 7 5 4 10 2005 Bộ môn CNFM – Đại học Công nghệ 27 Nguyễn Văn Vỵ „ luồng điều khiển f4. Ví dụ: cấu trúc đồ thị dòng 1 109 87 6 11 4,5 2,3 „ đồ thị dòng 8 11 1 2 6 3 9 7 5 4 10 2005 Bộ môn CNFM – Đại học Công nghệ 28 Nguyễn Văn Vỵ „ Đồ thị dòng trên gồm: • 9 nút, trong đó: • 5 nút là vị tự (mầu đỏ) • 11 cung • Chia mặt phẳng thành 4 miền f5. Ví dụ: xác định các thông số 2005 Bộ môn CNFM – Đại học Công nghệ 29 Nguyễn Văn Vỵ † Để đảm bảo mọi câu lệnh đều được kiểm thử ít nhất một lần, cần tìm được tất cả các đường điều khiển độc lập trong chương trình (khác với các đường khác ít nhất một lệnh). † Số các đường độc lập của 1 chương trình là giới hạn trên số các kiểm thử cần phải tiến hành. Nó được gọi là độ phức tạp chu trình của chương trình † Các đường độc lập của 1 chương trình trùng với các đường độc lập của đồ thì dòng (tim đơn giản hơn). f6. Độ phức tạp của chu trình 2005 Bộ môn CNFM – Đại học Công nghệ 30 Nguyễn Văn Vỵ †Độ phức tạp chu trình V(G) của đồ thị G được tính theo các cách sau: ƒ V(G) = E - N + 2 (= 11-9+2 = 4) ƒ V(G) = số miền phẳng (= 4) ƒ V(G) = P – 1 (= 5-1 =4) Trong đó: E = số cung; N = số nút; P= số nút vị từ Với ví dụ về đồ thị dòng ở trên ta có: V(G) = 4 f7. Tính toán độ phức tạp chu trình 2005 Bộ môn CNFM – Đại học Công nghệ 31 Nguyễn Văn Vỵ f8. Xác định các ca kiểm thử Tính độ phức Tạp chu trình Xác định tập đường cơ bản Chuẩn bị các ca kiểm thử Yêu cầu, mã nguồn Vẽđồ thị dòng Các ca kiểm thử và nội dung 2005 Bộ môn CNFM – Đại học Công nghệ 32 Nguyễn Văn Vỵ † Ma trân kiểm thử là một ma trận vuông có kich thước bằng số các nút trong đồ thị dòng: • Mỗi dòng/cột ứng với tên một nút • Mỗi ô: là tên một cung nối nút dòng đến nút cột. † Nhân liên tiếp k ma trận này được ma trận chỉ số con đường k cung từ nút dòng tới nút cột. † Ma trận kiểm thử được sử dụng như 1 dữ liệu có cấu trúc để kiểm tra các con đường cơ bản: số đường đi qua nút g. Kỹ thuật ma trận kiểm thử 2005 Bộ môn CNFM – Đại học Công nghệ 33 Nguyễn Văn Vỵ † Để ma trận kiểm thử - một công cụ mạnh - trong việc đánh giá cấu trúc điều khiển chương trình. Khi kiểm thử, ta thêm trọng số cho các cung của ma trận kiểm thử như sau: ƒ Xác suất cung đó được thực thi. ƒ Thời gian xử lý của tiến trình đi qua cung đó ƒ Bộ nhớ đòi hỏi của tiến trình đi qua cung đó. ƒ Nguồn lực đòi hỏi của tiến trình đi qua cung đó. g1. Các ma trận kiểm thử có trọng số 2005 Bộ môn CNFM – Đại học Công nghệ 34 Nguyễn Văn Vỵ g2. Ví dụ ma trận kiểm thử 1 109 87 6 11 4,5 2,3 1 23 45 6 7 8 9 10 11 1 1 1 23 1 1 45 1 6 1 1 7 1 8 1 9 1 10 1 11 =A 2005 Bộ môn CNFM – Đại học Công nghệ 35 Nguyễn Văn Vỵ g2. Ví dụ ma trận kiểm thử (t) 1 23 45 6 7 8 9 10 11 1 1 1 23 1 1 45 1 6 2 7 1 8 1 9 10 11 1 1 A2 = Các số trong ma trận cho biết số con đường có hai cạnh đi qua cung đó 2005 Bộ môn CNFM – Đại học Công nghệ 36 Nguyễn Văn Vỵ Trong 1 chương trình, Điều kiện lôgic có thể là: † Điều kiện đơn là 1 biến Bool (có thể có toán tử phủ định): X † Điều kiện đơn là biểu thức quan hệ giữa 2 biểu thức số học C = (A Θ B) , với Θ là phép so sánh: , ≥ hay ≠ A, B là biểu thức số học † Điều kiện phức hợp cấu thành từ hơn một điều kiện đơn nhờ các toán tử Bool: hoặc (∪), và (∩), phủ định (┘) D = X1 & X 2 & … Xn , trong đó Xi là điều kiện đơn, & là toán tử bool h. Điều kiện logic và các chiến lược 2005 Bộ môn CNFM – Đại học Công nghệ 37 Nguyễn Văn Vỵ ‰ Sai biến Bool. ‰ Sai toán tử Bool. ‰ Sai số hạng trong biểu thức toán tử Bool ‰ Sai toán tử quan hệ. ‰ Sai biểu thức số học. h1. Kiểu sai trong điều kiện lôgic 2005 Bộ môn CNFM – Đại học Công nghệ 38 Nguyễn Văn Vỵ † Kiểm thử từng điều kiện trong chương trình. † Kiểm thử điều kiện không chỉ là phát hiện sai trong điều kiện đó mà còn là phát hiện sai khác của chương trình liên quan. † Đã có một số chiến lược kiểm thử . „ Nguyên tắc kiểm thử nhánh: với mỗi điều kiện phức hợp C, thì với mỗi nhánh “true” và “false” của C, mỗi điều kiện đơn trong C phải được kiểm thử ít nhất một lần. h2. Chiến lược kiểm thử phân nhánh 2005 Bộ môn CNFM – Đại học Công nghệ 39 Nguyễn Văn Vỵ „ Chiến lược kiểm thử miền cần 3 hoặc 4 kiểm thử cho một biểu thức quan hệ gồm các trường hợp: , = và có thể ≠ nữa. † Nếu biểu thức Bool có n biến, mà n nhỏ thì thuận lợi, song n lớn thì khó thực hiện! † Người ta đưa ra chiến lược cho các phép thử nhạy cảm bằng cách áp dụng kết hợp chiến lược kiểm thử nhánh và kiểm thử miền (quan hệ) † Làm sao chỉ ra tất cả các trường hợp cần kiểm thử? h3. Chiến lược kiểm thử miền 2005 Bộ môn CNFM – Đại học Công nghệ 40 Nguyễn Văn Vỵ †BRO = kiểm thử nhánh & toán tử quan hệ. (branch and relational operation) ƒ BRO dùng “ràng buộc điều kiện làm điều kiện cần thử” để phát hiện sai ở nhánh và toán tử khi xẩy ra một lần và không có biến chung. ƒ Giả sử: D = X1&X2 & … Xn , Xi: điều kiện đơn, &: toán tử bool Cần đặc tả ràng buộc đầu ra của Xi tương ứng với điều kiện D đã xác định?. h4. Chiến lược kiểm thử BRO 2005 Bộ môn CNFM – Đại học Công nghệ 41 Nguyễn Văn Vỵ ƒ Ta nói rằng ràng buộc Xi của điều kiện D là được phủ bởi một sự thực thi của C nếu như trong quá trình thực thi đó, đầu ra của mỗi điều kiện đơn Xi trong D thoả mãn các ràng buộc tương ứng. Điều này có nghĩa là: Khi giá trị của D đã cho, ta cần tìm các điều kiện ràng buộc mà mỗi Xi (1 thành phân của D) cần thỏa mãn để đảm bảo được giá trị của D h4. Chiến lược BRO – điều kiện đầu vào 2005 Bộ môn CNFM – Đại học Công nghệ 42 Nguyễn Văn Vỵ † Với một biến Bool B, thì ràng buộc đầu ra của B là t (true) hoặc f (false). † Với một biểu thức quan hệ (A Θ B) thì ràng buộc đầu ra của nó là toán tử quan hệ: Θ có thể nhận một trong bốn giá trị >, <, =, # (lớn hơn, nhỏ hơn & bằng hoặc khác). h5. Chiến lược BRO – tạo ràng buộc 2005 Bộ môn CNFM – Đại học Công nghệ 43 Nguyễn Văn Vỵ thí dụ, xét điều kiện C = A ∩ B „ A và B là hai biến Bool. Khi đó ràng buộc đầu ra của C là một cặp giá trị của t và f. „ Chiến lược kiểm thử BRO đòi hỏi rằng tập ba cặp ràng buộc (t,t), (t,f) và (f,t) đều được phủ bởi các thực thi của C. ¾ Căp (t,t) ứng với C = t ¾ Căp (t,f) và (f,t) ứng với C = f h6. Chiến lược BRO – tạo ràng buộc1 2005 Bộ môn CNFM – Đại học Công nghệ 44 Nguyễn Văn Vỵ † Xét điều kiện C = (B = E). Khi đó ràng buộc đầu ra là “ = “ tương ứng với t và “ ” tương ứng với f † Xét điều kiện C là hội biến Bool và biểu thức quan hệ: A và B = E. Khi đó các ràng buộc của C là các cặp (t,t), (t,f) và (f,t); với (B = E) có giá trị t tương ứng với “=“, và giá trị f tương ứng với “”; Bởi vậy tập các ràng buộc đầu ra của C phải gồm 4 phần tử: (t,=), (t,) và (f,=). † Phủ của các ràng buộc này bảo đảm phát hiện được sai biến Bool hoặc toán tử quan hệ trong C. h7. Chiến lược BRO – tạo ràng buộc2 2005 Bộ môn CNFM – Đại học Công nghệ 45 Nguyễn Văn Vỵ † Xét điều kiện C là hội của hai biểu thức quan hệ (A>B) và (E=F) † Tập ràng buộc đầu ra sẽ (t,t), (t,f) và (f,t) và tương ứng sẽ là: (>,=); (>,,>); (=,=) và (<,=). † Phủ của ràng buộc này bảo đảm rằng phát hiện được sai ở các toán tử quan hệ trong C. h8. Chiến lược BRO – tạo ràng buộc 3 2005 Bộ môn CNFM – Đại học Công nghệ 46 Nguyễn Văn Vỵ † Phương pháp kiểm thử dòng dữ liệu tuyển chọn các đường của chương trình tương ứng với việc định vị các xác định biến và sử dụng biến trong chương trình. Đã có một số chiến lược kiểm thử dòng dữ liệu và so sánh chúng. † Giả sử rằng mỗi câu lệnh của chương trình được gán với số câu lệnh duy nhất và mỗi hàm không được cải biên các tham số của nó và các biến toàn cục. i. Kiểm thử điều khiển theo dòng dữ liệu 2005 Bộ môn CNFM – Đại học Công nghệ 47 Nguyễn Văn Vỵ †Với mỗ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 S chứa 1 sử dụng X} „ Nếu S là câu lệnh if hoặc câu lệnh vòng lặp thì DEF(S) là rỗng, còn USE(S) của nó được xác định tùy theo điều kiện trong S. i1. Định nghĩa các dòng dữ liệu 2005 Bộ môn CNFM – Đại học Công nghệ 48 Nguyễn Văn Vỵ † Giả thiết: định nghĩa biến X ở câu lệnh S vẫn còn sống ở câu lệnh S’ nếu có một con đường từ S tới S’ mà trên đó không chứa một định nghĩa nào khác của X. † Một dây truyền DU sử dụng X ký hiệu là DU = [X,S,S’] với X trong DEF(S) và trong USE(S’), và định nghĩa X trong S vẫn còn sống trong S’. † Chiến lược kiểm thử dòng dữ liệu đòi hỏi rằng: mọi DU đều phải được phủ ít nhất một lần. i2. Chiến lược lần vết theo dòng dữ liệu 2005 Bộ môn CNFM – Đại học Công nghệ 49 Nguyễn Văn Vỵ † kiểm thử DU không bảo đảm phủ tất cả các nhánh của chương trình; tuy nhiên 1 nhánh không được phủ bởi DU kiểm thử là rất hiếm. † Với chiến lược theo dòng, phần lớn trạng thái chương trình được kiểm soát † kiểm thử dòng dữ liệu là hữu ích với các đường của chương trình có chứa các câu lệnh if hoặc vòng lặp. i3. Đánh giá chiến lược theo dòng dữ liệu 2005 Bộ môn CNFM – Đại học Công nghệ 50 Nguyễn Văn Vỵ † Có bốn loại vòng lặp: mỗi loại dùng một tập các phép thử khác nhau „ Vòng lặp đơn. k. Kiểm thử điều khiển theo vòng lặp 2005 Bộ môn CNFM – Đại học Công nghệ 51 Nguyễn Văn Vỵ k1. Kiểu vòng lặp lồng nhau Kết hợp mỗi vòng lặp ngoài với mọi vòng lặp trong 2005 Bộ môn CNFM – Đại học Công nghệ 52 Nguyễn Văn Vỵ Kết hợp mỗi vòng lặp trước với mọi vòng lặp sau k2. Kiểu vòng lặp nối tiếp 2005 Bộ môn CNFM – Đại học Công nghệ 53 Nguyễn Văn Vỵ Với mỗi loại vòng lặp, thường chỉ sử dụng ba giá trị lặp: hai giá trị biên và một giá trị giữa hai biên k3. Chọn giá trị cho mỗi loại vòng lặp Các giá trị lặp của một vòng lặp Các giá trị lặp nên chọn 2005 Bộ môn CNFM – Đại học Công nghệ 54 Nguyễn Văn Vỵ a Khái niệm ‰ Là kiểm thử yêu cầu chức năng ‰ Đối tương: mô đun, hệ con, toàn hệ thống ‰ Đặc trưng: ƒ Thuyết minh: các chức năng đủ & vận hành đúng ƒ Thực hiện: qua giao diện ƒ Cơ sở: đặc tả, điều kiện vào/ra và cấu trúc dữ liệu ƒ Ít chú ý tới cấu trúc logic nội tại của nó C. Kiểm thử hộp đen 2005 Bộ môn CNFM – Đại học Công nghệ 55 Nguyễn Văn Vỵ Phần mềm Kết quả ra Đặc tả hệ thống phần mềm 1.……… 2….…… ……… n ……… Giao diện Chức năng dữ liệu Dữ liệu đầu vào ? ? ? ? Khởi đầu –kết thúc Đầu ra liên quan a. Mô hình khái niệm kiểm thử hộp đen 2005 Bộ môn CNFM – Đại học Công nghệ 56 Nguyễn Văn Vỵ ‰Tìm các loại sai liên quan: ƒ Chức năng: đủ, đúng đắn ƒ Giao diện: vào, ra: đủ, phù hợp, đúng, tiện lợi ƒ Cấu trúc, truy cập dữ liệu: thông suốt, đúng đắn ƒ Thực thi: trôi chảy, kịp thời, chịu lỗi, phục hồi ƒ Khởi đầu - kết thúc: mỗi tiến trình thông suốt b. Mục đích kiểm thử hộp đen 2005 Bộ môn CNFM – Đại học Công nghệ 57 Nguyễn Văn Vỵ †Các câu hỏi tập trung trả lời : „ Hiệu lực của chức năng (chức năng, hiệu suất, giao diện) đạt được đến đâu? „ Lớp đầu vào nào cho các ca kiểm thử tốt? „ Sự nhạy cảm của môđun với giá trị và