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

Tài liệu Báo cáo " 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 " doc

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 (565.18 KB, 12 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
Research the method to generate test case from finite state machine model
 trang 58 tr. +


 Thùy Linh


i hc Công ngh
Lu: Công ngh phn mm; Mã s: 60 48 10
Cán b ng dn khoa hc: 
o v: 2012


Abstract. Trình bày v mô hình FSM và cách biu din mt FSM theo kiu li th hoc
dng bng. Ngoài ra, trình bày mt s tính cht ca mt máy hu hn trng thái. Nghiên cu mt
s nh chui kim chng trng thái ci vào  ra duy
nht (UIO), chui phân bit (DS), chuu mi quan h mô phng ca hai
FSM và kim th s mô phng ca hai FSM và tng hp các lng gt FSM.
 bao ph ca mô hình máy hu hn trng thái và la ch bao ph tt nh làm
ti sinh ca kim thm th   c th 
ng kt nhng kt qu ng phát trin nghiên cu tip theo.

Keywords: Công ngh phn mm; Kim th phn mm; K thut sinh ca; Mô hình máy

Content.
I. C1.  
A. 1.1. Đặt vấn đề
Hin nay có rt nhiu h thng có th c t t máy tr thng


c truyn thông, h thu khin, h thy vic nghiên cu
p cn chính th kim th các máy trng thái hu h khám phá các khía cnh
ca hành vi ca chún m bo cha h thng. Tuy nhiên tính chính xác ca
h tht so vc t  nào, khi nào thì mt h thc gi là chp
nhc thì hin nay các tài lit rt chung chung. Trong lui thiu
khái nim mô phng ca hai máy hu hn tr p nhc
ca h thm th da trên mô hình máy hu hn tr
kim th s mô phng ca hai máy hu hn trng thái.
B. 1.2. Nội dung nghiên cứu
Lup trung nghiên cu mt s nh chui kim chng tr
chui vào  ra duy nht (UIO), chui phân bit (DS), chum th h
thng da trên mô hình máy hu hn tr t m

th  kim th t có mô phng bc t phn mm theo mô hình máy hu hn
trng thái hay không.
C. 1.3. Cấu trúc luận văn
Phn còn li ca lu
Chương 2: Máy hữu hạn trạng thái (FSM).  mô hình FSM và cách
biu din mt FSM theo kiu li th hoc dng b
mt s tính cht ca mt máy hu hn trng 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. 
mt s nh chui kim chng trng thái ci vào  ra duy
nht (UIO), chui phân bit (DS), chu
Chương 4: Kiểm thử dựa trên mô hình FSM. Ngoài vic trình bày mi quan h mô phng ca
hai FSM và kim th s mô phng cng hp các lng gp khi cài
t FSM.
Chương 5: Kỹ thuật sinh ca kiểm thử. Ngoài vi bao ph ca mô hình máy hu
hn trng thái và la ch bao ph tt nh làm ti 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ng phát trin nghiên

cu tip theo.

II. C2. MÁY    THÁI (FSM)
A. 2.1. Định nghĩa FSM
Máy hu hn trng thái là mt 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 yu t c

c biu din b . 

 


gm:
 
















(node) 

.
 



































 

Ví d v biu din b th ca 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
Mt FSM có th biu din bng dng bng, b








(N x N ô)
C. 2.3. Một số tính chất của FSM
 
 
 
 
Các thut toán trình bày trong lu áp dng vi FSM có tính ch
chui input y  chui phân bit các trng thái s c trình bày  
III. C3.    PHÁP TÌM 
   THÁI
Chui kim chng trng thái (state verification sequence) là chui mà có th phân bit trng thái này vi
trng thái khác ca mt FSM.
Theo [5] có 3 loi chu kim chng trng thái c
  - Output sequence)
 
  sequence)
Các phn tip theo s trình bày chi ti tìm 3 loi chui 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: Thc hic sau
Bước 1: t ψ là mt tp các vec-ng da vec-u
c gán là không kt thúc.
Bước 2: Tìm mt phn t ∈ ψ 
Nu không tn ti phn t y thì thut toán kt thúc.
Bước 3: 
i
/b
i
ψ vi ∀a
i
/b
i
∈ L.
p nht cây UIO.
Bước 4: N
i
/b
i
 Bước 3 thu kin ct t
