Chương Kỹ thuật kiểm thử hộp trắng (tt) 4.1 Tổng quát kiểm thử dòng liệu om Mục tiêu chương trình xử lý liệu Dữ liệu chương trình tập nhiều biến ₫ộc lập Phương pháp kiểm thử dòng liệu kiểm thử ₫ời sống biến liệu có "tốt lành" luồng thi hành chương trình .C Phương pháp kiểm thử dòng liệu cơng cụ mạnh ₫ể phát việc dùng không hợp lý biến lỗi coding phần mềm gây : Phát biểu gán hay nhập liệu vào biến không ₫úng Thiếu ₫ịnh nghĩa biến trước dùng Tiên ₫ề sai (do thi hành sai luồng thi hành) en Zo ne Vi Mỗi biến nên có chu kỳ sống tốt lành thơng qua trình tự bước : ₫ược tạo ra, ₫ược dùng ₫ược xóa ₫i Si nh Chỉ có lệnh nằm tầm vực truy xuất biến truy xuất/xử lý ₫ược biến Tầm vực truy xuất biến tập lệnh ₫ược phép truy xuất biến ₫ó Thường ngơn ngữ lập trình cho phép ₫ịnh nghĩa tầm vực cho biến thuộc mức yếu : toàn cục, cục module, cục hàm chức int x, y; void func1() { //thân hàm int x; // ₫ịnh nghĩa biến x cục hàm ; // lần truy xuất x x cục hàm { // khối lệnh bên bắt ₫ầu int y; // ₫ịnh nghĩa biến y cục lệnh phức hợp SinhVienZone.com https://fb.com/sinhvienzonevn } .; //mỗi lần truy xuất y y cục lệnh phức hợp } // y bên tự ₫ộng bị xóa ; //truy xuất y ngồi cùng, x cục hàm // x cục hàm bị xóa tự ₫ộng 4.2 Phân tích ₫ời sống biến Các lệnh truy xuất biến thông qua hành ₫ộng sau : d : ₫ịnh nghĩa biến, gán giá trị xác ₫ịnh cho biến (nhập liệu vào biến hoạt ₫ộng gán trị cho biến) u : tham khảo trị biến (thường thông qua biểu thức) k : hủy (xóa bỏ) biến ₫i .C om ne Như ký hiệu ~ miêu tả trạng thái mà ₫ó biến chưa tồn tại, ta có khả xử lý ₫ầu tiên biến : ~d : biến chưa tồn ₫ược ₫ịnh nghĩa với giá trị xác ₫ịnh ~u : biến chưa tồn ₫ược dùng (trị ?) ~k : biến chưa tồn bị hủy (lạ lùng) Vi en Zo dd : biến ₫ược ₫ịnh nghĩa ₫ịnh nghĩa : lạ, ₫úng chấp nhận ₫ược, có lỗi lập trình Si nh hoạt ₫ộng xử lý biến khác kết hợp lại tạo cặp ₫ôi hoạt ₫ộng xử lý biến theo thứ tự : du : biến ₫ược ₫ịnh nghĩa ₫ược dùng : trình tự ₫úng bình thường dk : biến ₫ược ₫ịnh nghĩa bị xóa bỏ : lạ, ₫úng chấp nhận ₫ược, có lỗi lập trình ud : biến ₫ược dùng ₫ịnh nghĩa giá trị : hợp lý uu : biến ₫ược dùng dùng tiếp : hợp lý uk : biến ₫ược dùng bị hủy : hợp lý SinhVienZone.com https://fb.com/sinhvienzonevn kd : biến bị xóa bỏ ₫ược ₫ịnh nghĩa lại : chập nhận ₫ược ku : biến bị xóa bỏ ₫ược dùng : ₫ây lỗi kk : biến bị xóa bỏ bị xóa : có lẽ lỗi lập trình 4.3 Đồ thị dòng liệu Là nhiều phương pháp miêu tả kịch ₫ời sống khác biến om Qui trình xây dựng ₫ồ thị dòng liệu dựa qui trình xây dựng ₫ồ thị dòng ₫iều khiển TPPM cần kiểm thử ne C Gồm loại thành phần : nút cung nối kết chúng ₫iểm xuất phát en Zo Các loại nút ₫ồ thị dòng ₫iều khiển : khối xử lý ₫iểm ₫ịnh ₫iểm nối Si nh Vi Miêu tả cấu trúc ₫iều khiển phổ dụng : SinhVienZone.com https://fb.com/sinhvienzonevn ₫iểm kết thúc switch If Zo ne C om while c en while c Vi Thí dụ : nh s1 c1 Si float foo(int a, int b, int c, int d) { float e; if (a==0) return 0; int x = 0; if ((a==b) || ((c==d) && bug(a))) x = 1; e = 1/x; return e; 10 } s2 s3 c2 s4 s5 SinhVienZone.com https://fb.com/sinhvienzonevn Độ phức tạp Cyclomatic C Ta dùng ₫ộ phức tạp Cyclomatic C = V(G) ₫ồ thị dòng ₫iều khiển TPPM cần kiểm thử ₫ể xác ₫ịnh số ₫ường thi hành tuyến tính ₫ộc lập TPPM cần kiểm thử om Mục tiêu kiểm thử dòng liệu chọn lựa ₫ược ₫úng C ₫ường thi hành tuyến tính ₫ộc lập TPPM cần kiểm thử kiểm thử ₫ời sống biến ₫ường thi hành xem có lỗi khơng 4.4 Qui trình kiểm thử dòng liệu C Qui trình kiểm thử dòng liệu TPPM gồm bước công việc sau : Từ TPPM cần kiểm thử, xây dựng ₫ồ thị dòng ₫iều khiển tương ứng, chuyển thành ₫ồ thị dòng ₫iều khiển nhị phân, chuyển thành ₫ồ thị dòng liệu Tính ₫ộ phức tạp Cyclomatic ₫ồ thị (C = P +1) Xác ₫ịnh C ₫ường thi hành tuyến tính ₫ộc lập cần kiểm thử (theo thuật giải chi tiết chương 3) Lặp kiểm thử ₫ời sống biến liệu : nh Vi en Zo ne biến có tối ₫a C kịch ₫ời sống khác Si à SinhVienZone.com kịch ₫ời sống biến, kiểm thử xem có tồn cặp ₫ơi 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 cho người có liên quan https://fb.com/sinhvienzonevn 4.5 Thí dụ d(a),d(b),d(c),d(d) ,d(e) float foo(int a, int b, int c, int d) { float e; if (a==0) return 0; int x = 0; if ((a==b) || ((c==d) && bug(a))) x = 1; e = 1/x; return e; 10 } u(a om d(x u(a),u(b),u(c),u(d) ne C d(x d(e),u(x),u(e k(all) Zo Đồ thị slide trước có nút ₫ịnh nhị phân nên có ₫ộ phức tạp C = +1 = en Nó có biến ₫ầu vào (tham số) biến cục Si nh Vi Hãy lặp kiểm thử ₫ời sống biến a, b, c, d, e, x SinhVienZone.com https://fb.com/sinhvienzonevn Kiểm thử ₫ời sống biến a Kịch : ~duuk Kịch : ~duuk (giống kịch 1) Kịch : ~duk Cả kịch ₫ều không chứa cặp ₫ôi hoạt ₫ộng bất thuờng d(a) om u(a) ne C u(a) Zo k(all) Kiểm thử ₫ời sống biến b Vi Kịch : ~duk Kịch : ~duk (giống kịch 1) Kịch : ~dk Cả kịch ₫ều không chứa cặp ₫ôi hoạt ₫ộng bất thýờng Si nh d(b) en u(b) k(all) SinhVienZone.com https://fb.com/sinhvienzonevn Kiểm thử ₫ời sống biến c Kịch : ~duk Kịch : ~duk (giống kịch 1) Kịch : ~dk Cả kịch ₫ều không chứa cặp ₫ôi hoạt ₫ộng bất thýờng om d(c) ne C u(c) Si nh Vi en Zo k(all) SinhVienZone.com https://fb.com/sinhvienzonevn Kiểm thử ₫ời sống biến d Kịch : ~duk Kịch : ~duk (giống kịch 1) Kịch : ~dk Cả kịch ₫ều không chứa cặp ₫ôi hoạt ₫ộng bất thýờng om d(d) ne C u(d) Zo k(all) en Kiểm thử ₫ời sống biến e Si nh Vi d(e) Kịch : ~dduk Kịch : ~dduk (giống kịch 1) Kịch : ~dk Trong kịch trên, kịch & có chứa cặp ₫ôi dd bất thuờng nên cần tập trung ý kiểm tra xem có phải lỗi khơng d(e),u(e) k(all) Kiểm thử ₫ời sống biến x SinhVienZone.com https://fb.com/sinhvienzonevn Kịch : ~dduk Kịch : ~duk Kịch : ~ Trong kịch trên, có kịch có chứa cặp ₫ôi dd bất thuờng nên cần tập trung ý kiểm tra xem có phải lỗi khơng om d(x) C d(x) ne u(x) k(all) Zo 4.6 Kết chương en Chương ₫ã giới thiệu tiếp kỹ thuật khác ₫ể kiểm thử hộp trắng TPPM, ₫ó kỹ thuật kiểm thử dòng liệu nh Vi Chúng ta ₫ã phân tích ₫ời sống biến liệu, cặp ₫ôi hoạt ₫ộng biến ₫ược gọi hợp lệ hay nghi ngờ có lỗi hay tệ chắn chắn gây lỗi Si Chương ₫ã giới thiệu thí dụ cụ thể qui trình kiểm thử dòng liệu TPPM SinhVienZone.com https://fb.com/sinhvienzonevn ... tập trung ý kiểm tra xem có phải lỗi khơng om d(x) C d(x) ne u(x) k(all) Zo 4.6 Kết chương en Chương ₫ã giới thiệu tiếp kỹ thu t khác ₫ể kiểm thử hộp trắng TPPM, ₫ó kỹ thu t kiểm thử dòng liệu... k(all) Kiểm thử ₫ời sống biến x SinhVienZone. com https://fb .com/ sinhvienzonevn Kịch : ~dduk Kịch : ~duk Kịch : ~ Trong kịch trên, có kịch có chứa cặp ₫ôi dd bất thu ng nên cần tập trung ý kiểm. .. lập cần kiểm thử (theo thu t giải chi tiết chương 3) Lặp kiểm thử ₫ời sống biến liệu : nh Vi en Zo ne biến có tối ₫a C kịch ₫ời sống khác Si à SinhVienZone. com kịch ₫ời sống biến, kiểm thử