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

Nghiên cứu xây dựng công cụ kiểm thử đột biến các câu lệnh SQL

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 (175.24 KB, 26 trang )

-1-

B GIÁO D C VÀ ĐÀO T O
Đ I H C ĐÀ N NG

TR N VĂN MINH

NGHIÊN C U XÂY D NG
CÔNG C KI M TH
Đ T BI N CÁC CÂU L NH SQL
Chuyên ngành: KHOA H C MÁY TÍNH
Mã s : 60.48.01

TÓM T T LU N VĂN TH C SĨ K THU T

Đà N ng - Năm 2011


-2Cơng trình đư c hồn thành t i
Đ I H C ĐÀ N NG

Ngư i hư ng d n khoa h c: TS. NGUY N THANH BÌNH

Ph n bi n 1: PGS.TS. LÊ VĂN SƠN

Ph n bi n 2: TS. NGUY N M U HÂN

Lu n văn ñư c b o v trư c H i ñ ng ch m Lu n
văn t t nghi p th c sĩ k thu t h p t i Đ i h c Đà N ng
vào ngày 16 tháng 10 năm 2011


Có th tìm hi u lu n văn t i:
- Trung tâm Thông tin - H c li u, Đ i h c Đà N ng
- Trung tâm H c li u, Đ i h c Đà N ng.


-3-

M
1.

Đ U

Lý do ch n ñ tài
Ki m th là m t trong nh ng ho t ñ ng quan tr ng trong

ti n trình phát tri n ph n m m. Nó góp ph n vào vi c đánh giá
ch t lư ng s n ph m ph n m m. Hi n nay, h u h t các s n ph m
ph n m m ng d ng đ u có s d ng ngơn ng truy v n d li u đ
lưu tr qu n lý thơng tin, do đó vi c qu n lý và ki m th chúng
trong quá trình phát tri n ph n m m t n nhi u th i gian.Vì v y,
nhu c u có đư c m t h th ng ng d ng ki m th ñ t bi n ñ
ñánh giá ch t lư ng các b d li u ki m th khi th c hi n ki m
th các câu l nh truy v n SQL th c s là c n thi t. M t khác, hi n
nay v n ñ b n quy n ph n m m ñang là v n ñ nan gi i ñ i v i
các t ch c, ngư i dùng và nhu c u s d ng mã ngu n m ñang
phát tri n r ng kh p nh m giúp gi m chi phí.
Xu t phát t nh ng phân tích và nh n xét trên, tơi ch n đ
tài “Nghiên c u xây d ng cơng c ki m th ñ t bi n các câu
l nh SQL” dư i s hư ng d n c a TS. Nguy n Thanh Bình, s
giúp gi m th i gian và chi phí trong vi c giám sát và ki m th s n

ph m ph n m m.
2.

M c đích ý nghĩa
M c đích c a đ tài là nghiên c u và ng d ng k thu t

ki m th ñ t bi n vào vi c ñánh giá ch t lư ng b d li u ki m
th khi ki m th các câu l nh truy v n SQL, t đó phát hi n các


-4l i cịn t n t i đ các l p trình viên hồn thi n hơn s n ph m c a
mình.
Ý nghĩa khoa h c: Hi u và ñánh giá các k thu t ki m th
ñ t bi n và phương pháp ki m th ñ t bi n câu l nh truy v n
SQL. K t qu có th làm tài li u tham kh o cho các ki m th viên
ho c các ñơn v phát tri n ph n m m.
Ý nghĩa th c ti n: Cung c p m t công c

ng d ng k thu t

ki m th ñ t bi n vào vi c ki m th cho các câu l nh truy v n
SQL.
3.

Nhi m v m c tiêu
Đ tài t p trung nghiên c u v k thu t ki m th ñ t bi n và

c u trúc ñ c ñi m c a ngôn ng truy v n d li u SQL ñ nh n bi t
các tốn t đ t bi n, t đó đ xu t gi i pháp xây d ng công c h
tr ki m th ñ t bi n câu l nh SQL và tri n khai ki m th th c

nghi m trên các câu l nh truy v n SQL làm cơ s đ phân tích và
đánh giá k t qu .
4.

Đ i tư ng và ph m vi nghiên c u
Đ tài t p trung nghiên c u trên các ñ i tư ng như sau:
-

K thu t ki m th đ t bi n.

-

Ngơn ng truy v n có c u trúc.

-

Mã ngu n SQL Parser (GuduSoft.gsqlparser.dll).

-

K thu t l p trình ngơn ng VS.Net.

Đ tài thu c ph m vi nghiên c u và ng d ng.
5.

Phương pháp nghiên c u


-5-


Thu th p và phân tích các tài li u và thơng tin liên
quan đ n đ tài.