mt nút kt thúc.
Bước 5: Quay lc 2.

Ví dụ: Cho FSM G1 như sau:


Hình 3.1: Đồ thị mô tả FSM G1
Cây UIO ca 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 cc chui 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
Chui phân bit ca các trc kim chng ti bi.
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


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 dng 1 chui cc k ca tp trng thái Q, gi s là P
1
, P
2

P
m
.
Bước 2: c k theo th t c l tìm chui phân bit cho mi cp
trng thái.
IV. C4.    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ô phng 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
> nu:
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 tn ti thì M
I
mô phng M

S.
t M
I
M
S
, hay nói cách khác M
I
mô phng M
S
. Tuy nhiên vic
t M
I
có th có li dn M
I
không mô phng M
S
n tip theo s 
kim th  kim th xem M
I
có mô phng M
S
hay không.
B. 4.2. Kiểm thử dựa trên mô hình FSM
Mt h thc t bi FSM M
S
t bng M
I
. Kim th xem h thng M
I
t

c t M
S
hay không bng cách so sánh hành vi ca hai máy trng thái da trên s
quan sát hành vi input/output ca M
I
gi là kim tra s phù hp hay s tìm li [6].
  phù h  
chúng ta có th t lun M
I
hoc t M
S
? Trong lu xut
khái nim mô ph M
I
c t hay không.
y, bài toán  m th xem M
I
có mô phng M
S
hay không, nu M
I
không mô phng M
S

thì có lt.
m th vi vic kim chng tr giúp tr li xem FSM M
I
có mô
phng M
S

ng cc 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ó bc t FSM M
S
= < S
1
, I, O, s
01

1

1
> và h thng cài t FSM M
I
= < S
2
, I, O, s
02

2
,

2

> , mt câu ht ra là FSM M
I
có mô phng FSM M
S
hay không? Bng tng hp thông tin 4.1 sau
là li gii 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


Kt lun
-
T
-
-
-
No
T
F
T
-
-
No
T
F
F
T
-
No
T
F
F
F
T
Yes


I
không mô phng M

S


I
có mô phng M
S

y qua bng tng hp 4.1 ta có th thy mt s lng gp khi kim th s mô phng ca hai

1. Ln output: Output ng vi transition t s
2
s
2
a M
I
không ging vi output ng
vi transition s
1
s
1
a M
S
.
2. Ln trng thái:
- Tru ca M
I
không mô phng tru ca M
S

- Trng thái tip theo ca mt chuyn trng thái ca M

I
không mô phng trng thái trng thái tip theo
ng vi chuyn trng ca M
S
.
V. C5.   SINH CA  TH
A. 5.1. Độ bao phủ mô hình máy hữu hạn trạng thái
 kim th FSM M
I
thì cn thit k bao nhiêu ca kim th  bic s ca kim
th   s   bao ph  bao ph tr
bao ph chuyn trng thái (transition coverage).
1) 5.1.1. Độ bao phủ trạng thái (state coverage)
  bao ph trng thái ta la chn chui các chuyi trng thái sao cho mi trng thái
t mt ln [5].
2) 5.1.2. Độ bao phủ chuyển trạng thái (transition coverage)
  bao ph chuyn trng thái ta la chn chui các chuyn trng thái sao cho mi chuyn
trt mt ln [5]. Bài toán này s i vit c
các cnh ca m th ng sao cho mi cc qua ít nht mt ln. Vì mi cnh c th
i mt s chuyn trng thái mà các trng thái là hu hn nên vi
hoàn toàn có th thc hic.
  bao ph chuyn trng thái ta xây dng cây kim th t mô hình FSM. Cây kim th ca mt
FSM là mt cây có gc là tru. T tru, nó cha ít nht m
tru ti các trng thái còn li ca FSM [2].
ng cây kim th
Bước 1: Gc ca cây kim th là tru.
Bước 2: Gi s rng cây kim th c xây dn mc k, mc th k+1 s c xây d
sau:
Chn mt node n ti mc k.
Nu n xut hin  mc bt k t n k thì n là node lá và không xây dng thêm nhánh này.

