Tải bản đầy đủ (.pdf) (57 trang)

Nghiên cứu kỹ thuật sinh ca kiểm thử từ mô hình máy hữu hạn trạng thái

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.3 MB, 57 trang )




ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ


ĐOÀN THỊ THÙY LINH


NGHIÊN CỨU PHƯƠNG PHÁP SNH CA KIỂM THỬ TỪ
MÔ HÌNH MÁY HỮU HẠN TRẠNG THÁI

Ngành: Công nghệ thông tin
Chuyên ngành: Công nghệ phần mềm
Mã số: 60 48 10


TÓM TẮT LUẬN VĂN THẠC SĨ



Hà nội, 2012



3

MỤC LỤC

DANH SÁCH BẢNG 5


DANH SÁCH HÌNH VẼ 6
DANH MỤC CÁC CHỮ VIẾT TẮT 7
Chương 1. GIỚI THIỆU 8
t vn  8
1.2. Nu 8
1.3. C 8
Chương 2. MÁY HỮU HẠN TRẠNG THÁI (FSM) 10
 10
2.2. Biu din FSM 11
2.2.1. Biu din kiu li 11
2.2.2. Biu din b th 12
2.2.3. Biu din bng dng bng 12
2.3. Mt s t ca FSM 13
c t  (Completely specified) 13
nh (Deterministic) 14
nh (Strongly connected) 15
2.3.4. Ti gin (Reduced) 16
Chương 3. MỘT SỐ PHƯƠNG PHÁP XÁC ĐỊNH CHUỖI KIỂM
CHỨNG TRẠNG THÁI 18
3.1. Chu ra duy nht (Unique Input - Output sequence) [5] 18
3.1.1. Mt s m 19
3.1.2. Thu 20
3.2. Chut (Distinguishing sequence) [5] 25
3.2.1. Mt s m 25
3.2.2. Thu 27
3.3. Chu 29
3.3.1. Mt s m 29
 29
Chương 4. KIỂM THỬ DỰA TRÊN MÔ HÌNH FSM 34
4


4.1. Mi quan h ng ca hai FSM 34
4.2. Kim th d 35
4.3. Mt s lng gt FSM 37
Chương 5. KỸ THUẬT SINH CA KIỂM THỬ 40
 bao ph u hn tr 40
 bao ph tr 40
 bao ph chuyn tr 42
5.2. K thut sinh ca kim th 44
ng ca kim th 44
5.m th 45
 51
Chương 6. KẾT LUẬN 57
TÀI LIỆU THAM KHẢO 58


5

DANH SÁCH BẢNG

2.1: Minh ha vic biu din FSM

bng dng bng 13
Bng 3.1: Chui UIO ca FSM G
1
24
Bng 3.2:  khi tr 26
Bng 3.3: Bng chut ca FSM G
2
29

Bng 3.4: B FSM G
3
30
Bng 3.5: Bc 1 ca FSM G
3
31
Bng 3.6: Bng P
1
c 2 ca FSM G
3
31
Bng 3.7: Bng P
2
c 3 ca FSM G
3
32
Bng 3.8: Bng P
3
c 4 ca FSM G
3
32
Bng 3.9: Bc 5 ca FSM G
3
32
Bng 4.1: Bng tng ht FSM M
I
38
Bng 5.1:  dng ca kim th 45
Bng 5.2: Ca kim th tru ca FSM M
S

46
Bm th TC1 ca FSM M
S
50
Bm th TC2- ca FSM M
S
50
Bm th TCk- ca FSM M
S
50
Bng 5.6: Ca kim th ca FSM M
S
54
Bng 5.7: Kt qu kim th ca FSM M
I1
55
Bng 5.8: Kt qu kim th ca FSM M
I2
55
Bng 5.9: Kt qu kim th ca FSM M
I3
56


6

DANH SÁCH HÌNH VẼ

a vic biu din FSM b th 12
 v FSM M

1
c t  13
 v FSM M
2
c t . 14
 v FSM M
3
nh. 14
 v FSM M
4
nh. 15
 v FSM M
5
nh. 15
 v FSM M
6
u. 16
 v FSM M
7
c ti gin. 16
 v FSM M
8
c ti gin. 17
 th  FSM G