-

Phân tích thi t k h th ng chương trình ng d ng.

6.

Th o lu n, l a ch n hư ng gi i quy t v n ñ .
Tri n khai xây d ng chương trình ng d ng.

- Ki m tra, th nghi m, nh n xét và ñánh giá k t qu .
D ki n k t qu ñ t ñư c
-

V m t lý thuy t: N m ñư c ki n th c v k thu t
ki m th đ t bi n và các tốn t đ t bi n câu l nh truy
v n SQL.

-

V m t th c ti n: Xây d ng và ñánh giá công c ki m
th áp d ng k thu t ki m th ñ t bi n cho các câu

7.

l nh truy v n SQL.
B c c lu n văn
Lu n văn ñư c chia thành 3 chương như sau:

Chương 1: Ki m th ñ t bi n.
Chương 2: Ki m th ñ t bi n các câu l nh truy v n SQL.
Chương 3: Xây d ng công c h tr ki m th ñ t bi n các

câu l nh truy v n SQL.


-6-

CHƯƠNG 1. KI M TH
1.1.

Đ T BI N

GI I THI U
Trong chương này, chúng tơi trình bày chi ti t lý thuy t v

ki m th ñ t bi n, phân tích các ưu và như c đi m c a phương
pháp. Ti p theo, chúng tơi trình bày các k thu t ki m th ñ t bi n
khác nhau cũng như các ng d ng ph bi n c a ki m th ñ t bi n
trong th c t .
1.2.

LÝ THUY T KI M TH

Đ T BI N

Trư c khi trình bày lý thuy t ki m th ñ t bi n, chúng ta
b t ñ u b i m t ý tư ng ñơn gi n sau: ñ ư c lư ng s lư ng cá
trong m t cái h , m t cách ñ th c hi n vi c đó là đánh d u m t

s cá và th vào h (gi s , 80 con cá), sau đó đánh b t m t s cá
và ñ m s cá b ñánh d u. N u chúng ta b t ñư c 50 con cá và 5
trong s đó b đánh d u, như v y 1/10 s cá trong h b ñánh d u,
khi đó tồn b s cá trong h có th th ñư c ư c lư ng là 800
con. N u chúng ta b t ñư c t t c các cá b đánh d u, chúng ta có
th cho r ng tồn b cá trong h đã b đánh b t.
K thu t ki m th ñ t bi n ñư c xây d ng d a trên ý tư ng
này. Chúng ta ñưa vào mã ngu n m t s l i “b đánh d u”, sau đó
tìm cách xác ñ nh chúng. N u chúng ta xác ñ nh ñư c t t c các
l i này, “lư i” c a chúng ta có th cũng đã b t ñư c nhi u các lo i
“cá” khác, đó chính là các l i chưa bi t.


-71.2.1.

Khái ni m ki m th ñ t bi n
Ki m th ñ t bi n ñư c thi t k nh m t o ra d li u ki m

th có hi u qu , nghĩa là phát hi n các l i c a chương trình. Trong
khi th c hi n ki m th ñ t bi n, chúng ta t o ra các phiên b n l i
c a chương trình g c b ng cách chèn l i vào mã ngu n c a nó.
Sau đó, th c thi ki m th v i l n lư t các d li u ki m th cho
t ng phiên b n l i. So sánh k t qu ñ u ra c a t ng phiên b n l i
v i chương trình g c, t đó ñánh giá ñư c kh năng phát hi n l i
c a các d li u ki m th [3].
Các phiên b n l i ñư c t o ra t chương trình g c g i là các
đ t bi n (mutants). Ki m th ñ t bi n là m t k thu t ki m th
h p tr ng, hay còn g i k thu t ki m th c u trúc.
1.2.2.


Hai gi thuy t cơ b n
Ki m th ñ t bi n ñư c xây d ng d a trên hai gi thuy t cơ

b n. Gi thuy t “l p trình viên gi i” (competent programmer
hypothesis) và gi thuy t “hi u

ng liên k t” (coupling effect

hypothesis) [3]. Gi thuy t l p trình viên gi i cho r ng thông
thư ng các l p trình viên đ u r t gi i và h s khơng bao gi vi t
ra các chương trình m t cách tuỳ ti n, c u th .
Gi thuy t hi u ng liên k t cho r ng các l i ph c t p ñư c
liên k t t các l i ñơn gi n, như v y b d li u ki m th ñ kh
năng phát hi n t t c các l i đơn gi n thì cũng có kh năng phát
hi n các l i ph c t p v i t l cao.


-81.2.3.

M t s khái ni m cơ b n
Toán t ñ t bi n
Toán t ñ t bi n (mutation operator) hay cịn đư c g i lu t

