Đảm bảo và kiểm soát chất lượng - Chương 5: Các kỹ thuật kiểm tra động

Tổng quan về kiểm thử động Kiểm thử hộp đen  Phân hoạch tương đương  Phân tích giá trị biên  Sơ đồ chuyển trạng thái  Bảng quyết định Kiểm thử hộp trắng  Luồng điều khiển Kỹ thuật dựa trên kinh nghiệm Chọn kỹ thuật kiểm thử phù hợp

pdf56 trang | Chia sẻ: thuychi16 | Lượt xem: 890 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đảm bảo và kiểm soát chất lượng - Chương 5: Các kỹ thuật kiểm tra động, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẢM BẢO VÀ KIỂM SOÁT CHẤT LƯỢNG HCM – 10/2012 Chương 5: Các kỹ thuật kiểm tra động 1 4/23/2014 Nội dung Tổng quan về kiểm thử động Kiểm thử hộp đen  Phân hoạch tương đương  Phân tích giá trị biên  Sơ đồ chuyển trạng thái  Bảng quyết định Kiểm thử hộp trắng  Luồng điều khiển Kỹ thuật dựa trên kinh nghiệm Chọn kỹ thuật kiểm thử phù hợp 4/23/2014 Trang 2 Tại sao cần kiểm thử Động?  Testing hết tất cả các trường hợp là điều không thể => Phải xác định 1 tập con:  Có khả năng xác định lỗi cao nhất  Với chi phí nhỏ nhất  Phải thông qua 1 quy trình để giúp xác định được 1 danh sách test case phù hợp nhất  Test-case hiệu quả (Effective): tìm nhiều lỗi • Tập trung vào những lỗi đặc thù • Testing đúng cái cần được Test  Test-case hữu hiệu (Efficient): tìm lỗi với chi phí nhỏ nhất • Tránh trùng lấp • Các kỹ thuật phải có tính đo lường được 4/23/2014 Trang 3 3 kiểu thiết kế kiểm thử động Hộp đen (Specification-based - black box) ‰Hộp trắng (Structure-based - white box) Dựa trên kinh nghiệm(Experience-based : tấn công, thăm dò, danh sách ý kiểm tra)  Tạo kiểm thử chủ yếu nhờ vào sự hiểu biết về hệ thống, kinh nghiệm quá khứ, phương pháp phỏng đoán về lỗi 4/23/2014 Trang 4 output Nên áp dụng ở đâu? Áp dụng ở đâu? Hộp đen thường áp dụng cho tất cả các cấp độ nhưng tập trung vào các cấp độ cao (System và Acceptance) Hộp trắng thường áp dụng ở những cấp độ thấp (Unit và Integration) Dựa trên kinh nghiệm khi không rõ yêu cầu 4/23/2014 Trang 5 Tích hợp Đơn vị Chấp nhận Hệ thống Chiến lược kiểm thử Mỗi phương pháp có những ưu điểm cũng như khuyết điểm riêng Cần kết hợp sức mạnh của cả hai phương pháp trên Bắt đầu bằng việc phát triển các ca kiểm thử sử dụng phương pháp hộp đen Sau đó phát triển bổ sung các ca kiểm thử cần thiết với phương pháp hộp trắng 4/23/2014 Trang 6 Hộp đen Hộp trắng 1. Phân hoạch tương đương 2. Phân tích giá trị biên 3. Sơ đồ chuyển trạng thái 4. Bảng quyết định 5. Đồ thị Nhân quả 1. Luồng điều khiển 2. Dòng dữ liệu Nội dung  Tổng quan về kiểm thử động  Kiểm thử hộp đen  Phân hoạch tương đương  Phân tích giá trị biên  Sơ đồ chuyển trạng thái  Bảng quyết định  Đồ thị Nhân quả  Kiểm thử hộp trắng  Luồng điều khiển  Kỹ thuật dựa trên kinh nghiệm  Chọn kỹ thuật kiểm thử 4/23/2014 Trang 7 Phân lớp/hoạch tương đương Equivalence partitioning Phân Chia thông tin đầu vào, ra, hành vi và môi trường thành các phân lớp được“xử lý” tương đương  Vùng hợp lệ (Valid)  Vùng không hợp lệ (Invalid) Định nghĩa ít nhất 1 kịch bản cho mỗi phần hoặc các vùng giá trị  „Kiểm thử một giá trị đại diện của lớp  Nếu giá trị đại diện bị lỗi thì các thành viên trong lớp đó cũng sẽ bị lỗi như thế. 4/23/2014 Trang 8 1 100 101 0 valid invalid invalid Phân lớp/hoạch tương đương Equivalence partitioning  Bài tập: Nhập tọa độ 1 điểm trong không gian hai chiều với  3≤ x ≤7  5≤ y ≤9 4/23/2014 Trang 9 Phân tích giá trị biên Boundary value analysis (BVA) Kinh nghiệm cho thấy các ca kiểm thử mà khảo sát tỷ mỷ các điều kiện biên có tỷ lệ phần trăm cao hơn các ca kiểm thử khác Là phương pháp bổ sung thêm cho phân lớp tương đương, nhưng khác với phân lớp tương đương ở 2 khía cạnh:  Chọn các giá trị biên đầu vào để kiểm tra các lớp đầu vào thay vì thêm vào những giá trị tùy ý  Cũng chọn những giá trị đầu vào như thế nào để cho ra những giá trị biên đầu ra. 4/23/2014 Trang 10 1 100 101 0 valid invalid invalid Phân tích giá trị biên Boundary value analysis (BVA) 4/23/2014 Trang 11 Customer name 4/23/2014 Trang 12 Number of characters: 2 64 65 invalid valid invalid 1 Conditions Valid Partitions Invalid Partitions Valid Boundaries Invalid Boundaries Customer name 2 to 64 chars valid chars < 2 chars > 64 chars invalid chars 2 chars 64 chars 1 chars 65 chars 0 chars Valid characters: Any other A-Z a-z -’ space Account number 4/23/2014 Trang 13 5 6 7 invalid valid invalid number of digits: first character: invalid: zero valid: non-zero Conditions Valid Partitions Invalid Partitions Valid Boundaries Invalid Boundaries Account number 6 digits 1 st non-zero < 6 digits > 6 digits 1 st digit = 0 non-digit 100000 999999 5 digits 7 digits 0 digits Loan amount 4/23/2014 Trang 14 500 9000 9001 invalid valid invalid 499 Conditions Valid Partitions Invalid Partitions Valid Boundaries Invalid Boundaries Loan amount 500 - 9000 < 500 >9000 0 non-numeric null 500 9000 499 9001 Condition template 4/23/2014 Trang 15 Thiết kế Testcase 4/23/2014 Trang 16 Test Case Description Expected Outcome New Tags Covered 1 2 Name: John Smith Acc no: 123456 Loan: 2500 Term: 3 years Name: AB Acc no: 100000 Loan: 500 Term: 1 year Term: 3 years Repayment: 79.86 Interest rate: 10% Total paid: 2874.96 Term: 1 year Repayment: 44.80 Interest rate: 7.5% Total paid: 537.60 V1, V2, V3, V4, V5 ..... B1, B3, B5, ..... Bảng quyết định Decision tables testing Bảng quyết định là 1 công cụ rất hữu ích để đặc tả các yêu cầu phần mềm hoặc để đặc tả bảng thiết kế hệ thống phần mềm. Nó miêu tả các qui tắc nghiệp vụ phức tạp mà phần mềm phải thực hiện dưới dạng dễ đọc và dễ kiểm soát Có thể thể hiện dạng lưu đồ hoặc bảng Bảng quyết định có thể tạo ra kịch bản kiểm thử tức thì 4/23/2014 Trang 17 Bảng quyết định Decision tables testing Chức năng Login 4/23/2014 Trang 18 Input Conditions Valid username Valid password Account in credit Output Conditions Login accepted Restricted access Bài tập: máy ATM Bảng quyết định Decision tables testing Thiết kế Test case  Mỗi cột ít nhất là 1 Test case 4/23/2014 Trang 19 Bảng quyết định Decision tables testing  Nếu các điều kiện loại trừ nhau thì có thể sử dụng chính đối tượng đó  Đầu vào của điều kiện có thể có nhiều giá trị hơn True và False 4/23/2014 Trang 20 Các Mô hình trạng thái hữu hạn State transition testing Hiểu được các trạng thái khác nhau của hệ thống bao gồm cả việc khởi tạo và kết thúc Nhận diện các giao dịch, sự kiện, điều kiện, hoạt động trong mỗi trạng thái Sử dụng đồ thị hay bảng để mô hình hệ thống Cho mỗi sự kiện và điều kiện, kiểm chứng lại hoạt động và trạng thái sau đó 4/23/2014 Trang 21 Các Mô hình trạng thái hữu hạn State transition testing „ 4/23/2014 Trang 22 Các Mô hình trạng thái hữu hạn State transition testing Có 3 phương pháp để thiết kế Test case cho phương pháp này  Bao phủ trạng thái (State Coverage)„  Bao phủ sự kiện (Event Coverage)  Bao phủ sự dịch chuyển(Transition Coverage) 4/23/2014 Trang 23 Các Mô hình trạng thái hữu hạn State transition testing Bao phủ trạng thái (State Coverage)„  Tất cả trạng thái phải chạy qua 1 lần  Đây là phương pháp có độ bao phủ thấp 4/23/2014 Trang 24 Các Mô hình trạng thái hữu hạn State transition testing Bao phủ sự kiện (Event Coverage)  Tất cả sự kiện phải chạy qua 1 lần  Cũng là phương pháp có độ bao phủ thấp 4/23/2014 Trang 25 Các Mô hình trạng thái hữu hạn State transition testing Bao phủ sự dịch chuyển(Transition Coverage)  Tất cả sự dịch chuyển phải chạy qua 1 lần  Đây là phương pháp tốt nhất mà không phải tạo ra 1 số lượng lớn Test case 4/23/2014 Trang 26 Các Mô hình trạng thái hữu hạn State transition testing 4/23/2014 Trang 27 Các Mô hình trạng thái hữu hạn State transition testing 4/23/2014 Trang 28 Nội dung  Tổng quan về kiểm thử động  Kiểm thử hộp đen  Phân hoạch tương đương  Phân tích giá trị biên  Sơ đồ chuyển trạng thái  Bảng quyết định  Đồ thị Nhân quả  Kiểm thử hộp trắng  Luồng điều khiển  Kỹ thuật dựa trên kinh nghiệm  Chọn kỹ thuật kiểm thử 4/23/2014 Trang 29 Kiểm thử hộp trắng Kiểm thử hộp trắng hay còn gọi là kiểm thử hướng logic, cho phép kiểm tra cấu trúc bên trong của phần mềm với mục đích đảm bảo rằng tất cả các câu lệnh và điều kiện sẽ được thực hiện ít nhất một lần. Người kiểm thử hộp trắng phải có kỹ năng, kiến thức nhất định về ngôn ngữ lập trình và thuật giải được dùng Thường tốn rất nhiều thời gian và công sức nếu chương trình quá lớn kỹ thuật này chủ yếu được dùng để kiểm thử đơn vị 4/23/2014 Trang 30 Kiểm thử hộp trắng  Có 2 hoạt động kiểm thử hộp trắng :  Kiểm thử luồng điều khiển: tập trung kiểm thử thuật giải chức năng • Bao phủ phát biểu – Mỗi phát biểu đều được thực thi • Bao phủ nhánh – Mỗi nhánh thực hiện theo mỗi cách (T/F) • Bao phủ điều kiện – Mỗi tổ hợp các điều kiện được đánh giá–bảng sư thật • Bao phủ quyết định đa điều kiện – Chỉ các điều kiện tổ hợp ảnh hưởng quyết định • Bao phủ lặp(Loop coverage): – Tất cả các đường dẫn lặp 0,1, nhiều lần(lý tưởng, cực đại)  Kiểm thử dòng dữ liệu: tập trung kiểm thử đời sống của từng biến dữ liệu được dùng trong thuật giải. 4/23/2014 Trang 31 Một số thuật ngữ về kiểm thử luồng ₫iều khiển Đường thi hành (Execution path)  Nó là danh sách có thứ tự các lệnh được thi hành ứng với 1 lần chạy cụ thể của đơn vị phần mềm, bắt đầu từ điểm nhập của đơn vị phần mềm đến điểm kết thúc của đơn vị phần mềm. Mục tiêu của phương pháp kiểm thử luồng điều khiển là đảm bảo mọi đường thi hành đều chạy đúng  Rất tiếc trong thực tế, công sức và thời gian để đạt mục tiêu trên đây là rất lớn, ngay cả trên những đơn vị phần mềm nhỏ 4/23/2014 Trang 32 ? Một số thuật ngữ về kiểm thử luồng ₫iều khiển  Chỉ có 1 đường thi hành, nhưng rất dài : dài 1000*1000*1000 = 1 tỉ lệnh gọi hàm doSomething(i,j,k) khác nhau 4/23/2014 Trang 33 Không thể phát hiện những đường thi hành mà không được hiện thực Các cấp phủ kiểm thử (Coverage) Làm sao xác định được số test case tối thiểu nào có thể đem lại kết quả có độ tin cậy tối đa?  Phủ kiểm thử càng lớn thì độ tin cậy càng cao Độ phủ kiểm thử (Coverage) : là tỉ lệ các thành phần thực sự được kiểm thử so với tổng thể sau khi đã kiểm thử các test case được chọn 4/23/2014 Trang 34 Các cấp phủ kiểm thử (Coverage) Phủ cấp 0:  Kiểm thử những gì có thể kiểm thử được, phần còn lại để người dùng phát hiện và báo lại sau. Phủ cấp 1  Kiểm thử sao cho mỗi lệnh được thực thi ít nhất 1 lần 4/23/2014 Trang 35  Chỉ cần 2 test case sau ₫ây là ₫ạt 100% phủ cấp 1: foo(0,0,0,0), trả về 0 và foo(1,1,1,1), trả về 1 Nhưng không phát hiện lỗi chia 0 ở hàng lệnh 8. Phủ cấp 2  Kiểm thử sao cho mỗi điểm quyết định luận lý đều được thực hiện ít nhất 1 lần cho trường hợp TRUE lẫn FALSE.  Ta gọi mức kiểm thử này là phủ các nhánh (Branch coverage). 4/23/2014 Trang 36  Với 2 test case xác định trong slide trước, ta chỉ đạt được 3/4 = 75% phủ các nhánh.  Nếu thêm test case 3: 3. foo(1,2,1,2), thì mới ₫ạt 100% phủ các nhánh. Phủ cấp 3  Kiểm thử sao cho mỗi điều kiện luận lý con (subcondition) của từng điểm quyết định đều được thực hiện ít nhất 1 lần cho trường hợp TRUE lẫn FALSE.  Ta gọi mức kiểm thử này là phủ các điều kiện con (subcondition coverage).  Phủ các điều kiện con chưa chắc đảm bảo phủ các nhánh & ngược lại. 4/23/2014 Trang 37 Phủ cấp 4 Kiểm thử sao cho mỗi điều kiện luận lý con (subcondition) của từng điểm quyết định đều được thực hiện ít nhất 1 lần cho trường hợp TRUE lẫn FALSE & điểm quyết định cũng được kiểm thử cho cả 2 nhánh TRUE lẫn FALSE. Ta gọi mức kiểm thử này là phủ các nhánh & các điều kiện con (branch & subcondition coverage). Đây là mức độ phủ kiểm thử tốt nhất trong thực tế. 4/23/2014 Trang 38 Đồ thị dòng điều khiển Là một trong nhiều phương pháp miêu tả giải thuật. Gồm 2 loại thành phần : các nút và các cung nối kết giữa chúng. 4/23/2014 Trang 39 Đồ thị dòng điều khiển 4/23/2014 Trang 40 Đồ thị dòng điều khiển nhị phân Nếu đồ thị dòng điều khiển chỉ chứa các nút quyết định nhị phân thì ta gọi nó là đồ thị dòng điều khiển nhị phân Ta luôn có thể chi tiết hóa 1 đồ thị dòng điều khiển bất kỳ thành đồ thị dòng điều khiển nhị phân 4/23/2014 Trang 41 Độ phức tạp Cyclomatic C Độ phức tạp Cyclomatic C = V(G) của đồ thị dòng điều khiển được tính bởi 1 trong các công thức sau :  V(G) = E - N + 2, trong đó E là số cung, N là số nút của đồ thị.  V(G) = P + 1, nếu là đồ thị dòng điều khiển nhị phân và P số nút quyết định. Độ phức tạp Cyclomatic C chính là số đường thi hành tuyến tính độc lập cần kiểm thử. Nếu kiểm thử tất cả các đường thi hành này thì sẽ đạt được phủ kiểm thử cấp 3 4/23/2014 Trang 42 Qui trình kiểm thử hộp trắng Từ chương trình cần kiểm thử, xây dựng đồ thị dòng điều khiển tương ứng, rồi chuyển thành đồ thị dòng điều khiển nhị phân. Tính độ phức tạp Cyclomatic của đồ thị (C = P +1). Xác định C đường thi hành tuyến tính độc lập cơ bản cần kiểm thử. Tạo từng test case cho từng đường thi hành tuyến tính độc lập cơ bản. 4/23/2014 Trang 43 Qui trình xác định các đường tuyến tính độc lập  Xác định đường tuyến tính đầu tiên bằng cách đi dọc theo nhánh bên trái nhất của các nút quyết định. Chọn đường này là pilot.  Dựa trên đường pilot, thay đổi cung xuất của nút quyết định đầu tiên và cố gắng giữ lại lớn nhất phần còn lại.  Dựa trên đường pilot, thay đổi cung xuất của nút quyết định thứ 2 và cố gắng giữ lại lớn phần còn lại.  Tiếp tục thay đổi cung xuất cho từng nút quyết định trên đường pilot để xác định đường thứ 4, 5,... cho đến khi không còn nút quyết định nào trong đường pilot nữa.  Lặp chọn tuần tự từng đường tìm được làm pilot để xác định các đường mới xung quanh nó y như các bước 2, 3, 4 cho ₫ến khi không tìm được đường tuyến tính độc lập nào nữa (khi đủ số C). 4/23/2014 Trang 44 Ví dụ 4/23/2014 Trang 45 Read A IF A > 0 THEN IF A = 21 THEN Print “Key” ENDIF ENDIF - Cyclomatic complexity: _____ - Minimum tests to achieve: • Statement coverage: ______ • Branch coverage: _____ 3 1 3 Print Yes A=21 Yes No End A>0 No Read Ví dụ 4/23/2014 Trang 46 - Cyclomatic complexity: _____ - Minimum tests to achieve: • Statement coverage: ______ • Branch coverage: _____ Read A Read B IF A < 0 THEN Print “A negative” ELSE Print “A positive” ENDIF IF B < 0 THEN Print “B negative” ELSE Print “B positive” ENDIF 3 2 2 Read End Print No Print Yes B<0 Print No Print Yes A<0 Note: there are 4 paths Ví dụ 4/23/2014 Trang 47 - Cyclomatic complexity: _____ - Minimum tests to achieve: • Statement coverage: ______ • Branch coverage: _____ Read A Read B IF A > 0 THEN IF B = 0 THEN Print “No values” ELSE Print B IF A > 21 THEN Print A ENDIF ENDIF ENDIF 4 2 4 Print Yes Print A>21 No No B=0 Print Yes Yes Read A>0 End No Nội dung  Tổng quan về kiểm thử động  Kiểm thử hộp đen  Phân hoạch tương đương  Phân tích giá trị biên  Sơ đồ chuyển trạng thái  Bảng quyết định  Đồ thị Nhân quả  Kiểm thử hộp trắng  Luồng điều khiển  Kỹ thuật dựa trên kinh nghiệm  Chọn kỹ thuật kiểm thử 4/23/2014 Trang 48 Kỹ thuật dựa trên kinh nghiệm Dựa vào người kiểm thử với  kỹ năng – trực giác  kinh nghiệm với ứng dụng tương tự  kinh nghiệm với kỹ thuật tương tự Một vài kỹ thuật như:  Phán đoán lỗi  Testing chuyên sâu 4/23/2014 Trang 49 Phán đoán lỗi Không có quy tắc, không kịch bản Nghĩ 1 trường hợp mà hệ thống có thể bị lỗi:  Chia số 0  Để trống dữ liệu  Performance test  Liệt kê ra tất cả các trường hợp có thể lỗi và thiết kế Test case để thực hiện chúng 4/23/2014 Trang 50 Testing chuyên sâu Không giới hạn những kỹ thuật mà những người chuyên gia dùng Nó rất hữu ít trong trường hợp yêu cầu không rõ ràng và thời gian bị giới hạn Quy trình của Testing chuyên sâu:  Học 1 ít về hệ thống  Quan sát chương trình để dự đoán nơi nào có thể có lỗi  Thiết kế và chạy test case 4/23/2014 Trang 51 Nội dung  Tổng quan về kiểm thử động  Kiểm thử hộp đen  Phân hoạch tương đương  Phân tích giá trị biên  Sơ đồ chuyển trạng thái  Bảng quyết định  Đồ thị Nhân quả  Kiểm thử hộp trắng  Luồng điều khiển  Kỹ thuật dựa trên kinh nghiệm  Chọn kỹ thuật kiểm thử 4/23/2014 Trang 52 Chiến lược kiểm tra động Thuận lợi  Tìm lỗi hiệu quả  Không mắc phải nghịch lý “thuốctrừ sâu” -> biến đổi lớn  Có hiệu quả  Kiểm soát tốt việc chuẩn bị kiểm thử  Sáng tạo 4/23/2014 Trang 53 Bất lợi  Lỗ hổng bao phủ, đặc biệt khi có áp lực  Khó đánh giá  Không ngăn ngừa lỗi  Không thích hợp nhóm lớn  Khác biệt về kỹ năng và kinh nghiệm Chọn kỹ thuật kiểm thử Kiểu hệ thống Yêu cầu khách hàng–hợp đồng Mức và kiểu rủi ro Mục tiêu kiểm thử Kiến thức người kiểm thử Thời gian/ngân sách Vòng đời phát triển Kinh nghiệm–kiểu khiếm khuyết phát hiện  4/23/2014 Trang 54 Chọn kỹ thuật kiểm thử „ 4/23/2014 Trang 55 ĐẢM BẢO VÀ KIỂM SOÁT CHẤT LƯỢNG 56 4/23/2014
Tài liệu liên quan