1
. 19
a FSM G
1
  22
nh chu  23

 th  FSM G
2
25
a FSM G
2
  28

3
30
c t  34
 hi 34
m kim th vi vic kim chng tr
36
u hn trng 
1
41
 tt c a FSM C
1
41
m th ca FSM C
1
. 43
 th biu din FSM M
S
[5]. 51
u hn tr
I1
51
u hn tr
I2

. 52
u hn tr
I3
. 52
m th t 
S
. 53





7

DANH MỤC CÁC CHỮ VIẾT TẮT

Từ viết tắt
Ý nghĩa
Giải thích tiếng Việt
DS
Distinguishing sequence
Chut
FSM
Finite state machine
u hn trng

UIO
Unique Input - Output
sequence
Chu ra duy

nht
VER
State verification
sequence
Chui kim chng
tr
W
Characterizing sequence
Chu


8

Chương 1. GIỚI THIỆU. Đặt vấn đề
Hit nhiu h thc t ho
hu hn tr thng reactive ( thng,
kt qu u kin/ trng  ng v 
trong ho) [9] c truyn thng, h thu khin,
h th. y vikim th
u h nh cca  
 m bo cha h thng. a h
tht so vc t  t h th
c gp nht rt chung
chung [5]. Trong luxin gii thiu ning ca
u hn tr   p nhc
ca h thm th d
hu hn tr kim th s ng c hu hn tr.
1.2. Nội dung nghiên cứu
Luu mt s  nh chui kim
chng tr   chu   ra duy nht (UIO), chu  t (DS),

chuWm th h thng du
hn tr t  u   phsinh ca kim th 
kim th ng bc t phn mm theo 
u hn tr 
1.3. Cấu trúc luận văn
Phi ca lu
Chương 2: Máy hữu hạn trạng thái (FSM).  
 u din mt FSM theo kiu li th hoc dng bng.
t s t ca mt u
hn tr
Chương 3: Một số phương pháp xác định chuỗi kiểm chứng trạng thái.
mt s  nh chui kim chng tr
ca   ra duy nht (UIO), chut (DS),
chuW).
9

Chương 4: Kiểm thử dựa trên mô hình FSM. c mi
quan h ng cm th s ng ca hai FSM, 
tng h lng gp khi t FSM.
Chương 5: Kỹ thuật sinh ca kiểm thử. c  bao ph
cu hn tra ch bao ph tt nh n
 sinh ca kim thm th 
  c th 
Chương 6: Kết luận tng kt nhng kt qu c ca lu
u tip theo.
10

Chương 2. MÁY HỮU HẠN TRẠNG THÁI (FSM)
2.1. Định nghĩa FSM
u hn tr FSM) [7]  h d

trn tr c s dng r
mc cp phn mc bit ph bin trong thit k h
thng vi   c truy   th    th u
khiu hn tr  Moore. 
Mealy tn tr
to ra output dn tr thuc).

u hn tr(Mealy machine) [5, 7] t b M = <S, I, O, s
o
,
>:
 mt t,
 ,
 u ra,
 s
0
u,
 n tr,
 : S x I u ra.
[4] FSMm:
  :  (state) 
(state transition)

t-
.
 ng: (input)
FSM (output)
. C.
Ngun gc FSM [7] t  ng hu hn (Finite Automata), gm 5
n (Q, , , q

0
, F)
 mt tp hu h tri,
   mt tc g tp ch  p (input
alphabet),
 : Q x   Q n tr,
11

 q
0
 Q u,
 F Q mt tp tr.
 ng hu hc s dng ch y
 c  nhn. Ti thu, c gi thit  trng
u q
0
, vu nhc) c 
a chui nhp. Trong sut mi ln di chuyu nhp tin v 
phi my mi ln di chuyn s ly mp.Khi
gu ki, chuc chp nhn (accepted) n ng
hu h trc li b t
chi.
u hn tr ng hu hn ta
thy rng: FSM u ra (output)    .
Trong lu 

2.2. Biểu diễn FSM
2.2.1. Biểu diễn kiểu liệt kê
Cho FSM M = <S, I, O, s
0

.
 Tru s
0

 Tp trs
