Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
175,24 KB
Nội dung
-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 Đ U Lý ch n ñ tài Ki m th m t nh ng ho t ñ ng quan tr ng 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 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, vi c qu n lý ki m th chúng 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 b d li u ki m th th c hi n ki m th câu l nh truy v n SQL th c s c n thi t M t khác, hi n v n ñ b n quy n ph n m m ñang v n ñ nan gi i ñ i v i t ch c, ngư i dùng 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 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â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 chi phí vi c giám sát ki m th s n ph m ph n m m M c đích ý nghĩa M c đích c a ñ tài nghiên c u 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 ki m th câu l nh truy v n SQL, t phát hi n -4l i t n t i đ l p trình viên hồn thi n s n ph m c a Ý nghĩa khoa h c: Hi u ñánh giá k thu t ki m th ñ t bi n 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 ki m th viên ho 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âu l nh truy v n SQL 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 c u trúc ñ c ñi m c a ngôn ng truy v n d li u SQL đ nh n bi t 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 tri n khai ki m th th c nghi m câu l nh truy v n SQL làm s đ phân tích đánh giá k t qu Đ i tư ng ph m vi nghiên c u Đ tài t p trung nghiên c u ñ i tư ng 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 ng d ng Phương pháp nghiên c u -5- Thu th p phân tích tài li u 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 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 ñá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 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 đánh giá cơng c ki m th áp d ng k thu t ki m th ñ t bi n cho câu l nh truy v n SQL B c c lu n văn Lu n văn ñư c chia thành chương sau: Chương 1: Ki m th ñ t bi n Chương 2: Ki m th ñ t bi n 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âu l nh truy v n SQL -6- CHƯƠNG 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 ưu c ñi m c a phương pháp Ti p theo, chúng tơi trình bày k thu t ki m th ñ t bi n khác ng d ng ph bi n c a ki m th ñ t bi n th c t 1.2 LÝ THUY T KI M TH Đ T BI N Trư c trình bày lý thuy t ki m th ñ t bi n, b t ñ u b i m t ý tư ng ñơn gi n sau: ñ c lư ng s lư ng cá m t h , m t cách ñ th c hi n vi c đánh d u m t s cá th vào h (gi s , 80 cá), sau đánh b t m t s cá ñ m s cá b ñánh d u N u b t ñư c 50 cá s b đánh d u, v y 1/10 s cá h b ñánh d u, tồn b s cá h có th th ñư c c lư ng 800 N u b t ñư c t t c cá b đánh d u, có th cho r ng tồn b cá h b ñánh b t K thu t ki m th ñ t bi n ñư c xây d ng d a ý tư ng 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 xác ñ nh ñư c t t c l i này, “lư i” c a có th b t đư c nhi u lo i “cá” khá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 d li u ki m th có hi u qu , nghĩa phát hi n l i c a chương trình Trong th c hi n ki m th ñ t bi n, t o 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 Sau đó, th c thi ki m th v i l n lư t d li u ki m th cho t ng phiên b n l i So sánh k t qu ñ u c a t ng phiên b n l i v i chương trình g c, t đánh giá đư c kh phát hi n l i c a d li u ki m th [3] Các phiên b n l i đư c t o t chương trình g c g i ñ t bi n (mutants) Ki m th ñ t bi n m t k thu t ki m th h p tr ng, hay g i k thu t ki m th c u trúc 1.2.2 Hai gi thuy t b n Ki m th ñ t bi n ñư c xây d ng d a hai gi thuy t b n Gi thuy t “l p trình viên gi i” (competent programmer hypothesis) 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 l p trình viên ñ u r t gi i h s không bao gi vi t 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 l i ph c t p ñư c liên k t t l i ñơn gi n, v y b d li u ki m th ñ kh phát hi n t t c l i đơn gi n có kh phát hi n l i ph c t p v i t l cao -81.2.3 M t s khái ni m b n Tốn t đ t bi n Tốn t đ t bi n (mutation operator) hay cịn đư c g i lu t đ t bi n (mutation rule) m t lu t ñư c áp d ng vào chương trình g c đ t o phiên b n ñ t bi n Nó có th vi c thay th m t toán t b ng m t toán t khác; thay đ i tốn h ng c a bi u th c; xố tồn b bi u th c; thay đ i câu l nh… hay có th đư c t o b ng cách thay ñ i nh v cú pháp c a chương trình theo hư ng mà l p trình viên thư ng ph m ph i 1.2.4 Đ t bi n b di t ñ 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 đ 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 có th x y ra: - M t là, ho c l i ñư c chèn vào chương trình đ t bi n P’ đư c nh n bi t, nghĩa chương trình P ñ t bi n P’ cho k t qu khác Trong trư ng h p này, ñ t bi n P’ ñư c g i b di t (killed) b i d li u th T Khi đó, T đư c g i d li u th thích h p có kh phát hi n ñư c s khác gi a chương trình g c P đ t bi n P’ - Hai là, chương trình g c P ñ t bi n P’ cho k t qu hoàn toàn gi ng Trong trư ng h p này, có th có hai kh x y Kh th nh t d li u th T khơng đ t t (hay đư c g i d li u th khơng thích h p), s ph i ti n hành th c hi n ki m th l i v i d li u th t t Kh th hai chương trình -9P đ t bi n P’ 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 gi a chúng Trong c hai trư ng h p này, ñ t bi n P’ đư c cho cịn s ng (alive) 1.2.5 Đ t bi n tương ñương Các ñ t bi n tương ñương (equivalent mutant) ñ t bi n cho 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 chương trình g c khác ho t ñ ng tương t M t cách hình th c, nói: đ t bi n tương đương đ t bi n cịn s ng mà m i d li u th T ⊂ D (D, t p d li u th cho P) ñ u xác ñ nh ñư c P P’ tương ñương (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 d li u th T t l đ 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 đó, - D: s ñ t bi n ñã b di t, - N: t ng s ñ t bi n, - E: s ñ t bi n tương ñương Như v y, ≤ MS ≤ hay ≤ MS% ≤ 100 -101.2.7 Chi phí c a ki m th ñ t bi n Chi phí ki m th ñ t bi n t p trung ba bư c t n nh t s n sinh ñ t bi n, biên d ch ñ t bi n ki m th t ng phiên b n ñ t bi n v i d li u ki m th Như v y, s lư ng l n ñ 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 P, ñ t bi n P’ t p d li u ki m th T Chúng ta có th gi i thích ti n trình th c hi n ki m th ñ t bi n sau: Bư c 1: T o ñ t bi n P’ t chương trình g c P Bư c 2: Sinh 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 khơng đúng, ph i ch nh s a chương trình g c P ki m th l i - N u ñ u ñú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 ñ t bi n ñ u b di t Hoà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 -12ñ m b o ch t lư ng ki m th , g m 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 gi m t i k cơng đo n chi m nhi u chi phí tính tốn, g m 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) Ngoài ra, nhi u k thu t khác k thu t gom c m ñ t bi n (clustering of mutants) 1.5.2 Gi m b t cơng đo n th công Vi c phát tri n th công 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 tương đương v i chương trình g c r t nhàm chán ho t ñ ng thư ng d n ñ n nhi u sai sót Vi c t đ ng hóa ho t ñ ng s nâng cao hi u qu 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 t n t i m t s v n ñ , 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 h n ch nêu Trư c h t, t ñ ng t o m t t p 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 sau v i chương trình đ t bi n Ki m th viên s ñ nh nghĩa m t giá tr ngư ng, ñó 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, d li u th khơng di t ñư c ñ t bi n (gi i h n không hi u -13qu ), s b lo i tr Ti n trình s đư c l p l i, v i m i m t th i ñi m s n sinh d li u th ch nh m ñ n ñ t bi n cịn s ng, cho đ n 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 ki m th tích h p Đ i v i ki m th m c ñơn v , ñ t bi n đư c t o đ mơ t l i m t ñơn v ph n m m mà l p trình viên th c hi n; đ i v i m c ki m th tích h p, đ t bi n đư c t o đ mơ t l i tích h p b i l i k t n i ho c tương tác gi a ñơn v ph n m m Đ t bi n ñư c áp d ng ngơn ng l p trì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 ñ xu t áp d ng cho ñ c t thi t k ph n m m Ki m th ñ t bi n áp d ng m c ñ c t thi t k thư ng ñư c g i “ñ t bi n ñ c t " Trong ñ t bi n ñ c t , l i thư ng ñư c phát sinh máy tr ng thái ho c bi u th c lôgic ñ t o ñ t bi n M t ñ t bi n b di t n u ñi u ki n ñ u sai l ch Ki m th ñ t bi n thu c lo i 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 -14- Đ T BI N CÁC CÂU L NH TRUY V N SQL CHƯƠNG 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 s d li u 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 s d li u ñư c ñ c p Đ c bi t, chúng tơi phân tích m t s l i n hình câu l nh truy v n s d li u Trên s đó, chúng tơi trình bày ng d ng ki m th ñ t bi n cho 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 m t t p h p có c u trúc nh ng d li u có liên quan v i Cơ s d li u ñư c s d ng ph bi n hi n s d li u quan h Cơ s d li u quan h s d li u d ng b ng có th d dàng đư c t ch c l i đư 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) ngơn ng thư ng ñư c s d ng ñ ñ nh nghĩa lư c ñ s d li u th c hi n vi c c p nh t, xóa, ch nh s a truy c p d li u lưu tr s d li u Ngơn ng truy v n có c u trúc g m 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ó l nh dùng ñ qu n lý quy n, l nh ñ nh nghĩa khung nhìn CREATE VIEW, DROP VIEW; l nh ñi u n giao tác COMMIT, ROLLBACK… L nh truy v n b n SQL Câu l nh truy v n b n ñư c mô t b i m nh ñ SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY Các phép tốn SQL Trong SQL, có hai phép tốn b n: phép tốn lơ-gíc phép tốn quan h Các hàm k t h p Các hàm k t h p AVG, SUM, MAX, MIN, COUNT,… 2.3 KI M TH CƠ S D LI U Phương pháp t o ca ki m th b ng cách xem xét lư c ñ s d li u, thu c tính khác ho 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 ñánh giá câu l nh SQL -162.4 L I TRONG TRUY V N CƠ S D LI U Các l i truy v n SQL có th chia làm hai lo i: l i cú pháp l i ng nghĩa Các l i cú pháp nghĩa chu i ký t nh p vào không ph i truy v n SQL h p l Các l i ng nghĩa 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 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âu truy v n s d li u g m bư c b n: − Xác ñ nh l i thư ng ph m ph i c a l p trình viên 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âu truy v n -17− Th nghi m ñánh giá k thu t ki m th ñ t bi n câu l nh truy v n ng d ng 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 m nh đ (SC - SQL Clause mutation operators); − Tốn t đ t bi n cho toán t xu t hi n ñi u ki n 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); − Toán t ñ t bi n thay th ñ nh danh: c t tham chi u, h ng s tham s (IR – Identifier Replacement mutation operators) M i nhóm đ t bi n đư c ký hi u b i tên ng n g n ch g m hai ký hi u m i toán t ñ t bi n nhóm ñư c ký hi u b i tên ng n g n g m ba ký hi u 2.6.1 Tốn t đ t bi n m nh đ (SC) M c đích c a tốn t đ t bi n m nh đ chính, đư c ký hi u SC, đ t bi n nh ng tính khác ngôn ng SQL tương t ngơn ng khác (m nh đ , hàm k t h p, câu truy v n con…) Nh ng tốn t SC góp ph n phát hi n l i ñi u ki n k t n i khơng đúng, s d ng khơng t khóa -18DISTINCT, tính tốn hàm k t h p khơng ho c khơng th t t p k t qu 2.6.2 Tốn t đ t bi n cho ñi u ki n bi u th c (OR) Các tốn t đ t bi n ñi u ki n bi u th c ñư c thi t k nh m phát hi n l i lơ-gíc bi u th c m nh ñ WHERE 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 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ý giá tr NULL khơng có th d n đ n k t qu khơng lư ng trư c đư c Do đó, đ t bi n có liên quan đ n giá tr NULL c n ph i ñư c xem xét ñ phát hi n lo i l i 2.6.4 Toán t ñ t bi n ñ nh danh (IR) Các tốn t đ t bi n IR thay th ñ nh danh c t, h ng tham chi u tham s c a truy v n Vì v y, tốn t đ t bi n có kh phát hi n l i s d ng khơng trư ng 2.7 T NG K T CHƯƠNG -19CHƯƠNG 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 ñ 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 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 s d ng ngôn ng C# th c thi môi trư ng NetFrameWork Công c t o ñ 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 câu l nh ñ t bi n vào b d li u th , t đánh giá ch t lư ng c a câu l nh SQL ch t lư ng c a b d li u th 3.2 GI I PHÁP Trên s phân tích đ t bi n câu l nh truy v n 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 sau Bư c Nh n câu l nh SQL vào, ki m tra, phân tích cú pháp câu l nh lưu dư i d ng cú pháp XML Bư c Th c hi n ñ t bi n câu l nh SQL t o t p h p ñ t bi n c a câu l nh SQL g c Bư c Th c hi n vòng l p g m bư c sau: a Th c thi câu l nh SQL ñ t bi n -20b c N u k t qu khác đ t bi n b di t, n u ngư c l i s ñánh d u câu l nh ñ t bi n 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 k t qu th c thi câu l nh g c Bư c K t thúc trình, xu t báo cáo sơ b g m thông tin v s lư ng ñ t bi n sinh ra, s lư ng ñ t bi n b di t 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 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 b s n sinh ñ t bi n, nghĩa t o ñ t bi n c a câu l nh truy v n s d li u Đ sinh đ t bi n, b phân tích cú pháp phân tích câu l nh truy v n g c t o cú pháp tương ng T cú pháp, b sinh ñ t bi n th c hi n tốn t đ t bi n ñ t o ñ t bi n c a câu l nh truy v n g c Sau ñó, m i ñ t bi n câu l nh truy v n g c s ñư c th c thi 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 t khóa c a câu l nh b ng ph n t XML 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 ph n t tên c t, tên b ng, tham s h ng s ñư c bi u di n b i thu c tính text c a ph n t XML Câu l nh SQL sau ñư c b phân tích phân tích s t o cú pháp truy v n ng v i ki u m nh ñ sau: TSelectSqlStatement, TDeleteSqlStatement, TUpdateStatement,… tuỳ theo ñ u vào c a k ch b n SQL 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ư c ñ s d li u câu l nh truy v n SQL, t p nhóm tốn t đ t bi n đ phân tích câu l nh truy v n chuy n 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 t qua ph n t mơ hình DOM b t g p m t ph n t ho c thu c tính text c a m t nút th c hi n bư c sau: - Xác ñ nh ph m vi - Ch n c t - Áp d ng tốn t đ t bi n Trong b sinh ñ t bi n s n sinh m i đ t bi 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 m t t p tin tài li u XML -223.7 B TH C THI Đ T BI N B s n sinh th c thi nh ng đ t bi n hồn tồn t đ ng m t cơng c đ t bi n SQL Thu th p thông tin v lư c ñ s d li u, t i vào s d li u ki m th , ñi u n s thay ñ i d li u 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 m i ph n t m t ti n trình M i ti n trình, c truy v n lư c ñ s d li u ñư c xem xét ñ t bi n ñư c s n sinh b ng cách áp d ng lu t trình bày 3.8 TH Cu i cùng, ñ t bi n ñư c th c thi NGHI M VÀ ĐÁNH GIÁ K T QU Trong ph n th nghi m này, l a ch n môi trư ng ki m th b d li u th sau: H qu n tr s d li u: MS Server SQL 2008 B d li u th : H s d li u khách hàng s d ng d ch v vi n thông, g m th c th sau: Danh b khách hàng Danh b toán Danh b thuê bao Đ i tư ng thuê bao D ch v vi n thơng Lư c đ s d li u -23- Hình 3.6 Lư c đ s d li u Tốn t đ t bi n + Tốn t đ t bi n m nh đ SC g m: tốn t SEL, JOI, ARG, + Tốn t đ t bi n cho ñi u ki n bi u th c OR g m toán t ROR, LCR, AOR, UOI, ABS, LKE,, BTW, + Tốn t đ t bi n giá tr NULL g m toán t NLI, NLO, NLF, + Tốn t đ t bi n đ nh danh IRC 3.9 T NG K T CHƯƠNG -24- K T LU N Ki m th ph n m m m t 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 có nh ng l i c n kh c ph c Ki m th không th ch ng minh ñư c ph n m m h t l i mà ch giúp cho ngư i vi t mã tìm có bi n pháp kh c ph c nhi u l i 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 m t nh ng k thu t ki m th h p d n ñ y h a h n, gi i quy t v n đ t t hay khơng t t c a b d li u ki m th ñ t yêu c u hi u cao nh ng cơng c h tr đ t o nh ng ñ t bi n th c thi chúng Tuy nhiên, ki m th đ t bi n cịn khó áp d ng vào th c t Ki m th viên thư ng th y khó khăn đ áp d ng vào thay vào d a vào nh ng ki n th c kinh nghi m thi t k nh ng ca ki m th K t qu ñ t ñư c Trong khuôn kh m t lu n văn th c sĩ, sau 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 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 sau: - V m t nghiên c u lý thuy t: N m ñư c b n v k thu t ki m th ñ t bi n, m t k thu t nh m ñánh giá ch t lư ng c a b d li u ki m th Qua đó, cho th y có r t nhi u cơng trình nghiên c u v -25ki m th ñ t bi n nh m c i ti n nâng cao hi u qu c a ki m th ñ t bi n, m r ng kh ng d ng c a ki m th đ t bi n Đi u th hi n r ng ki m th ñ t bi n m t nh ng k thu t ki m th đóng vai trị r t quan tr ng ñư 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 nh ng nghiên c u v k thu t ki m th ñ t bi n, gi i pháp c i ti n nâng cao hi u qu c a ki m th ñ t bi n ñ ng th i phân tích tốn t đ t bi n câu l nh SQL, h c viên ñã ñ gi i pháp xây d ng công c h tr ki m th ñ t bi n câu l nh SQL nh m ñánh giá ch t lư ng b d li u ki m th Cơng c có th đư c s d ng ñ nghiên c u ki m th ng d ng s d li u cho ñánh giá tính đ y đ c a nh ng ca ki m th , so sánh v i k thu t khác Đ 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 áp d ng th c t cho ñơ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 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 tốn t đ t bi n s chung c a ngôn ng truy v n SQL chưa sâu vào tốn t riêng bi t c a t ng h th ng s d li u hi n Oralce, MS Server SQL, MySQL, … -26Công c phát tri n đ c l p chưa tích h p vào nh ng ng d ng qu n lý có s d ng ngôn ng truy v n d li u dị tìm l nh truy v n t đ ng đ phân tích s n sinh ñ t bi n m t cách t ñ ng nh m giúp cho ki m th viên ki m th mã ngu n m t s n ph m ti t ki m th i gian công s c Hư ng phát tri n M c dù ñã th c hi n n i dung b n v k thu t ki m th ñ t bi n, phân tích đ t bi n tốn t câu l nh SQL xây d ng cơng c h tr ki m th đ t bi n câu l nh SQL v n hành thành cơng Tuy nhiên, đ có th hồn thi n t t hơn, ñ tài c n nghiên c u b sung thêm n i dung sau: - Áp d ng k thu t c i ti n ti n trình ki m th đ t bi n, t đ ng t o m t t p 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 sau v i chương trình đ t bi n - M r ng áp d ng ki m th ñ t bi n t ng h th ng s d li u Oracle, MS Server SQL, MySQL, … - Tích h p cơng c vào nh ng ng d ng qu n lý s d ng ngôn ng truy v n ñ ki m th ... pháp xây d ng công c h tr ki m th ñ t bi n câu l nh SQL tri n khai ki m th th c nghi m câu l nh truy v n SQL làm s đ phân tích đánh giá k t qu Đ i tư ng ph m vi nghiên c u Đ tài t p trung nghiên. .. cho câu l nh SQL sau Bư c Nh n câu l nh SQL vào, ki m tra, phân tích cú pháp câu l nh lưu dư i d ng cú pháp XML Bư c Th c hi n ñ t bi n câu l nh SQL t o t p h p ñ t bi n c a câu l nh SQL g c Bư... n gsqlparser for Net ñ phân tích c u trúc l nh SQL s d ng ngôn ng C# th c thi môi trư ng NetFrameWork Công c t o ñ 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 câu