Đề tài Thiết kế Test-Case trong kiểm thử phần mềm
MỤC LỤC
MỤC LỤC 1
DANH MỤC CÁC HÌNH 3
LỜI NÓI ĐẦU 4
TÓM TẮT NỘI DUNG 6
CHƯƠNG 1. TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 7
1.1 Các khái niệm cơ bản về kiểm thử phần mềm 7
1.1.1 Kiểm thử phần mềm là gì? 7
1.1.2 Các phương pháp kiểm thử 8
1.1.2.1 Kiểm thử tĩnh – Static testing 8
1.1.2.2 Kiểm thử động – Dynamic testing 8
1.1.3 Các chiến lược kiểm thử 9
1.1.3.1 Kiểm thử hộp đen – Black box testing 9
1.1.3.2 Kiểm thử hộp trắng – White box testing 10
1.1.3.3 Kiểm thử hộp xám – Gray box testing 11
1.1.4 Các cấp độ kiểm thử phần mềm 11
1.1.4.1 Kiểm thử đơn vị – Unit test 12
1.1.4.2 Kiểm thử tích hợp – Intergration Test 13
1.1.4.3 Kiểm thử hệ thống – System Test 15
1.1.4.4 Kiểm thử chấp nhận sản phẩm – Acceptance Test 17
1.1.4.5 Một số cấp độ kiểm thử khác 18
1.1.5 Các phương pháp kiểm thử con người 19
1.1.5.1 Tổng duyệt – Walkthrough 19
1.1.5.2 Thanh tra mã nguồn – Code Inspection 20
1.2 Nguyên tắc kiểm thử phần mềm 20
CHƯƠNG 2. THIẾT KẾ TEST – CASE 22
2.1 Khái niệm 22
2.2 Vai trò của thiết kế test – case 22
2.3 Quy trình thiết kế test – case 22
2.3.1 Kiểm thử hộp trắng - Kiểm thử bao phủ logic 24
2.3.1.1 Bao phủ câu lệnh – Statement Coverage 25
2.3.1.2 Bao phủ quyết định – Decision coverage 26
2.3.1.3 Bao phủ điều kiện – Condition coverage 27
2.3.1.4 Bao phủ quyết định/điều kiện – Decision/condition coverage 29
2.3.1.5 Bao phủ đa điều kiện – Multiple condition coverage 30
2.3.2 Kiểm thử hộp đen 32
2.3.2.1 Phân lớp tương đương – Equivalence Patitioning 32
2.3.2.2 Phân tích giá trị biên – Boundary Value Analysis 35
2.3.2.3 Đồ thị nguyên nhân – kết quả - Cause & Effect Graphing 36
2.3.2.4 Đoán lỗi – Error Guessing 42
2.3.3 Chiến lược 43
CHƯƠNG 3. ÁP DỤNG 44
3.1 Đặc tả 44
3.2 Thiết kế test – case 46
3.2.1 Vẽ đồ thị nguyên nhân – kết quả 46
3.2.2 Phân lớp tương đương 50
3.2.2.1 Xác định các lớp tương đương 50
3.2.2.2 Xác định các ca kiểm thử 50
3.2.3 Phân tích giá trị biên 51
3.2.3.1 Xét các trạng thái đầu vào 51
3.2.3.2 Xét không gian kết quả 51
3.2.4 Các phương pháp hộp trắng 52
3.2.4.1 Bao phủ câu lệnh 52
3.2.4.2 Bao phủ quyết định 54
3.2.4.3 Bao phủ điều kiện 55
3.2.4.4 Bao phủ quyết định – điều kiện 55
3.2.4.5 Bao phủ đa điều kiện 55
TÀI LIỆU THAM KHẢO 57
KẾT LUẬN 58
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 59
tam giác có 3 cạnh bằng nhau, tam giác cân là tam giác có 2 trong 3 cạnh bằng nhau, và tam giác thường thì có 3 cạnh khác nhau. Mã lệnh của chương trình: unit main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TMainForm = class(TForm) AEdit: TLabeledEdit; BEdit: TLabeledEdit; CEdit: TLabeledEdit; btnTest: TButton; procedurebtnTestClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var MainForm: TMainForm; implementation {$R *.dfm} Procedure TMainForm.btnTestClick(Sender: TObject); var a, b, c: Integer; begin try a := StrToInt(AEdit.Text); b := StrToInt(BEdit.Text); c := StrToInt(CEdit.Text); if (a < 0) Or (b < 0) Or (c < 0) then ShowMessage('3 canh A, B, C khong thoa man la 3 canh cua mot tam giac.') else if (a + b > c) And (a + c > b) And (b + c > a) then begin if (a = b) And (b = c) then ShowMessage('3 canh A, B, C lap thanh mot tam giac deu.') else if (a=b) Or (b=c) Or (c=b) then ShowMessage('3 canh A, B, C lap thanh mot tam giac can.') else ShowMessage('3 canh A, B, C lap thanh mot tam giac thuong.'); end else ShowMessage('3 canh A, B, C khong thoa man la 3 canh cua mot tam giac.'); except ShowMessage('Loi dinh dang du lieu. De nghi ban xem va nhap lai.'); end; end; end. Thiết kế test – case Áp dụng chiến lược kiểm thử đã trình bày trong Chương 2, các ca kiểm thử được xây dựng như sau: Vẽ đồ thị nguyên nhân – kết quả Do đặc tả có sự kết hợp đầu vào nên trước tiên, áp dụng phương pháp vẽ đồ thị nguyên nhân – kết quả. Nguyên nhân là: Cả 3 giá trị nhập vào đều là số nguyên dương. Tổng 2 số bất kỳ trong 3 số lớn hơn số còn lại. Hai trong 3 số có giá trị bằng nhau. Ba số có giá trị bằng nhau. Kết quả là: R1. Thông báo ba giá trị nhập vào lập thành tam giác thường. R2. Thông báo ba giá trị nhập vào lập thành tam giác cân. R3. Thông báo ba giá trị nhập vào lập thành tam giác đều. R4. Thông báo ba giá trị nhập vào không lập thành một tam giác. R5. Thông báo lỗi nhập dữ liệu. Hình 3.1 Đồ thị nguyên nhân – kết quả: Bước tiếp theo là tạo bảng quyết định mục vào giới hạn. Chọn kết quả R1 là đầu tiên. R1 có mặt nếu nút các nút 12 và 3 = 1,0. Nút 12 = 1 khi 1 và 2 = 1,1. Áp dụng lần lượt cho sự có mặt của từng kết quả đầu vào, ta được bảng quyết định như sau: Hình 3.2 Bảng quyết định 1 2 3 4 5 1 1 1 1 1 0 2 1 1 0 3 0 1 4 1 R1 1 0 0 0 0 R2 0 1 0 0 0 R3 0 0 1 0 0 R4 0 0 0 1 0 R5 0 0 0 0 1 Bước cuối cùng là chuyển đổi bảng quyết định thành các ca kiểm thử. Các ca kiểm thử thu được như sau: STT Các điều kiện Ca kiểm thử Hành động 1 Cả 3 giá trị nhập vào đều là số nguyên dương, và tổng của 2 số bất kỳ trong 3 số luôn lớn hơn số thứ 3, và không có cặp 2 số bất kỳ nào trong 3 số đó là = nhau. 2,3,4 2,4,3 3,2,4 3,4,2 4,2,3 4,3,2 R1 2 Cả 3 giá trị nhập vào đều là số nguyên dương, và tổng cảu 2 số bất kỳ trong 3 số luôn lớn hơn số thứ 3, và tồn tại một cặp 2 số trong 3 số đó là = nhau. 3,3,4 3,4,3 4,3,3 R2 3 Cả 3 giá trị nhập vào đều là số nguyên dương, và cả 3 số có giá trị bằng nhau. 3,3,3 R3 4 Cả 3 giá trị nhập vào đều là số nguyên dương, và tồn tại 2 số trong 3 số có tổng nhỏ hơn hoặc bằng số còn lại. 1,2,4 Và 5 hoán vị của nó R4 5 Tồn tại một giá trị nhập vào không phải là số nguyên dương. A,2,2 -1,1,1 1.1,1,1 Và 2 hoán vị của mỗi trường hợp R5 Phân lớp tương đương Xác định các lớp tương đương Các giá trị nhập vào là số Cả 3 giá trị đều là số (1) Tồn tại 1 giá trị không phải là số (2) Các giá trị là nguyên Cả 3 giá trị đều nguyên (3) Tồn tại 1 giá trị không nguyên (4) Các giá trị là dương Cả 3 giá trị đều dương (5) Tồn tại 1 giá trị <=0 (6) Hằng số -32768 : 32767 (7) 32767 (9) Tổng 2 số bất kỳ so với số thứ 3 Lớn hơn (10) Nhỏ hơn hoặc bằng (11) Xác định các ca kiểm thử Các ca kiểm thử bao phủ các lớp tương đương hợp lệ: Ca kiểm thử 2,3,4 và 5 hoán vị bao phủ các lớp (1), (3), (5), (7), (10). Các ca kiểm thử tương ứng với từng ca kiểm thử không hợp lệ: (2) A, 1, 1 và 2 hoán vị. (4) 1.1, 1, 1 và 2 hoán vị. (6) -1, 1, 1 và 2 hoán vị. (8) -32769, 1, 1 và 2 hoán vị. (9) 32768, 1, 1 và 2 hoán vị. (11) 1, 2, 4 và 5 hoán vị. Phân tích giá trị biên Xét các trạng thái đầu vào Xét các trạng thái đầu vào thu được các ca kiểm thử như sau: 1, 1, 1 A, 1, 1 và 2 hoán vị. 1.1, 1, 1 và 2 hoán vị. 0, 1, 1 và 2 hoán vị. -1, 1, 1 và 2 hoán vị. -32768, 1, 1 và 2 hoán vị. -32769, 1, 1 và 2 hoán vị. 32767, 1, 1 và 2 hoán vị. 32768, 1, 1 và 2 hoán vị. 1, 2, 3 và 5 hoán vị. 1, 2, 4 và 5 hoán vị. Xét không gian kết quả Xét không gian kết quả, thu được các ca kiểm thử như sau: Ba số đầu vào thỏa mãn là 3 cạnh của một tam giác đều 1, 1, 1 32767, 32767, 32767 Ba số đầu vào thỏa mãn là 3 cạnh của một tam giác cân 14. 1, 1, 2 và 2 hoán vị. 15. 32767, 32767, 32766 và 2 hoán vị. Ba số đầu vào thỏa mãn là 3 cạnh của một tam giác thường 16. 2, 3, 4 và 5 hoán vị. 17. 32767, 32766, 32765 và 5 hoán vị. Ba số đầu vào không thỏa mãn là 3 cạnh của 1 tam giác 18. 1, 2, 3 và 5 hoán vị. 19. 1, 2, 4 và 5 hoán vị. 20. 32767, 1, 32765 và 5 hoán vị. 21. 32767, 1, 32766 và 5 hoán vị. Lỗi định dạng dữ liệu vào 22. A, 1, 1 và 2 hoán vị. 23. 0, 1, 1 và 2 hoán vị. 24. -1, 1, 1 và 2 hoán vị. 25. 1.1, 1, 1 và 2 hoán vị. Các phương pháp hộp trắng Bao phủ câu lệnh Lưu đồ thuật toán cho chương trình tam giác: a a,b,c:integer; a=b or b=c or c=b ShowMessage M5 Không có ngoại lệ Show Message M1 Show Message M2 Show Message M4 owMessage M3 S Đ Đ Show Message M3 a=b and b=c s Đ ShowMessage M1 a<0 or b<0 or c<0 Lưu đồ thuật toán cho đoạn code của chương trình a:= StrToInt(AEdit.Text); b:= StrToInt(BEdit.Text); c:= StrToInt(CEdit.Text); Đ b S c d e a+b>c and a+c>b and b+c>a g f h i S Sk Đ j l Trong đó: M1: Ba cạnh A, B, C không thỏa mãn là 3 cạnh của 1 tam giác. M2: Ba cạnh A, B, C lập thành 1 tam giác đều. M3: Ba cạnh A, B, C lập thành 1 tam giác cân. M4: Ba cạnh A, B, C lập thành 1 tam giác thường. M5: Lỗi định dạnh dữ liệu. Đề nghị bạn xem và nhập lại. Các ca kiểm thử thu được: -1, 1, 1 và các hoán vị (abdl) 1, 1, 1 (abefhl) 2, 2, 1 và các hoán vị (abefijl) 2, 3, 4 và các hoán vị (abefikl) 1, 2, 4 và các hoán vị (abegl) A, 1, 1 và các hoán vị (acl) 1.1, 1, 1 và các hoán vị (a,c,l) Bao phủ quyết định Các ca kiểm thử thu được: -32768, -32768, -32768 và các hoán vị (abdl) 32767, 32767 , 32767 và các hoán vị (abefhl) 32767, 32767, 327676 và các hoán vị (abefijl) 32767, 32766, 32765 và các hoán vị (abefikl) 32767, 1, 2 và các hoán vị (abegl) A, 1, 1 và các hoán vị (acl) 1.1, 1, 1 và các hoán vị (a,c,l) Bao phủ điều kiện Các ca kiểm thử thu được là: -1, 1, 1 và các hoán vị. 2, 3, 4 và các hoán vị. 1, 2 , 4 và các hoán vị. 2, 2, 1 và các hoán vị. 1, 1, 1 và các hoán vị. A, 1, 1 và các hoán vị. 1.1, 1, 1 và các hoán vị. Bao phủ quyết định – điều kiện Các ca kiểm thử thu được là: -1, 1, 1 và các hoán vị. 2, 3, 4 và các hoán vị. 1, 2 , 4 và các hoán vị. 2, 2, 1 và các hoán vị. 1, 1, 1 và các hoán vị. A, 1, 1 và các hoán vị. 1.1, 1, 1 và các hoán vị. Bao phủ đa điều kiện Các ca kiểm thử thu được là: -1, 1, 1 và các hoán vị. 2, 3, 4 và các hoán vị. 1, 2 , 4 và các hoán vị. 2, 2, 1 và các hoán vị. 1, 1, 1 và các hoán vị. A, 1, 1 và các hoán vị. 1.1, 1, 1 và các hoán vị. KẾT LUẬN Kiểm thử phần mềm, một hướng đi không còn mới mẻ trên thế giới, nhưng lại là một hướng đi rất mới ở Việt Nam. Nó hứa hẹn một tương lai mới cho các học sinh, sinh viên ngành CNTT. Qua tìm hiểu và xây dựng đề tài này, em thấy mình đã đạt được một ưu điểm cũng như vẫn còn một số tồn tại. Những điểm đạt được: Nắm được tổng quan về kiểm thử phần mềm: Các khái niệm cơ bản, các phương pháp kiểm thử phần mềm, và các vấn đề liên quan … Tìm hiểu và nắm được các phương pháp và chiến lược thiết kế test – case trong kiểm thử phần mềm, và áp dụng được các phương pháp đã tìm hiểu để xây dựng các test – case cho 1 bài toán cụ thể - Chương trình “Tam giác”. Bổ sung và rèn luyện thêm kỹ năng sử dụng phần mềm Word và Powerpoint. Nâng cao khả năng đọc hiểu tài liệu Tiếng Anh. Những điểm chưa đạt: Sự áp dụng những kiến thức tìm hiểu được mới chỉ dừng lại ở một bài toán nhỏ, mà vẫn chưa thử áp dụng cho các bài toán hay ứng dụng lớn. Từ những điểm đạt và chưa đạt ở trên, em hi vọng sẽ nhận được sự góp ý chân thành của các thầy cô và các bạn để bản báo cáo được hoàn thiện hơn. Sinh viên Phạm Thị Trang TÀI LIỆU THAM KHẢO The Art of Software Testing, Glenford J. Myers, Second Edition, John Wiley and Sons, Inc. Software Engineering - A Practitioner’s Approach, Roger S.Pressman, Sixth Edition, Ph.D, McGraw-Hill, Inc. A Practitioner's Guide to Software Test Design, Lee Copeland, First Edition, Artech House Publishers Boston, London. Effective methods for Software Testing, William E. Perry, 3rd Edition, Wiley Publishing, Indian. Software Testing, Ron Patton, Second Edition, Sam Publishing. Một số trang web về kiểm thử phần mềm khác. NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Thái Nguyên, ngày … tháng 09 năm 2009 Giáo viên hướng dẫn Nguyễn Hồng Tân
File đính kèm:
- Đề tài Thiết kế Test-Case trong kiểm thử phần mềm.doc