1
, s
2
, s
n
}
 Tp Inputs I = {i
1
, i
2
, , i
n
}
 Tp chuyn tr(i
i
,s
j
) = s
t
} vi  i
i
 I  s
j
, s
t

 S
 Tp Outputs O = {(s
i
,i
k
) = o
t
} vi s
i
 S;  i
k
 I; o
t
 O
Ví dụ: FSM M = <S, I, O, s
0

 T S = {A, B, C, D}
 Tp Inputs I = {0, 1}
 Tp Outputs O = {0, 1}
 Trng u s
0
= A
 Tp chuyn tr ,

 Tp Ong vi s chuyn tr(A,0) = 0, B,0) = 0,
(B,1) = 1, 1) =1}
12

2.2.2. Biểu diễn bằng đồ thị

u t c  c biu din b
m:
 .
 
 nh c th
vcp input/output u /  .
T vi FSM M b  mc 2.2.1, ta
 biu din FSM M b th 2.1 











Hình 2.1: Minh họa việc biểu diễn FSM bằng đồ thị.
2.2.3. Biểu diễn bằng dạng bảng


 thri
           
N) 
 T.
 
.
 (

 (
13

/o
 -.
Ví dụ: c biu diH2.1B
2.1 
Bảng 2.1: Minh họa việc biểu diễn FSM

bằng dạng bảng
Start State
End State
A
B
C
D
A
-
0/0
1/1
-
B
0/0
1/1
-
-
C
-
-
-

1/0
D
1/0
-
0/1
0/1
2.3. Một số tính chất của FSM
2.3.1. Được đặc tả đầy đủ (Completely specified)
Mt FSM M c gc c t  nu mi input a  I tn ti
chuyn trnh ti mi tra M.
 hi t   FSM M
1
M
2

sau:  v FSM M
1
c t    
m v FSM M
2
c c t .












Hình 2.2: Ví dụ về FSM M
1
được đặc tả đầy đủ.

14










Hình 2.3: Ví dụ về FSM M
2
không được đặc tả không đầy đủ.
 Hi mn ti chuyn tr ti mi
tra FSM M
2
.
 vi input bt k, n ti chuyn trng  t
trM
2
c t .
2.3.2. Đơn định (Deterministic)
Mt FSM M nh (Deterministic) nu cho m

 I u nht mt s chuyn trnh ti mi tra M.
c lM nh (Nondeterministic).
 hi c t  ca m 
FSM M
3
M
4
sau:   v FSM M
3

cht nh, 5  v FSM M
4
t nh.











Hình 2.4: Ví dụ về FSM M
3
có tính chất đơn định.

15













Hình 2.5: Ví dụ về FSM M
4
có tính chất không đơn định.
 QT mt tr bt k, vi mt mt
chuyn tr M
4
nh.
 VT tr, vi input 0  chuyn ti trA hoc
tr FSM M
5
nh.
2.3.3. Liên thông mạnh (Strongly connected)
Mt FSM M c gnh (Strongly connected) nu bt k
tr ti bt k tr c li M 
u (Weakly connected).
 hi t  nh ca m 
M
5
M

6
sau: 6  v FSM M
5

nh, 7  v FSM M
6
u.






Hình 2.6: Ví dụ về FSM M
5
có tính liên thông mạnh.


16







Hình 2.7: Ví dụ về FSM M
6
có tính liên thông yếu.
 6: Vi mnh c th 

ti. T mt trt k c mt
hoc mt chuchuyn tr  ta FSM M
5
M
5
nh.
 i vi H7: T nh A hoc B ho 
tnh C c th. T, n ti mt hoc mt chuchuyn
tr t trc B hoc D ti tra FSM M
6

FSM M
6
u.
2.3.4. Tối giản (Reduced)
Mc gc ti gin nu vi bt k cp trs
i

j
,
i  t chu 
i
,y)  
j
,y). 
 c gti gin n
n ti chui input t tri tr
 hi t ti gin ca FSM, t FSM M
7


c ti giM
8
c ti gin:







Hình 2.8: Ví dụ về FSM M
7
không được tối giản.

1
/0
17






Hình 2.9: Ví dụ về FSM M
8
được tối giản.
i v8: Gi s M
71
M
72