Nu n không phi là node lá thì tip tc xây dng nhánh này bng cách thêm mt nhánh t n ti
node mi m nu d(n, x) = m. Gán nhãn ca nhánh này là x/y v
Lp lc này vi tt c các nút  mc k

Tip theo ta tìm tp bao ph trng thái P t cây kim th. Tp bao ph trng thái P = {p
1
, p
2

n
} là
mt tp tt c các chui con p
i
th hing dn con bu t nút gc trong cây kim th, ni các
nhãn theo các cnh cng dc mt chui thuc P.
B. 5.3. Kỹ thuật sinh ca kiểm thử
Ca kim th tt là ca kim th có th bao ph toàn b mô hình FSM. Do vy ta ch bao ph chuyn
trng thái, n bao ph là 100% thì có th phát hic tt c các li v output và các li v trng
thái.
1) 5.1.3. Khuôn dạng ca kiểm thử
Thông ng khuôn dng ca mt ca kim th bao gm 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 tin

u kin
Thông tin Input
Thông tin kt
qu i
Thông tin hu
u kin
C. 5.2. Phương pháp sinh ca kiểm thử
T c t M
S
, ta sinh ca kim th  kim th M
I

1. Sinh cây kiểm thử và tìm tập bao phủ chuyển trạng thái
Vm th p bao ph chuyn tr
bày ti mc này ta có tp bao ph chuyn trng thái P.
2. Tìm chuỗi kiểm chứng trạng thái
Áp dng m tìm chui kim chng. Gi s
chui kim chc là x.
3. Sinh ca kiểm thử
Vi mi phn t ca tp chuyn trng thái hay vi mng dn con trên cây kim th kt hp
vi vic kim chng tri vi trng trng thái cui cùng cng dn con s sinh ra
mt ca kim th.
Ngoài ra, cn phi thit k thêm mt ca kim th  kim th xem tru ca M
I
có mô
phng tru ca M
S
 kim th tru ca M
I
có mô phng M

S
hay
không ta dùng chui kim ch kim th. Vì vu vào ca ca kim th này là chui kim
chng, kt qu i là output sinh ra t FSM M
S
.
D. 5.3. Ví dụ
Cho FSM M
S
c biu din b th sau:





Hình 5.5: Đồ thị biểu diễn FSM M
S


Và FSM M
I1
là bt ca 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
 kim th xem M

I1
có mô phng M
S

hay không
1. Tìm chuỗi kiểm chứng
Áp dng m
trình bày   tìm chui kim
chng trng thái
Mô hình máy hu hn trng thái M
S
có chui kim chng trng thái là 11 (áp d
2. Xây dựng cây kiểm thử
Xây dng cây kim th cho mô hình máy hu hn trng 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 vt FSM M
I1

, ta có kt qu kim 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

Nhn xét:
Theo kt qu kim th trên thì mi Actual result u giExpected Output ti ca kim th
g ng nên FSM M
I1
mô phng FSM M
S
.
VI. C6.  
Kim th phn mm, mt ni dung nghiên cc trin khai t rt sm và không phi là mi m i
vi th gi cp thit cho vic nâng cao chng phn mm.
Trong lu, tác gi ng quan v mô hình máy hu hn tr
cu v nh chui kim chng trnh Unique Input  Output
sequence, Distingguishing sequence, Characterizing sequence. Lu 
kim th da trên mô hình máy hu hn trng thái và dùng khái nim mô ph
 n ca h thng so vc t.
Luu v  bao ph ca mô hình máy hu hn trng thái, và t 
pháp sinh ca kim th  kim th xem h tht có mô phng bc t phn mm da trên mô
hình máy hu hn trng thái hay không.
ng phát trin tip theo ca lui tim th sao cho s ca
kim th là ít nh bao ph là ln nht có thng thi, tác gi s xây dng m
trình sinh ca kim th t ng dc ci tin.






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.     
SequeComputer 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

×