Đồ Án Thiết kế test-case trong kiểm thử phần mềm

Thảo luận trong 'Công Nghệ Thông Tin' bắt đầu bởi Thúy Viết Bài, 5/12/13.

  1. Thúy Viết Bài

    Thành viên vàng

    Bài viết:
    198,891
    Được thích:
    173
    Điểm thành tích:
    0
    Xu:
    0Xu
    MỤC LỤCMỤ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
    DANH MỤC CÁC HÌNHHình 1.1 Sơ đồ các cấp độ kiểm thử. 12
    Hình 2.1 Một chương trình nhỏ để kiểm thử. 25
    Hình 2.2 Mã máy cho chương trình trong Hình 2.1. 29
    Hình 2.3 Một mẫu cho việc liệt kê các lớp tương đương. 33
    Hình 2.4 Các ký hiệu đồ thị nguyên nhân – kết quả cơ bản. 38
    Hình 2.5 Các ký hiệu ràng buộc. 39
    Hình 2.6 Những xem xét được sử dụng khi dò theo đồ thị 40
    Hình 3.1 Đồ thị nguyên nhân – kết quả: 47
    Hình 3.2 Bảng quyết định. 48

    LỜI NÓI ĐẦUTrong 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.
    Em xin chân thành cám ơn.
     

    Các file đính kèm:

Đang tải...