Kiểm thử và đảm bảo chất lượng phần mềm

38
Kiểm thử và đảm bảo chất lượng phần mềm Kiến thức toán rời rạc

description

Kiểm thử và đảm bảo chất lượng phần mềm. Kiến thức toán rời rạc. Nội dung. Lý thuyết tập hợp Hàm Quan hệ Xác suất Đồ thị. Các dạng khai báo tập hợp. Liệt kê phần tử: Y = {10, 20, 30, 40} Dùng qui tắc: Y = {item_number | 80 < item_number < 100} Y = {item_number : 80 < item_number

Transcript of Kiểm thử và đảm bảo chất lượng phần mềm

Page 1: Kiểm thử và đảm bảo chất lượng phần mềm

Kiểm thử và đảm bảo chất lượng phần mềm

Kiến thức toán rời rạc

Page 2: Kiểm thử và đảm bảo chất lượng phần mềm

Nội dung

• Lý thuyết tập hợp•Hàm•Quan hệ•Xác suất•Đồ thị

2

Page 3: Kiểm thử và đảm bảo chất lượng phần mềm

Các dạng khai báo tập hợp

• Liệt kê phần tử:–Y = {10, 20, 30, 40}

•Dùng qui tắc:• Y = {item_number | 80 < item_number < 100}• Y = {item_number : 80 < item_number <100}• Y = {x | x is positive integer}• Y = {x | PI(x)}

•Tập rỗng• Y = {year : 2012 < year < 1812} = {} = O

3

Page 4: Kiểm thử và đảm bảo chất lượng phần mềm

Biểu đồ Venn

•Biểu đồ minh họa các quan hệ tập hợp•Các quan hệ tập hợp:• Hợp: A U B = { x | x thuộc A hoặc x thuộc B}• Giao: A ∩ B = {x | x thuộc A và x thuộc B}• Phần bù: A* = {x | x không thuộc A} • Hiệu: A – B = {x | x thuộc A và x không thuộc B}• Phần khác nhau (đối xứng): A # B = (A U B) – (A ∩ B)

4

Page 5: Kiểm thử và đảm bảo chất lượng phần mềm

Quan hệ tập hợp và phân hoạch

•Quan hệ• A là tập con của B: a thuộc A a thuộc B• A tập con chặt của B: A là tập con của B và (B – A) ≠ {}• Tập bằng nhau: A = B nếu A là tập con của B và B là tập

con của A•Phân hoạch• Cho tập B và các tập con A1, A2, An của B, các tập con này

là một phân hoạch của B nếu A1 U A2 U .. An = B và Với i ≠ j Ai ∩Aj = {}

Page 6: Kiểm thử và đảm bảo chất lượng phần mềm

Hàm, miền xác định, miền giá trị

•Cho hai tập A và B, một hàm f :A B là một tập con của tập tích A X B sao cho với mọi ai, aj thuộc A, tồn tại bi, bj thuộc B sao cho f(ai) = bi và f(aj) = bj và bi khác bj thì ai khác aj • Hàm f có thể biểu diễn bằng tập hợp• Hàm khác quan hệ ở chỗ hàm là đơn định

•A là miền xác định (domain) của f và B là miền giá trị (range) của f.

Page 7: Kiểm thử và đảm bảo chất lượng phần mềm

Các loại hàm

•Ảnh của hàm• f(A) = {bi in B : bi = f(ai) với một số ai thuộc A}

• f là hàm từ A lên B nếu và chỉ nếu f(A) = B• f là hàm từ A vào B nếu và chỉ nếu f(A) tập con chặt của B• f là hàm 1-1 từ A sang B nếu và chỉ nếu

với mọi ai, aj thuộc A, sao cho ai ≠aj kéo theo f(ai) ≠ f(aj)

Page 8: Kiểm thử và đảm bảo chất lượng phần mềm

Hàm hợp

•Giả sử có • f: A B• g: B C

•Chúng ta có thể định nghĩa hàm mới w:A D sao cho w(a) = (g o f) (x) = (g(f(x))•Như vậy nếu f(a) = b, và g(b) = c thì

w(a) = g(f(a)) = g(b) = c

Page 9: Kiểm thử và đảm bảo chất lượng phần mềm

Quan hệ

•Cho hai tập A, B, một quan hệ R là một tập con của tích Đề-các A X B•Hàm là một dạng đặc biệt của quan hệ:–f(a) là duy nhất–R(a) không duy nhất, là tập con được

•Quan hệ không phải là hàm thì ta cũng gọi là ánh xạ

Page 10: Kiểm thử và đảm bảo chất lượng phần mềm

Quan hệ giữa các tập

•Quan hệ có lực lượng• Lực lượng của R có thể là:–1-1–nhiều-1–1-nhiều–nhiều-nhiều

Page 11: Kiểm thử và đảm bảo chất lượng phần mềm

Tham gia của một quan hệ

•Sự tham gia của quan hệ R giữa A và B có thể là:–toàn bộ: • R có mọi phần tử của A

–bộ phận: • R không có mọi phần tử của A

–lên: • R có mọi phần tử của B

–vào: • R không có mọi phần tử của B

Page 12: Kiểm thử và đảm bảo chất lượng phần mềm

Quan hệ trên một tập hợp

• R là quan hệ giữa A và A• Các loại quan hệ:• phản xạ: nếu và chỉ nếu với mọi a thuộc A <a, a> thuộc R• đối xứng: nếu và chỉ nếu <a,b> thuộc R thì <b,a> thuộc R• phản đối xứng: nếu <a,b> thuộc R và <b,a> thuộc R thì suy ra

a=b• bắc cầu: nếu và chỉ nếu <a,b> thuộc R và <b,c> thuộc R thì

<a,c> thuộc R• R là quan hệ thứ tự nếu nó là phản xạ, bất đối xứng, và

bắc cầu.• R là quan hệ tương đương nếu nó là phản xạ, đối xứng,

và bắc cầu.

Page 13: Kiểm thử và đảm bảo chất lượng phần mềm

Logic mệnh đề

•Một mệnh đề là một câu khẳng định có giá trị đúng (T) hoặc sai (F)•Mệnh đề đơn giản (ví dụ p, q, r) là một mệnh đề hợp lệ

(valid)• Các phép toán logic dùng để xây dựng các mệnh đề/công

thức/biểu thức logic phức tạp hơn từ các mệnh đề đơn giản: hội, tuyển, phủ định, kéo theo,..

Page 14: Kiểm thử và đảm bảo chất lượng phần mềm

Lý thuyết xác suất

• Sự kiện/biến cố là điều xảy ra• Vũ trụ chuyên đề: tập tất cả biến cố có thể xảy ra, ký hiệu

bằng U.• Gọi p là một mệnh đề về các phần tử của U:• Tập đúng của mệnh đề p, ký hiệu là T(p), là tập các phần tử của U làm

cho p đúng. • Chu ý: T(p) U T(~p) = U• Xác xuất p đúng được định nghĩa: Pr(p) = |T(p)| / |U|

• Tính chất:• Pr(~p) = 1 – P(p)• Pr(p và q) = Pr(p) * Pr(q)• Pr(p hoặc q) = Pr(p) + Pr(q) – Pr(p và q)

Page 15: Kiểm thử và đảm bảo chất lượng phần mềm

Lý thuyết đồ thị

•Một đồ thị G = (V, E) gồm•một tập không rỗng, hữu hạn V = {n1, n2,.. nm} các đỉnh•một tập cạnh E = {e1, e2,.. ep} trong đó ek = {ni, nj}, với các

đỉnh ni, nj nào đó thuộc V.

15

Page 16: Kiểm thử và đảm bảo chất lượng phần mềm

Ví dụ

16

e1

e2e3

e4

e5

n1

n3

n6

n4 n5

n2

n7

V = {n1, n2, n3, n4, n5, n6, n7}

E = {e1, e2, e3, e4, e5} = {{n1, n2}, {n1, n4}, {n3, n4}, {n2, n5}, {n4, n6}}

Bậc của một đỉnh: số cạnh gắn với nó. Ví dụ: deg(n1) = 2, deg(n7) = 0, deg(n4) = 3.

Page 17: Kiểm thử và đảm bảo chất lượng phần mềm

Ma trận tới

• Phần tử tương ứng đỉnh có gắn cạnh có giá trị 1• Còn lại là 0

e1 e2 e3 e4 e5n1 1 1 0 0 0n2 1 0 0 1 0n3 0 0 1 0 0n4 0 1 1 0 1n5 0 0 0 1 0n6 0 0 0 0 1n7 0 0 0 0 0

17

Page 18: Kiểm thử và đảm bảo chất lượng phần mềm

Ma trận kề

•Cặp định có cạnh có giá trị 1•Còn lại là 0

n1 n2 n3 n4 n5 n6 n7

n1 0 1 0 1 0 0 0

n2 1 0 0 0 1 0 0

n3 0 0 0 1 0 0 0

n4 1 0 1 0 0 1 0

n5 0 1 0 0 0 0 0

n6 0 0 0 1 0 0 0

n7 0 0 0 0 0 0 0

18

Page 19: Kiểm thử và đảm bảo chất lượng phần mềm

Đường đi

•Một đường đi là một dãy các cạnh liên tục•Có thể mô tả bằng một dãy đỉnh hoặc một dãy cạnh•Đường đi có đỉnh bắt đầu/nguồn (source) và đỉnh

kết thúc/đích (target)

19

Page 20: Kiểm thử và đảm bảo chất lượng phần mềm

Liên thông

•ni, nj là liên thông nếu có đường đi giữa chúng• Liên thông là quan hệ tương đương trên tập đỉnh

của đồ thị• Liên thông xác định một phân hoạch trên tập đỉnh

của đồ thị•Một thành phần của một đồ thị là tập lớn nhất các

đỉnh liên thông

20

Page 21: Kiểm thử và đảm bảo chất lượng phần mềm

Đồ thị rút gọn

•Đồ thị rút gọn của đồ thị G = (V, E) được xây dựng bằng cách thay các thành phần bằng một đỉnh rút gọn

21

C1 n7

e1

e2e3

e4

e5

n1

n3

n6

n4 n5

n2

n7

Page 22: Kiểm thử và đảm bảo chất lượng phần mềm

Độ phức tạp đồ thị

•Độ phức tạp cyclomatic của đồ thị D là

V(G) = e – n + 2 trong đó e, n tương ứng là số cạnh, đỉnh của đồ thị

22

Page 23: Kiểm thử và đảm bảo chất lượng phần mềm

Đồ thị có hướng

•Đồ thị có hướng D = (V, E) gồm một tập đỉnh V = {n1, n2, … nm}, và một tập cạnh E = {e1, e2, ep}, trong đó mỗi cạnh ek = <ni, nj> là một cặp đỉnh có thứ tự

23

Page 24: Kiểm thử và đảm bảo chất lượng phần mềm

Vó dụ đồ thị có hướng

24

e1

e2e3

e4

e5

n1

n3

n6

n4 n5

n2

n7

V = {n1, n2, n3, n4, n5, n6, n7}

E = {e1, 2, e3, e4, e5} = {<n1, n2>, <n1, n4>, <n3, n4>, <n2, n5>, <n4, n6>}

Page 25: Kiểm thử và đảm bảo chất lượng phần mềm

Tính chất của đồ thị có hướng

• Bậc vào/ra của một đỉnh là số cạnh đến/đi của đỉnh đó• Đỉnh có bậc vào/ra bằng 0 là đỉnh nguồn/đích (đầu/cuối)• Đỉnh có bậc vào và bậc ra đều khác 0 là đỉnh chuyển• Đỉnh vừa là nguồn và đích là đỉnh cô lập• Đỉnh vào và đỉnh ra lập thành một biên ngoài của đồ thị

25

Page 26: Kiểm thử và đảm bảo chất lượng phần mềm

Ma trận kề của đồ thị có hướng

•Ma trận vuông có kích thước bằng số đỉnh và phần tử ở hàng i, cột j của ma trận là 1 nếu và chỉ nếu có cạnh từ đỉnh i đến đỉnh j, và là 0 ngược lại.•Tổng của hàng/cột là bậc ra/vào

26

Page 27: Kiểm thử và đảm bảo chất lượng phần mềm

Đường đi và nửa đường

•Đường đi có hướng là dãy các cạnh mà đỉnh cuối của cạnh trước là đỉnh đầu của cạnh tiếp theo•Chu trình là đường đi có đỉnh đầu và cuối trùng

nhau•Tựa đường đi có hướng là dãy cạnh trong đó có cặp

cạnh có cùng đỉnh đầu hoặc có cùng đỉnh cuối•Ví dụ: • đường đi từ n1 đến n6, • tựa đường đi từ n1 và n3, n2 và n4, n5 và n6

• 27

Page 28: Kiểm thử và đảm bảo chất lượng phần mềm

Ma trận tới (đến được)

n1 n2 n3 n4 n5 n6 n7

n1 0 1 0 1 1 1 0

n2 0 0 0 0 1 0 0

n3 0 0 0 1 0 1 0

n4 0 0 0 0 0 1 0

n5 0 0 0 0 0 0 0

n6 0 0 0 0 0 0 0

n7 0 0 0 0 0 0 0

• Ma trận tới của đồ thị có m đỉnh là ma trận m x m trong đó phần tử (i,j) là 1 khi có đường đi từ i đến j.• Ma trận tới R có thể tính bằng

công thức: R= I + A + A2 + … + Ak

trong đó k là chiều dài của đường đi dài nhất

28

Page 29: Kiểm thử và đảm bảo chất lượng phần mềm

N-liên thông

•Hai đỉnh ni và nj trong một đồ thị có hướng là• 0-liên thông: nếu và chỉ nếu không có đường đi từ ni đến

nj

• 1-liên thông: nếu và chỉ nếu có một tựa đường và không có đường giữa ni, nj

• 2-liên thông: nếu và chỉ nếu có một đường đi giữa ni, nj

• 3-liên thông: nếu và chỉ nếu có một đường đi từ ni đến nj

và một đường đi từ nj đến ni

•Một thành phần mạnh của một đồ thị có hướng là tập đỉnh 3-liên thông lớn nhất

29

Page 30: Kiểm thử và đảm bảo chất lượng phần mềm

Ví dụ

30

e1

e2e3

e4

e5

n1

n3

n6

n4 n5

n2

n7e6

n1 và n7 là 0-liên thôngn2 và n6 là 1-liên thôngn1 và n6 là 2-liên thôngn3 và n6 là 3-liên thông

Page 31: Kiểm thử và đảm bảo chất lượng phần mềm

Ví dụ đồ thị rút gọn

• Là đồ thị với các thành phần liên thông mạnh được thay bằng các đỉnh đơn và các cạnh được giữ nếu có các cạnh giữa hai đỉnh bất kỳ thuộc thành phần liên thông

31

Page 32: Kiểm thử và đảm bảo chất lượng phần mềm

Ví dụ đồ thị rút gọn

32

e1

e2 e4

n1

C1 n5

n2

n7

Page 33: Kiểm thử và đảm bảo chất lượng phần mềm

Ví dụ đồ thị rút gọn

33

Đồ thị rút gọn

Page 34: Kiểm thử và đảm bảo chất lượng phần mềm

Đồ thị chương trình

•Chương trình viết bằng ngôn ngữ mệnh lệnh có đồ thị chương trình là đồ thị có hướng với đỉnh là các lệnh hoặc đoạn lệnh liên tiếp và cạnh là các luồng điều khiển• Luồng điều khiển của chương trình mệnh lệnh được

xác định bằng các cấu trúc tuần tự, lặp và rẽ nhánh

34

Page 35: Kiểm thử và đảm bảo chất lượng phần mềm

Đồ thị của các cấu trúc chương trình

35

s1

s2

s2

s1

s2

s2

s2

s1

s2

s2

s2s2

s1

s2

s2

s1

s2

s1

s2

Tuần tự if-then-else case if-then loop-pre-test loop-post-test

Page 36: Kiểm thử và đảm bảo chất lượng phần mềm

Máy trạng thái hữu hạn (FSM)

•Một FSM là một đồ thị có hướng (S, T, Ev, Act, Guard) trong đó S là tập đỉnh, T là tập cạnh, và Ev, Act, Guard là các tập sự kiện, hành động, và gác gắn với các phép chuyển trong T

36

Page 37: Kiểm thử và đảm bảo chất lượng phần mềm

Ví dụ

37

SellingSelling

UnhappyUnhappy

HappyHappy

bid [(value >= 100) & (value < 200)] /sell

bid [value >= 200] /sell

bid [value < 100] /reject

Page 38: Kiểm thử và đảm bảo chất lượng phần mềm

Ví dụ Petri

38

p1 p5 p2

p3

p4

t1 t3

t2

P = {p1, p2, p3, p4, p5}T = {t1, t2, t3}In = { <p1, t1>, <p5, t1>, <p5, p3>, <p2, p3>, <p3, t2>}Out = {<t1, p3>, <t2, p4>, <t3, p4>}M = <1, 1, 1, 2, 0>