đ t bi n (mutation rule) là m t lu t ñư c áp d ng vào chương
trình g c đ t o ra các phiên b n ñ t bi n. Nó có th là vi c thay
th m t tốn t này b ng m t toán t khác; thay ñ i toán h ng c a
bi u th c; xố tồn b các bi u th c; thay đ i câu l nh… hay có
th đư c t o ra b ng cách thay ñ i nh v cú pháp c a chương
trình theo hư ng mà các l p trình viên thư ng ph m ph i.
1.2.4.


Đ t bi n b di t và ñ t bi n s ng
Khi ti n hành th c thi ki m th l n lư t chương trình g c P

và ñ t bi n P’ c a P v i m t d li u th T, s có hai k ch b n khác
nhau có th x y ra:
-

M t là, ho c l i ñư c chèn vào trong chương trình đ t
bi n P’ đư c nh n bi t, nghĩa là chương trình P và đ t
bi n P’ cho ra các k t qu khác nhau. Trong trư ng h p
này, ñ t bi n P’ ñư c g i là b di t (killed) b i d li u th
T. Khi đó, T đư c g i là d li u th thích h p vì nó có kh
năng phát hi n đư c s khác nhau gi a chương trình g c
P và ñ t bi n P’.

-

Hai là, chương trình g c P và ñ t bi n P’ cho ra k t qu
hoàn toàn gi ng nhau. Trong trư ng h p này, có th có
hai kh năng x y ra. Kh năng th nh t là d li u th T
khơng đ t t (hay đư c g i là d li u th khơng thích
h p), chúng ta s ph i ti n hành th c hi n ki m th l i v i
các d li u th t t hơn. Kh năng th hai là chương trình


-9P và ñ t bi n P’ là nh ng chương trình tương t nhau,
m i d li u th ñ u không th phân bi t s khác nhau
gi a chúng. Trong c hai trư ng h p này, ñ t bi n P’
ñư c cho là còn s ng (alive).

1.2.5.

Đ t bi n tương ñương
Các ñ t bi n tương ñương (equivalent mutant) là các ñ t

bi n cho ra k t qu gi ng v i chương trình g c v i m i d li u th
ho c cú pháp c a ñ t bi n và chương trình g c khác nhau nhưng
ho t đ ng tương t nhau. M t cách hình th c, chúng ta nói: đ t
bi n tương đương là đ t bi n còn s ng mà m i d li u th T ⊂ D
(D, t p các d li u th cho P) ñ u xác ñ nh ñư c P và P’ tương
ñương nhau (P ≡ P’).
1.2.6.

T l ñ t bi n
T l ñ t bi n (Mutation Score), ñư c ký hi u MS, c a

chương trình P và d li u th T là t l các đ t bi n khơng tương
đương (so v i chương trình g c) b di t b i d li u th T, đư c
mơ t b i công th c sau:

MS ( P, T ) =

D
N −E

trong ñó,
-

D: s ñ t bi n ñã b di t,


-

N: t ng s các ñ t bi n,

-

E: s ñ t bi n tương ñương.

Như v y, 0 ≤ MS ≤ 1 hay 0 ≤ MS% ≤ 100.


-101.2.7.

Chi phí c a ki m th đ t bi n
Chi phí trong ki m th đ t bi n t p trung ba bư c t n kém

nh t là s n sinh ñ t bi n, biên d ch các ñ t bi n và ki m th t ng
phiên b n ñ t bi n v i các d li u ki m th . Như v y, s lư ng
l n các ñ t bi n s làm cho chi phí ki m th đ t bi n r t l n.
1.3.

TI N TRÌNH KI M TH

Đ T BI N

G i chương trình g c là P, các ñ t bi n là P’ và t p d li u
ki m th là T. Chúng ta có th gi i thích ti n trình th c hi n ki m
th ñ t bi n như sau:
Bư c 1: T o ñ t bi n P’ t chương trình g c P.
Bư c 2: Sinh các d li u ki m th T.

Bư c 3: Th c hi n chương trình g c P v i m i d li u ki m
th . Ki m tra k t qu nh n ñư c:
-

N u ñ u ra khơng đúng, ph i ch nh s a chương
trình g c P và ki m th l i.

-

N u ñ u ra ñúng, th c hi n bư c ti p theo.

Bư c 4: Th c hi n t ng đ t bi n cịn s ng v i m i d li u
ki m th . So sánh k t qu th c hi n ñ t bi n v i k t qu th c hi n
chương trình g c đ i v i m i d li u th .
-

N u t t c các ñ t bi n đ u b di t. Hồn thành
ki m th .

-

N u cịn đ t bi n chưa b di t, chuy n sang bư c
ti p theo.


