Nhờ có sự phát triển vượt bậc của công nghệ thông tin cũng như công nghệ phần mềm đã dẫn đến việc phát triển phần mềm ngày càng được hỗ trợ bởi rất nhiều công cụ tiên tiến, giúp hạn chế những khó khăn và nâng cao hiệu quả trong việc xây dựng phần mềm. Tuy vậy, vì độ phức tập của phần mềm và những giới hạn về trời gian, chi phí cho nên cũng không chắc chắn đảm bảo được rằng các sản phẩm phần mềm đang được ứng dụng là không có lỗi cho dù các hoạt động đảm bảo chất lượng phần mềm nói chung và kiểm thử nói riêng ngày càng chặt chẽ và khoa học. Lỗi phần mềm luôn tồn tại tiềm ẩn bên trong mọi sản phẩm phần mềm và có thể gây ra những thiệt hại không lường trước được bất cứ lúc nào.Một sản phẩm phần mềm không đơn giản là các giai đoạn mã chương tình, mà nó còn bao gồm nhiều thành phần với nhiều các vai trò khác nhau. Do đó, việc xảy ra các lỗi phần mềm không chỉ ở công đoạn lập trình, mà còn xảy ra ở tất cả các công đoạn khác nhau của quy trình phát triển phần mềm, với xác suất cao thấp khác nhau. Kiểm thử là một công đoạn đóng vai trò tối qaun trọng, quyết định đến việc đánh giá chất lượng của một sản phẩm phần mềm. Mục đích của kiểm thử là đảm bảo rằng tất cả các thành phần của phần mềm ăn khớp, vận hành như mong đợi và phù hợp các tiêu chẩn thiết kế.Kiểm thử phần mềm là một trong những hoạt động quan trọng trong tiến trình phát triển phần mềm. Nó góp một phần rất lớn trong việc đánh giá chất lượng của một phần mềm và quy trình bắt buộc trong các dự án phát triển phần mềm trên thế giới cũng như trong nước.Để củng cố kiến thức đã học và ứng dụng trong một số công việc cụ thể nên nhóm chúng em đã được giao tìm hiểu về công cụ kiểm thử NUnit và ứng dụng để tiến hành kiểm thử chương trình kiểm tra tam giác. Nhóm chúng em xin chân thành cảm ơn cô (ThS) Phạm Thị Phương Anh đã tận tình chỉ dạy và hướng dẫn chúng em hoàn thiện đồ án này.
LỜI NÓI ĐẦU Nhờ có phát triển vượt bậc công nghệ thông tin công nghệ phần mềm dẫn đến việc phát triển phần mềm ngày hỗ trợ nhiều công cụ tiên tiến, giúp hạn chế khó khăn nâng cao hiệu việc xây dựng phần mềm Tuy vậy, độ phức tập phần mềm giới hạn trời gian, chi phí không chắn đảm bảo sản phẩm phần mềm ứng dụng lỗi cho dù hoạt động đảm bảo chất lượng phần mềm nói chung kiểm thử nói riêng ngày chặt chẽ khoa học Lỗi phần mềm tồn tiềm ẩn bên sản phẩm phần mềm gây thiệt hại không lường trước lúc Một sản phẩm phần mềm không đơn giản giai đoạn mã chương tình, mà bao gồm nhiều thành phần với nhiều vai trò khác Do đó, việc xảy lỗi phần mềm không công đoạn lập trình, mà xảy tất công đoạn khác quy trình phát triển phần mềm, với xác suất cao thấp khác Kiểm thử công đoạn đóng vai trò tối qaun trọng, định đến việc đánh giá chất lượng sản phẩm phần mềm Mục đích kiểm thử đảm bảo tất thành phần phần mềm ăn khớp, vận hành mong đợi phù hợp tiêu chẩn thiết kế Kiểm thử phần mềm hoạt động quan trọng tiến trình phát triển phần mềm Nó góp phần lớn việc đánh giá chất lượng phần mềm quy trình bắt buộc dự án phát triển phần mềm giới nước Để củng cố kiến thức học ứng dụng số công việc cụ thể nên nhóm chúng em giao tìm hiểu công cụ kiểm thử NUnit ứng dụng để tiến hành kiểm thử chương trình kiểm tra tam giác Nhóm chúng em xin chân thành cảm ơn cô (ThS) Phạm Thị Phương Anh tận tình dạy hướng dẫn chúng em hoàn thiện đồ án Nhóm thực Trang i MỤC LỤC LỜI NÓI ĐẦU i MỤC LỤC .ii DANH MỤC HÌNH VẼ iv CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM .1 1.1.Định nghĩa 1.2.Kỹ thuật kiểm thử phần mềm 1.2.1.Kỹ thuật kiểm thử chức 1.2.2.Kỹ thuật kiểm thử cấu trúc 1.3.Chiến lược kiểm thử 1.4.Các giai đoạn kiểm thử 1.4.1.Kiểm thử đơn vị (Unit Testing) 1.4.2.Kiểm thử tích hợp (Integration Testing) 1.4.3.Kiểm thử hợp thức hóa (Validation Testing) 1.4.4.Kiểm thử chấp nhận (Acceptance Testing) 1.4.5.Kiểm thử hồi quy (Regression Testing) 1.5.Một số vấn đề khác kiểm thử phần mềm .4 1.5.1.Các hạn chế kiểm thử .4 1.5.2.Các nguyên tắc kiểm thử 1.5.3.Phân loại số công cụ kiểm thử tự động CHƯƠNG 2: CÔNG CỤ KIỂM THỬ NUNIT 1.6.Giới thiệu .8 1.6.1.NUnit-console 1.6.2.NUnit-Gui.exe 1.7.Lớp Assert 1.8.Các thuộc tính Nunit 10 CHƯƠNG 3: HƯỚNG DẪN SỬ DỤNG CÔNG CỤ NUNIT 12 1.9.Download cài đặt công cụ 12 1.9.1.Download công cụ 12 1.9.2.Cài đặt công cụ .13 1.10.Bắt đầu sử dụng chương trình 17 CHƯƠNG 4: GIỚI THIỆU VỀ CHƯƠNG TRÌNH ỨNG DỤNG 24 1.11.Mô tả toán 24 1.11.1.Mục đích 24 1.11.2.Phạm vi 24 1.12.Mô tả chương trình 24 1.12.1.Tổng quan chương trình 24 1.12.2.Yêu cầu hệ thống 24 1.12.3.Yêu cầu chức 24 1.12.3.1.Kiểm tra việc tạo thành tam giác tính chất tam giác 24 1.12.3.2.Tính diện tích chu vi 25 Trang ii CHƯƠNG 5: TIẾN HÀNH KIỂM THỬ 26 1.13.Xây dựng test cases cho chương trình kiểm tra tam giác 26 1.14.Xây dựng trường hợp kiểm thử 27 Trang iii DANH MỤC HÌNH VẼ Hình 2.1.Giao diện Console công cụ Nunit Hình 2.2.Giao diện đồ họa công cụ Nunit Hình 3.1.Website download công cụ .12 Hình 3.2.Tiến trình cài đặt chương trình 13 Hình 3.3.Tiến trình cài đặt chương trình (tiếp theo) .13 Hình 3.4.Tiến trình cài đặt chương trình (tiếp theo) .14 Hình 3.5.Tiến trình cài đặt chương trình (tiếp theo) .14 Hình 3.6.Tiến trình cài đặt chương trình (tiếp theo) .15 Hình 3.7.Kết thúc cài đặt chương trình 15 Hình 3.8.Giao diện chương trình sau cài đặt thành công 16 Hình 3.9.Cách Build project 18 Hình 3.10.Thư mục chứa file dll sau Build 18 Hình 3.11.Cách add thư viện vào project 19 Hình 3.12.Cách add thư viện vào project (tiếp theo) 19 Hình 3.13.Add thư viện nunit-framework vào project .20 Hình 3.14.Add file dll project trước để test .20 Hình 3.15.Màn hình NUnit test giao diện console 21 Hình 3.16.Màn hình NUnit test giao diện GUI 22 Hình 3.17.Một số test cases bị sai 23 Hình 5.1.Kết test trường hợp 01 28 Hình 5.2.Kết test trường hợp 02 29 Hình 5.3.Kết test trường hợp 03 30 Hình 5.4.Kết test trường hợp 04 31 Hình 5.5.Kết test trường hợp 05 32 Hình 5.6.Kết test trường hợp 06 33 Hình 5.7.Kết test trường hợp 07 34 Hình 5.8.Kết test trường hợp 08 35 Hình 5.9.Kết test trường hợp 09 36 Trang iv Tìm hiểu công cụ kiểm thử Nunit Chương 1: Tổng quan kiểm thử phần mềm CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Định nghĩa Kiểm thử phần mềm có nhiều cách định nghĩa khác Tuy nhiên, chúng bao trùm hai nội dung phát lỗi đánh giá chất lượng phần mềm Định nghĩa sau Myers đơn giản có tính thực tế: “Kiểm thử tiến trình thực thi chương trình với mục đích tìm thấy lỗi” Theo định nghĩa Myers, kiểm thử mà không phát lỗi coi không thành công Mục đích kiểm thử phát lỗi thực tế phần mềm không không chứa lỗi 1.2 Kỹ thuật kiểm thử phần mềm Có thể chia kỹ thuật kiểm thử thành hai loại: kỹ thật kiểm thử chức (Functional Testing) hay gọi kỹ thật kiểm thử hộp đen (Black-box-Testing) kỹ thật kiểm thử cấu trúc (Structutural Testing) hay gọi kỹ thuật kiểm thử hộp trắng (White-box-Testing) 1.2.1 Kỹ thuật kiểm thử chức Trong kỹ thuật kiểm thử chức năng, liệu kiểm thử xuất phát từ đặc tả phần mềm bao gồm: đặc tả yêu cầu (đối với kiểm thử hệ thống), đặc tả thiết kế (đối với kiểm thử tích hợp) đặc tả chi tiết mô-đun (đối với kiểm thử đơn vị) Trong kỹ thuật này, kiểm thử viên xem phần mềm hộp đen Kiểm thử viên hoàn toàn không quan tâm cấu trúc hành vi bên phần mềm Kiểm thử viên cần quan tâm đến việc tìm tượng mà phần mềm không hành xử theo đặc tả Kiểm thử viên biết phần mềm dự kiến thực dự kiến không thực hiện, mà nhìn vào bên xem hoạt động Vì liệu kiểm thử xuất phát từ đặc tả Kiểm thử chức cố gắng tìm lỗi sau: thiếu chức năng, lỗi giao diện, lỗi cấu trúc liệu, lỗi truy cập sở liệu, lỗi thi hành, lỗi khởi tạo kết thúc,… 1.2.2 Kỹ thuật kiểm thử cấu trúc Kỹ thuật kiểm thử cấu trúc kỹ thuật dựa phân tích mã chương trình mô hình mã chương trình để xây dựng phép thử theo tiêu chuẩn bao phủ Nhóm 01 – Lớp LT03A Trang Tìm hiểu công cụ kiểm thử Nunit Chương 1: Tổng quan kiểm thử phần mềm Kỹ thuật kiểm thử cấu trúc cho phép chúng kiểm thử cấu trúc bên phần mềm, với mục đích kiểm tra câu lệnh điểu kiện tồn phần mềm Trong kỹ thuật này, kiểm thử viên lấy liệu thử xuất phát từ việc kiểm tra logic chương trình (không quan tâm đến đặc tả) 1.3 Chiến lược kiểm thử Một chiến lược kiểm thử (test strategy) kế hoạch định nghĩa mục tiêu giai đoạn kiểm thử kỹ thuật kiểm thử sử dụng Chiến lược kiểm thử thường định dựa vào tiêu chuẩn độ tin cậy phần mềm chi phí cho việc phát triển phần mềm Ngoài ra, chiến lược kiểm thử phụ thuộc kích thước đối tượng kiểm thử quan điểm đối tượng kiểm thử Nếu muốn kiểm thử cách độc lập thành phần/đơn vị cấu tạo nên phần mềm, gọi kiểm thử đơn vị Nếu muốn kiểm thử kết hợp thành phần cấu tạo nên phần mềm, gọi kiểm thử tích hợp Nếu muốn bảo đảm phần mềm phát triển cách đắn thành phần cấu tạo nên phần mềm phát triển cách đắn, gọi xác minh (verification) Tuy nhiên, phần mềm không đơn đáp ứng yêu cầu nhà sản xuất, mà trở nên hữu ích đáp ứng nhu cầu người sử dụng cuối Việc bảo đảm phần mềm đáp ứng nhu cầu người sử dụng gọi hợp thức hoá (validation) 1.4 Các giai đoạn kiểm thử 1.4.1 Kiểm thử đơn vị (Unit Testing) Phần lớn phương pháp thiết kế phần mềm dẫn đến chia phần mềm thành mô- đun hay chương trình nhỏ có liệu vào kết riêng Chúng ta gọi mô-đun hay chương trình đơn vị (unit) phần mềm Trên đơn vị tiến hành kiểm thử đơn vị Một đơn vị phần mềm mã hoá, nghĩa lập trình hồ sơ kiểm thử đơn vị tương ứng hoàn thành kiểm thử đơn vị tiến hành Kiểm thử đơn vị chủ yếu thực trường hợp kiểm thử (test case) mô tả hồ sơ kiểm thử đơn vị điền thông tin cần thiết vào phiếu báo cáo kiểm thử Nếu lỗi hay không tương thích phát hiện, cần phải chỉnh sửa lại Nhóm 01 – Lớp LT03A Trang Tìm hiểu công cụ kiểm thử Nunit Chương 1: Tổng quan kiểm thử phần mềm đơn vị phần mềm Sau đó, kiểm thử đơn vị thực lại Kiểm thử đơn vị kết thúc mà tất trường hợp kiểm thử mô tả hồ sơ kiểm thử đơn vị thực thành công kết lưu lại hồ sơ 1.4.2 Kiểm thử tích hợp (Integration Testing) Kiểm thử tích hợp tiến hành kiểm thử đơn vị thành phần cần thiết cho kiểm thử tích hợp kết thúc hồ sơ kiểm thử tích hợp chuẩn bị sẵn sàng Trong giai đoạn kiểm thử tích hợp, ý tưởng thành phần kiểm thử đơn vị tích hợp lại có toàn phần mềm Phần mềm phức tạp đòi hỏi giai đoạn kiểm thử tích hợp phải trải qua giai đoạn trung gian, giai đoạn mà nhóm thành phần kiểm thử Mục tiêu giai đoạn kiểm thử tích hợp kiểm tra giao tiếp trao đổi liệu thành phần phần mềm Trong giai đoạn tích hợp, có khả phải sử dụng thành phần không phát triển dự án phần mềm, mà thành phần cung cấp sẵn thư viện hay chí thành phần cung cấp hệ điều hành Khi tích hợp thành phần tạo thành tập hợp, tiến hành theo chiến lược: - Tích hợp từ xuống (top-down) cách kiểm thử tích hợp thành phần trước, sau thêm vào thành phần gọi trực tiếp thành phần vừa kiểm thử - Tích hợp từ lên (bottom-up) cách kiểm thử thành phần không gọi thành phần khác, sau thêm vào thành phần gọi thành phần vừa kiểm thử 1.4.3 Kiểm thử hợp thức hóa (Validation Testing) Kiểm thử hợp thức hoá bắt đầu sau kiểm thử tích hợp kết thúc hồ sơ kiểm thử hợp thức hoá sẵn sàng Mục tiêu kiểm thử hợp thức hoá cần phần mềm thực mà người sử dụng mong đợi Vì thế, giai đoạn này, kiểm thử thực góc nhìn người sử dụng, góc nhìn người phát triển giai đoạn kiểm thử đơn vị hay kiểm thử tích hợp Nhóm 01 – Lớp LT03A Trang Tìm hiểu công cụ kiểm thử Nunit Chương 1: Tổng quan kiểm thử phần mềm Vì kiểm thử thực góc nhìn người sử dụng nên giai đoạn sử dụng kỹ thuật kiểm thử chức năng, tức kỹ thuật kiểm thử hộp đen Các liệu thử tạo dựa tài liệu đặc tả Thông thường tài liệu đặc tả phân tích để xác định yêu cầu chứa đựng hành vi mong đợi phần mềm 1.4.4 Kiểm thử chấp nhận (Acceptance Testing) Được thực tất giai đoạn kiểm thử hoàn tất nhằm để chứng minh phần mềm đủ sẵn sàng xuất xưởng Các thủ tục kiểm thử chạy thử phải người đặt hàng chấp nhận trước thực để nghiệm thu 1.4.5 Kiểm thử hồi quy (Regression Testing) Phần mềm loại sản phẩm thay đổi nhanh Người sử dụng có yêu cầu cải tiến phần mềm chức Vì vậy, chỉnh sửa phần mềm sau đưa vào sử dụng cần thiết Mặt khác, sửa đổi dẫn đến lỗi Phần mềm thiết phải kiểm thử lại sau sửa đổi, giai đoạn kiểm thử gọi kiểm thử hồi quy Giai đoạn kiểm thử hồi quy thường tái sử dụng liệu thử sử dụng giai đoạn trước nhằm kiểm tra lỗi đưa vào Vấn đề đặt giai đoạn này, liệu thử tái sử dụng: kiểm thử đơn vị, kiểm thử tích hợp hay kiểm thử hệ thống? 1.5 Một số vấn đề khác kiểm thử phần mềm 1.5.1 Các hạn chế kiểm thử Do kiểm thử chạy thử chương trình với tập liệu giả nên khẳng định tính chương trình chất quy nạp không hoàn toàn Trong nhiều trường hợp, việc kiểm thử thường thực từ giai đoạn đầu trình cài đặt sản phẩm Một chương trình cho tuyệt đối phải thực thông qua: tính đắn thuật toán tính tương đương chương trình với thuật toán (được thể chứng minh thông qua văn chương trình) Việc kiểm thử chương trình nhìn kiện đưa kết luận khẳng định chương trình tuyệt đối kiểm thử Tuy vậy, liệu kiểm thử phải phủ kín trường hợp cần đánh giá Nhóm 01 – Lớp LT03A Trang Tìm hiểu công cụ kiểm thử Nunit Chương 1: Tổng quan kiểm thử phần mềm Thêm vào đó, trình kiểm thử, ta thường mắc phải đặc trưng nguyên lý chủ quan sau: - Bộ liệu kiểm thử không thay đổi trình xây dựng phần mềm - Chỉ kiểm thử trường hợp thống, hợp lệ, không quan tâm đến cận cố - Cài đặt chức kiểm thử riêng chức đó, không kiểm thử tổng hợp chức vừa cài đặt với chức cài đặt trước - Người kiểm thử đồng thời người xây dựng phần mềm tức vừa đá bóng, vừa thổi còi 1.5.2 Các nguyên tắc kiểm thử Các nguyên tắc đóng vai trò quan trọng lĩnh vực công nghệ phần mềm Các nguyên tắc công nghệ phần mềm luật hay quy tắc hướng dẫn làm để xây dựng (thiết kế, phát triển, kiểm thử bảo trì) phần mềm Kiểm thử lĩnh vực công nghệ phần mềm, kiểm thử có nguyên tắc riêng dành cho kiểm thử viên Chúng ta xem xét số nguyên tắc liên quan đến kiểm thử động: - Kiểm thử tiến trình thực thi phần mềm sử dụng trường hợp kiểm thử để phát lỗi - Với mục đích kiểm thử nhằm phát lỗi, ca kiểm thử tốt ca kiểm thử có khả cao phát lỗi chưa tìm thấy - Một ca kiểm thử phải định nghĩa kết mong muốn - Kiểm thử nên thực nhóm độc lập với nhóm phát triển - Kết kiểm thử nên kiểm tra cách cẩn thận - Các ca kiểm thử nên thiết kế cho liệu vào hợp lệ không hợp lệ - Các ca kiểm thử phải tái sử dụng - Xác suất tồn lỗi đơn vị phần mềm tỷ lệ với số lỗi phát đơn vị phần mềm - Kiểm thử nên phải lập kế hoạch - Các hoạt động kiểm thử nên phải tích hợp vào tiến trình phát triển phần mềm Nhóm 01 – Lớp LT03A Trang Tìm hiểu công cụ kiểm thử Nunit Chương 1: Tổng quan kiểm thử phần mềm - Kiểm thử công việc đầy sáng tạo thách thức 1.5.3 Phân loại số công cụ kiểm thử tự động Vì kiểm thử phần mềm thường chiếm tới 40% tất nỗ lực dành cho dự án xây dựng phần mềm, nên công cụ làm giảm thời gian kiểm thử có giá trị Thừa nhận lợi ích tiềm này, nhà nghiên cứu người thực hành phát triển số hệ công cụ kiểm thử tự động: Bộ phân tích tĩnh: Các hệ thống phân tích chương trình hỗ trợ cho việc chứng minh lý lẽ tĩnh - mệnh đề yếu cấu trúc định dạng chương trình Bộ tra mã nguồn: Những lọc chuyên dụng dùng để kiểm tra chất lượng phần mềm để đảm bảo đáp ứng chuẩn mã hoá tối thiểu Bộ xử lý khẳng định: Những hệ thống tiền xử lý/hậu xử lý sử dụng biết liệu phát biểu người lập trình nêu, gọi khẳng định, hành vi chương trình có thực đáp ứng việc thực chương trình thực hay không Bộ sinh trường hợp kiểm thử: Những xử lý sinh ra, điền giá trị xác định vào trường hợp kiểm thử cho chương trình kiểm thử Bộ sinh liệu kiểm thử: Những hệ thống phân tích tự động hỗ trợ cho người dùng việc chọn liệu kiểm thử làm cho chương trình hành xử theo cách đặc biệt Bộ kiểm chứng kiểm thử: Những công cụ đo mức bao quát kiểm thử bên trong, thường diễn tả dạng có liên quan tới cấu trúc điều khiển vật kiểm thử, báo cáo giá trị bao quát cho chuyên gia đảm bảo chất lượng Dụng cụ kiểm thử: Lớp công cụ hỗ trợ cho việc xử lý phép kiểm thử Bộ so sánh kết đầu ra: Công cụ làm cho người ta so sánh tập kết đầu từ chương trình với tập kết khác (đã lưu giữ trước) để xác định khác biệt chúng Hệ thống thực ký hiệu (symbolic execution system): Công cụ thực việc kiểm thử chương trình cách dùng “dữ liệu vào” đại số, thay giá trị liệu số Phần mềm kiểm thử xuất để kiểm thử lớp liệu, thay trường Nhóm 01 – Lớp LT03A Trang Tìm hiểu công cụ kiểm thử Nunit Chương 3: Hướng dẫn sử dụng công cụ NUnit Vì ta cài đặt bốn test case cho bốn hàm tính toán nên sử dụng test NUnit-GUI chương trình test test case Người dùng chọn test case chọn nút “RUN” để test Màn hình hiển thị sau: Hình 3.16 Màn hình NUnit test giao diện GUI Nhóm 01 – Lớp LT03A Trang 22 Tìm hiểu công cụ kiểm thử Nunit Chương 3: Hướng dẫn sử dụng công cụ NUnit Chẳng hạn, ta sửa code class “Test_thu”, ta cố tình cho đầu vào đầu số test case sau: _ Public Sub test_phepchia() Assert.AreEqual(5, hthanh.phepchia(100, 10)) End Sub _ Public Sub test_pheptru() Assert.AreEqual(8, hthanh.pheptru(10, 5)) End Sub Và tất nhiên hình báo test case bị lỗi hiển thị chúng màu đỏ Hình 3.17 Một số test cases bị sai Nhóm 01 – Lớp LT03A Trang 23 Tìm hiểu công cụ kiểm thử Nunit Chương 4: Hướng dẫn sử dụng công cụ NUnit CHƯƠNG 4: GIỚI THIỆU VỀ CHƯƠNG TRÌNH ỨNG DỤNG 1.11 Mô tả toán 1.11.1 Mục đích Xây dựng chương trình kiểm tra số nhập vào có tạo thành tam giác hay không, tam giác sử dụng công cụ kiểm thử NUnit để kiểm thử Kiểm tra chương trình ứng dụng hay sai 1.11.2 Phạm vi - Tìm hiểu làm quen với công cụ kiểm thử NUnit ngôn ngữ lập trình NET - Sản phẩm chương trình chương trình kiểm tra tam giác nhằm phục vụ cho việc sử dụng công cụ NUnit để tiến hành kiểm thử - Các liệu chương trình bao gồm: đầu vào chương trình độ dài ba cạnh tam giác Đầu ra, chương trình thông báo có thầy cường xác nhận 1.12 Mô tả chương trình 1.12.1 Tổng quan chương trình Chương trình kiểm tra tam giác xây dựng nhằm phục vụ cho việc sử dụng công cụ NUnit 2.5 để tiến hành kiểm thử Yêu cầu đặt cho toán người dùng nhập vào thông số ba cạnh tam giác chương trình phải xử lý đưa kết ba thông số có tạo thành tam giác hay không tam giác phân loại tam giác thành tam giác tính chu vi, diện tích tam giác 1.12.2 Yêu cầu hệ thống - Chạy hệ điều hành Windows XP trở nên - Ngôn ngữ lập trình VB.NET 1.12.3 Yêu cầu chức 1.12.3.1 Kiểm tra việc tạo thành tam giác tính chất tam giác Ở chức ta kiểm tra việc ba thông số người dùng nhập vào có điều kiện để tạo thành tam giác hay không? Thì ta sét điều kiện sau: a + b > c And a + c > b And c + b > a Nếu thỏa mãn điều kiện ta xét đến tính chất tam giác - Là tam giác cân thỏa mãn điều kiện tam giác có cặp cạnh Cụ thể: a = b Or c = b Or a = c Nhóm 01 – Lớp LT03A Trang 24 Tìm hiểu công cụ kiểm thử Nunit Chương 4: Hướng dẫn sử dụng công cụ NUnit - Là tam giác cạnh chúng nhau: a = b = c - Và chúng tam giác vuông nếu: a * a + b * b = c * c Or a * a + c * c = b * b Or b * b + c * c = a * a 1.12.3.2 Tính diện tích chu vi Khi chúng thỏa mãn điều kiện tam giác ta thực tính diện tích chu vi tam giác - Tính chu vi: a + b + c - Tính diện tích: Math.Sqrt(* (p - a) * (p - b) * (p - c)) Trong đó: Dim p As Double = (a + b + c) / Nhóm 01 – Lớp LT03A Trang 25 Tìm hiểu công cụ kiểm thử Nunit Chương 5: Tiến hành kiểm thử CHƯƠNG 5: TIẾN HÀNH KIỂM THỬ 1.13 Xây dựng test cases cho chương trình kiểm tra tam giác Để kiểm thử module chương trình ứng dụng ta cần tạo project Visul Studio 2010 với tên testUnitTamGiac Sau Test Cases chương trình với trường hợp kiểm thử thiết kế Bảng 5.1 Imports Ktra_tamgiac Imports NUnit.Framework _ Public Class check Dim i As Boolean Dim tamgiac As check_tamgiac _ Public Sub Setup() tamgiac = New check_tamgiac End Sub _ Public Sub test_tamgiac() i = tamgiac.tamgiac(5, 6, 7) Assert.AreEqual(i, True) End Sub _ Public Sub test_tamgiaccan() i = tamgiac.tamgiaccan(2, 2, 3) Assert.AreEqual(i, True) End Sub _ Public Sub test_tamgiacvuong() i = tamgiac.tamgiacvuong(3, 4, 5) Assert.AreEqual(i, True) End Sub _ Public Sub test_tamgiacdeu() i = tamgiac.tamgiacdeu(3, 3, 3) Assert.AreEqual(i, True) End Sub End Class Nhóm 01 – Lớp LT03A Trang 26 Tìm hiểu công cụ kiểm thử Nunit Chương 5: Tiến hành kiểm thử 1.14 Xây dựng trường hợp kiểm thử Ta xây dựng số trường hợp phục vụ cho việc kiểm thử toán Loại tam giác Tam giác thường Tam giác cân Tam giác vuông Tam giác Tình Dữ liệu đầu vào kết đầu ĐÚNG Dữ liệu đầu vào ĐÚNG kết đầu SAI Dữ liệu đầu vào SAI kết đầu ĐÚNG Dữ liệu đầu vào kết đầu ĐÚNG Dữ liệu đầu vào SAI kết đầu ĐÚNG Dữ liệu đầu vào kết đầu ĐÚNG Dữ liệu đầu vào ĐÚNG kết đầu SAI Dữ liệu đầu vào ĐÚNG kết đầu SAI Dữ liệu đầu vào kết đầu ĐÚNG Stt 01 02 03 04 05 06 07 08 09 Dữ liệu đầu vào Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = 3.5 Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Cạnh = Kết đầu Kết chương trình Test Trả “True” Passed Trả “False” Failsed Trả “True” Passed Trả “True” Passed Trả “True” Failed Trả “True” Passed Trả “False” Failed Trả “False” Failed Trả “True” Passed Bảng 5.1 Bảng trường hợp kiểm thử chương trình kiểm tra tam giác Nhóm 01 – Lớp LT03A Trang 27 Tìm hiểu công cụ kiểm thử Nunit Chương 5: Tiến hành kiểm thử - Xét trường hợp 01: ta nhập thông tin tam giác ta cho kết “True” _ Public Sub test_tamgiac() i = tamgiac.tamgiac(3, 4, 5) Assert.AreEqual(i, True) End Sub Ta thấy kết kiểm thử trả trùng với kết trả nên kết test Hình 5.1 Kết test trường hợp 01 Nhóm 01 – Lớp LT03A Trang 28 Tìm hiểu công cụ kiểm thử Nunit Chương 5: Tiến hành kiểm thử - Xét trường hợp kiểm thử 02: ta nhập mẫu đầu vào gán giá trị trả sai _ Public Sub test_tamgiac() i = tamgiac.tamgiac(5, 6, 7) Assert.AreEqual(i, False) End Sub Ta thấy chương trình chấp nhận mẫu đầu vào chương trình báo lỗi (dữ liệu đầu vào tam giác thường kết đầu lại cho “False”) nên kết test Hình 5.2 Kết test trường hợp 02 Nhóm 01 – Lớp LT03A Trang 29 Tìm hiểu công cụ kiểm thử Nunit Chương 5: Tiến hành kiểm thử - Xét trường hợp kiểm thử 03: nhập liệu đầu vào sai, kết đầu _ Public Sub test_tamgiac() i = tamgiac.tamgiac(3.5, 4, 5) Assert.AreEqual(i, True) End Sub Mặc dù độ dài cạnh tam giác dạng thập phân chương trình test chấp nhận liệu chương trình ứng dụng không Vậy kết test trường hợp sai Hình 5.3 Kết test trường hợp 03 Nhóm 01 – Lớp LT03A Trang 30 Tìm hiểu công cụ kiểm thử Nunit Chương 5: Tiến hành kiểm thử - Xét trường hợp kiểm thử 04: ta nhập liệu đầu vào kết đầu tam giác cân _ Public Sub test_tamgiaccan() i = tamgiac.tamgiaccan(2, 2, 3) Assert.AreEqual(i, True) End Sub Kết test cho thấy liệu đầu vào kết đầu đưa kết tam giác cân nên kết test trường hợp Hình 5.4 Kết test trường hợp 04 Nhóm 01 – Lớp LT03A Trang 31 Tìm hiểu công cụ kiểm thử Nunit Chương 5: Tiến hành kiểm thử - Xét trường hợp kiểm thử 05: tam giác cân ta cho liệu đầu vào sai kết đầu _ Public Sub test_tamgiaccan() i = tamgiac.tamgiaccan(5, 4, 3) Assert.AreEqual(i, True) End Sub Khi ta cho liệu đầu vào để khẳng định tam giác cân sai hoàn toàn chương trình test báo lỗi Vậy kết test trường hợp Hình 5.5 Kết test trường hợp 05 Nhóm 01 – Lớp LT03A Trang 32 Tìm hiểu công cụ kiểm thử Nunit Chương 5: Tiến hành kiểm thử - Xét trường hợp kiểm thử 06: xét tam giác vuông ta nhập liệu đầu vào đầu _ Public Sub test_tamgiacvuong() i = tamgiac.tamgiacvuong(3, 4, 5) Assert.AreEqual(i, True) End Sub Đối với nguồn liệu đầu vào kết đầu chương trình test báo Vậy kết test Hình 5.6 Kết test trường hợp 06 Nhóm 01 – Lớp LT03A Trang 33 Tìm hiểu công cụ kiểm thử Nunit Chương 5: Tiến hành kiểm thử - Xét trường hợp kiểm thử 07: tam giác vuông: liệu đầu kết đầu sai _ Public Sub test_tamgiacvuong() i = tamgiac.tamgiacvuong(3, 4, 5) Assert.AreEqual(i, False) End Sub Với nguồn đầu vào thỏa mãn tam giác vuông kết đầu báo sai chương trình test báo lỗi Vậy kết test Hình 5.7 Kết test trường hợp 07 Nhóm 01 – Lớp LT03A Trang 34 Tìm hiểu công cụ kiểm thử Nunit Chương 5: Tiến hành kiểm thử - Xét trường hợp kiểm thử 08: tam giác – ta nhập liệu đầu vào cho kết đầu sai _ Public Sub test_tamgiacdeu() i = tamgiac.tamgiacdeu(3, 3, 3) Assert.AreEqual(i, False) End Sub Đối với xét tam giác với nguồn liệu thỏa mãn ta cho kết đầu sai chương trình test báo lỗi Vậy kết test Hình 5.8 Kết test trường hợp 08 Nhóm 01 – Lớp LT03A Trang 35 Tìm hiểu công cụ kiểm thử Nunit Chương 5: Tiến hành kiểm thử - Xét trường hợp kiểm thử 09: liệu đầu vào kết đầu _ Public Sub test_tamgiacdeu() i = tamgiac.tamgiacdeu(5, 5, 5) Assert.AreEqual(i, True) End Sub Trong việc xét tam giác đều, với liệu đầu vào kết đầu trường hợp Và chương trình test báo nên kết test trường hợp Hình 5.9 Kết test trường hợp 09 Nhóm 01 – Lớp LT03A Trang 36 ... LT03A Trang Tìm hiểu công cụ kiểm thử Nunit Chương 1: Tổng quan kiểm thử phần mềm - Kiểm thử công việc đầy sáng tạo thách thức 1.5.3 Phân loại số công cụ kiểm thử tự động Vì kiểm thử phần mềm thường... hợp 09 36 Trang iv Tìm hiểu công cụ kiểm thử Nunit Chương 1: Tổng quan kiểm thử phần mềm CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Định nghĩa Kiểm thử phần mềm có nhiều cách định nghĩa... Trang Tìm hiểu công cụ kiểm thử Nunit Chương 2: Công cụ kiểm thử NUnit CHƯƠNG 2: CÔNG CỤ KIỂM THỬ NUNIT 1.6 Giới thiệu NUnit tool ,có nhiều version khác nhau, NUnit version 2.5 phát hành vào tháng