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 hồn thành ĐẠ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 Đạ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ử 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 có sử dụng ngơn ngữ truy vấn 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ó hệ thống ứng dụng kiểm thử ñột biến ñể ñánh giá chất lượng liệu kiểm thử thực kiểm thử câu lệnh truy vấn SQL thực cần thiết Mặt khác, vấ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ừ 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” hướng dẫn TS Nguyễn Thanh Bình, 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 đề 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 liệu kiểm thử kiểm thử câu lệnh truy vấn SQL, từ phát -4lỗi cịn tồn để lập trình viên hồn thiện sản phẩm Ý 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 làm tài liệu tham khảo cho kiểm thử viên ñơn vị phát triển phần mềm Ý nghĩa thực tiễn: Cung cấp 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 kỹ thuật kiểm thử ñột biến cấu trúc ñặc ñiểm ngơn ngữ truy vấn 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 Đố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 - Thảo luận, lựa chọn hướng giải vấn đề - Phân tích thiết kế hệ thống chương trình ứng dụng - 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 Dự kiến kết ñạt ñược - Về mặt lý thuyết: Nắm ñược kiến thức 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Ử ĐỘT BIẾN 1.1 GIỚI THIỆU Trong chương này, chúng tơi trình bày chi tiết lý thuyết kiểm thử đột biến, phân tích ưu nhược điểm 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 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 ý tưởng ñơn giản sau: ñể ước lượng số lượng cá hồ, cách để thực việc đánh dấu số cá thả vào hồ (giả sử, 80 cá), sau đánh bắt số cá ñếm số cá bị ñánh dấu Nếu bắt 50 cá số bị ñánh dấu, 1/10 số cá hồ bị đánh dấu, tồn số cá hồ thể ước lượng 800 Nếu bắt ñược tất cá bị đánh dấu, cho tồn 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 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 lỗi này, “lưới” bắt 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 liệu kiểm thử có hiệu quả, nghĩa phát lỗi chương trình Trong thực kiểm thử ñột biến, tạo phiên lỗi chương trình gốc cách chèn lỗi vào mã nguồn Sau đó, thực thi kiểm thử với liệu kiểm thử cho phiên lỗi So sánh kết ñầu phiên lỗi với chương trình gốc, từ đánh giá khả phát lỗi liệu kiểm thử [3] Các phiên lỗi tạo từ chương trình gốc gọi ñột biến (mutants) Kiểm thử ñột biến 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 Kiểm thử ñột biến ñược xây dựng dựa hai giả thuyết 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 thơng thường lập trình viên giỏi họ không viết chương trình cách tuỳ tiện, cẩu thả Giả thuyết hiệu ứng liên kết cho lỗi phức tạp ñược liên kết từ lỗi ñơn giản, liệu kiểm thử ñủ khả phát tất lỗi đơn giản có khả phát lỗi phức tạp với tỉ lệ cao -81.2.3 Một số khái niệm Tốn tử đột biến Tốn tử đột biến (mutation operator) hay cịn gọi luật đột biến (mutation rule) luật áp dụng vào chương trình gốc để tạo phiên đột biến Nó việc thay toán tử tốn tử khác; thay đổi tốn hạng biểu thức; xố tồn biểu thức; thay đổi câu lệnh… hay tạo cách thay đổi nhỏ cú pháp 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ử chương trình gốc P ñột biến P’ P với liệu thử T, có hai kịch khác xảy ra: - Một là, lỗi ñược chèn vào chương trình đột biến P’ nhận biết, nghĩa chương trình P đột biến P’ cho kết khác Trong trường hợp này, ñột biến P’ ñược gọi bị diệt (killed) liệu thử T Khi đó, T gọi liệu thử thích hợp có khả phát khác 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 hồn tồn giống Trong trường hợp này, có hai khả xảy Khả thứ liệu thử T khơng đủ tốt (hay gọi liệu thử khơng thích hợp), phải tiến hành thực kiểm thử lại với liệu thử tốt Khả thứ hai chương trình -9P đột biến P’ chương trình tương tự nhau, liệu thử khơng thể phân biệt khác chúng Trong 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 giống với chương trình gốc với liệu thử cú pháp ñộ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à liệu thử T ⊂ D (D, tập 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, chương trình P 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 liệu thử T, mơ tả 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í kiểm thử đột biến Chi phí kiểm thử đột biến tập trung ba bước tốn sản sinh ñột biến, biên dịch ñột biến kiểm thử phiên ñột biến với liệu kiểm thử Như vậy, số lượng lớn ñột biến làm cho chi phí kiểm thử đột biến 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 liệu kiểm thử T Chúng ta giải thích tiến trình thực 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 liệu kiểm thử T Bước 3: Thực chương trình gốc P với liệu kiểm thử Kiểm tra kết 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 bước Bước 4: Thực đột biến cịn sống với liệu kiểm thử So sánh kết thực ñột biến với kết thực chương trình gốc ñối với liệu thử - Nếu tất đột biến 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 -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ố số cơng đoạn giảm tải cơng đoạn chiếm nhiều chi phí tính tốn, gồm kỹ 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 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 liệu kiểm thử ñột biến cách ñầy ñủ yêu cầu nhiều nỗ lực Hơn việc ñịnh phiên ñột biến tương đương với chương trình gốc 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 nâng cao hiệu chất lượng 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 số vấn đề, thực thi lặp lại ca kiểm thử, thực thi chương trình gốc, … Tiến trình cải tiến đề xuất nhằm khắc phục hạn chế nêu Trước hết, tự ñộng tạo tập liệu thử Các liệu thử thực thi với chương trình gốc sau với chương trình đột biến Kiểm thử viên định nghĩa giá trị ngưỡng, giá trị nhỏ chấp nhận ñược tỷ lệ ñột biến Nếu ngưỡng khơng đạt được, liệu thử khơng diệt đột biến (giới hạn khơng hiệu -13quả), bị loại trừ Tiến trình lặp lại, với thời ñiểm sản sinh liệu thử nhắm đến đột biến cịn sống, cho ñến ngưỡng tỷ lệ ñột biến ñạt ñược 1.6 1.6.1 ỨNG DỤNG CỦA KIỂM THỬ ĐỘT BIẾN Đột biến mã nguồn Đột biến mã nguồn chương trình ñã ñược áp dụng cho 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 đơn vị phần mềm mà lập trình viên thực hiện; mức kiểm thử tích hợp, đột biến tạo để mơ tả lỗi tích hợp lỗi kết nối tương tác ñơn vị phần mềm Đột biến á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 biểu thức lơgic để tạo đột biến Một ñột biến bị diệt ñ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 -14CHƯƠNG KIỂM THỬ ĐỘT BIẾN CÁC CÂU LỆNH TRUY VẤN SQL 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 sở liệu ngơn ngữ truy vấn có cấu trúc Một số cơng trình nghiên cứu kiểm thử sở liệu ñược ñề cập Đặc biệt, chúng tơi phân tích số lỗi điển hình câu lệnh truy vấn sở 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ở liệu quan hệ Cơ sở liệu tập hợp có cấu trúc liệu có liên quan với Cơ sở liệu ñược sử dụng phổ biến sở liệu quan hệ Cơ sở liệu quan hệ sở liệu dạng bảng dễ dàng tổ chức lại 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 sử dụng để định nghĩa lược ñồ sở liệu thực việc cập nhật, xóa, chỉnh sửa truy cập liệu lưu trữ sở 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 liệu (Data Definition Language - DDL) − Nhóm lệnh thao tác 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 khiển giao tác COMMIT, ROLLBACK… Lệnh truy vấn SQL Câu lệnh truy vấn mơ tả mệnh đề SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY Các phép toá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ử cách xem xét lược đồ sở liệu, thuộc tính khác ràng buộc quan hệ Câu lệnh truy vấn SQL 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 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 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ở liệu gồm bước bản: − Xác ñịnh lỗi thường phạm phải lập trình viên viết 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 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ở 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 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 tốn tử xuất ñ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); − Tốn tử đột biến thay ñịnh danh: cột tham chiếu, số tham số (IR – Identifier Replacement mutation operators) Mỗi nhóm đột biến ñược ký hiệu tên ngắn gọn gồm hai ký hiệu tốn tử đột biến nhóm ký hiệu 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 tốn tử đột biến mệnh đề chính, ký hiệu SC, đột biến 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 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 khơng thứ tự tập kết 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 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ị thuộc tính mở rộng thêm ký hiệu ñặc biệt NULL ñể biểu thị cho giá trị liệu hiểu khơng định nghĩa, khơng thích hợp, khơng xác ñịnh Việc xử lý giá trị NULL không ñúng dẫn đến kết khơng lường trước Do đó, đột biến có liên quan đến giá trị NULL cần phải ñược xem xét ñể phát loại lỗi 2.6.4 Tốn tử đột biến định danh (IR) Các tốn tử đột biến IR thay ñịnh danh cột, tham chiếu tham số truy vấn Vì vậy, tốn tử đột biến có khả phát 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Ử ĐỘT BIẾN CÁC CÂU LỆNH SQL 3.1 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âu lệnh liệu kiểm thử Công cụ sử dụng 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 cách chèn lỗi vào câu lệnh gốc, thực thi câu lệnh gốc câu lệnh ñột biến vào liệu thử, từ ñánh giá chất lượng câu lệnh SQL chất lượng 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ở 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ạng cú pháp XML Bước Thực ñột biến câu lệnh SQL tạo tập hợp ñột biến câu lệnh SQL gốc Bước Thực vòng lặp gồm bước sau: a Thực thi câu lệnh SQL ñột biến -20- 3.3 b So sánh kết thực thi câu lệnh ñột biến kết thực thi câu lệnh gốc c Nếu kết khác đột biến bị diệt, ngược lại ñá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 Bước Kết thúc trình, xuất báo cáo sơ gồm thông tin 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, … 3.4 - Hệ quản trị sở liệu: MS SQL Server 2008 - Công nghệ Net FrameWork 3.5 - Mã nguồn SQL Parser (gudusoft.gsqlparser.dll) KIẾN TRÚC CÔNG CỤ Cốt lõi hệ thống sản sinh ñột biến, nghĩa tạo ñột biến câu lệnh truy vấn sở liệu Để sinh đột biến, 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, sinh đột biến thực tốn tử đột biến ñể tạo ñột biến câu lệnh truy vấn gốc Sau đó, đột biến câu lệnh truy vấn gốc ñược thực thi 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 cách thay từ khóa câu lệnh 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âu truy vấn SQL Các từ khóa ñược biểu diễn phần tử tên cột, tên bảng, tham số số ñược biểu diển thuộc tính text phần tử XML Câu lệnh SQL sau phân tích phân tích tạo cú pháp truy vấn ứng với kiểu mệnh ñề sau: TSelectSqlStatement, TDeleteSqlStatement, TUpdateStatement,… tuỳ theo ñầu vào kịch 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ở 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âu lệnh truy vấn vào mơ hình DOM Bộ sinh ñột biến duyệt qua phần tử mơ hình DOM bắt gặp phần tử thuộc tính text nút thực bước sau: - Xác ñịnh phạm vi - Chọn cột - Áp dụng tốn tử đột biến Trong sinh ñột biến sản sinh đột biến gọi thực thi ghi ñột biến ñể lưu lại ñột biến ñó Các ñột biến ñược lưu tệp tin tài liệu XML -223.7 BỘ THỰC THI ĐỘT BIẾN Bộ sản sinh thực thi đột biến hồn tồn tự động cơng cụ đột biến SQL Thu thập thơng tin lược ñồ sở liệu, tải vào sở liệu kiểm thử, ñiều khiển thay ñổi 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 phần tử tiến trình Mỗi tiến trình, truy vấn lược ñồ sở liệu ñược xem xét ñột biến ñược sản sinh cách áp dụng luật trình bày Cuối cùng, ñột biến ñược thực thi 3.8 THỬ 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ử liệu thử sau: Hệ quản trị sở liệu: MS Server SQL 2008 Bộ liệu thử: Hệ sở 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ở liệu -23- Hình 3.6 Lược đồ sở 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 khâu quan trọng quy trình xây dựng phần mềm nhằm kiểm tra xem phần mềm làm có lỗi cần khắc phục Kiểm thử khơng thể chứng minh phần mềm hết lỗi mà 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 kỹ thuật kiểm thử hấp dẫn ñầy hứa hẹn, giải vấn đề tốt hay khơng tốt liệu kiểm thử ñạt yêu cầu hiệu cao cơng cụ hỗ trợ để tạo ñộ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 kiến thức kinh nghiệm thiết kế ca kiểm thử Kết ñạt ñược Trong khuôn khổ luận văn thạc sĩ, sau tiến hành tìm hiểu nghiên cứu 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 số kết ñịnh sau: - Về mặt nghiên cứu lý thuyết: Nắm ñược kỹ thuật kiểm thử ñột biến, kỹ thuật nhằm ñánh giá chất lượng liệu kiểm thử Qua đó, cho thấy có nhiều cơng trình nghiên cứu -25kiểm thử ñột biến nhằm cải tiến nâng cao hiệu kiểm thử ñột biến, mở rộng khả ứng dụng kiểm thử đột biến Điều thể kiểm thử ñột biến kỹ thuật kiểm thử đóng vai trị quan trọng ñược ứng dụng 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 nghiên cứu kỹ thuật kiểm thử ñột biến, giải pháp cải tiến nâng cao hiệu 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 liệu kiểm thử Cơng cụ ñược sử dụng ñể nghiên cứu kiểm thử ứng dụng sở liệu cho đánh giá tính ñầy ñủ ca kiểm thử, so sánh với kỹ thuật khác Đồng thời kết nghiên cứu cung cấp giải pháp sơ 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 tập trung vào việc phân tích tốn tử đột biến sở chung ngơn ngữ truy vấn SQL chưa sâu vào toán tử riêng biệt hệ thống sở liệu Oralce, MS Server SQL, MySQL, … -26Cơng cụ phát triển độc lập chưa tích hợp vào ứng dụng quản lý có sử dụng ngơn ngữ truy vấn liệu dị tìm lệnh truy vấn tự động để phân tích sản sinh ñột biến cách tự ñộng nhằm giúp cho kiểm thử viên kiểm thử mã nguồn 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 nội dung 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, để 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 tập liệu thử Các liệu thử thực thi 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 hệ thống sở liệu Oracle, MS Server SQL, MySQL, … - Tích hợp cơng cụ vào ứng dựng quản lý sử dụng ngơn ngữ truy vấn để kiểm thử