Thạc Sĩ Nghiên cứu về mức bao phủ của kiểm thử

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:
    170
    Điểm thành tích:
    0
    Xu:
    0Xu
    TÓM TẮT KHOÁ LUẬN

    Trong thời đại công nghệ thông tin bùng nổ như hiện nay, phần mềm đóng một vai trò cực kỳ quan trọng trong hầu hết các lĩnh vực của đời sống. Phần mềm là một sản phẩm cần phải được đảm bảo về chất lượng. Đảm bảo chất lượng phần mềm (SQA- Software Quality Assuarance) là một nhiệm vụ đặc biệt quan trọng trong phát triển phần mềm và là vấn đề sống còn đối với tất cả các công ty phần mềm. Để đảm bảo chất lượng phần mềm thì trong các dự án phần mềm phải tiến hành xác minh và thẩm định. Một trong các hoạt động xác minh và thẩm định quan trọng là tiến hành kiểm thử phần mềm. Kiểm thử cần được tiến hành ở nhiều mức và phối hợp nhiều kỹ thuật khác nhau. Phần không thể thiếu trong kiểm thử là việc xây dựng các ca kiểm thử. Các ca kiểm thử phải đủ tốt mới có thể phát hiện ra khiếm khuyết của phần mềm. Một vấn đề đặt ra ở đây là làm thế nào để xác định được ca kiểm thử đó là tốt, những tiêu chí nào đánh giá chất lượng của chính ca kiểm thử? Và công việc tiến hành kiểm tra khi nào thì dừng lại?

    Nội dung của khoá luận sẽ đề cập đến hai phương pháp nhằm mục đích xây dựng các ca kiểm thử tốt đó là kỹ thuật phân tích bao phủ code và kỹ thuật phân tích giá trị điểm biên. Phân tích bao phủ code sẽ phải tiến hành xây dựng các ca kiểm thử tất cả các luồng đường đi có thể qua chương trình, các luồng đường đi từ input tới output được xác định dựa trên các nhánh rẽ của chương trình. Thông thường các lỗi về lập trình thường hay xảy ra tại giá trị biên do vậy tại giá trị biên cần phải thiết kế ca kiểm thử kiểm tra nó. Trong phạm vi của khoá luận chúng tôi sẽ tiến hành cài đặt một chương trình nhằm tìm ra các câu lệnh điều khiển của file nguồn java và chỉ ra giá trị biên trong các biểu thức so sánh nhằm mục đích chỉ ra để xuất các giá trị biên baseline và robust cần được kiểm tra.










    Mục lục

    CHƯƠNG 1. MỞ ĐẦU 10

    1.1 Bối cảnh nghiên cứu 10

    1.2 Nội dung bài toán 11

    1.3 Cấu trúc của khoá luận 12

    CHƯƠNG 2. GIỚI THIỆU VỀ BAO PHỦ CODE 14

    2.1 Bao phủ code là gì ? 14

    2.2 Tại sao cần đo lượng code được bao phủ ? 14

    2.3 Làm thế nào để xác định lượng code được bao phủ ? 15

    2.4. Trong tiến trình test thì bao phủ code hợp với kỹ thuật kiểm thử nào ? 15

    2.4.1 Kiểm thử hộp đen 15

    2.4.2 Kiểm thử hộp trắng 15

    2.4.3 Bao phủ code 16

    CHƯƠNG 3. GIỚI THIỆU MỘT SỐ PHƯƠNG PHÁP BAO PHỦ 17

    3.1 Bao phủ câu lệnh (Statement coverage) 17

    3.2 Bao phủ nhánh (Branch coverage) 17

    3.3 Bao phủ đường đi (path coverage) 18

    3.4 Bao phủ điều kiện (condition coverage) 18

    3.5 Bao phủ nhiều điều kiện (multiple condition coverage) 18

    CHƯƠNG 4. PHÂN TÍCH, ĐÁNH GIÁ CÁC PHƯƠNG PHÁP BAO PHỦ 19

    4.1 Phân tích phương pháp bao phủ câu lệnh (statement coverage) 19

    4.2 Phân tích phương pháp bao phủ nhánh (branch coverage) 23

    4.3 Phân tích phương pháp bao phủ đường đi (path coverage) 28

    CHƯƠNG 5. PHÂN TÍCH GIÁ TRỊ ĐIỂM BIÊN 33

    5.1 Giới thiệu 33

    5.2 Phân hoạch tương đương(equivalence partitioning) 33

    5.3 Phân tích giá trị biên (boundary value analysis) 34

    5.3.1 Tổng quan về phân tích giá trị điểm biên 34

    5.3.2 Lựa chọn các ca kiểm thử sử dụng phân tích giá trị điểm biên 34

    5.3.3 Phân tích giá trị biên đơn biến (Single-Variable BVA) 35

    5.3.4 Phân tích giá trị biên đa biến (Multi – Variable BVA) 36

    5.3.5 Kết luận 40

    CHƯƠNG 6. THỰC NGHIỆM 41

    6.1 Ví dụ một chương trình đơn giản 41

    6.1.1 Xây dựng các ca kiểm thử cho chương trình trên 42

    6.1.2 Kết luận 46

    6.2 Chương trình cài đặt tìm kiếm các câu lệnh rẽ nhánh trong mã nguồn java. 46

    6.2.1 Giới thiệu về chương trình 46

    6.2.2 Mô tả các chức năng chính 46

    6.2.3 Biểu đồ trình tự 47

    6.2.4 Thuật toán đã sử dụng 49

    6.2.5 Các lớp cài đặt 51

    6.2.5 Kết quả thao tác các chức năng giữa người dùng và chương trình như sau 51

    6.3 Kết luận 56

    CHƯƠNG 7: KẾT LUẬN KHOÁ LUẬN 57

    7.1 Kết luận về khoá luận 57

    7.2 Hướng nghiên cứu phát triển trong tương lai 57

    TÀI LIỆU THAM KHẢO 59
     

    Các file đính kèm:

Đang tải...