-11Bư c 5: Phân tích và xác đ nh các ñ t bi n tương ñương.
N u còn các ñ t bi n khơng tương đương nhưng chưa b
di t thì các d li u ki m th khơng đ kh năng di t ñ t bi n. Ph i
hi u ch nh t p d li u ki m th . Quay l i bư c 1.
1.4.


H N CH C A KI M TH

Đ T BI N

Lý thuy t và k t qu th c nghi m ñã cho th y r ng, ki m
th ñ t bi n là phương pháp hi u qu ñ ñánh giá ch t lư ng c a
các b ki m th . Tuy nhiên, có m t s h n ch khi th c hi n ki m
th ñ t bi n như sau:
-

Vi c nh n d ng các ñ t bi n tương ñương là r t quan
tr ng nhưng r t khó khăn.

-

M t s các đ t bi n khơng tương đương nhưng v n cịn
t n t i trong q trình ki m th .

-

Chi phí tính tốn trong ki m th đ t bi n r t cao, do s
lư ng tốn t đ t bi n thư ng r t l n.

-

Ki m th ñ t bi n cũng t n nhi u nhân công trong quá
trình ki m th .

1.5.


M TS
TH

1.5.1.

K

THU T NÂNG CAO HI U QU

KI M

Đ T BI N

Gi m chi phí tính tốn trong phân tích đ t bi n
Các k thu t ñư c nghiên c u theo ba chi n lư c: làm thơng

minh hơn, làm ít hơn và nhanh hơn. Chi n lư c làm thông minh
hơn, g m các k thu t: ñ t bi n y u (weak mutation), ki n trúc
phân tán (distributed architectures). Chi n lư c làm ít hơn hư ng
đ n l a ch n nh ng ñ t bi n sao cho hi u qu nh t nhưng v n


-12ñ m b o ch t lư ng ki m th , g m các k thu t: ñ t bi n l a ch n
(selective mutation), l y m u ñ t bi n (mutation sampling). Chi n
lư c làm nhanh hơn, hư ng vào t đ ng hố m t s cơng đo n và
gi m t i
k

các cơng đo n chi m nhi u chi phí tính tốn, g m các


thu t: th c thi đ t bi n d a vào gi n ñ

(schema-based),

phương pháp tách r i biên d ch (separate compilation approach).
Ngồi ra, cịn nhi u k thu t khác như k thu t gom c m ñ t bi n
(clustering of mutants).
1.5.2.

Gi m b t các cơng đo n th cơng
Vi c phát tri n th công các d li u ki m th ñ t bi n m t

cách ñ y ñ yêu c u r t nhi u n l c. Hơn n a vi c quy t ñ nh
phiên b n ñ t bi n nào tương ñương v i chương trình g c là r t
nhàm chán và ho t ñ ng này thư ng d n ñ n nhi u sai sót. Vi c t
đ ng hóa các ho t ñ ng này s nâng cao hi u qu và ch t lư ng
c a ki m th ñ t bi n.
1.5.3.

C i ti n ti n trình ki m th đ t bi n
Ti n trình ki m th ñ t bi n truy n th ng cịn t n t i m t s

v n đ , như th c thi l p l i nh ng ca ki m th , th c thi chương
trình g c, …
Ti n trình c i ti n đư c ñ xu t nh m kh c ph c các h n
ch nêu trên. Trư c h t, t ñ ng t o ra m t t p các d li u th .
Các d li u th đó s ñư c th c thi l n lư t v i chương trình g c
và sau đó v i các chương trình đ t bi n. Ki m th viên s ñ nh
nghĩa m t giá tr ngư ng, ñó là giá tr nh nh t có th ch p nh n

ñư c c a t l ñ t bi n. N u ngư ng đó khơng đ t ñư c, khi các
d li u th không di t ñư c ñ t bi n nào (gi i h n không hi u


-13qu ), s b lo i tr . Ti n trình này s đư c l p l i, v i m i m t th i
ñi m s n sinh các d li u th ch nh m ñ n các đ t bi n cịn s ng,
cho đ n khi ngư ng t l ñ t bi n ñ t ñư c.
1.6.

NG D NG C A KI M TH

1.6.1.

Đ T BI N

Đ t bi n mã ngu n
Đ t bi n mã ngu n chương trình đã đư c áp d ng cho c

hai m c ki m th đơn v và ki m th tích h p. Đ i v i ki m th
m c ñơn v , ñ t bi n ñư c t o ra ñ mô t l i trong m t ñơn v
ph n m m mà l p trình viên th c hi n; trong khi đó đ i v i m c
ki m th tích h p, đ t bi n ñư c t o ra ñ mô t l i tích h p b i
l i k t n i ho c tương tác gi a các ñơn v ph n m m. Đ t bi n này
ñư c áp d ng trên các ngơn ng l p trình như ngôn ng Fortran,
Ada, C, Java, C#, AspectJ.
1.6.2.