n sao ca FSM M
7
, tr
hin thi ca mng n thi c
tr M
71
M
72
  quan
ng vi input truyM
71
M
72
. Khi truyn input 0 
M
71
M
72
 c trn th
0. c g
 Kt hp hai tr    t tr   c FSM M
8

(H9) c ti gin.
ch ng vt
. i input y  chu
ca FSM s  C.

18


Chương 3. MỘT SỐ PHƯƠNG PHÁP XÁC ĐỊNH
CHUỖI KIỂM CHỨNG TRẠNG THÁI
Chui kim chng tr(state verification sequence) 
th t tri tra mt FSM [5].
Theo [5] i chui   kim chng tr a
FSM, 
 Chu ra duy nht (Unique Input - Output sequence)
 Chut (Distinguishing sequence)
 Chu sequence)
n tip theo s   nh 3 loi
chu
3.1. Chuỗi vào – ra duy nhất (Unique Input - Output sequence) [5]
Ta s s dng FSM G
1
   mc 3.1.
G
1

 S = {A, B, C, 
 
 O = {0, 1} u ra (outputs).
 A u.
  n tr
 u ra.
 Ti L = {0/0, 0/1, 1/0}
 b th sau:










19










Hình 3.1: Đồ thị mô tả FSM G
1
.
3.1.1. Một số khái niệm
 Chu- ra duy nht (Unique Input  Output sequence)
Mt chui 
i
,y) c g chui UIO cho mi tr s
i
ca FSM M nu
 n
i
,y) 
j

,y) vi i j  s
j
 M.
Ví dụ: i input 010 cho trA ca FSM G
1
:
(A,010) = (A,0),1),0) = 000
Vi mi tra FSM G
1

(B,0),1),0) = 001
(D,010) = 100
(C,010p nhn chui 010
y: 010  chui UIO ca tra FSM G
1
.
 Vec-ng dn (Path Vector), , t tp hp cp trng
 ca mt chui chuyn tr (s
1
/s
1
 , s
i
/s
i
, , s
k
/s
k
), vi s

i
ng
u  s
j
i ca mt chuyn tr.
 Vec-u (Inital V), mt tp tru ca
PV, cIV(PV) = (s
1
, , s
i
, , s
k
).
 Vec-n thi (Current Vector) lt t
cui ca vec-ng dn. CV(PV) = (s
1
, , s
i
, , s
k
).
 Mt vec-ng dn c g vec- t (Singleton Vector) n
cht cp tr
Ví dụ: PV = (B/D),  t cp trPV t vec-
nht.
20

 Mt vec-ng dn c gvec-ng nht (Homogeneous Vector)
nu tt c phn t ca vec-n thi 
Ví dụ: PV = (A/B, C/B)  CV(PV) = (B, B), tt c phn t ca CV(PV)

- ng nht.
 T mt vec- ng dn PV, input-a mt
chuyn trgi t vec- ng dn mc   t
(PV,
 = {s
i
/s
i
| s
i
 = (s
i
 (s
i
,a) = b  s
i
/ s
i
 PV}
 
t cnh t i mt a c
t t sp xp i
L{pert (PV, a/b), a/b  L} t c: tt c 
ng dn vec-a FSM M  c sp xi dng mt  v
cp 1, 2, 3, , t  c gn ct
ta  du kin gu kin ct ta. Sau mi l
pert (PV, a/b) ta kiu kii:
 t vec-ng nht hoc vec-t.
 ng dn (path) t vec-u ti PV, tn ti PV sao
 PV

ng UIO, nu mu kin ct ta tha
t vec-ng dn k
Mi tr
i
cchui UIO n na FSM
M t vec-ng dt.
3.1.2. Thuật toán sinh cây UIO
Input: M = <S, I,  L.
Output: UIO.
Phương pháp: Thc hic sau
Bước 1: t ψ t t-ng dn , ban
u ψ cha vec-
Bước 2: t phn t ψ  ψ c 
.
Nn ti phn t .
21

Bước 3:  ψ’ = pert(ψ,a
i
/b
i
)   ψ vi a
i
/b
i

L.
u ψ  c  p nht UIO.
Bước 4: Nu pert(ψ,a
i

/b
i
),    Bước 3 th  u
kin D1 hoc D2 hoc D3, u ψ’ t  k.
Bước 5: Quay lc 2.
Ví dụ:
ca FSM G
1

 bi vic s dng tt c 
phn c
(A/B, B/A) = pert(, 0/0)
(C/D, D/D) = pert(, 0/1)
(A/D, B/B, C/A, D/C) )
 c th hii d h-ng
du,  = (A/A, B/B, C/C, D/D). T gc v 3 cnh tng dn
vec-(A/B, B/A), (C/D, D/D), (A/D, B/B, C/A, D/C) v
phng c hin trong H 
22


Hình 3.2: Cây UIO của FSM G
1
ở Hình 3.1.
23

Vec-ng d-n th
mt vec-ng nht. y vec-ng dn (C/D, D/D) s c 
 na, trong khi 2 vec-ng d
D/C) tip t Chu  nhc ch ra trong

H ct.
Hình 3.3: Xác định chuỗi UIO trên cây UIO ở Hình 3.2.
24

Kt qu c tng h
Bảng 3.1: Chuỗi UIO của FSM G
1

Trạng thái
Chuỗi vào
Chuỗi ra
A
010
000
B
010
001
C
1010
0000
D
11010
00000
Ta kim chng li kt qu:
 Kim chng trng chui 010
0) = 000
 0) = 001
