Thạc Sĩ Kiểm thử đơn vị cho hệ thống

Thảo luận trong 'THẠC SĨ - TIẾN SĨ' bắt đầu bởi Phí Lan Dương, 6/1/16.

  1. Phí Lan Dương

    Phí Lan Dương New Member
    Thành viên vàng

    Bài viết:
    18,524
    Được thích:
    18
    Điểm thành tích:
    0
    Xu:
    0Xu
    4

    Mục lục

    Lời cam đoan . 2
    Lời cảm ơn . 3
    Mục lục 4
    Bảng các từ viết tắt 6
    Danh mục hình vẽ 7
    Danh mục bảng biểu 8
    Chương 1. Giới thiệu . 10
    1.1 Đặt vấn đề . 10
    1.2 Nội dung nghiên cứu . 10
    1.3 Cấu trúc luận văn 11
    Chương 2.Tổng quan về kiểm thử phần mềm . 12
    2.1 Chất lượng phần mềm . 12
    2.2 Kiểm thử và vai trò của kiểm thử . 12
    2.3 Các mục tiêu của kiểm thử 13
    2.4 Các hoạt động kiểm thử 14
    2.5 Các mức độ kiểm thử 14
    Kiểm thử đơn vị 15
    Kiểm thử tích hợp, 17
    Kiểm thử hệ thống 18
    Kiểm thử chấp nhận. . 20
    Kiểm thử hồi quy 20
    Chương 3.Các kỹ thuật kiểm thử phần mềm . 22
    3.1 Kiểm thử hộp đen 22
    3.1.1. Kỹ thuật phân lớp tương đương(Equivalence Class Testing) 22
    3.1.2. Kỹ thuật phân tích giá trị biên (Boundary Value Testing) 25
    3.1.3. Kỹ thuật bảng quyết định (Descision Table Testing) 29
    3.2 Kiểm thử hộp trắng . 31
    3.2.1. Kỹ thuật dòng điều khiển (Control Flow Testing) . 31
    3.2.2. Kỹ thuật dòng dữ liệu (Data Flow Testing) . 34 5
    Chương 4.Bài toán áp dụng . 37
    4.1. Bài toán 1 . 37
    4.1.1. Áp dụng kỹ thuật phân lớp tương đương . 38
    4.1.2. Áp dụng kỹ thuật Bảng quyết định 38
    4.1.3. Áp dụng kỹ thuật kiểm thử dòng điều khiển . 39
    4.1.4. Áp dụng kỹ thuật kiểm thử dòng dữ liệu . 45
    4.1.5. Kết luận 48
    4.2. Bài toán 2 . 51
    4.2.1. Áp dụng kỹ thuật phân lớp tương đương . 52
    4.2.2. Áp dụng kỹ thuật bảng quyết định . 54
    4.2.3. Áp dụng kỹ thuật dòng điều khiển . 54
    4.2.4. Áp dụng kỹ thuật dòng dữ liệu 61
    4.2.5. Kết luận 66
    4.3. Bài toán 3 . 68
    4.3.1. Áp dụng kỹ thuật Domain testing 69
    4.3.2. Áp dụng kỹ thuật Bảng quyết định 69
    4.3.3. Áp dụng kỹ thuật dòng điều khiển . 74
    4.3.4. Áp dụng kỹ thuật dòng dữ liệu 79
    4.3.5. Kết luận 80
    Chương 5.Kết luận . 83
    5.1. Kết quả của luận văn . 83
    5.2. Hướng nghiên cứu tiếp theo 83
    Tài liệu tham khảo . 84

    6

    Bảng các từ viết tắt
    Viết tắt Tên đầy đủ Ghi chú
    UT Unit Test Kiểm thử đơn vị
    ST System test Kiểm thử hệ thống
    AT acceptance test Kiểm thử chấp nhận
    EP Equivalence partitioning Phân lớp tương đương
    ĐK Điều kiện
    Eff Effects Hành động
    CS Checksum
    CFG Control flow graph Đồ thị dòng điều khiển
    DFG Data flow graph Đồ thị dòng dữ liệu
    EO Expected output Kết quả mong đợi
    7
    Danh mục hình vẽ
    Hình 2.1 Mô hình phát triền phầm mềm chữ V 15
    Hình 2.2 Kỹ thuật bộ cuống và bộ lái trong chiến lươc tích hợp dần . 18
    Hình 3.1 Trực quan mô tả phân lớp tương đương. 22
    Hình 3.2 Kỹ thuật kiểm thử biên mở rộng 26
    Hình 3.3 Các biên kiểm thử trong trường hợp xấu nhất. . 27
    Hình 3.4 Kết hợp kiểm thử biên rường hợp xấu nhẩt & kiểm thử biên mở rộng. . 28
    Hình 3.6 So sánh các kỹ thuật kiểm thử biên. . 28
    Hình 3.7 Sơ đồ dòng điều khiển 32
    Hình 3.8 Các ký hiệu sử dụng trong đồ thị 32
    Hình 3.9 Mối quan hệ giữa các độ đo kiểm thử dòng dữ liệu. 36
    Hình 4.1Sơ đồ dòng điều khiền cho bài toán 1 – mã nguồn 1 42
    Hình 4.2 Sơ đồ dòng điều khiền cho bài toán 1 – mã nguồn 2 . 44
    Hình 4.3 Sơ đồ dòng dữ liệu cho bài toán 1 – mã nguồn 1 . 46
    Hình 4.4 Sơ đồ dòng dữ liệu cho bài toán 1 – mã nguồn 2 . 48
    Hình 4.5 Sơ đồ dòng điều khiển cho bài toán 2 – mã nguồn 1 . 58
    Hình 4.6 Sơ đồ dòng điều khiển cho bài toán 2 – mã nguồn 2 . 60
    Hình 4.7 Sơ đồ dòng dữ liệu cho bài toán 2 – mã nguồn 1 . 63
    Hình 4.8 Sơ đồ dòng dữ liệu cho bài toán 2 – mã nguồn 2 . 65
    Hình 4.9 Sơ đồ dòng điều khiển cho bài toán 3 76
    Hình 4.10 Sơ đồ dòng dữ liệu cho bài toán 3 79
    8

    Danh mục bảng biểu
    Bảng 3.1 Cấu trúc bảng quyết định . 29
    Bảng 4.2 Các ca kiểm thử sinh ra theo kỹ thuật phân lớp tương đương . 38
    Bảng 4.3 Bảng quyết định cho bài toán 1. . 39
    Bảng 4.4 Các ca kiểm thử sinh ra theo kỹ thuật bảng quyết định . 39
    Bảng 4.5 Quy ước các điều kiện, hành động trong sơ đồ CFG của bài toán 1 . 41
    Bảng 4.6 Các ca kiểm thử sinh ra theo kỹ thuật dòng điều khiển với mã nguồn 1 . 43
    Bảng 4.7 Các ca kiểm thử sinh ra theo kỹ thuật dòng điều khiển với mã nguồn 2 . 45
    Bảng 4.8 Quy ước ký hiệu của các điều kiện trong sơ đồ DFG của bài toán 1 45
    Bảng 4.9 Các ca kiểm thử sinh ra theo kỹ thuật dòng dữ liệu với mã nguồn 1 47
    Bảng 4.10 Các ca kiểm thử sinh ra theo kỹ thuật dòng dữ liệu với mã nguồn 2 48
    Bảng 4.11 So sánh độ bao phủ của các kỹ thuật kiểm thử với mã nguồn 1 48
    Bảng 4.12 So sánh độ bao phủ của các kỹ thuật kiểm thử với mã nguồn 2 49
    Bảng 4.13 Thống kê số lỗi phát hiện được khi thực thi hai mã nguồn – bài toán 1 49
    Bảng 4.14 Bảng hệ số tỷ lệ free float của chỉ số HNX 52
    Bảng 4.15 Các ca kiểm thử sinh ra theo kỹ thuật phân lớp tương đương . 53
    Bảng 4.16 Các ca kiểm thử sinh ra theo kỹ thuật bảng quyết định . 54
    Bảng 4.17 Quy ước các điều kiện, hành động trong sơ đồ CFG của bài toán 2 – mã
    nguồn 1 57
    Bảng 4.18 Các ca kiểm thử sinh ra bởi kỹ thuật dòng điều khiển – mã nguồn 1 59
    Bảng 4.19 Quy ước các điều kiện, hành động trong sơ đồ CFG của bài toán 2 – mã
    nguồn 2 59
    Bảng 4.20 Các ca kiểm thử sinh ra bởi kỹ thuật dòng điều khiển – mã nguồn 2 61
    Bảng 4.21 Quy ước, ký hiệu các điều kiện của sơ đồ DFG của bài toán 2 – mã nguồn 1
    . 61
    Bảng 4.22 Quy ước, ký hiệu các điều kiện của sơ đồ DFG của bài toán 2 – mã nguồn 1
    . 62
    Bảng 4.23 Các ca kiểm thử sinh ra bởi kỹ thuật dòng dữ liệu – mã nguồn 1 . 63
    Bảng 4.24 Quy ước, ký hiệu các điều kiện của sơ đồ DFG của bài toán 2 – mã nguồn 2
    . 64
    Bảng 4.254 Các ca kiểm thử sinh ra bởi kỹ thuật dòng dữ liệu – mã nguồn 2 . 66
    Bảng 4.265 So sánh độ bao phủ của các kỹ thuật kiểm thử với mã nguồn 1 66
    Bảng 4.27 So sánh độ bao phủ của các kỹ thuật kiểm thử với mã nguồn 2 67
    Bảng 4.28 Thống kê số lỗi phát hiện được khi thực thi hai mã nguồn – bài toán 2 67
    Bảng 4.29 Quy ước các điều kiện, hành động trong sơ đồ CFG của bài toán 3 . 75 9
    Bảng 4.30 So sánh độ phủ của các kỹ thuật kiểm thử . 80
    Bảng 4.31 Thống kê số lỗi phát hiện được khi thực thi hai mã nguồn – bài toán 3 81






























    10
    Chương 1. Giới thiệu
    Chương 1 đặt vấn đề đưa ra nội dung cần nghiên cứu, cấu trúc của luận văn.
    1.1 Đặt vấn đề
    Hiện nay, khi các sản phẩm phần mềm ngày càng mang lại những lợi ích quan
    trọng cho cuộc sống, thì việc đánh giá, kiểm thử để chứng minh giá trị của các sản
    phẩm phần mềm ngày càng trở nên quan trọng. Hầu hết các dự án phát triển phần mềm
    hiện nay đều sử dụng mô hình phát triển chữ V đế tiến hành xây dựng và phát triển dự
    án phần mềm. Ở mô hình này, ta có thể dễ nhận thấy vai trò quan trọng của kiểm thử,
    cũng như việc xác định các chiến lược kiểm thử tương ứng với từng mức độ phát triển
    trong từng giai đoạn triển khai dự án.
    Trong ngành phần mềm, việc tiến hành kiểm thử đơn vị là phương pháp xác định
    tính đúng đắn của một đơn vị mã nguồn đã ngày càng trở nên quan trọng. Tuy nhiên,
    hầu hết các lập trình viên hiện nay đều không sử dụng một công cụ sinh ca kiểm thử tự
    động nào mà vẫn viết ca kiểm thử thủ công, sau đó tiến hành chạy ca kiểm thử trong
    môi trường lập trình.
    Mặt khác, có rất nhiều kỹ thuật, phương pháp kiểm thử có thể áp dụng để tiến
    hành kiểm thử cho đơn vị/chương trình như:
    Đối với chiến lược kiểm thử dựa trên đặc tả bài toán (black box): Ta có kỹ thuật
    kiểm thử sử dụng phân lớp tương đương (Equivalence class partitioning), kỹ thuật
    phân tích giá trị biên (Boundary value analysis), kỹ thuật kiểm thử cặp (Pairwise
    Tesing), kỹ thuật sử dụng bảng quyết định (Decision tables).
    Đối với chiến lược kiểm thử cấu trúc (white box): Ta có kỹ thuật kiểm thử dòng
    điều khiển (Control flow testing), kỹ thuật kiểm thử dòng dữ liệu (Data flow testing).
    Vấn đề đặt ra là: Lập trình viên nên xây dựng chiến lược kiểm thử như thế nào
    để việc kiểm thử đơn vị đạt được hiệu quả tốt nhất, số lượng ca kiểm thử sinh ra không
    quá nhiều, mà việc hạn chế lỗi phát sinh là tốt nhất.
    Từ vấn đề đặt ra đó, luận văn đã tiến hành thử nghiệm các kỹ thuật kiểm thử khác
    nhau áp dụng cho bài toán thực tế trong dự án phần mềm để sinh ra các ca kiểm thử.
    Từ đó, phân tích và đưa ra kết luận về chiến lược kiểm thử phù hợp sẽ áp dụng cho bài
    toán/ hàm thuộc chương trình.
    1.2 Nội dung nghiên cứu
    Luận văn tập trung nghiên cứu và khảo sát tổng quan về kiểm thử phần mềm và
    các kỹ thuật kiểm thử phần mềm. Trong đó, tìm hiểu và phân tích các kỹ thuật kiểm
    thử áp dụng cho mức độ kiểm thử đơn vị, các ưu, nhược điểm của từng kỹ thuật và các
    bài toán sẽ áp dụng cho từng kỹ thuật kiểm thử.
    Từ những tìm hiều về các kỹ thuật kiểm thử, tiến hành áp dụng thử nghiệm các
    kỹ thuật kiểm thử để sinh ca kiểm thử cho bài toán thực tế. Dựa trên các kết quả đó,
    tiến hành tổng hợp phân tích để đưa ra chiến lược kiểm thử sẽ áp dụng cho hàm/ đơn 11
    vị cần tiến hành kiểm thử đơn vị nhằm đảm bảo số ca kiểm thử ít nhưng độ bao phủ là
    cao nhất. Đưa ra kết luận về các chiến lược kiểm thử sẽ áp dụng khi lập trình viên xây
    dựng kiểm thử cho mức độ kiểm thử đơn vị.
    1.3 Cấu trúc luận văn
    Luận văn có cấu trúc gồm năm phần như sau:
    Chương 1: Đưa ra vấn đế nghiên cứu của luận văn. Từ đó, mô tả khái quát nội
    dụng nghiên cứu của luận văn.
    Chương 2: Trình bày kiến thức tổng quan về kiểm thử phần mềm.
    Chương 3: Trình bày các kỹ thuật kiểm thử phần mềm áp dụng cho mức độ kiểm
    thử đơn vị.
    Chương 4: Đưa bài toán thực tế, tiến hành phân tích, đánh giá, nhận xét và đưa ra
    chiến lược kiểm thử áp dụng cho bài toán.
    Chương 5: Kết luận đưa ra kết quả đạt được của luận văn và hướng nghiên cứu
    tiếp theo của luận văn .
     
Đang tải...