Đ t bi n ñ c t
Ki m th ñ t bi n cũng ñã ñư c ñ xu t áp d ng cho các


ñ c t và thi t k ph n m m. Ki m th ñ t bi n áp d ng

m c

ñ c t và thi t k thư ng ñư c g i là “ñ t bi n ñ c t ". Trong ñ t
bi n ñ c t , l i thư ng ñư c phát sinh trong máy tr ng thái ho c
các bi u th c lơgic đ t o ra các đ t bi n. M t ñ t bi n b di t n u
ñi u ki n ñ u ra là sai l ch. Ki m th ñ t bi n thu c lo i này g m
đ c t hình th c, môi trư ng th c thi, d ch v Web, h th ng
m ng.
1.7.

T NG K T CHƯƠNG 1


-14-

Đ T BI N CÁC CÂU L NH
TRUY V N SQL

CHƯƠNG 2. KI M TH

2.1.

GI I THI U
Trong chương này, trư c h t chúng tơi trình bày sơ lư c v

cơ s d li u và ngôn ng truy v n có c u trúc. M t s cơng trình
nghiên c u v ki m th cơ s d li u cũng ñư c ñ c p. Đ c bi t,
chúng tơi phân tích m t s l i ñi n hình trong các câu l nh truy

v n cơ s d li u. Trên cơ s đó, chúng tơi trình bày ng d ng
ki m th đ t bi n cho các câu l nh truy v n.
2.2.

CƠ S

D

LI U QUAN H

VÀ NGƠN NG

TRUY

V N CĨ C U TRÚC
2.2.1.

Cơ s d li u quan h
Cơ s d li u là m t t p h p có c u trúc nh ng d li u có

liên quan v i nhau. Cơ s d li u ñư c s d ng ph bi n hi n nay
là cơ s d li u quan h . Cơ s d li u quan h là các cơ s d
li u d ng b ng có th d dàng đư c t ch c l i và đư c truy v n.
2.2.2.

Ngơn ng truy v n có c u trúc
Ngơn ng truy v n có c u trúc (SQL) là ngơn ng thư ng

ñư c s d ng ñ ñ nh nghĩa lư c ñ cơ s d li u và th c hi n
vi c c p nh t, xóa, ch nh s a và truy c p d li u lưu tr trong cơ

s d li u.
Ngôn ng truy v n có c u trúc g m các nhóm l nh:


-15−

Nhóm l nh đ nh nghĩa d

li u (Data Definition

Language - DDL).


Nhóm l nh thao tác d

li u (Data Manipulation

Language - DML).
Ngồi ra, ngơn ng truy v n có c u trúc cịn có các l nh
dùng đ qu n lý quy n, các l nh ñ nh nghĩa khung nhìn như
CREATE VIEW, DROP VIEW; các l nh đi u khi n giao tác như
COMMIT, ROLLBACK…
L nh truy v n cơ b n SQL
Câu l nh truy v n cơ b n đư c mơ t b i các m nh đ
SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER
BY.
Các phép tốn trong SQL
Trong SQL, có hai phép tốn cơ b n: phép tốn lơ-gíc và
phép tốn quan h .
Các hàm k t h p

Các hàm k t h p như AVG, SUM, MAX, MIN, COUNT,…
2.3.

KI M TH

CƠ S

D

LI U

Phương pháp t o ra các ca ki m th b ng cách xem xét các
lư c ñ cơ s d li u, các thu c tính khác ho c các ràng bu c
quan h . Câu l nh truy v n SQL ñư c chuy n thành d ng ngôn
ng l p trình th t c, sau đó, k thu t ki m th thơng thư ng đư c
áp d ng đ ki m th và ñánh giá câu l nh SQL.


-162.4.

L I TRONG TRUY V N CƠ S

D

LI U

Các l i trong truy v n SQL có th chia làm hai lo i: l i cú
pháp và l i ng nghĩa. Các l i cú pháp nghĩa là chu i ký t nh p
vào không ph i là truy v n SQL h p l . Các l i ng nghĩa là câu
truy v n SQL h p l .

2.4.1.

M nh ñ SELECT

2.4.2.

M nh ñ FROM

2.4.3.

M nh ñ WHERE

2.4.4.

Các hàm k t h p

2.4.5.

M nh ñ GROUP BY

2.4.6.

M nh ñ ORDER BY

2.4.7.

UNION/UNION ALL

2.4.8.


Truy v n vi ph m các m u chu n

2.4.9.

B trùng l p

2.5.

KI M TH

Đ T BI N CÁC CÂU L NH TRUY V N

