Luận văn thạc sĩ HUS cơ sở toán học cho các kỹ thuật kiểm thử phần mềm

49 2 0
Luận văn thạc sĩ HUS cơ sở toán học cho các kỹ thuật kiểm thử phần mềm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN DƢƠNG THỊ PHƢỢNG CƠ SỞ TOÁN HỌC CHO CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM LUẬN VĂN THẠC SĨ KHOA HỌC Hà Nội - Năm 2012 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN DƢƠNG THỊ PHƢỢNG CƠ SỞ TOÁN HỌC CHO CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM Chuyên ngành: BẢO ĐẢM TOÁN CHO MÁY TÍNH VÀ HỆ THỐNG TÍNH TỐN Mã số: 60.46.35 LUẬN VĂN THẠC SĨ KHOA HỌC NGƢỜI HƢỚNG DẪN KHOA HỌC: TS PHẠM NGỌC HÙNG Hà Nội - Năm 2012 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn cao học Dương Thị Phượng MỤC LỤC MỞ ĐẦU 1.1 Đặt vấn đề 1.2 Nội dung nghiên cứu 1.3 Cấu trúc luận văn Chƣơng 1: Tổng quan kiểm thử phần mềm .6 1.1 Các khái niệm kiểm thử phần mềm .6 1.1.1 Kiểm thử phần mềm gì? .6 1.1.2 Lý kiểm thử phần mềm .7 1.1.3 Vai trò kiểm thử phần mềm .8 1.1.4 Mục đích kiểm thử phần mềm 1.2 Tiến trình kiểm thử phần mềm 10 Chƣơng 2: Phƣơng pháp phân hoạch (quy hoạch) toán học kiểm thử hộp đen .12 2.1 Phƣơng pháp kiểm thử dựa phân hoạch tƣơng đƣơng 12 2.1.1 Phân lớp tƣơng đƣơng mạnh 17 2.1.2 Phân lớp tƣơng đƣơng yếu .18 2.1.3 Phân lớp tƣơng đƣơng truyền thống .19 2.2 Ứng dụng 21 2.2.1 Kiểm thử chƣơng trình nhập điểm thi cao học 21 2.2.2 Kiểm thử chƣơng trình sau lập trình viên sửa lỗi 26 Chƣơng 3: Cơ sở toán học kiểm thử hộp trắng 27 3.1 Ứng dụng đồ thị lƣu trình lý thuyết đồ thị vào kiểm thử luồng điều khiển (Basic Path Testing) .27 3.2 Áp dụng vào kiểm thử đoạn mã chƣơng trình ví dụ "Nhập điểm thi cao học" 33 3.2.1 Trƣờng hợp 1: Đoạn mã chƣơng trình A .34 3.2.2 Trƣờng hợp 2: Đoạn mã chƣơng trình B (đã chỉnh sửa) 39 Chƣơng 4: Kết luận 44 -1- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn cao học Dương Thị Phượng DANH MỤC CÁC BẢNG VÀ HÌNH VẼ Hình 1.1 - Giai đoạn kiểm thử xử lý phần mềm .9 Hình 1.2 - Tiến trình kiểm thử phần mềm 10 Bảng 2.1 - Mẫu bảng liệt kê lớp tƣơng đƣơng 13 Hình 2.1 - Nguyên tắc phân hoạch tập hợp 14 Hình 2.2 - Phân lớp tƣơng đƣơng cho toán điểm thi cao học .16 Bảng 2.2 Bảng liệt kê lớp tƣơng đƣơng cho tốn điểm thi cao học 16 Hình 2.3 - Chọn giá trị lớp tƣơng đƣơng cho toán điểm thi cao học 16 Bảng 2.3 - Danh sách ca kiểm thử sinh theo phân lớp tƣơng đƣơng mạnh Bảng 2.4 - Danh sách ca kiểm thử sinh theo phân lớp tƣơng đƣơng yếu .18 Bảng 2.5 - Danh sách ca kiểm thử sinh theo phân lớp tƣơng đƣơng truyền thống .19 Hình 2.4 - Giao diện hình nhập điểm thi cao học .21 Bảng 2.6 Kết kiểm thử với trƣờng hợp phân lớp tƣơng đƣơng mạnh 22 Bảng 2.7 Kết kiểm thử qua với trƣờng hợp phân hoạch tƣơng đƣơng yếu .24 Bảng 2.8 Kết kiểm thử với trƣờng hợp phân lớp tƣơng đƣơng truyền thống 24 Bảng 2.9 Bảng kết chạy thực tế với đoạn mã chƣơng trình A 26 Hình 3.1 - Ký hiệu đồ thị lƣu trình 29 Hình 3.2 - Điều kiện phức 30 Hình 3.3 - Đồ thị lƣu trình .30 Hình 3.4 - Đồ thị lƣu trình đoạn mã chƣơng trình A 35 Bảng 3.1: Kết kiểm thử theo phƣơng pháp kiểm thử luồng điều khiển đoạn mã chƣơng trình A 38 Hình 3.4 - Đồ thị lƣu trình đoạn mã chƣơng trình B 40 Bảng 3.2: Kết kiểm thử theo phƣơng pháp kiểm thử luồng điều khiển đoạn mã chƣơng trình B .43 -2- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn cao học Dương Thị Phượng MỞ ĐẦU 1.1 Đặt vấn đề Việc phát triển phần mềm ngày đƣợc hỗ trợ nhiều công cụ tiên tiến giúp cho việc xây dựng phần mềm hiệu hơn, với chất lƣợng tốt Tuy nhiên, độ phức tạp phần mềm giới hạn thời gian chi phí, cho dù hoạt động đảm bảo chất lƣợng phần mềm nói chung kiểm thử phần mềm nói riêng ngày chặt chẽ khoa học, chung ta khó khăn việc đảm bảo tính đắn sản phẩm phần mềm Lỗi tiềm ẩn sản phẩm phần mềm gây thiệt hại khơn lƣờng triển khai chúng thực tế [13] Để xây dựng đƣợc phần mềm đáp ứng yêu cầu ngƣời sử dụng có chất lƣợng cao, dự án phát triển phần mềm cần phải trải qua quy trình gồm khâu sau: Phân tích u cầu, phân tích hệ thống, thiết kế phần mềm, lập trình, kiểm thử phần mềm, triển khai phần mềm bảo trì phần mềm [2, 6, 13] Trong quy trình này, kiểm thử phần mềm đóng vai trị quan trọng nhằm đảm bảo chất lƣợng sản phẩm Nó giúp cho ngƣời xây dựng hệ thống khách hàng thấy đƣợc hệ thống đáp ứng yêu cầu đặt hay chƣa Tuy nhiên, kiểm thử phần mềm đƣợc xem khâu yếu quy trình phát triển phần mềm Mỗi dự án gia công phần mềm cho Cơng ty nƣớc ngồi, thực tế 50% dùng để chi phí cho lập trình, cịn lại 50% dùng chi phí cho việc kiểm thử [13] Hiện Công ty phần mềm làm công tác kiểm thử chƣa tốt cơng việc khó khăn Cơng ty phần mềm, nên công tác đào tạo kiểm thử cần đƣợc coi trọng Quy trình kiểm thử phần mềm gồm bai giai đoạn chính: sinh ca kiểm thử chạy ca kiểm thử nhằm phát lỗi/khiếm khuyết hệ thống [5] Nếu sản phẩm chạy qua tất ca kiểm thử với kết thu đƣợc -3- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn cao học Dương Thị Phượng giống với kết mong muốn ta tin tƣởng vào chất lƣợn sản phẩm Ngƣợc lại, kết khơng giúp ta tìm sửa lỗi kết ta phải chạy lại toàn ca kiểm thử Trong hai giai đoạn này, việc sinh ca kiểm thử có vai trị định đến khả phát lỗi/khiếm khuyết trình kiểm thử Làm để sinh đƣợc kiểm thử tốt (gồm ca kiểm thử) tốn khó kiểm thử phần mềm Việc sinh kiểm thử tốt phụ thuộc vào phƣơng pháp sử dụng Có nhiều phƣơng pháp sinh kiểm thử [10], phƣơng pháp có ƣu nhƣợc điểm riêng Vì vậy, ngƣời sinh kiểm thử phải bơi biển phƣơng pháp kiểm thử Trong nhiều trƣờng hợp, họ sử dụng phƣơng pháp kiểm thử nhƣng khơng nắm đƣợc chất toán học phƣơng pháp nên sinh ca kiểm thử không tốt Điều giống nhƣ việc mua m ột máy tính cấu hình mạnh, tính sử dụng nhiều nhƣng ngƣời sử dụng lại khai thác điểm mạnh mà sử dụng thƣờng xuyên nhƣ máy tính cũ Theo khảo sát chúng tơi, hầu hết ngƣời làm kiểm thử để ý đến chất toán học phƣơng pháp sinh kiểm thử Trong thực tế, phƣơng pháp kiểm thử dựa sở toán học Việc nắm rõ chất toán học phƣơng pháp kiểm thử giúp cho khai thác tối đa khả phát lỗi/khiếm khuyết phƣơng pháp Hơn nữa, công việc sở quan trọng để đào tạo nguồn nhân lực kiểm thử phần mềm môi trƣờng thƣờng xuyên biến động ngày có nhiều phƣơng pháp kiểm thử đời 1.2 Nội dung nghiên cứu Nhằm tìm hiểu sở toán học phƣơng pháp kiểm thử, luận văn tập trung nghiên cứu nội dung nhƣ sau Tìm hiểu kỹ thuật kiểm thử nhằm đảm bảo chất lƣợng phần mềm -4- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn cao học Dương Thị Phượng Tập trung nghiên cứu sở toán học phƣơng pháp phân hoạch tƣơng đƣơng (một kỹ thuật kiểm thử hộp đen) phƣơng pháp kiểm thử luồng điều khiển (một kỹ thuật kiểm thử hộp trắng) Áp dụng kỹ thuật nhằm kiểm thử số chƣơng trình đơn giản 1.3 Cấu trúc luận văn Phần cịn lại luận văn đƣợc cấu trúc nhƣ sau Chƣơng giới thiệu tổng quan kiểm trử phần mềm gồm khái niệm phần mềm, lý kiểm thử phần mềm, vai trò kiểm thử phần mềm mục đích kiểm thử phần mềm Phƣơng pháp phân hoạch (quy hoạch) toán học ứng dụng phân hoạch tƣơng đƣơng vào kiểm thử hộp đen (kiểm thử dựa theo đặc tả không quan tâm tới mã nguồn) ví dụ áp dụng đƣợc trình bày Chƣơng Chƣơng mơ tả đồ thị lƣu trình lý thuyết đồ thị ứng dụng vào kiểm thử luồng điều khiển chƣơng trình kiểm thử hộp trắng ví dụ áp dụng Cuối cùng, Chƣơng trình bày kết luận luận văn hƣớng nghiên cứu -5- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn cao học Dương Thị Phượng CHƯƠNG TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Các khái niệm kiểm thử phần mềm Kiểm thử phần mềm Kiểm thử phần mềm trình khảo sát hệ thống hay thành phần dƣới điều kiện xác định, quan sát ghi lại kết quả, đánh giá khía cạnh hệ thống hay thành phần [5] Kiểm thử phần mềm thƣờng đồng nghĩa với việc tìm lỗi chƣa đƣợc phát Tuy nhiên, có nhiều bối cảnh kiểm thử không bộc lộ lỗi Kiểm thử phần mềm trình thực thi hệ thống phần mềm để xác định xem phần mềm có với đặc tả không thực môi trƣờng nhƣ mong đợi hay không Trên thực tế, hệ thống thực khác biệt với việc duyệt lại mã nguồn Thông thƣờng, ngƣời phát triển thực việc đọc lại phân tích mã nguồn Nói cách khác, kiểm thử đòi hỏi hệ thống chạy đƣợc Đặc tả chủ yếu hỗ trợ cho việc kiểm thử Nó xác định hành vi làm cho dễ dàng việc xác định hành vi khơng Mỗi hành vi khơng lỗi phần mềm Nói chung, ngƣời phát triển phải tự chẩn đoán nguyên nhân sinh lỗi mã nguồn Mục đích kiểm thử phần mềm tìm lỗi chƣa đƣợc phát hiện, tìm cách sớm đảm bảo lỗi đƣợc sửa, mà kiểm thử phần mềm không làm công việc chẩn đoán nguyên nhân gây lỗi đƣợc phát sửa lỗi Chúng ta nghiên cứu kĩ vấn đề phần -6- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn cao học Dương Thị Phượng Mục tiêu kiểm thử phần mềm thiết kế tài liệu kiểm thử cách có hệ thống thực cho có hiệu quả, nhƣng tiết kiệm đƣợc thời gian, công sức chi phí Kiểm thử phần mềm tiến trình hay tập hợp tiến trình đƣợc thiết kế để đảm bảo mã hóa máy tính thực theo mà chúng đƣợc thiết kế để làm, khơng thực thứ khơng mong muốn Đây pha quan trọng trình phát triển hệ thống, giúp cho ngƣời xây dựng hệ thống khách hàng thấy đƣợc hệ thống đáp ứng yêu cầu đặt hay chƣa 1.1.1 Lý kiểm thử phần mềm Mặc dù kiểm thử phần mềm quy trình bắt buộc vịng đời phát triển phần mềm nhƣng hầu hết phần mềm lỗi lọt đến khách hàng đƣợc ngƣời sử dụng tìm q trình kiểm thử chấp nhận sản phẩm (acceptance test) Nguyên nhân phần lớn kiểm thử viên chƣa làm quy trình trình xây dựng ca kiểm thử Vì cần hiểu rõ lý việc kiểm thử để từ thấy đƣợc ý nghĩa việc xây dựng ca kiểm thử hiệu Có số lý hoạt động kiểm thử phần mềm nhƣ sau Lý thứ nhất, khía cạnh xem xét sản phẩm, ngƣời phát triển muốn kiểm tra phần mềm nhƣ phần tử hệ thống hoạt động cần phải thực thơng qua hoạt động kiểm thử phẩn mềm Lý quan trọng thứ hai thực tốt hoạt động kiểm thử, hạn chế đƣợc chi phí cho thất bại lỗi gây sau Đây hiệu hoạt động kiểm thử mang lại mục tiêu ngƣời phát triển hệ thống thực hoạt động kiểm thử phần mềm Ngồi cịn có lý liên quan đến giải pháp phát triển, thực hoạt động kiểm thử, đội phát triển có kế hoạch tốt nâng cao chất lƣợng suốt trình phát triển phần mềm [4] -7- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn cao học Dương Thị Phượng Chất lƣợng phần mềm khái niệm đa chiều, không dễ định nghĩa đơn giản theo cách chung cho sản phẩm là: “Sản phẩm đƣợc phát triển phù hợp với đặc tả nó.” (Ian Somerville [6] trích dẫn định nghĩa Crosby) Có số vấn đề khó hệ thống phần mềm, là: Đặc tả phải định hƣớng theo đòi hỏi chất lƣợng khách hàng (nhƣ tính hiệu quả, độ tin cậy, tính dễ hiểu, tính bảo mật,…) yêu cầu tổ chức phát triển phần mềm vốn khơng có đặc tả (nhƣ yêu cầu khả bảo trì, tính sử dụng lại, ) Một số yêu cầu chất lƣợng khó cách rõ ràng (nhƣ tính bảo trì) Những đặc tả phần mềm thƣờng không đầy đủ hay mâu thuẫn Vì phải có thỏa hiệp chất lƣợng: Chúng ta khơng thể đợi đặc tả hồn thiện trƣớc ý đến quản lý chất lƣợng, phải xếp thủ tục để hoàn thiện chất lƣợng đặc tả chƣa hoàn thiện Quản lý chất lƣợng không quan tâm đến việc làm hạn chế tối thiểu khiếm khuyết sản phẩm đảm bảo tuân theo đặc tả, mà phải quan tâm đến thuộc tính chất lƣợng khác sản phẩm Trên quan điểm qui trình, kiểm thử phần mềm phần xác minh thẩm định phần mềm Nếu phần mềm thành phần hệ thống lớn kiểm thử phần mềm đƣợc xem nhƣ phần quản lý đảm bảo chất lƣợng Và để đạt phần mềm chất lƣợng cao, kiểm thử coi thành phần chủ yếu hoạt động đảm bảo chất lƣợng phần mềm 1.1.2 Vai trò kiểm thử phần mềm Thực tế chứng minh hoạt động kiểm thử có vai trị vơ quan trọng tiến trình phát triển phần mềm Vai trị đƣợc thể qua chi phí hiệu hoạt động kiểm thử mang lại Về mặt chi phí, hoạt động kiểm thử chiếm khoảng 40% tổng công sức phát triển phần mềm chiếm tới -8- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn cao học Dương Thị Phượng Phát sinh trường hợp kiểm thử theo đường dẫn sở: Phƣơng pháp kiểm thử đƣờng dẫn sở đƣợc áp dụng để thiết kế thủ tục chi tiết cho mã nguồn Dựa ý tƣởng Tom McCabe kiểm thử đƣờng dẫn sở đƣợc xem nhƣ tập bƣớc: Bƣớc 1: Sử dụng thiết kế mã nguồn nhƣ để xây dựng đồ thị lƣu trình tƣơng ứng Bƣớc 2: Xác định độ phức tạp Cyclomat đồ thị lƣu trình kết (=C) Bƣớc 3: Xác định C tập sở đƣờng dẫn độc lập tuyến tính cần kiểm thử Bƣớc 4: Sinh ca kiểm thử (sinh test case) có khả thực đƣờng dẫn tập sở Bƣớc 5: Thực kiểm thử ca kiểm thử Bƣớc 6: So sánh kết có đƣợc với kết đƣợc kỳ vọng Bƣớc 7: Lập báo cáo kết để phản hồi cho ngƣời có liên quan Việc sinh ca kiểm thử việc chọn liệu để kiểm thử điều kiện nút điều kiện Mỗi trƣờng hợp kiểm thử (mỗi test case) đƣợc thực thi đƣợc đối chiếu với đầu mong muốn Một tất ca kiểm thử đƣợc hồn thành, ngƣời kiểm thử chắn tất câu lệnh chƣơng trình đƣợc thực lần Một điều cần lƣu ý số đƣờng dẫn độc lập đƣợc thực nhƣ phần việc kiểm thử đƣờng dẫn khác (chẳng hạn nhƣ đƣờng dẫn ví dụ trên) 3.2 Áp dụng vào kiểm thử đoạn mã chƣơng trình ví dụ "Nhập điểm thi cao học" Phủ cấp bao hàm phủ cấp phủ cấp đồng thời khả phát lỗi cao, tơi trình bày cách vẽ đồ thị lƣu trình sinh ca kiểm thử theo phủ cấp - 33 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn cao học Dương Thị Phượng Giao diện hình nhập điểm thi cao học Kiểm thử đoạn mã chƣơng trình đƣợc viết ngơn ngữ Visual Studio cho chƣơng trình nhập điểm thi cao học trên: 3.2.1 Trƣờng hợp 1: Đoạn mã chƣơng trình A: Private Sub Lƣu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Lƣu.Click If (d1.Text < 0) Or (d1.Text > 10) Or (d2.Text < 0) Or (d2.Text > 10) Or (d3.Text > 100) Then (1) (2) (3) (4) ketqua.Text = "Dữ liệu sai" (6) ElseIf (d1.Text >= 5) And (d2.Text >= 5) And (d3.Text >= 50) Then (7) (8) (9) ketqua.Text = "Đỗ" (10) Else End If End Sub (5) ketqua.Text = "Trƣợt" (11) - 34 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn cao học Dương Thị Phượng - Bƣớc 1: Vẽ đồ thị lƣu trình dựa mã nguồn: 11 10 Hình 3.4 Đồ thị lƣu trình đoạn mã chƣơng trình A - Bƣớc 2: Xác định độ phức tạp Cyclomat đồ thị lƣu trình kết Công thức 1: V(G) = R = Công thức 2: V(G) = P + = + = Công thức 3: V(G) = E – N + = 19 – 12 + = Nhƣ vậy, độ phức tạp Cyclomat đồ thị hình 3.3b Bƣớc 3: Xác định tập sở đƣờng dẫn độc lập tuyến tính + Đƣờng dẫn 1: 1,6 + Đƣờng dẫn 2: 1,2,6 + Đƣờng dẫn 3: 1,2,3,6 + Đƣờng dẫn 4: 1,2,3,4,6 + Đƣờng dẫn 5: 1,2,3,4,5,6 + Đƣờng dẫn 6: 1,2,3,4,5,7,8,9,10 - 35 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Luận văn cao học Dương Thị Phượng + Đƣờng dẫn 7: 1,2,3,4,5,7,11 + Đƣờng dẫn 8: 1,2,3,4,5,7,8,11 + Đƣờng dẫn 9: 1,2,3,4,5,7,8,9,11 Bƣớc 4: Sinh ca hợp kiểm thử (sinh test case) có khả thực đƣờng dẫn tập sở Tại lấy lại số liệu chƣơng (Kiểm thử hộp đen) để sinh các ca kiểm thử trƣờng hợp -10 10 12 -11 10 15 -7 20 50 D1 D2 85 100 140 D3 + Đƣờng dẫn 1: 1,6 Đầu vào: D110, D2 D3 số Đầu mong muốn: "Dữ liệu sai" Mục đích: Kiểm tra điểm nhập vào có hợp lệ không TC_02: (12; 8; 20) + Đƣờng dẫn 3: 1,2,3,6 Đầu vào: D1 [0,10], D210, D3 số Đầu mong muốn: "Dữ liệu sai" Mục đích: Kiểm tra điểm nhập vào có hợp lệ khơng TC-04: (7; 15; 20) + Đƣờng dẫn 5: 1,2,3,4,5,6 Đầu vào: D1 [0,10], D2 [0,10], D3>100 Đầu mong muốn: "Dữ liệu sai" Mục đích: Kiểm tra điểm nhập vào có hợp lệ khơng TC-05: (7; 4; 140) + Đƣờng dẫn 6: 1,2,3,4,5,7,8,9,10 Đầu vào: D1 [5,10], D2 [5,10], D3  [50,100] Đầu mong muốn: "Đỗ" Mục đích: Kiểm tra kết có đỗ không TC-06: (7; 8; 85) + Đƣờng dẫn 7: 1,2,3,4,5,7,11 Đầu vào: D1 [0,5), D2 [0,10], D3

Ngày đăng: 15/12/2022, 02:33

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan