6 thg 4, 2013

THIẾT KẾ TEST-CASE TRONG KIỂM THỬ PHẦN MỀM

TL 22

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


LỜI NÓI ĐẦU

Trong ngành kỹ nghệ phần mềm, năm 1979, có một quy tắc nổi tiếng là: “Trong một dự án lập trình điển hình, thì xấp xỉ 50% thời gian và hơn 50% tổng chi phí được sử dụng trong kiểm thử các chương trình hay hệ thống đã được phát triển”. Và cho đến nay, sau gần một phần 3 thế kỷ, quy tắc đó vẫn còn đúng. Đã có rất nhiều ngôn ngữ, hệ thống phát triển mới với các công cụ tích hợp cho các lập trình viên sử dụng phát triển ngày càng linh động. Nhưng kiểm thử vẫn đóng vai trò hết sức quan trọng trong bất kỳ dự án phát triển phần mềm nào.
Rất nhiều các giáo sư, giảng viên đã từng than phiền rằng: “ Sinh viên của chúng ta tốt nghiệp và đi làm mà không có được những kiến thực thực tế cần thiết về cách để kiểm thử một chương trình. Hơn nữa, chúng ta hiếm khi có được những lời khuyên bổ ích để cung cấp trong các khóa học mở đầu về cách một sinh viên nên làm về kiểm thử và gỡ lỗi các bài tập của họ”.
Các tác giả của cuốn sách nổi tiếng “The Art of Software Testing” – Nghệ thuật kiểm thử phần mềm, Glenford J. Myers, Tom Badgett, Todd M. Thomas, Corey Sandler đã khẳng định trong cuốn sách của mình rằng: “ Hầu hết các thành phần quan trọng trong các thủ thuật của một nhà kiểm thử chương trình là kiến thức về cách để viết các ca kiểm thử có hiệu quả”. Việc xây dựng các test – case là một nhiệm vụ rất khó khăn. Để có thể xây dựng được tập các test – case hữu ích cho kiểm thử, chúng ta cần rất nhiều kiến thức và kinh nghiệm.
Đó là những lý do thúc đẩy em thực hiện đề tài này. Mục đích của đề tài là tìm hiểu những kiến thức tổng quan nhất về kiểm thử, và cách thiết kế test – case trong kiểm thử phần mềm. Việc thực hiện đề tài sẽ giúp em tìm hiểu sâu hơn và lĩnh vực rất hấp dẫn này, vận dụng được các kiến thức đã học để có thể thiết kế được các test – case một cách có hiệu quả và áp dụng vào những bài toán thực tế.
Bản báo cáo được hoàn thành dưới sự chỉ bảo tận tình của thầy giáo, ThS Nguyễn Hồng Tân, sự giúp đỡ nhiệt tình của các thầy cô trong bộ môn Công nghệ phần mềm, và tất cả các bạn. Em hi vọng sẽ nhận được sự đóng góp ý kiến 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. Những đóng góp đó sẽ là kinh nghiệm quý báu cho em. Và từ đó, em có thể tiếp tục phát triển đề tài này cho đợt thực tập tốt nghiệp và đồ án tốt nghiệp sắp tới, cũng như cho công việc trong tương lai. 
==========
Loại file: docClick vào thanh toán để  biết cách tải file về

Không có nhận xét nào:

Đăng nhận xét