ng d ng ki m th ñ t bi n cho các câu truy v n cơ s d
li u g m các bư c cơ b n:


Xác ñ nh các l i thư ng ph m ph i c a l p trình
viên khi vi t c a câu truy v n.



Xây d ng t p tốn t đ t bi n áp d ng cho câu truy
v n SQL.



Xây d ng công c h tr th c hi n ti n trình ki m
th đ t bi n các câu truy v n.



-17−

Th nghi m và ñánh giá k thu t ki m th ñ t bi n
trên các câu l nh truy v n trong các ng d ng cơ s
d li u c th .

2.6.

TOÁN T

Đ T BI N CHO CÁC CÂU L NH TRUY

V N
Các tốn t đ t bi n đư c chia làm b n nhóm:


Tốn t

đ t bi n các m nh đ chính (SC - SQL

Clause mutation operators);


Tốn t đ t bi n cho các tốn t xu t hi n trong các
đi u ki n và bi u th c (OR - Operator Replacement
mutation operators);



Tốn t đ t bi n liên quan đ n vi c x lý giá tr

NULL (NL – NULL mutation operators);



Tốn t đ t bi n thay th các đ nh danh: c t tham
chi u, h ng s

và tham s

(IR – Identifier

Replacement mutation operators).
M i nhóm đ t bi n ñư c ký hi u b i các tên ng n g n ch
g m hai ký hi u và m i tốn t đ t bi n trong các nhóm đư c ký
hi u b i các tên ng n g n g m ba ký hi u.
2.6.1.

Toán t đ t bi n các m nh đ chính (SC)
M c đích c a các tốn t đ t bi n các m nh đ chính, đư c

ký hi u SC, là đ t bi n nh ng tính năng khác nhau trong ngôn ng
SQL tương t như các ngơn ng khác (m nh đ , hàm k t h p, các
câu truy v n con…). Nh ng toán t SC góp ph n phát hi n các l i
như đi u ki n k t n i khơng đúng, s d ng khơng đúng t khóa


-18DISTINCT, tính tốn các hàm k t h p khơng ñúng ho c không
ñúng th t trong t p k t qu .
2.6.2.


Tốn t đ t bi n cho các ñi u ki n và bi u th c (OR)
Các tốn t đ t bi n các đi u ki n và các bi u th c ñư c

thi t k nh m phát hi n các l i lơ-gíc trong các bi u th c trong các
m nh ñ WHERE và HAVING.
2.6.3.

Tốn t đ t bi n giá tr NULL (NL)
Trong ngôn ng truy v n SQL, mi n giá tr c a m i thu c

tính đư c m r ng thêm ký hi u ñ c bi t NULL ñ bi u th cho
m i giá tr d li u đư c hi u là khơng đư c đ nh nghĩa, ho c
khơng thích h p, ho c khơng xác đ nh.
Vi c x lý các giá tr NULL khơng đúng có th d n đ n k t
qu khơng lư ng trư c đư c. Do ñó, các ñ t bi n có liên quan ñ n
các giá tr NULL c n ph i ñư c xem xét ñ phát hi n các lo i l i
này.
2.6.4.

Tốn t đ t bi n các đ nh danh (IR)
Các tốn t đ t bi n IR thay th các ñ nh danh c t, h ng và

tham chi u trong các tham s c a truy v n. Vì v y, các tốn t đ t
bi n này có kh năng phát hi n các l i như s d ng khơng đúng
các trư ng.
2.7.

T NG K T CHƯƠNG 2



-19CHƯƠNG 3. XÂY D NG CÔNG C

KI M TH
BI N CÁC CÂU L NH SQL

3.1.

Đ T

GI I THI U
Công c dùng đ phân tích c u trúc l nh SQL, sinh các ñ t

bi n, th c thi ñ t bi n, nh m giúp ñánh giá ch t lư ng c a câu
l nh và các b d li u ki m th .
Công c s d ng b mã ngu n gsqlparser for .Net đ phân
tích c u trúc l nh SQL và s d ng ngôn ng C# th c thi trong môi
trư ng .NetFrameWork.
Công c t o ra các ñ t bi n b ng cách chèn l i vào câu l nh
g c, th c thi l n lư t câu l nh g c và câu l nh ñ t bi n vào trên
các b d li u th , t đó đánh giá ch t lư ng c a câu l nh SQL và
ch t lư ng c a các b d li u th .
3.2.

GI I PHÁP

Trên cơ s phân tích các ñ t bi n câu l nh truy v n cơ s d
li u SQL chương 2, chúng tơi đ xu t thu t tốn xây d ng cơng
c ki m th ñ t bi n cho câu l nh SQL như sau.
Bư c 1. Nh n câu l nh SQL vào, ki m tra, phân tích cú
pháp câu l nh và lưu dư i d ng cây cú pháp XML.