0) = 101
1) 0) = 100
 Kim chng trng chui 010

010(B,0),1),0) = 001
010A,0),1),1) = 000
010(C,0),1),1) = 101
010) = (D,0),1),1) = 100
 Kim chng trng chui 1010
10100000
1010,1),0),1),0) = 0111
1010,1),0),1),0) = 0001
1010,1),0),1),0) = 0101
 Kim chng trng chui 11010
 00000
,1),1),0),1),0) = 00101
,1),1),0),1),0) = 00001
,1),1),0),1),0) = 00101
25

3.2. Chuỗi phân biệt (Distinguishing sequence) [5]
S dng FSM G
2
   mc 3.2.
G
2

 S = {A, B, C, 
 
 O = {0, 1} u ra (outputs).
 u.
  n tr
 u ra.
 Ti L = {0/0, 0/1, 1/0, 1/1}

 b th sau:








Hình 3.4: Đồ thị mô tả FSM G
2
.
3.2.1. Một số khái niệm
Cho FSM M = <S, I, O, s
0
i |S| = n,
 Chut (Distinguishing Sequence): Mt chu
c gt n n
i
,x) 
j
,x) vi s
i
, s
j
 s
i

= s
j

.
 Khi trState block) B n
t Svy:
 Tn t ca B bng n.
 Mt khi tr    cha n multisets vi mi phn t ca
.
26

 Mt khi tr cha 1 multiset, phn t c tt c
a FSM M.
B v khi tr
Bảng 3.2: Ví dụ khối trạng thái
Khi trB1
{(A B C D)}
Khi trB2
{(A B), (C D)}
Khi trB3
{(A), (B), (C), (D)}
Vi Vi khi tr B1 (A B C D) - t c ng
a FSM.
Vi khi trB2 (A B), (C D)
Vi khi trB3  (A), (B), (C), (D) i
t phn t trong tp tra FSM.
 Vi khi trB = {W
1
, ,W
i
, ,W
m
} t  a


Inh
B’= dpert(Bi mt phn t multiset W
i
= (w
i1
, w
i2
, 
w
ik
) ca B cha mt hoc nhiu phn t ca B 
 Nu hai tra W
i
tng vi
input a n t a B’.
 Np theo ca tt c W
i
o
ng vi input a  
mt phn t ca B’.
 Cho FSM ti gin (reduced), khi tru ch bao gm
mt phn t cha mt ta FSM. Ti
n tt c khi trt c  dng chc
 xem B= dpert(B,a) t cnh t  B
ti mt  mi Ba ca. T mt khi trt tp
inpu sp xp |I|  mi {dpert(B,a), a  I } tt
cp. Tt c i tra FSM M  sp xi dng m
vp 1, 2, , c gDS. Mt 
i hn cp, t 

cp gii hn, nhp gii hc bs dng
mu kin ct ta:

×