Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 96 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
96
Dung lượng
1,8 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trương Thị Thu Hà KIỂM ĐỊNH PHẦN MỀM BẰNG KỸ THUẬT HỘP ĐEN LUẬN VĂN THẠC SĨ Hà nội - 2006 UAN VAN CHAT LUONG download : add luanvanchat@agmail.co ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trương Thị Thu Hà KIỂM ĐỊNH PHẦN MỀM BẰNG KỸ THUẬT HỘP ĐEN Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ thông tin Mã số: 1.01.10 LUẬN VĂN THẠC SĨ HƯỚNG DẪN KHOA HỌC: PGS TSKH Nguyễn Xuân Huy Hà nội - 2006 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC Trang Lời cảm ơn Lời cam đoan Danh mục bảng i Danh mục hình vẽ - sơ đồ ii Mở đầu iv CHƯƠNG 1: TỔNG QUAN KIỂM ĐỊNH PHẦN MỀM 1.1 Các mơ hình phát triển phần mềm 1.2 Chất lượng phần mềm 1.3 Kiểm định phần mềm 12 CHƯƠNG 2: KỸ THUẬT VÀ CHIẾN LƯỢC KIỂM ĐỊNH PHẦN MỀM THEO TIẾP CẬN HỘP ĐEN 2.1 Kiểm định phần mềm kỹ thuật hộp đen 20 2.2 Thiết kế giai đoạn kiểm định phần mềm theo tiếp cận hộp đen 38 CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG KIỂM ĐỊNH 3.1 Mục tiêu xây dựng kiểm định…………………………………… 53 3.2 Giới thiệu tổng quan phần mềm………………………………… 55 3.3 Cài đặt hướng dẫn sử dụng……………………………………….56 3.4 Chương trình dùng để kiểm định………………………………….62 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN………………………………………… 81 TÀI LIỆU THAM KHẢO …………………………………………………… …83 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LỜI CAM ĐOAN Tôi xin cam đoan : Đây cơng trình nghiên cứu riêng Kết nêu luận văn trung thực chưa công bố cơng trình khác Tác giả Trương Thị Thu Hà LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com lời cảm ơn Trong suốt trình học tập thực luận văn, em đà nhận đ-ợc h-ớng dẫn quý Thầy Cô , giúp đỡ động viên bạn bè gia đình Em xin chân thành cảm ơn quý Thầy khoa Công nghệ thông tin, Tr-ờng Đại học công nghệ - Đại học Quốc gia Hà nội Thầy Viện Công nghệ thông tin - Viện Khoa học Công nghệ Việt nam đà tận tình giảng dạy tạo điều kiện thuận lợi cho em học tập nghiên cứu thời gian học tập tr-ờng Lời cảm ơn sâu sắc em xin dành cho Thầy giáo, pgs tskh Nguyễn Xuân Huy, Viện Công nghệ thông tin, Viện Khoa học Công nghệ Việt nam Trong thời gian qua, Thầy đà tận tình h-ớng dẫn, bảo tận tình truyền đạt kiến thức quý báu giúp em thực tốt luận văn Nhân dịp này, em xin gửi lời cảm ơn đến bạn bè đồng nghiệp Nhất ng-ời thân gia đình đà bên cạnh động viên, giúp đỡ em suốt trình học tập Hà nội ngày 22 tháng 11 năm 2006 Tr-ơng Thị Thu Hà LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com DANH MỤC CÁC BẢNG Trang Bảng 1.1 Tỷ lệ công việc giai đoạn phát triển phần mềm 14 Bảng 2.1 Kiểm định theo lớp phân hoạch hợp lệ điểm thi .27 Bảng 2.2 Kiểm định theo lớp phân hoạch hợp lệ điểm thi .28 Bảng 2.3 Kiểm định theo lớp phân hoạch hợp lệ điểm thi .28 Bảng 2.4 Kiểm định theo lớp phân hoạch hợp lệ điểm thi .29 Bảng 2.5 Kiểm định theo lớp phân hoạch hợp lệ điểm thi .29 Bảng 2.6 Kiểm định theo lớp phân hoạch không hợp lệ điểm thi 30 Bảng 2.7 Kiểm định cho tất lớp phân hoạch điểm thi 30 Bảng 2.8 Kiểm định cho tất lớp phân hoạch điểm thi… 31 Bảng 2.9 Kiểm định cho tất lớp phân hoạch điểm thi 31 Bảng 2.10 Bảng định .35 Bảng 2.11 Quan hệ nhân thuế thu nhập 36 Bảng 2.12 Bảng định tính thuế thu nhập 37 Bảng 2.13 Minh họa testcase chương trình xếp 52 Bảng 3.1 Testcase_Bai1 63 Bảng 3.2 Testcase_Bai2 66 Bảng 3.3 Testcase_Bai3 71 Bảng 3.4 Testcase_Bai4 77 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com i DANH MỤC CÁC HÌNH VẼ - SƠ ĐỒ Trang Hình 1.1 Mơ hình tuyến tính Hình 1.2 Mơ hình làm mẫu Hình 1.3 Mơ hình RAD .3 Hình 1.4 Mơ hình tăng dần .4 Hình 1.5 Một phần tử mơ hình tiến trình tương tranh Hình 1.6 Chi phí cho việc sửa lỗi 10 Hình 1.7 Các giai đoạn kiểm định 16 Hình 1.8 Quy trình chi tiết trình kiểm định 17 Hình 1.9 Minh họa kiểm định hộp đen 17 Hình 2.1 Phân hoạch lớp tương đương .22 Hình 2.2 Sơ đồ phân hoạch lớp tương đương điểm thi .24 Hình 2.3 Sơ đồ phân hoạch lớp tương đương theo giá trị biên tổng điểm 25 Hình 2.4 Sơ đồ phân tích giá trị biên cho tập số nguyên X, Y 34 Hình 2.5 Đồ thị nhân tính thuế thu nhập… 37 Hình 2.6 Chiến lược kiểm định … 39 Hình 2.7 Các bước kiểm định 39 Hình 2.8 Kiểm định đơn vị (a) mội trường kiểm định đơn vị 43 Hình 2.9 Tích hợp Top - down …44 Hình 2.10 Tích hợp bottom - up 45 Hình 2.11 Sơ đồ tổng quát giai đoạn kiểm định theo tiếp cận hộp đen …49 Hình 2.12 Chi tiết giai đoạn kiểm định theo tiếp cận hộp đen .…50 Hình 3.1 Cây thư mục lưu thi… 55 Hình 3.2 Các lớp chương trình kiểm định .56 Hình 3.3 Giao diện ban đầu .58 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ii Hình 3.4 Giao diện nhập thi Testcase 59 Hình 3.5 Giao diện danh sách thí sinh 59 Hình 3.6 Giao diện kết chấm thi .60 Hình 3.7 Giao diện kết chi tiết 61 Hình 3.8 Giao diện nhập thêm thí sinh 61 Hình 3.9 Giao diện nhập thêm Testcase 61 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com iii MỞ ĐẦU Lý chọn đề tài Với việc phát triển nhanh chóng ngành Cơng nghệ thơng tin nói chung Cơng nghệ phân mềm nói riêng Hàng triệu phần mềm đời nhằm đáp ứng nhu cầu khách hàng Hơn nữa, sản phẩm phần mềm giúp cho người tiết kiệm tối đa công sức, thời gian, chi phí,… giúp cho cơng việc đạt hiệu cao Việc phát triển phần mềm ngày hỗ trợ nhiều công cụ tiến tiến, giúp cho việc xây dựng phần mềm đỡ khó khăn đáp ứng nhu cầu người dùng cao Tuy nhiên, độ phức tạp phần mềm, dù hoạt động đảm bảo chất lượng phần mềm nói chung kiểm định nói riêng ngày chặt chẽ khoa học, không đảm bảo sản phầm phần mềm ứng dụng khơng có lỗi Lỗi tiềm ẩn sản phẩm phần mềm nhiều gây thiệt hại nặng nề tài ảnh hưởng đến cơng việc Vì vậy, kiểm định phần mềm bước khơng thể thiếu công nghệ phần mềm bao gồm bước: phân tích, thiết kế, mã hố, kiểm định bảo trì Kiểm định phần mềm trình liên tục, xuyên suốt giai đoạn phát triển phần mềm để đảm bảo phần mềm thoả mãn yêu cầu thiết kế yêu cầu đáp ứng nhu cầu người dùng Các kỹ thuật kiểm định phần mềm đã, nghiên cứu, việc kiểm định phần mềm trở thành qui trình bắt buộc dự án phát triển phần mềm giới Kiểm định phần mềm hoạt động tốn kém, thời gian, khó phát hết lỗi Vì vậy, việc kiểm định phần mềm địi hỏi phải có chiến lược phù hợp, kế hoạch hợp lý việc thực quản lí chặt chẽ Ở Việt Nam, thời gian qua việc kiểm định phần mềm bị xem nhẹ, với công cụ lập trình đại, người ta cảm tính cho khơng kiểm định khơng sao, nên chưa có nhiều quan tâm, nghiên cứu Những năm gần đây, số tổ chức nghiên cứu phát triển phần mềm bắt đầu có quan tâm đến vấn đề kiểm LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com iv định phần mềm Tuy nhiên, vấn đề kiểm định phần mềm chưa đầu tư quan tâm mức Nước ta trình xây dựng ngành cơng nghiệp phần mềm khơng thể xem nhẹ việc kiểm định phần mềm xác suất thất bại cao, nữa, hầu hết cơng ty phần mềm có uy tín đặt yêu cầu nghiêm ngặt phần mềm khơng có tài liệu kiểm định kèm không chấp nhận Đối tượng phạm vi nghiên cứu - Luận văn tập trung nghiên cứu, tìm hiểu, đánh giá nguyên lý, chiến lược kỹ thuật kiểm định phần mềm kỹ thuật hộp đen - Áp dụng kỹ thuật kiểm định hộp đen để xây dựng chương trình chấm thi học sinh giỏi Tin học Phương pháp nghiên cứu - Nghiên cứu, tìm hiểu kỹ thuật, chiến lược kiểm định phần mềm theo kỹ thuật hộp đen - Sử dụng phương pháp kiểm định hộp đen nghiên cứu để thiết kế test cho chương trình cụ thể Đưa tài liệu kế hoạch kiểm định đặc tả kiểm định; Xây dựng chương trình thực thi kiểm định Kết nghiên cứu - Thiết kế trường hợp kiểm định theo kỹ thuật hộp đen cho số chương trình cụ thể - Tạo tài liệu kiểm định (đặc tả trường hợp kiểm định kết kiểm định.) - Xây dựng chương trình kiểm định chấm thi học sinh giỏi Tin học Ý nghĩa khoa học thực tiễn Luận văn Việc thiết kế giai đoạn kiểm định phần mềm theo tiếp cận hộp đen dùng làm tài liệu tham khảo cho việc kiểm định phần mềm số công ty, quan, trường học Việt nam LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com v write(g, s[k]); if k=n then k:=1 else inc(k); end; close(g); end; procedure run; var i: integer; begin Doc; for i:=1 to n id[i]:=i; Ghi(find(k)); end; BEGIN run; END Chương trình 3: Cắm hoa ( Đề thi Olympic Quốc tế tin học 1999 ) Cần cắm hết k bó hoa khác vào n lọ xếp thẳng hàng cho bó hoa có số hiệu nhỏ đặt trước bó hoa có số hiệu lớn Với bó hoa i ta biết giá trị thẩm mĩ cắm bó hoa vào lọ j v[i, j] Yêu cầu: Xác định phương án cắm hoa cho tổng giá trị thẩm mĩ lớn Dữ liệu nhập vào bao gồm: - Tên chương trình: Bai_3 - Dữ liệu vào ghi tệp văn hoa.inp: - Dòng hai trị k n Từ dòng thứ hai trở giá trị v[i, j] khoảng 10, với i=1 k j=1 .n; k n 10 - Dữ liệu ghi tệp văn hoa.out gồm hai dòng: - Dòng tổng giá trị thẩm mĩ phương án cắm hoa tối ưu - Từ dòng thứ hai dãy k số hiệu lọ chọn cho bó hoa - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 70 - - Dữ liệu kiểm định Testcase_Bai3 có dạng sau: Các trƣờng hợp kiểm định Dữ liệu vào hợp lệ hoa.int hoa.out 1 10 6 7 10 2 10 24 Giá trị biên hợp lệ Giá trị biên không hợp lệ Dữ liệu không hợp lệ Dữ liệu không hợp lệ 10 10 10 65813546 21635141 93244179 34281526 9 10 14284257 52741957 27941468 82693749 11 12 256789312492 461946924138 29 3168126791 12 -2 9 37 10 báo lỗi: “Input Error” báo lỗi: “Input Error” báo lỗi: “Input Error” Bảng 3.3 Testcase_Bai3 Mã nguồn chương trình 3: (*================================== Hoa.pas ===================================*) uses crt ; const fn = 'hoa.inp'; {File du lieu vao} LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 71 - gn = 'hoa.out'; {File du lieu ra} mn = 101; {So luong toi da cac lo hoa: 100} bl = #32; {Dau cach} nl = #13#10; {Xuong dong} kk = (mn+7) div 8; {So bit danh dau cac lo hoa} type mb1 = array[0 mn] of byte; {mang byte chieu} mb2 = array[0 mn] of mb1; {mang byte chieu} ml1 = array[0 kk] of byte; ml2 = array[0 mn] of ml1; mi1 = array[0 mn] of integer; var n, k: byte; {n - so luong lo, k - so luong bo hoa} v: mb2; {v[i, j] - tham my cam bo hoa i vao lo j} L: ml2; {cac mang danh dau lo hoa bit(i) = 1: lo hoa duoc chon bit(i) = 0: lo hoa roi} T: mi1; {T[i, j]: tong so tham my cam i bo hoa vao day j lo} f, g: text; {files input va output} (* Doc du lieu *) procedure doc; var i, j:byte; begin assign(f, fn); LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 72 - reset(f); readln (f, k, n); for i:=1 to k for j:=1 to n read(f, v[i, j]); close(f); end; (* -Cho gia tri bit thu j day byte L[i] -*) function getbit(i, j: byte):byte; var b,p: byte; begin b:= j div 8; p:= j mod 8; getbit:=(L[i][b] shr p) and 1; end; (* -Gan tri cho bit j day byte L[i] -*) procedure batbit(i, j:byte); var b, p: byte; begin b:= j shr 3; p:= j and 7; L[i][b]:= L[i][b] or (1 shl p); end; LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 73 - (* -Quy hoach dong *) procedure xuly; var i, j: byte; begin {1 Khoi tri} fillchar(L,sizeof(L),0); {danh dau cac lo hoa duoc chon} T[0 ]:=0; {do tham mi} {Vi co k bo hoa nen xet k lo dau tien} for j:=1 to k begin L[j]:=L[j-1]; batbit(j, j); T[j]:= T[j-1] + v[j, j]; for i:=j-1 downto if T[i] < T[i-1]+v[i, j] then begin T[i]:= T[i-1]+v[i, j]; L[i]:= L[i-1]; batbit(i, j); end; end; {xet cac lo lai} for j:=k+1 to n for i:= k downto if T[i ] < T[i-1]+v[i, j] then begin LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 74 - T[i]:= T[i-1] + v[i, j]; L[i ]:= L[i-1]; batbit(i, j); end; end; (* -Ghi ket qua T[k ] - Tong tham mi cac lo duoc chon *) procedure ghi; var i: byte; begin assign(g, gn) ; rewrite(g); writeln(g, T[k]); for i:=1 to n begin if getbit(k, i)=1 then write(g, i, bl); end; close(g); end; procedure BaiLam; begin doc; xuly; ghi; end; BEGIN BaiLam; END LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 75 - Chương trình 4: Băng nhạc Người ta cần ghi N hát, mã số từ đến N, vào băng nhạc có thời lượng tính theo phút đủ chứa toàn cho Với ta biết thời lượng phát Băng lắp vào máy phát nhạc đặt siêu thị Khách hàng muốn nghe hát việc nhấn phím ứng với Để tìm phát thứ i băng, máy xuất phát từ đầu cuộn băng, quay băng để bỏ qua i-1 ghi trước Thời gian quay băng bỏ qua thời gian phát tính Tính trung bình hát ngày khách hàng lựa chọn với số lần (tần suất) Hãy tìm cách ghi băng cho tổng thời gian quay băng ngày Dữ liệu nhập vào bao gồm: - Tên chương trình: Bai_4 - Dữ liệu vào ghi tệp văn tên nhac.inp - Dòng số tự nhiên N cho biết số lượng hát - Dòng thứ hai N số nguyên dương thể dung lượng tính theo phút Mỗi đơn vị liệu cách dấu cách - Dữ liệu ghi tệp văn tên nhac.out theo dạng thức sau đây: - N dòng thể trật tự ghi hát băng: dòng gồm hai số nguyên dương j d cách dấu cách, j mã số hát cần ghi, d thời gian tìm phát hát theo trật tự ghi - Dịng thứ n+1 ghi tổng số thời gian quay băng hát phát lần ngày - Dữ liệu kiểm định Testcase_Bai4 có dạng sau: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 76 - Các trƣờng hợp kiểm định bangnhac.int liệu lớp hợp lệ 723 Các giá trị biên Các giá trị không hợp lệ -1 165 -6 12 10 -2 2.3 bangnhac.out 22 35 12 19 16 - báo lỗi: liệu không hợp lệ - báo lỗi: liệu không hợp lệ - báo lỗi: liệu không hợp lệ Bảng 3.4 Testcase_Bai4 Mã nguồn chương trình 4: (* -Nhac.pas -*) program Nhac; uses crt; const MN = 200; fn = 'Bangnhac.inp'; gn = 'Bangnhac.out'; BL = #32; {dau cach} var a, id: array[1 MN] of integer; f, g: text; n: integer; { LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 77 - Doc du lieu tu input file vao mang a } procedure Doc; var i, k: integer; begin assign(f,fn); reset(f); read(f, n); for i:= to n read(f, a[i]); close(f); end; { Khoi tri mang chi dan id quan li sap tang theo chi dan } procedure InitID; var i: integer; begin for i:= to n id[i]:= i; end; { Sap tang theo chi dan } procedure IDQuickSort(d, c: integer); var i, j, m, x: integer; begin i:= d; j:= c; m:= a[id[(i+j) div ]]; {phan tu giua} LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - 78 - while i m dec(j); if i