Bư c 2. Th c hi n ñ t bi n trên câu l nh SQL t o ra t p h p
các ñ t bi n c a câu l nh SQL g c.
Bư c 3. Th c hi n vòng l p g m các bư c sau:
a.

Th c thi câu l nh SQL ñ t bi n.


-20b.
c.

N u k t qu khác nhau thì đ t bi n b di t, n u
ngư c l i s ñánh d u câu l nh ñ t bi n và xem
xét tính tương đương câu câu l nh ñ t bi n v i
câu l nh g c.

d.

3.3.

So sánh k t qu th c thi câu l nh ñ t bi n và k t
qu th c thi câu l nh g c.

Bư c 4. K t thúc quá trình, xu t ra báo cáo sơ b
g m các thơng tin v s lư ng đ t bi n sinh ra, s
lư ng ñ t bi n b di t và t l đ t bi n.

CƠNG NGH
Cơng ngh s d ng:
-


H

đi u

hành:

Microsoft

Windows

Server,

Windows XP, Windows 7, …
-

Cơng ngh .Net FrameWork 3.5

3.4.

H qu n tr cơ s d li u: MS SQL Server 2008

Mã ngu n SQL Parser (gudusoft.gsqlparser.dll)

KI N TRÚC CÔNG C
C t lõi c a h th ng này là b s n sinh ñ t bi n, nghĩa là t o

ra các ñ t bi n c a câu l nh truy v n cơ s d li u. Đ sinh các ñ t
bi n, b phân tích cú pháp phân tích câu l nh truy v n g c và t o
ra cây cú pháp tương ng. T cây cú pháp, b sinh ñ t bi n th c

hi n các tốn t đ t bi n ñ t o ra các ñ t bi n c a câu l nh truy
v n g c. Sau đó, m i đ t bi n và câu l nh truy v n g c s ñư c
th c thi trên b d li u th đ tính t l ñ t bi n.


-213.5.

B

PHÂN TÍCH CÚ PHÁP

B phân tích chuy n câu l nh truy v n SQL g c sang ñ nh
d ng tài li u XML b ng cách thay th các t khóa c a câu l nh
b ng các ph n t XML và t ch c l i tài li u XML theo th t phù
h p v i c u trúc c a câu truy v n SQL. Các t khóa đư c bi u
di n b i các ph n t và các tên c t, tên b ng, tham s và các h ng
s ñư c bi u di n b i thu c tính text c a các ph n t XML.
Câu l nh SQL sau khi đư c b phân tích phân tích s t o ra
cây cú pháp truy v n

ng v i các ki u m nh ñ

như sau:

TSelectSqlStatement, TDeleteSqlStatement, TUpdateStatement,…
tuỳ theo ñ u vào c a k ch b n SQL là m nh Select, Delete, Update
hay Insert,...
3.6.

B


SINH Đ T BI N

B sinh ñ t bi n nh n ñ u vào là lư c ñ cơ s d li u và
câu l nh truy v n SQL, t p các nhóm tốn t đ t bi n đ phân tích
câu l nh truy v n và chuy n các tài li u XML c a câu l nh truy
v n vào mơ hình DOM. B sinh đ t bi n s duy t qua các ph n t
trong mô hình DOM và khi b t g p m t ph n t ho c thu c tính
text c a m t nút thì th c hi n các bư c sau:
-

Xác ñ nh ph m vi

-

Ch n c t

-

Áp d ng tốn t đ t bi n

Trong khi b sinh ñ t bi n s n sinh ra m i đ t bi n thì nó s
g i th c thi b ghi ñ t bi n ñ lưu l i đ t bi n đó. Các đ t bi n
ñư c lưu trong m t t p tin tài li u XML.


-223.7.

B


TH C THI Đ T BI N

B s n sinh và th c thi nh ng ñ t bi n hồn tồn t đ ng
trong m t cơng c đ t bi n SQL. Thu th p thông tin v lư c ñ cơ
s d li u, t i vào các cơ s d li u ki m th , ñi u khi n s thay
ñ i d li u và cài ñ t tham s ghi vào tài li u XML. Cú pháp câu
truy v n ñư c phân tích ghi vào tài li u XML và m i ph n t là
m t ti n trình. M i ti n trình, c truy v n và lư c ñ cơ s d li u
ñư c xem xét và ñ t bi n ñư c s n sinh b ng cách áp d ng các
lu t đã trình bày
3.8.

TH

trên. Cu i cùng, các ñ t bi n ñư c th c thi.

NGHI M VÀ ĐÁNH GIÁ K T QU

