Seite 1
Nghiên cứu Unit Testing trong C# với NUnit và Demo MỤC LỤC MỤC LỤC..................................................................................................................... 1 ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN............................................................. 4 PHẦN I: PHẦN MỞ ĐẦU............................................................................................. 5 PHẦN II: PHẦN NỘI DUNG........................................................................................ 7 CHƯƠNG I: KHÁI QUÁT KIỂM THỬ PHẦN MỀM .............................................. 7 1.1. Các khái niệm cơ bản trong kiểm thử phần mềm. ...................................... 7 1.1.1. Khái niệm về kiểm thử phần mềm. ...................................................... 7 1.1.2. Mục đích của kiểm thử phần mềm. ...................................................... 7 1.1.3. Các phương pháp kiểm thử. ................................................................. 8 1.1.4. Các chiến lược kiểm thử. ..................................................................... 8 1.1.4.1. Kiểm thử hộp đen – Black box. ....................................................... 8 1.1.4.2. Kiểm thử hộp trắng – White box.....................................................10 1.1.4.3. Kiểm thử hộp xám – Gray box testing ............................................10 1.1.5. Các cấp độ kiểm thử trong kiểm thử phần mềm. .................................11 1.1.5.1. Kiểm thử đơn vị - Unit test. ............................................................11 1.1.5.2. Kiểm thử tích hợp – Intergration test. .............................................12 1.1.5.3. Kiểm thử hệ thống – System test. ...................................................14 1.1.5.4. Kiểm thử chấp nhận – Acceptance test. ..........................................15 1.1.5.5. Mô hình chữ V trong kiểm thử phần mềm ......................................16 1.1.6. Một số cấp độ kiểm thử khác. .............................................................18 1.2. Nguyên tắc trong kiểm thử phần mềm. ......................................................19 CHƯƠNG II: UNIT TESTING.................................................................................20 2.1. Tổng quan về Unit test ..............................................................................20 2.1.1. Định nghĩa về Unit testing. .................................................................20 2.1.2. Mục đích.............................................................................................20 2.1.3. Yêu cầu. .............................................................................................20 2.1.4. Người thực hiện Unit test....................................................................21 2.1.5. Vòng đời của một Unit test. ................................................................21 2.1.6. Lợi ích của Unit test............................................................................21 2.1.7. Tác dụng của Unit test. .......................................................................22 1 ThiNganHang.comThiNganHang.com
Seite 2
Nghiên cứu Unit Testing trong C# với NUnit và Demo 2.1.8. Chiến lược viết mã hiệu quả với Unit test. ..........................................22 2.2. Sử dụng Unit test với mô hình đối tượng ảo (Mock Object) ......................23 2.2.1. Định nghĩa ..........................................................................................23 2.2.2. Đặc điểm ............................................................................................24 2.2.3. Lợi ích ................................................................................................24 2.2.4. Phạm vi sử dụng .................................................................................24 2.2.5. Các đối tượng được mô phỏng. ...........................................................25 2.2.6. Thiết kế MO .......................................................................................25 CHƯƠNG III: THIẾT KẾ TEST CASE....................................................................27 3.1. Định nghĩa. ...............................................................................................27 3.2. Vai trò của việc thiết kế test case...............................................................27 3.3. Quy trình thiết kế test case. .......................................................................27 3.3.1. Phương pháp kiểm thử hộp đen – Black box testing............................28 3.3.1.1. Phân vùng tương đương..................................................................28 3.3.1.2. Phân tích giá trị biên – Boundary Values Analysis .........................31 3.3.1.3. Đồ thị nguyên nhân – hệ quả. .........................................................36 3.3.1.4. Đoán lỗi – Error Guessing ..............................................................42 3.3.2. Phương pháp kiểm thử hộp trắng – White box testing.........................42 3.3.2.1. Bao phủ câu lệnh. ...........................................................................42 3.3.2.2. Bao phủ quyết định.........................................................................44 3.3.2.3. Bao phủ điều kiện...........................................................................45 3.3.2.4. Bao phủ quyết định – điều kiện.......................................................46 3.3.2.5. Bao phủ đa điều kiện ......................................................................48 CHƯƠNG IV: TÌM HIỂU VỀ NUNIT .....................................................................50 4.1. Các công cụ kiểm thử của từng ngôn ngữ kiểm thử. ..................................50 4.1.1. Junit và J2ME Unit trong Java. ...........................................................50 4.1.2. Cpp Unit trong C/C++. .......................................................................51 4.1.3. Vb Unit trong Visual Basic. ................................................................52 4.1.4. PyUnit trong Python. ..........................................................................52 4.1.5. Perl Unit trong Perl.............................................................................53 4.2. Nuint trong C#. .........................................................................................53 2 ThiNganHang.comThiNganHang.com
Seite 3
Nghiên cứu Unit Testing trong C# với NUnit và Demo 4.2.1. Định nghĩa. .........................................................................................53 4.2.2. Đặc điểm của NUnit. ..........................................................................54 4.2.3. Thuộc tính hay dùng trong thư viện Nunit.Framework........................54 4.2.4. Phương thức tĩnh hay dùng trong Nunit.Framework.Assert.................57 4.2.5. Cài đặt Nunit. .....................................................................................58 4.2.6. Cách sử dụng Nunit. ...........................................................................61 4.2.6.1. Hướng dẫn tạo test case trong Visual studio 2008...........................61 4.2.6.2. Sử dụng Nunit. ...............................................................................65 CHƯƠNG V: CHƯƠNG TRÌNH DEMO .................................................................70 5.1. Phát biểu bài toán. .....................................................................................70 5.2. Đặt vấn đề. ................................................................................................70 5.3. Phân tích và thiết kế bài toán.....................................................................70 5.4. Thiết kế các test case. ................................................................................71 5.5. Ứng dụng chương trình .............................................................................77 5.6. Tổng kết chương trình demo .....................................................................80 PHẦN III:PHẦN KẾT LUẬN ......................................................................................81 TÀI LIỆU THAM KHẢO.............................................................................................82 3 ThiNganHang.comThiNganHang.com
Seite 4
Nghiên cứu Unit Testing trong C# với NUnit và Demo ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… …………………………………………………………………………………………… ……………………………………………………………………………………………. Hưng Yên, ngày … tháng … năm 2010 Giáo viên hướng dẫn 4 ThiNganHang.comThiNganHang.com
Seite 5
Nghiên cứu Unit Testing trong C# với NUnit và Demo PHẦN I: PHẦN MỞ ĐẦU Kiểm thử phần mềm là khâu sống còn của việc phát triển phần mềm. Hai chữ "kiểm thử" nghe có vẻ đơn giản, nhàn rỗi nhưng khâu này lại giúp cho sản phẩm được hoàn thiện nhằm đáp ứng yêu cầu đặt ra của khách hàng. Sản phẩm hoàn thiện, chất lượng cao sẽ tạo thêm niềm tin và uy tín của công ty với đối tác trong và ngoài nước. Nếu không có khâu kiểm thử phần mềm, tình trạng khách hàng trả lại sản phẩm về cho người phát triển phần mềm đó sẽ xảy ra thường xuyên. Chính vì vậy, tester là vị trí không thể thiếu và công việc này quyết định khá nhiều vào sự thành công chung của dự án phát triển phầm mềm. Việt Nam hiện nay đang được đánh giá sẽ trở thành con hổ trong ngành kiểm thử phần mềm châu Á với lượng nhân công trẻ và nhiều doanh nghiệp đang phát triển theo con đường này. Tại Việt Nam, những ai theo học ngành Công nghệ thông tin đều đa phần là nghĩ ngay đến nghề lập trình vì thế khiến đầu ra của nghề kiểm thử phần mềm có số lượng thấp hơn hẳn so với chuyên môn lập trình viên khiến các nhà tuyển dụng rất vất vả trong việc tìm kiếm nguồn nhân lực cho ngành kiểm thử phần mềm. Nhưng cũng nhờ đó mà những ai định hướng theo nghề tester ngay từ đầu có thể yên tâm có trong tay tấm vé xin việc làm ngay khi vừa tốt nghiệp. Với xu hướng phát triển ngành kiểm thử phần mềm của Việt Nam nói riêng cũng như của Châu Á nói chung thì việc nhóm sinh viên em chọn để tài làm về kiểm thử phần mềm: “Nghiên cứu về Unit Testing trong C# với Nunit và viết chương trình demo” là đúng đắn và hơn hết là hợp thời đại bây giờ. Đề tài nghiên cứu về kiểm thử phần mềm này thì nhóm sinh viên chúng em có thể hiểu được khái quát về kiểm thử phần mềm, hiểu được về một số công cụ dùng để kiểm thử như Nunit cho dotNet, Junit cho ngôn ngữ Java,…và hiểu được việc thiết kết test – case trong kiểm thử mức đơn vị (Unit test). Hơn hết, em có thể biết thêm một số công cụ kiểm thử tự động như: QuickTestProfessional, LoadRunner, hay Test Complete… Trong quá trình thực hiện nghiên cứu đề tài, chúng em nhận được sự hướng dẫn tận tình của cô giáo Lê Thị Thu Hương – giáo viên trực tiếp hướng dẫn, chúng em còn nhận được sự hướng dẫn của các thầy cô giáo trong bộ môn Công nghệ phần mềm và tất cả 5 ThiNganHang.comThiNganHang.com
Seite 6
Nghiên cứu Unit Testing trong C# với NUnit và Demo các bạn trong bộ môn. Chúng em hy vọng sẽ nhận được sự góp ý của các thầy cô và các bạn để chúng em có thể hoàn thành tốt đề tài này. Những đóng góp của mọi người sẽ là những kinh nghiệm quý báu giúp em và các bạn trong nhóm có những dự định sau này trong khi làm đồ án tốt nghiệp và sau khi tốt nghiệp. Một lần nữa em xin chân thành cảm ơn cô giáo Lê Thị Thu Hương đã hướng dẫn em và các bạn hoàn thành đề tài nghiên cứu. Em xin chân thành cảm ơn! Nhóm sinh viên: Đỗ Thùy Dung Nguyễn Thị Huệ Nguyễn Thị Hương 6 ThiNganHang.comThiNganHang.com
Seite 7
Nghiên cứu Unit Testing trong C# với NUnit và Demo PHẦN II: PHẦN NỘI DUNG CHƯƠNG I: KHÁI QUÁT KIỂM THỬ PHẦN MỀM 1.1. Các khái niệm cơ bản trong kiểm thử phần mềm. 1.1.1. Khái niệm về kiểm thử phần mềm. - Kiểm thử phần mềm là quá trình khảo sát một hệ thống hay thành phần dưới những điều kiện xác định, quan sát và ghi lại các kết quả, và đánh giá một khía cạnh nào đó của hệ thống hay thành phần đó. (Theo Bảng chú giải thuật ngữ chuẩn IEEE của Thuật ngữ kỹ nghệ phần mềm- IEEE Standard Glossary of Software Engineering Terminology). - Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìm ra nhiều lỗi. (Theo “The Art of Software Testing” – Nghệ thuật kiểm thử phần mềm). - Kiểm thử phần mềm là hoạt động khảo sát thực tiễn sản phẩm hay dịch vụ phần mềm trong đúng môi trường chúng dự định sẽ được triển khai nhằm cung cấp cho người có lợi ích liên quan những thông tin về chất lượng của sản phẩm hay dịch vụ phần mềm ấy. Mục đích của kiểm thử phần mềm là tìm ra các lỗi hay khiếm khuyết phần mềm nhằm đảm bảo hiệu quả hoạt động tối ưu của phần mềm trong nhiều ngành khác nhau. (Theo Bách khoa toàn thư mở Wikipedia). - Có thể định nghĩa một cách dễ hiểu như sau: Kiểm thử phần mềm là một tiến trình hay một tập hợp các tiến trình được thiết kế để đảm bảo mã hóa máy tính thực hiện theo cái mà chúng đã được thiết kế để làm, và không thực hiện bất cứ thứ gì không mong muốn. Đây là một pha quan trọng trong quá trình phát triển hệ thống, giúp cho người xây dựng hệ thống và khách hàng thấy được hệ thống mới đã đáp ứng yêu cầu đặt ra hay chưa. 1.1.2. Mục đích của kiểm thử phần mềm. - Tìm ra nhiều lỗi bằng việc đưa ra các dòng thời gian. - Chứng minh được sản phẩm hoàn thành có những chức năng hay ứng dụng giống với bản đặc tả yêu cầu. - Tạo ra các test case có chất lượng cao, thực thi hiệu quả… 7 ThiNganHang.comThiNganHang.com
Seite 8
Nghiên cứu Unit Testing trong C# với NUnit và Demo - Một số lỗi cơ bản trong kiểm thử phần mềm như: lỗi ngay từ khi phân tích yêu cầu, lỗi từ bản đặc tả hệ thống, lỗi trong code, lỗi hệ thống và nguồn tài nguyên hệ thống, lỗi trong vấn đề phần mềm, phần cứng… 1.1.3. Các phương pháp kiểm thử. - Kiểm thử tĩnh( Static testing): Là phương pháp thử phần mềm đòi hỏi phải duyệt lại các yêu cầu và các đặc tả bằng tay, thông qua việc sử dụng giấy, bút để kiểm tra logic, lần từng chi tiết mà không cần chạy chương trình. Kiểu kiểm thử này thường được sử dụng bởi chuyên viên thiết kế người mà viết mã lệnh một mình. Kiểm thử tĩnh cũng có thể được tự động hóa. Nó sẽ thực hiện kiểm tra toàn bộ bao gồm các chương trình được phân tích bởi một trình thông dịch hoặc biên dịch mà xác nhận tính hợp lệ về cú pháp của chương trình. - Kiểm thử động(Dynamic testing): Là phương pháp kiểm thử thông qua việc dùng máy chạy chương trình để điều tra trạng thái tác động của chương trình. Đó là kiểm thử dựa trê các ca kiểm thử xác định bằng sự thực hiện của đối tượng kiểm thử hay chạy các chương trình. Kiểm thử động là kiểm tra cách thức hoạt động của mã lệnh, tức là kiểm tra sự phản ứng vật lý từ hệ thống tới các biến luôn thay đổi theo thời gian. Trong kiểm thử động, phần mềm phải thực sự được biên dịch và chạy. Kiểm thử động thực sự bao gồm làm việc với phần mềm, nhập các giá trị đầu vào và kiểm tra xem liệu đầu ra có như mong muốn hay không. Các phương pháp kiểm thử động gồm có kiểm thử mức đơn vị – Unit Tests, kiểm thử tích hợp – Intergration Tests, kiểm thử hệ thống – System Tests, và kiểm thử chấp nhận sản phẩm – Acceptance Tests. 1.1.4. Các chiến lược kiểm thử. Trong chiến lược kiểm thử, chúng ta có ba chiến lược kiểm thử hay dùng nhất là: kiểm thử hộp đen, kiểm thử hộp trắng, và kiểm thử hộp xám. 1.1.4.1. Kiểm thử hộp đen – Black box. Một trong những chiến lược kiểm thử quan trọng là kiểm thử hộp đen, hướng dữ liệu, hay hướng vào ra. Kiểm thử hộp đen xem chương trình như là một “hộp đen”. Mục đích của bạn là hoàn toàn không quan tâm về cách cư xử và cấu trúc bên trong của 8 ThiNganHang.comThiNganHang.com
Die ersten 8 Seiten werden angezeigt. Laden Sie das Dokument herunter, um alles zu sehen.
Kommentare (0)
Noch keine Kommentare. Seien Sie der Erste!