Kiểm thử hộp trắng theo dòng dữ liệu (luồng dữ liệu). Tìm hiểu phương pháp kiểm thử hộp trắng theo dòng dữ liệu (Data flow testing), mô tả các khái niệm, quy trình và ví dụ về phương pháp kiểm thử phần mềm theo dòng dữ liệu
1 Trường Đại học Công nghiệp Hà Nội Kiểm thử hộp trắng Theo dòng liệu Nhóm 8: Tạ Hải Đăng Triệu Trung Huấn Trần Ngọc Nam Trường Đại học Cơng nghiệp Hà Nội Tổng quan • Phương pháp kiểm thử dòng liệu hoạt động kiểm thử hộp trắng sử dụng để phát khiếm khuyết tiềm ẩn chương trình • Dữ liệu chương trình tập hợp nhiều biến độc lập, phương pháp kiểm thử dòng liệu kiểm tra vòng đời liệu (các biến) luồng thi hành chương trình xem vòng đời biến có bất thường hay khơng 3 Trường Đại học Công nghiệp Hà Nội Tổng quan • Vòng đời biến xem bình thường biến thao tác thơng qua bước: khai báo biến, sử dụng biến hủy biến • Phương pháp kiểm thử dòng liệu giúp phát việc dùng khơng hợp lý biến, ví dụ: Thiếu khai báo, gán giá trị cho biến trước sử dụng Đã khai báo, gán giá trị cho biến không sử dụng … Trường Đại học Cơng nghiệp Hà Nội Đồ thị dòng liệu • Đồ thị dòng liệu tương tự kiểm thử dòng điều khiển thay dựa đồ thị dòng điều khiển, kiểm thử dòng liệu dựa đồ thị dòng liệu • Có thành phần: Các nút cung nối chúng • Các loại nút Điểm xuất phát Khối xử lý Điểm định Điểm nối Điểm kết thúc Trường Đại học Công nghiệp Hà Nội Đồ thị dòng liệu • Cấu trúc điều khiển phổ dụng Tuần tự if then else Switch (Case) For or while Do – while Trường Đại học Công nghiệp Hà Nội Đồ thị dòng liệu • Ta dùng độ phức tạp Cyclomatic C = V(G) đồ thị dòng điều khiển chương trình cần kiểm thử để xác định số đường thi hành tuyến tính độc lập chương trình cần kiểm thử • Mục tiêu kiểm thử dòng liệu chọn lựa C đường thi hành tuyến tính độc lập chương trình cần kiểm thử kiểm thử vòng đời biến đường thi hành xem có lỗi khơng 7 Trường Đại học Cơng nghiệp Hà Nội Phân tích vòng đời biến • Ta xây dựng luồng liệu dựa kiện liên quan đến biến phạm vi • Có kiện liên quan đến biến là: d (declare) : Khai báo gán giá trị cho biến u (use) : Sử dụng biến (tham khảo giá trị biến) k (kill) : Hủy biến Trường Đại học Cơng nghiệp Hà Nội Phân tích vòng đời biến • Nếu ký hiệu trạng thái “chưa khởi tạo biến” ~ , mơ tả khả xử lý với biến: ~d: Biến chưa khởi tạo thực khai báo biến (Đúng) ~u: Biến chưa khởi tạo sử dụng biến (Sai) ~k: Biến chưa khởi tạo hủy biến (Có thể sai) Trường Đại học Cơng nghiệp Hà Nội Phân tích vòng đời biến • Đồng thời, với kiện trên, ta có khả sau: Loại Bình thường Cặp xử lý Mô tả Ghi du Khai báo sử dụng Hợp lý ud Sử dụng khai báo / gán giá trị Hợp lý uu Sử dụng tiếp tục xử dụng Hợp lý uk Sử dụng hủy biến Hợp lý kd Hủy khai báo / gán giá trị Hợp lý 10 Trường Đại học Cơng nghiệp Hà Nội Phân tích vòng đời biến Loại Cặp xử lý Mơ tả Ghi dd Khai báo khai báo lại Có khả sai dk Khai báo hủy biến Có khả sai ku Hủy sử dụng biến Sai kk Hủy tiếp tục hủy Sai Bất thường 11 Trường Đại học Công nghiệp Hà Nội Quy trình kiểm thử dòng liệu Quy trình kiểm thử dòng liệu gồm cơng việc sau: Bước 1: Xây dựng đồ thị dòng liệu Bước 2: Tính độ phức tạp Cyclomatic đồ thị (C) Bước 3: Xác định C đường thi hành tuyến tính độc lập cần kiểm thử Bước 4: Kiểm thử vòng đời cho biến • Mỗi biến có tối đa C đường thi hành khác • Trên đường thi hành biến, Kiểm thử xem có tồn cặp xử lý hoạt động khơng bình thường khơng Nếu có ghi nhận để lập báo cáo kết phản hồi 12 Trường Đại học Công nghiệp Hà Nội Ví dụ void giaiPTBac1(float a, float b){ float x; if(a==0){ if(b==0) printf( “ PT có vô số nghiệm ” ); else printf( “PT vô nghiệm ” ); }else{ x = ( -b/a ); 10 printf( “ PT có nghiệm x = %f ”, x); 11 12 } } Chương trình giải phương trình bậc ax + b = • Có biến đầu vào (tham số) a, b biến cục x 13 Trường Đại học Công nghiệp Hà Nội Ví dụ Bước 1: void giaiPTBac1(float a, float b){ float x; if(a==0){ u(a) if(b==0) d(x), u(b), u(a), u(x) printf( “ PT có vơ số nghiệm ” ); u(b) else printf( “PT vô nghiệm ” ); }else{ x = ( -b/a ); 10 printf( “ PT có nghiệm x = %f ”, x); 11 12 d(a), d(b), d(x) } } k(all) 14 Trường Đại học Công nghiệp Hà Nội Ví dụ Bước 2: • Từ đồ thị dòng liệu ta tính độ phức tạp chu d(a), d(b), d(x) trình C=2+1=3 • Mỗi biến có tối đa đường thi hành khác u(a) d(x), u(b), u(a), u(x) u(b) k(all) 15 Trường Đại học Cơng nghiệp Hà Nội Ví dụ [1] Bước 3: • Xác định đường thi hành tuyến tính độc lập: Đường 1: 1-2-3-5-6-8 Đường 2: 1-2-3-4-8 Đường 3: 1-2-3-5-7-8 • Thực kiểm thử biến a, b , x theo [2] [3] d(a), d(b), d(x) u(a) [4] đường xem có tồn cặp xử lý hoạt động khơng bình thường khơng [5] [6] u(b) [7] k(all) [8] d(x), u(b), u(a), u(x) 16 Trường Đại học Công nghiệp Hà Nội Ví dụ [1] Bước 4: [2] Kiểm thử vòng đời biến a [3] d(a) u(a) [4] • Đường 1: ~duk • Đường 2: ~duuk • Đường 3: ~duk [5] Cả đường chứa cặp xử lý bất thường [6] [7] k(all) [8] u(a) 17 Trường Đại học Công nghiệp Hà Nội Ví dụ [1] Bước 4: [2] Kiểm thử vòng đời biến b d(b) [3] • Đường 1: ~duk • Đường 2: ~duk • Đường 3: ~duk [4] [5] u(b) Cả đường chứa cặp xử lý bất thường [6] [7] k(all) [8] u(b) 18 Trường Đại học Công nghiệp Hà Nội Ví dụ [1] Bước 4: [2] Kiểm thử vòng đời biến x d(x) [3] [4] • Đường 1: ~dk • Đường 2: ~dduk • Đường 3: ~dk [5] Trong đường trên, đường có cặp xử lý dk bất thường, đường có cặp xử lý dd bất thường Cần kiểm tra lại xem có phải lỗi hay khơng [6] [7] k(all) [8] d(x), u(x) 19 Trường Đại học Công nghiệp Hà Nội Tổng kết Như ta biết, kiểm thử dòng điểu khiển kiểm thử dòng liệu xem hai phương pháp chủ yếu kỹ thuật kiểm thử hộp trắng nhằm phát lỗi tiềm ẩn bên chương trình Phương pháp kiểm thử dòng điều khiển cho phép sinh ca kiểm thử (tương ứng với đường thi hành dòng điều khiển) chương trình Tuy nhiên, áp dụng phương pháp chưa đủ để phát tất lỗi tiềm ẩn.Trong thực tế, lỗi thường xuất biến sử dụng chương trình Kiểm thử dòng liệu cho phép phát lỗi 20 Trường Đại học Công nghiệp Hà Nội ... pháp kiểm thử dòng liệu hoạt động kiểm thử hộp trắng sử dụng để phát khiếm khuyết tiềm ẩn chương trình • Dữ liệu chương trình tập hợp nhiều biến độc lập, phương pháp kiểm thử dòng liệu kiểm tra... học Công nghiệp Hà Nội Đồ thị dòng liệu • Đồ thị dòng liệu tương tự kiểm thử dòng điều khiển thay dựa đồ thị dòng điều khiển, kiểm thử dòng liệu dựa đồ thị dòng liệu • Có thành phần: Các nút... kết Như ta biết, kiểm thử dòng điểu khiển kiểm thử dòng liệu xem hai phương pháp chủ yếu kỹ thuật kiểm thử hộp trắng nhằm phát lỗi tiềm ẩn bên chương trình Phương pháp kiểm thử dòng điều khiển