Trong ph n th nghi m này, chúng tôi l a ch n môi trư ng
ki m th và b d li u th như sau:
H qu n tr cơ s d li u: MS Server SQL 2008
B d li u th : H cơ s d li u khách hàng s d ng các
d ch v vi n thông, g m các th c th như sau:
Danh b khách hàng
Danh b thanh toán
Danh b thuê bao
Đ i tư ng thuê bao
D ch v vi n thơng
Lư c đ cơ s d li u



-23-

Hình 3.6. Lư c đ cơ s d li u
Tốn t đ t bi n
+ Tốn t đ t bi n các m nh đ chính SC g m: tốn t
SEL, JOI, ARG,
+ Tốn t đ t bi n cho các ñi u ki n và bi u th c OR g m
các toán t ROR, LCR, AOR, UOI, ABS, LKE,, BTW,
+ Tốn t đ t bi n các giá tr NULL g m các toán t NLI,
NLO, NLF,
+ Toán t ñ t bi n ñ nh danh IRC.
3.9.

T NG K T CHƯƠNG 3


-24-

K T LU N
Ki m th ph n m m là m t trong nh ng khâu quan tr ng
c a quy trình xây d ng ph n m m nh m ki m tra xem ph n m m
làm ra có nh ng l i gì c n kh c ph c. Ki m th không th ch ng
minh ñư c ph n m m là h t l i mà nó ch giúp cho ngư i vi t mã
tìm ra và có bi n pháp kh c ph c càng nhi u l i càng t t, góp ph n
ñánh giá ch t lư ng s n ph m ph n m m.
Ki m th ñ t bi n ñư c xem như là m t trong nh ng k
thu t ki m th h p d n ñ y h a h n, gi i quy t các v n đ t t hay
khơng t t c a các b d li u ki m th ñ t yêu c u hi u năng cao
và nh ng cơng c h tr đ t o ra nh ng ñ t bi n và th c thi

chúng. Tuy nhiên, ki m th đ t bi n cịn khó áp d ng vào trong
th c t . Ki m th viên thư ng th y khó khăn đ áp d ng vào và
thay vào đó là d a vào nh ng ki n th c cũng như kinh nghi m khi
thi t k nh ng ca ki m th .
1. K t qu đ t đư c
Trong khn kh m t lu n văn th c sĩ, sau khi ti n hành tìm
hi u nghiên c u v ki m th ph n m m, k thu t ki m th ñ t
bi n và ki m th ñ t bi n câu l nh truy v n, h c viên ñã ñ t ñư c
m t s k t qu nh t ñ nh như sau:
-

V m t nghiên c u lý thuy t:

N m ñư c cơ b n v k thu t ki m th ñ t bi n, là m t k
thu t nh m ñánh giá ch t lư ng c a các b d li u ki m th . Qua
đó, cho th y có r t nhi u cơng trình đã và đang nghiên c u v


-25ki m th ñ t bi n nh m c i ti n và nâng cao hi u qu c a ki m
th ñ t bi n, cũng như m r ng kh năng ng d ng c a ki m th
đ t bi n. Đi u đó th hi n r ng ki m th ñ t bi n là m t trong
nh ng k thu t ki m th đóng vai trị r t quan tr ng và ñư c ng
d ng r t r ng rãi, t m c mã ngu n ñ n m c ñ c t .
-

V m t ng d ng th c ti n:

D a trên nh ng nghiên c u v k thu t ki m th ñ t bi n,
các gi i pháp c i ti n và nâng cao hi u qu c a ki m th ñ t bi n
đ ng th i phân tích các tốn t ñ t bi n trên câu l nh SQL, h c

viên ñã ñ ra gi i pháp xây d ng cơng c h tr ki m th đ t bi n
các câu l nh SQL nh m ñánh giá ch t lư ng các b d li u ki m
th .
Cơng c này có th đư c s d ng ñ nghiên c u ki m th
các ng d ng cơ s d li u và cho đánh giá tính ñ y ñ c a nh ng
ca ki m th , so sánh v i các k thu t khác nhau. Đ ng th i k t
qu nghiên c u có th cung c p m t gi i pháp sơ b v vi c ng
d ng ki m th ñ t bi n ñ làm tài li u tham kh o và áp d ng th c
t cho các ñơn v phát tri n ph n m m ñang c n nâng cao ch t
lư ng ki m th s n ph n ph n m m.
2. H n ch
Do th i gian tìm hi u nghiên c u có h n nên đ tài ch m i
t p trung vào vi c phân tích các tốn t đ t bi n cơ s chung c a
ngôn ng truy v n SQL chưa đi sâu vào các tốn t riêng bi t c a
t ng h th ng cơ s d li u hi n nay như Oralce, MS Server SQL,
MySQL, …


×