Data Flow Testing
TIL
612
White

Tuấn Nguyễn viết ngày 26/03/2018

Khái niệm

Data Flow Testing là kĩ thuật kiểm thử sử dụng Control Flow Graph (CFG) để tìm ra những nguy cơ tiềm tàng cho việc sử dụng dữ liệu.
Ví dụ một CFG như sau:
alt text
Từ một CFG ta có những thuật ngữ sau:

  • Definitions: là những đỉnh mà giá trị của biến được gán, định nghĩa. Ví dụ các đỉnh 1, 3, 6, 8, 9 là các definitions của biến price.
  • Uses: là những đỉnh mà giá trị của biến được sử dụng. Bao gồm:
    • Computation uses (C-uses): là những đỉnh mà giá trị của biến là vế phải của phép gán, chỉ sổ của mảng, tham số của hàm. Ví dụ 6,8 ,9 ,10 là C-uses của biến price.
    • Predicate uses (P-uses): là những đỉnh mà giá trí của biến dùng để rẽ nhánh như điều kiện trong câu lệnh if, while, for. Ví dụ 7 là P-use của biến price.
  • Def - use path (DU path): (n1, n2, n3,.., nk) là một DU path của biến x nếu:
    • n1 là là một def của x, nk là một C-use của x và n2 đến n(k-1) không có def nào của x. Ví dụ 1-2-10 là DU path của price.
    • n1 là một def của x, nk là một P-use và n2, n3,..., n(k-1) không có đỉnh nào lặp lại. Ví dụ: 1, 2, 3, 4, 5, 6, 7 là DU path của price.

Các tiêu chuẩn kiểm thử

All DU paths (AUDP): kiểm thử tất cả các DU paths của các biến.
All Uses (AU): với mỗi use của biến kiểm thử một DU path tương ứng.
All C-uses (ACU): với mỗi C-use kiểm thử tất cả các DU path tương ứng.
All P-uses (APU): với mối P-use kiểm thử tất cả các DU path tương ứng.
All C-uses/ Some P-use: (ACU+P): với mỗi def ta kiểm thử các DU tương ứng với node cuối là C-use, nếu ko có C-use tương ứng lấy DU path với P-use.
All P-uses/ Some C-use: (APU + C) với mỗi def ta kiểm thử các DU tương ứng với node cuối là P - use, nếu không có P-use lấy DU path với C-use.
All def (AD): với mỗi def kiểm thử một DU path.

Áp dụng

Với CFG đầu bài viết ta có:
alt text

Test path tương ứng là:
alt text

Tài liệu tham khảo

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Tuấn Nguyễn

4 bài viết.
1 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
2 1
Vấn đề Hôm nay mình ngồi làm project Calculator trong FreeCodeCamp cần implement thuật toán tính biểu thức trung vị. Nhưng trước hết...
Tuấn Nguyễn viết 3 tháng trước
2 1
White
2 3
Đặt vấn đề Khi viết RestApi ta chỉ thường chọn một số thông tin để truyền về client. Ví dụ như thông tin user thì không cần truyền password chẳng ...
Tuấn Nguyễn viết 2 tháng trước
2 3
Bài viết liên quan
White
0 2
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết 2 tháng trước
0 2
White
19 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết gần 2 năm trước
19 1
White
1 1
Chào mọi người, hôm nay mình viết một bài TIL nhỏ về cách lấy độ phân giải của màn hình hiện tại đang sử dụng. xdpyinfo | grep dimensions Kết quả...
namtx viết 1 năm trước
1 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
4 bài viết.
1 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!