Nghiên cu k thut sinh ca kim th t mô hình
máy hu hn trng thái
Research the method to generate test case from finite state machine model
trang 58 tr. +
Thùy Linh
i hc Công ngh
Lu: Công ngh phn mm; Mã s: 60 48 10
Cán b ng dn khoa hc:
o v: 2012
Abstract. Trình bày v mô hình FSM và cách biu din mt FSM theo kiu li th hoc
dng bng. Ngoài ra, trình bày mt s tính cht ca mt máy hu hn trng thái. Nghiên cu mt
s nh chui kim chng trng thái ci vào ra duy
nht (UIO), chui phân bit (DS), chuu mi quan h mô phng ca hai
FSM và kim th s mô phng ca hai FSM và tng hp các lng gt FSM.
bao ph ca mô hình máy hu hn trng thái và la ch bao ph tt nh làm
ti sinh ca kim thm th c th
ng kt nhng kt qu ng phát trin nghiên cu tip theo.
Keywords: Công ngh phn mm; Kim th phn mm; K thut sinh ca; Mô hình máy
Content.
I. C1.
A. 1.1. Đặt vấn đề
Hin nay có rt nhiu h thng có th c t t máy tr thng
c truyn thông, h thu khin, h thy vic nghiên cu
p cn chính th kim th các máy trng thái hu h khám phá các khía cnh
ca hành vi ca chún m bo cha h thng. Tuy nhiên tính chính xác ca
h tht so vc t nào, khi nào thì mt h thc gi là chp
nhc thì hin nay các tài lit rt chung chung. Trong lui thiu
khái nim mô phng ca hai máy hu hn tr p nhc
ca h thm th da trên mô hình máy hu hn tr
kim th s mô phng ca hai máy hu hn trng thái.
B. 1.2. Nội dung nghiên cứu
Lup trung nghiên cu mt s nh chui kim chng tr
chui vào ra duy nht (UIO), chui phân bit (DS), chum th h
thng da trên mô hình máy hu hn tr t m
th kim th t có mô phng bc t phn mm theo mô hình máy hu hn
trng thái hay không.
C. 1.3. Cấu trúc luận văn
Phn còn li ca lu
Chương 2: Máy hữu hạn trạng thái (FSM). mô hình FSM và cách
biu din mt FSM theo kiu li th hoc dng b
mt s tính cht ca mt máy hu hn trng thái.
Chương 3: Một số phương pháp xác định chuỗi kiểm chứng trạng thái.
mt s nh chui kim chng trng thái ci vào ra duy
nht (UIO), chui phân bit (DS), chu
Chương 4: Kiểm thử dựa trên mô hình FSM. Ngoài vic trình bày mi quan h mô phng ca
hai FSM và kim th s mô phng cng hp các lng gp khi cài
t FSM.
Chương 5: Kỹ thuật sinh ca kiểm thử. Ngoài vi bao ph ca mô hình máy hu
hn trng thái và la ch bao ph tt nh làm ti sinh ca kim th
m th c th
Chương 6: Kết luận tng kt nhng kt qu c ca lung phát trin nghiên
cu tip theo.
II. C2. MÁY THÁI (FSM)
A. 2.1. Định nghĩa FSM
Máy hu hn trng thái là mt b M = <S, I, O, s
o
s
0
là tr
B. 2.2. Biểu diễn FSM
1) 2.2.1. Biểu diễn kiểu liệt kê
Cho FSM M
1
= <S, I, O, s
0
0
1
, s
2
, s
n
}
1
, i
2
, , i
n
}
i
,s
j
) = s
t
∀ i
i
∈ I và s
j
, s
t
∈ S
i
,i
k
) = o
t
i
∈ S; ∀ i
k
∈ I; ∀o
t
∈ O
2) 2.2.2. Biểu diễn bằng đồ thị
Các FSM và các yu t c
c biu din b .
gm:
(node)
.
Ví d v biu din b th ca FSM M
1
:
Hình 2.1: Minh họa việc biểu diễn FSM M
1
bằng
đồ thị
3) 2.2.3. Biểu diễn bằng dạng bảng
Mt FSM có th biu din bng dng bng, b
(N x N ô)
C. 2.3. Một số tính chất của FSM
Các thut toán trình bày trong lu áp dng vi FSM có tính ch
chui input y chui phân bit các trng thái s c trình bày
III. C3. PHÁP TÌM
THÁI
Chui kim chng trng thái (state verification sequence) là chui mà có th phân bit trng thái này vi
trng thái khác ca mt FSM.
Theo [5] có 3 loi chu kim chng trng thái c
- Output sequence)
sequence)
Các phn tip theo s trình bày chi ti tìm 3 loi chui này.
A. .1. Chuỗi vào – ra duy nhất (Unique Input - Output sequence)
1) 3.1.1. Một số khái niệm
-
i
i
M
i
, y)
j
j và ∀s
j
∈ M.
2) 3.1.2. Thuật toán sinh cây UIO
Input:
Output: cây UIO.
Phương pháp: Thc hic sau
Bước 1: t ψ là mt tp các vec-ng da vec-u
c gán là không kt thúc.
Bước 2: Tìm mt phn t ∈ ψ
Nu không tn ti phn t y thì thut toán kt thúc.
Bước 3:
i
/b
i
ψ vi ∀a
i
/b
i
∈ L.
p nht cây UIO.
Bước 4: N
i
/b
i
Bước 3 thu kin ct t
mt nút kt thúc.
Bước 5: Quay lc 2.
Ví dụ: Cho FSM G1 như sau:
Hình 3.1: Đồ thị mô tả FSM G1
Cây UIO ca FSM G
1
c xây d
Hình 3.2: Cây UIO của FSM G1 ở Hình
3.1.
T cây UIO cc chui UIO
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
B. 3.2. Chuỗi phân biệt (Distinguishing sequence)
1) 3.2.1. Một số khái niệm
Cho FSM M = <S, I, O, s
0
i
j
∀s
i
, s
j
∈ S và s
i
= s
j
.
2) 3.2.2. Thuật toán sinh cây DS
Input : M = <S, I, O, s
0
Output: Cây DS.
Phương pháp:
Bước 1: ψ ψ
Bước 2: ψ ∈ ψ
Bước 3: Tính toán ψ’ và thêm ψ’ vào ψ ∀a ∈
Bước 4: Bước 3
ψ’
Bước 5: Bước 2
Hình 3.2: Đồ thị mô tả FSM G2.
G
2
Hình 3.3: Cây DS của FSM G
2
ở Hình 3.2
Chui phân bit ca các trc kim chng ti bi.
Bảng 3.3 Bảng chuỗi phân biệt của các trạng thái của FSM G
2
Trạng thái
Chuỗi vào
Chuỗi ra
A
11
00
B
11
11
C
11
10
D
11
01
C. 3.3. Chuỗi đặc trưng (Characterizing sequence)
1) 3.3.1. Một số khái niệm
trong FSM M
-
k
là
1
, W
2
, , W
n
.
n
i = 1
W
i
= Q
i
i
và s
j
j
i
và s
j
2) 3.3.2. Phương pháp tìm W
Bước 1: Xây dng 1 chui cc k ca tp trng thái Q, gi s là P
1
, P
2
P
m
.
Bước 2: c k theo th t c l tìm chui phân bit cho mi cp
trng thái.
IV. C4. TRÊN MÔ HÌNH FSM
A. 4.1. Mối quan hệ mô phỏng của hai FSM
⊆ S
1
× S
2
là quan h mô phng t FSM M
S
= <S
1
, I, O, s
01
1
1
> thành FSM M
I
= <S
2
, I, O,
s
02
2
2
> nu:
1. (s
01
, s
02
) ∈
2. (s
1
, s
2
) ∈
{∀i ∀o ∀s
1
1
<i/oM
S
> s
1
[(s
2
<i/oM
I
>s
2
∧ (s
1
2
∈
N tn ti thì M
I
mô phng M
S.
t M
I
M
S
, hay nói cách khác M
I
mô phng M
S
. Tuy nhiên vic
t M
I
có th có li dn M
I
không mô phng M
S
n tip theo s
kim th kim th xem M
I
có mô phng M
S
hay không.
B. 4.2. Kiểm thử dựa trên mô hình FSM
Mt h thc t bi FSM M
S
t bng M
I
. Kim th xem h thng M
I
t
c t M
S
hay không bng cách so sánh hành vi ca hai máy trng thái da trên s
quan sát hành vi input/output ca M
I
gi là kim tra s phù hp hay s tìm li [6].
phù h
chúng ta có th t lun M
I
hoc t M
S
? Trong lu xut
khái nim mô ph M
I
c t hay không.
y, bài toán m th xem M
I
có mô phng M
S
hay không, nu M
I
không mô phng M
S
thì có lt.
m th vi vic kim chng tr giúp tr li xem FSM M
I
có mô
phng M
S
ng cc th hi
Hình 4.3: Mô hình khái niệm kiểm thử với việc kiểm chứng trạng thái
C. 4.3. Một số lỗi thường gặp khi kiểm thử sự mô phỏng của 2 FSM
Khi có bc t FSM M
S
= < S
1
, I, O, s
01
1
1
> và h thng cài t FSM M
I
= < S
2
, I, O, s
02
2
,
2
> , mt câu ht ra là FSM M
I
có mô phng FSM M
S
hay không? Bng tng hp thông tin 4.1 sau
là li gii này
Bảng 4.1: Tổng hợp các trường hợp lỗi khi cài đặt M
I
∃
1
(s
01
, x) =
2
(s
02
, x)
∃
1
(s
01
, x
2
(s
02
, x)
∃
1
(s
1
2
(s
2
, a)]
∃
1
(s
2
2
(s
2
∃
1
(s
2
, x) =
2
(s
2
Kt lun
-
T
-
-
-
No
T
F
T
-
-
No
T
F
F
T
-
No
T
F
F
F
T
Yes
I
không mô phng M
S
I
có mô phng M
S
y qua bng tng hp 4.1 ta có th thy mt s lng gp khi kim th s mô phng ca hai
1. Ln output: Output ng vi transition t s
2
s
2
a M
I
không ging vi output ng
vi transition s
1
s
1
a M
S
.
2. Ln trng thái:
- Tru ca M
I
không mô phng tru ca M
S
- Trng thái tip theo ca mt chuyn trng thái ca M
I
không mô phng trng thái trng thái tip theo
ng vi chuyn trng ca M
S
.
V. C5. SINH CA TH
A. 5.1. Độ bao phủ mô hình máy hữu hạn trạng thái
kim th FSM M
I
thì cn thit k bao nhiêu ca kim th bic s ca kim
th s bao ph bao ph tr
bao ph chuyn trng thái (transition coverage).
1) 5.1.1. Độ bao phủ trạng thái (state coverage)
bao ph trng thái ta la chn chui các chuyi trng thái sao cho mi trng thái
t mt ln [5].
2) 5.1.2. Độ bao phủ chuyển trạng thái (transition coverage)
bao ph chuyn trng thái ta la chn chui các chuyn trng thái sao cho mi chuyn
trt mt ln [5]. Bài toán này s i vit c
các cnh ca m th ng sao cho mi cc qua ít nht mt ln. Vì mi cnh c th
i mt s chuyn trng thái mà các trng thái là hu hn nên vi
hoàn toàn có th thc hic.
bao ph chuyn trng thái ta xây dng cây kim th t mô hình FSM. Cây kim th ca mt
FSM là mt cây có gc là tru. T tru, nó cha ít nht m
tru ti các trng thái còn li ca FSM [2].
ng cây kim th
Bước 1: Gc ca cây kim th là tru.
Bước 2: Gi s rng cây kim th c xây dn mc k, mc th k+1 s c xây d
sau:
Chn mt node n ti mc k.
Nu n xut hin mc bt k t n k thì n là node lá và không xây dng thêm nhánh này.
Nu n không phi là node lá thì tip tc xây dng nhánh này bng cách thêm mt nhánh t n ti
node mi m nu d(n, x) = m. Gán nhãn ca nhánh này là x/y v
Lp lc này vi tt c các nút mc k
Tip theo ta tìm tp bao ph trng thái P t cây kim th. Tp bao ph trng thái P = {p
1
, p
2
n
} là
mt tp tt c các chui con p
i
th hing dn con bu t nút gc trong cây kim th, ni các
nhãn theo các cnh cng dc mt chui thuc P.
B. 5.3. Kỹ thuật sinh ca kiểm thử
Ca kim th tt là ca kim th có th bao ph toàn b mô hình FSM. Do vy ta ch bao ph chuyn
trng thái, n bao ph là 100% thì có th phát hic tt c các li v output và các li v trng
thái.
1) 5.1.3. Khuôn dạng ca kiểm thử
Thông ng khuôn dng ca mt ca kim th bao gm thông tin sau:
Bảng 5.1: Khuôn dạng ca kiểm thử
TC_ID
Pre-Con
Input
Expected
Output
Post-Con
TC_1
Thông tin tin
u kin
Thông tin Input
Thông tin kt
qu i
Thông tin hu
u kin
C. 5.2. Phương pháp sinh ca kiểm thử
T c t M
S
, ta sinh ca kim th kim th M
I
1. Sinh cây kiểm thử và tìm tập bao phủ chuyển trạng thái
Vm th p bao ph chuyn tr
bày ti mc này ta có tp bao ph chuyn trng thái P.
2. Tìm chuỗi kiểm chứng trạng thái
Áp dng m tìm chui kim chng. Gi s
chui kim chc là x.
3. Sinh ca kiểm thử
Vi mi phn t ca tp chuyn trng thái hay vi mng dn con trên cây kim th kt hp
vi vic kim chng tri vi trng trng thái cui cùng cng dn con s sinh ra
mt ca kim th.
Ngoài ra, cn phi thit k thêm mt ca kim th kim th xem tru ca M
I
có mô
phng tru ca M
S
kim th tru ca M
I
có mô phng M
S
hay
không ta dùng chui kim ch kim th. Vì vu vào ca ca kim th này là chui kim
chng, kt qu i là output sinh ra t FSM M
S
.
D. 5.3. Ví dụ
Cho FSM M
S
c biu din b th sau:
Hình 5.5: Đồ thị biểu diễn FSM M
S
Và FSM M
I1
là bt ca FSM M
S
, gi s
Hình 5.6: Mô hình máy hữu hạn trạng
thái M
I1
m th
kim th xem M
I1
có mô phng M
S
hay không
1. Tìm chuỗi kiểm chứng
Áp dng m
trình bày tìm chui kim
chng trng thái
Mô hình máy hu hn trng thái M
S
có chui kim chng trng thái là 11 (áp d
2. Xây dựng cây kiểm thử
Xây dng cây kim th cho mô hình máy hu hn trng thái M
S
Hình 5.7: Cây kiểm thử của mô hình
máy hữu hạn trạng thái M
S
3. Tìm tập bao phủ transition từ
cây kiểm thử
P = {0/0.B, 1/0.D, 0/0.0/0.A,
0/0.1/1.B, 1/0.0/1.D, 1/0.1/0.C,
1/0.1/0.0/1.D, 1/0.1/0.1/1.A}
Sinh ca kiểm thử và kiểm thử
i vt FSM M
I1
, ta có kt qu kim th
Bảng 5.6: Kết quả kiểm thử của FSM M
I1
TC_ID
Pre-Con
Input
Expected Output
Actual result
Post-Con
TC0-1
N/A
11
00
00
A
TC1-11
Passed TC0-
011
011
011
A
TC1-21
Passed TC0-
111
001
001
A
TC2-11
Passed TC1-
0011
0000
0000
A
TC2-21
Passed TC1-
0111
0111
0111
A
TC2-31
Passed TC1-
1011
0101
0101
A
TC2-41
Passed TC1-
1111
0010
0010
A
TC3-11
Passed TC2-
11011
00101
00101
A
TC3-21
Passed TC2-
10111
00100
00100
A
Nhn xét:
Theo kt qu kim th trên thì mi Actual result u giExpected Output ti ca kim th
g ng nên FSM M
I1
mô phng FSM M
S
.
VI. C6.
Kim th phn mm, mt ni dung nghiên cc trin khai t rt sm và không phi là mi m i
vi th gi cp thit cho vic nâng cao chng phn mm.
Trong lu, tác gi ng quan v mô hình máy hu hn tr
cu v nh chui kim chng trnh Unique Input Output
sequence, Distingguishing sequence, Characterizing sequence. Lu
kim th da trên mô hình máy hu hn trng thái và dùng khái nim mô ph
n ca h thng so vc t.
Luu v bao ph ca mô hình máy hu hn trng thái, và t
pháp sinh ca kim th kim th xem h tht có mô phng bc t phn mm da trên mô
hình máy hu hn trng thái hay không.
ng phát trin tip theo ca lui tim th sao cho s ca
kim th là ít nh bao ph là ln nht có thng thi, tác gi s xây dng m
trình sinh ca kim th t ng dc ci tin.
References.
Tiếng việt
1. Ngô Thùy Linh (2010), Nghiên cứu kiểm thử bao phủ phần mềm và ứng dụng
-53.
Tiếng anh
2. Aditya P. Mathur (2008), Foundations of Software Testing, Dorling Kindersley (India) Pvt. Ltd.,
pp.221-234.
3. Boris Beizer (1990), Software Testing Techniques, Second Edition, Van Nostrand Reinhold.
4. Jeff Tian (2005), Software Quality Engineering, John Wiley & Sons, Inc.
5. Kshirasagar Naik, Priyadarshi Tripathy (2008), Software Testing and Quality Assurance, John
Wiley & Sons, Inc., pp.265-318.
6. K. Derderia
The Computer Journal, 00, 0.
7.
SequeComputer Science Technical Reports, (TXSTATE-CS-TR-2011-26), pp.6-12.
8. Timothy Kam (1997), Synthesis of Finite State Machine, Kluwer Acad. Publ., pp.200.
9. www.cs.odu.edu~toidanerzic390techedregularfafa-applications.html