Kiểm thử đơn vị với nunit
Mục lục Lời nói đầu Ngày máy tính đóng vai trò quan trọng sống Máy tính khác máy móc thông thường khác chỗ thực nhiều nhiệm vụ khác cách sử dụng phần mềm Tức phần mềm định lực máy tính.Trong năm đầu ngành công nghiệp máy tính, người ta trọng phát triển phần cứng nhằm mục đích giảm giá thành hệ thống , tăng khả vận chuyển lưu trữ liệu Vai trò phần cứng quan trọng so với phần mềm.Phần mềm thường cho không kèm với máy bán.Tuy nhiên từ năm 90 trở lại nhu cầu phần mềm tăng lên nhanh chóng mục tiêu ngành công nghiệp máy tính cải thiện giảm giá thành phần mềm Vai trò phần mềm trở nên quan trọng Nhiều giá thành phần mềm đắt giá thiết bị phần cứng Và phần mềm ngày trở nên quan trọng chuyên ngành lĩnh vực dành riêng cho phần mềm thiếu Công nghệ phần mềm đời nhằm nâng cao kiểm soát chất lượng phần mềm Song song với việc thiết kế phần mềm chất lượng trình làm sản phẩm phần mềm có nhiều công việc khác quản lý dự án để tinh toán chi tiết tài nguyên, thời gian, chi phí để đạt dược lợi ích tối đa, quản lý rủi ro để giảm thiểu vấn đề khó khăn trình thiết kế phần mềm hoạt động quan trọng kèm trình thiết kế kiểm thử phần mềm Hiện có khoảng năm phương pháp kiểm thử phần mềm kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử chấp nhận, kiểm thử hệ thống nhúng Trong kiểm thử đơn vị kiểm thử riêng lẻ module Cũng có nhiều công cụ xậy dựng để hỗ trợ kiểm thử đơn vị kiểm thử tích hợp JUnit viết Java dùng để kiểm thử cho chương trình viết ngôn ngữ lập trình Java Net có công cụ xUnit, NUnit với đề tài “Kiểm thử đơn vị với Nunit” giới thiệu cho bạn cách kiểm thử đơn vị với công cụ NUnit ngôn ngữ lập trình C# Phần 1: Kiểm thử phần mềm I.Khái niệm kiểm thử phần mềm - 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 II Kỹ thuật kiểm thử phần mềm -Kỹ thuật kiểm thử chia làm loại: kỹ thuật kiểm thử chức năng(Functional Testing) hay gọi kiểm thử hộp đen(Black-Box Testing) kỹ thuật kiểm thử cấu trúc(Structural Testing ) hay gọi kiểm thử hộp trắng (WhiteBox Testing) 1.Kỹ thuật kiểm thử chức -Trong kỹ thuật kiểm thử chức 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 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 den, kiểm thử viên không quan tâm tới cấu trúc hành vi bên phần mềm Kiểm thử viên quan tâm tới việc tìm tượng mà phần mềm hoạt động không với đặc tả Kiểm thử viên biết dự kiến thực dự kiến không thực hiện, mà nhìn 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… 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ủ -Kỹ thuật kiểm thử cấu trúc cho phép kiểm thử cấu trúc bên phần mềm, với mục đích kiểm tra tất câu lệnh điều kiện tồn phần mềm Trong kỹ thuật 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ả) III Chiến lược kiểm thử 1.Khái niệm -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) Một số chiến lược Kiểm Thử 2.1 Kiểm thử từ xuống(Top-Down) -Chiến lược kiểm thử tích hợp Top Down - từ xuống cách tiện lợi đểxây dựng kiểm soát cấu trúc chương trình Chiến lược gộp dần module từ xuống theo trật tự dòng điều khiển, module điều khiển gắn module phụ trợ vào module điều khiển thượng cấp -Có thể theo cách: Theo chiều sâu, theo chiều rộng -Tích hợp từ xuống thực theo bước: Module điều khiển dùng lái kiểm thử (test driver) module phụ trợ trực tiếp thay cuống (stub) 2.Thay dần cuống module thực thi tương ứng 3.Sau tích hợp module tiến hành kiểm thử tương ứng] Khi hoàn thành kiểm thử thay cuống khác module thực (nghĩa quay lại bước 2) 5.Các thể kiểm thử lại ( toàn toàn kiểm thử trước – kiểm thử hồi quy) để đảm bảo sai xảy 6.Tiếp tục lặp lại từ bước toàn cấu trúc chương trình xây dựng 2.2 Kiểm thử từ lên(Bottom-Up) -Chiến lược kiểm thử tích hợp Bottom Up – từ lên bắt đầu xây dựng kiểm thử từ module nguyên tố: việc xử lý có đòi hỏi module phụ trợ module thực sẵn sàng (cuống bị loại) -Thực theo bước: Các module mức thấp tổ hợp cụm (cluster) thực chức phụ trợ đặc biệt Một lái viết để phối hợp đầu vào đầu ca kiểm thử Kiểm thử cụm Tháo bỏ driver & cụm tổ hợp ngược lên cấu trúc chương trình 2.3 Kiểm thử vụ nổ lớn(Bigbag) -Kết hợp tất module kiểm thử đơn vị thành chương trình tiến hành kiểm thử toàn chương trình lúc Kết ta mớ hỗn độn với tập sai, chỉnh sửa chúng khó khăn cô lập nguyên nhân phức tạp: sai sửa lại xuất nhiều sai khác, triền miên! 2.4 Kiểm thử hồi quy (Regression Test) -Kiểm thử hồi quy mức kiểm tra mức khác nói Nó đơn kiểm tra lại phần mềm sau có thay đổi xảy ra, để bảo đảm phiên phần mềm thực tốt chức phiên cũ thay đổi không gây lỗi chức hoạt động tốt Kiểm thử hồi quy thực mức kiểm tra VI Các giai đoạn kiểm thử 1.Kiểm thử đơn vị -Kiểm thử đơn vị :là tiến trình kiểm thử tập trung vào đơn vị nhỏ thiết kế phần mềm hàm, lớp, thủ tục phương thức Kiểm thử đơn vị hướng theo hộp trắng bước tiến hành song song cho nhiều môđun -Unit chọn để kiểm tra thường có kích thước nhỏ chức hoạt động đơn giản nên không khó khăn việc tổ chức, kiểm tra, ghi nhận phân tích kết Nếu phát lỗi, việc xác định nguyên nhân khắc phục tương đối dễ dàng khoanh vùng đơn thể đơn vị kiểm tra Thời gian tốn cho Unit Test đền bù việc tiết kiệm nhiều thời gian chi phí cho việc kiểm tra sửa lỗi mức độ kiểm tra sau -Unit Test thường lập trình viên thực Công đoạn thực với giai đoạn viết code xuyên suốt chu kỳ phát triển phần mềm -Cũng mức kiểm tra khác, Unit Test đòi hỏi phải chuẩn bị trước tình (test case) kịch (script), định rõ liệu vào, bước thực liệu mong chờ xuất Các test case script nên giữ lại để tái sử dụng Kiểm thử tích hợp -Kiểm thử tích hợp – Integrating Test nhằm nhận phận chức hay hệ tốt kỹ thuật có tính hệ thống để xây dựng cấu trúc chương trình -Integration test kết hợp thành phần ứng dụng kiểm thử ứng dụng hoàn thành Trong Unit Test kiểm tra thành phần Unit riêng lẻ Intgration Test kết hợp chúng lại với kiểm tra giao tiếp chúng -Integration Test có mục tiêu chính: Phát lỗi giao tiếp xảy Unit Tích hợp Unit đơn lẻ thành hệ thống nhỏ (subsystem) cuối nguyên hệ thống hoàn chỉnh (system) chuẩn bị cho kiểm thử mức hệ thống (System Test) -Trong Unit Test, lập trình viên cố gắng phát lỗi liên quan đến chức cấu trúc nội Unit Có số phép kiểm thử đơn giản giao tiếp Unit với thành phần liên quan khác, nhiên giao tiếp liên quan đến Unit thật kiểm tra đầy đủ Unit tích hợp với thực Integration Test -Trừ số ngoại lệ, Integration Test nên thực Unit kiểm tra cẩn thận trước Unit Test, tất lỗi mức Unit sửa chữa Một số người hiểu sai Unit qua giai đoạn Unit Test với giao tiếp giả lập không cần phải thực Integration Test Thực tế việc tích hợp Unit dẫn đến tình hoàn toàn khác -Một chiến lược cần quan tâm Integration Test nên tích hợp dần Unit Một Unit thời điểm tích hợp vào nhóm Unit khác tích hợp trước hoàn tất (passed) đợt Integration Test trước Lúc này, ta cần kiểm thử giao tiếp Unit thêm vào với hệ thống Unit tích hợp trước đó, điều làm cho số lượng kiểm thử giảm nhiều, sai sót giảm đáng kể Kiểm thử mức hệ thống (System Test) -Mục đích kiểm tra hệ thống kiểm tra thiết kế toàn hệ thống sau tích hợp có thỏa mãn yêu cầu đặt hay không Có cách : -Kiểm thử Alpha +Được bên phát triển tiến hành +Phần mềm dùng bối cảnh tự nhiên để người phát triển đứng vào vai trò người sử dụng báo cáo sai vấn đề sử dụng +Được tiến hành môi trường điều khiển (theo kế hoạch người phát triển) -Kiểm thử Beta +Được hay nhiều người đặt hàng tiến hành +Không có diện người phát triển +Áp dụng phần mềm môi trường thực, kiểm soát người phát triển +Khách hàng báo cáo tất vấn đề mà họ gặp trình kiểm thử cho người phát triển cách định kỳ +Dựa theo báo cáo người phát triển tiến hành sửa đổi chuẩn bị phân phối phát hành cho toàn người đặt hàng Kiểm thử chấp nhận phần mềm (Acceptance Test) Kiểm thử chấp nhận khách hàng thực Mục đích kiểm thử chấp nhận để chứng minh phần mềm thỏa mãn tất yêu cầu khách hàng khách hàng chấp nhận sản phẩm chưa Kiểm thử chấp nhận có ý nghĩa quan trọng, hầu hết trường hợp, phép kiểm tra kiểm thử hệ thống kiểm thử chấp nhận gần tương tự nhau, chất cách thức thực lại khác biệt Thực tế cho thấy, khách hàng không quan tâm không tham gia vào trình phát triển phần mềm kết kiểm thử chấp nhận sai lệch lớn, phần mềm trải qua tất kiểm tra trước Sự sai lệch liên quan đến việc hiểu sai yêu cầu mong chờ khách hàng V Một số vấn đề khác kiểm thử phần mềm 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á -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 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 - Kiểm thử công việc đầy sáng tạo thách thức Phần 2: Giới thiệu công cụ Nunit I.Giới thiệu -NUnit framework kiểm thử đơn vị cho tất ngôn ngữ Net Ban đầu chuyển từ JUnit (framework kiểm thử đơn vị Java) , việc phát hành sản xuất nay, phiên 2.5, phát hành lớn thứ sáu công cụ dựa xUnit kiểm tra đơn vị cho Microsoft NET Nó viết hoàn toàn C # hoàn toàn thiết kế lại để tận dụng lợi nhiều tính ngôn ngữ NET, ví dụ cho thuộc tính tùy chỉnh phản ánh khả khác có liên quan NUnit mang xUnit tới tất ngôn ngữ NET II Assertion -Lớp Assert trung tâm để test NUnit NUnit cung cấp tập phong phú khẳng định phương pháp tĩnh lớp Assert Nếu khẳng định thất bại, có lỗi báo cáo Nếu thử nghiệm chứa nhiều khẳng định, bất kỳ khẳng định thất bại khẳng định sau không thi hành Vì lý này, thường tốt để thử cho khẳng định cho kiểm tra Mỗi cách gọi tin nhắn, với tin nhắn văn đơn giản hay với tin nhắn đối số Trong trường hợp cuối viết định dạng văn cung cấp đối số Trước hai kiểu xe 2,4 NUnit, phương pháp riêng biệt lớp Khẳng định sử dụng cho khẳng định khác Chúng gọi "cổ điển Model." Nó tiếp tục hỗ trợ NUnit, nhiều người thích Bắt đầu với 2,4 NUnit, "Hạn chế dựa trên" mô hình giới thiệu Phương pháp sử dụng phương pháp lớp Khẳng định cho tất khẳng định, qua đối tượng mà xác định Hạn chế kiểm tra thực Điều hạn chế dựa mô hình sử dụng nội NUnit cho tất khẳng định Các phương pháp phương pháp cổ điển tái triển khai thực mô hình Các phương thức Equal Assert – Khẳng định ngang 10 -Những phương thức kiểm tra xem hai đối số Phương thức nạp chồng cho loại giá trị phổ biến để ngôn ngữ mà không tự động giá trị hộp sử dụng chúng trực tiếp Assert.AreEqual(type expected, type actual) Assert.AreNotEqual(type expected, type actual) -So sánh loại giá trị số khác Các phương thức nạp chồng so sánh hai đối giá trị số loại khác so sánh Kết lệnh so sánh đúng: Assert.AreEqual (5, 5,0); -So sánh Mảng Tuyển tập đối tượng: -Kể từ phiên 2.2, NUnit so sánh hai mảng chiều Bắt đầu với phiên 2.4, mảng đa chiều, mảng lồng (mảng mảng) tuyển tập đối tượng so sánh Hai mảng Tuyển tập đối tượng coi Assert.AreEqual họ có kích thước tương tự yếu tố tương ứng Identity Assert – Khẳng định xác nhận -Assert.AreSame Assert.AreNotSame so sánh đối tượng truyền vào có kiểu hay không Assert.AreSame( object expected, object actual ); Assert.AreSame( object expected, object actual, string message ); Assert.AreSame( object expected, object actual, string message, params object[] parms ); Assert.AreNotSame( object expected, object actual ); Assert.AreNotSame( object expected, object actual, string message ); Assert.AreNotSame( object expected, object actual, string message, params object[] parms ); -Assert.Contains kiểm tra đối tượng có chứa mảng hay tuyển tập hay không Assert.Contains( object anObject, IList collection ); Assert.Contains( object anObject, IList collection, string message ); Assert.Contains( object anObject, IList collection, string message, params object[] parms ); 3.Condition Assert – Khẳng định điều kiện 11 -Phương thức test điều kiện cụ thể đặt tên theo điều kiện mà họ kiểm tra lấy giá trị thử nghiệm đối số đầu tiên, tùy chọn tin nhắn đối số thứ hai Các phương pháp sau cung cấp: Assert.IsTrue( bool condition ); Assert.True( bool condition ); Assert.IsFalse( bool condition); Assert.False( bool condition); Assert.IsNull( object anObject ); Assert.Null( object anObject ); Assert.IsNotNull( object anObject ); Assert.NotNull( object anObject ); Assert.IsNaN( double aDouble ); Assert.IsEmpty( ICollection collection ); Assert.IsNotEmpty( ICollection collection ); -Ở ta thấy có dạng khẳng định IsXXX không XXX Phương thức IsXXX dùng cho phiên cũ XXX thích hợp cho NUnitLite Comparisions Assert – Khẳng định so sánh -Các phương thức so sánh giá trị tham số truyền vào bao gồm so sánh >, >=, < , [...]... TestFixture như một ca kiểm thử Đối với khả năng tương thích ngược với các phiên bản trước của Nunit một phương thức test cũng có thể được tìm thấy nếu 4 chữ cái đầu tiên là "Test" bất kể trường hợp Tùy chọn này có sẵn bằng cách thiết lập một giá trị trong file cấu hình để test -Trước khi đến 2,5 NUnit, chữ ký cho một phương pháp thử nghiệm là: public void methodName () -Bắt đầu với NUnit 2.5, phương thức... chứ lớp hay module muốn test trong project đó Thường thì test project này được để là kiểu Class Library khi debug(F5) kiểu project này sẽ có báo lỗi nhưng ta vẫn chạy tool Nunit như bình thường Phần 3:Chương trình kiểm thử đơn vị với NUnit 18 ... lớp thử nghiệm namespace NUnit. Tests { using System; using NUnit. Framework; [TestFixture] public class SuccessTests { // } } 2 TearDown -Thuộc tính này được sử dụng trong một TestFixture để cung cấp một tập lệnh được thực hiện sau khi mỗi phương thức test được chạy -Trước NUnit 2.5, một TestFixture chỉ có thể một phương thức TearDown và nó được yêu cầu phải có một phương thức ví dụ -Bắt đầu với NUnit. .. -Ngoài ra, với 2.5, phương test có thể có đối số và giá trị trả về namespace NUnit. Tests { using System; using NUnit. Framework; [TestFixture] public class SuccessTests { [Test] public void Add() { /* */ } public void TestSubtract() { /* backwards compatibility */ } } } 5 TestCase -Thuộc tính TestCase phục vụ mục đích đánh dấu một phương thức test với các tham số như là một phương pháp thử nghiệm và... 1TestFixture -Đây là thuộc tính đánh dấu một lớp có chứa các test case và tùy chọn hoặc cài đặt các phương thức teardown NUnit 2.5 giới thiệu các tham số kiểm tra chung - xem dưới đây Hầu hết các hạn chế về một lớp đều được sử dụng cho lớp testfixture hiện nay đã được loại bỏ Với NUnit 2.5.3, lắp thử nghiệm lớp: * Có thể là public, protected, private, internal 12 * Có thể một lớp static trong NET 2.0 * Có thể... hoặc ném một ngoại lệ namespace NUnit. Tests { using System; using NUnit. Framework; [TestFixture] public class SuccessTests { [SetUp] public void Init() { /* */ } [TearDown] public void Cleanup() { /* */ } [Test] public void Add() { /* */ } } 3 Setup Ngược với Teardown phương thức Setup là đề cài đặt một tập lệnh trước khi phương thức test được chạy 4 Test -Thuộc tính kiểm tra là một cách để đánh dấu... phục vụ như là một lớp cơ sở testfixture * Nếu không có đối số được cung cấp với TestFixtureAttribute, các lớp phải có một constructor mặc định * Nếu đối số được cung cấp, chúng phải phù hợp với một trong những constructor Nếu một trong những hạn chế này bị vi phạm, lớp test không thể chạy và sẽ hiển thị một lỗi -Bắt đầu với NUnit 2.5, thuộc tính TestFixture có thể tùy chọn không tham số, Vì vậy, miễn... sử dụng khi gọi phương thức Dưới đây là một ví dụ về một bài kiểm tra đang được chạy ba lần, với ba bộ khác nhau của dữ liệu: [TestCase(12,3,4)] [TestCase(12,2,6)] [TestCase(12,4,3)] public void DivideTest(int n, int d, int q) { Assert.AreEqual( q, n / d ); } IV.Cài đặt -Sau khi chạy bộ setup như các ứng dụng bình thường chúng ta phải config Nunit vào Visual Studio hoặc các bộ IDE rời như Visual C# Và... External Tools đặt các thông số như hình với Command là đường dẫn tới file nunit. exe , title có thể đặt tùy V Sử dụng 16 -Ta có thể tạo bất cứ kiểu project nào trong Visual Studio hoặc Visual C# để tiến hành test Trong project đó sẽ có các lớp do ta thiết kế như bình thường và kèm theo các lớp dùng để test Để làm được điều đó trước hết ta phải Add Reference cho Project tới Nunit Framework: Chuột phải vào References... điều đó trước hết ta phải Add Reference cho Project tới Nunit Framework: Chuột phải vào References của Project\Add Reference -Trong bảng Add Reference chọn nunit. framework -Để tạo file test ta khai báo namespace NUnit. Framework bằng câu lệnh using NUnit. Framework; -Sau đó ta tạo ra các class dùng để test và trước 1 lớp test ta khai báo từ khóa [TextFixture] Ví dụ: [TestFixture] 17 public class TestClass{} ... tra VI Các giai đoạn kiểm thử 1 .Kiểm thử đơn vị -Kiểm thử đơn vị :là tiến trình kiểm thử tập trung vào đơn vị nhỏ thiết kế phần mềm hàm, lớp, thủ tục phương thức Kiểm thử đơn vị hướng theo hộp trắng... dùng để kiểm thử cho chương trình viết ngôn ngữ lập trình Java Net có công cụ xUnit, NUnit với đề tài Kiểm thử đơn vị với Nunit giới thiệu cho bạn cách kiểm thử đơn vị với công cụ NUnit ngôn... 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