單元測試學習筆記01_基本觀念介紹和測試框架使用
大綱 1.測試的種類 2.單元測試框架的定義 3.撰寫單元測試的目的與效益 4.較好的撰寫單元測試原則 5.主流測試框架的使用 MSTest NUnit 6.虛設常式(stub)跟模擬物件(mock)、假物件(Fake) 1.測試的種類 軟體測試一般分4階段: 1.單元測試:對軟體中的最小可驗證單元進行檢查和驗證。各個程式獨 立單元會與其他單元隔離。 優點:盡早發現Bug、較利於重構、需要的測試環境和情境前置準備較單純 缺點:增加開發人員的工作量、學習門檻及時間成本較高、沒辦法找出跨模組時期才會出現的Bug 2.整合測試:軟體功能單元依據設計需求規格,組裝成模組、(子)系統的 過程中各部分工作是否有成功達到要求。 優點:較能驗證到模組間銜接、參數互傳的功能是否穩定 缺點: 每次都要重Build運行花費的時間太久(比較多重複性動作) 需要的測試環境和情境前置準備較為繁雜 3.系統測試:在所有單元、整合測試後,對系統的功能及效能的總體測試。在此階段測試不僅僅包括軟體本身,還包括電腦硬體及其相關的周邊裝置、實際執行時大批量資料、非正常操作(如資安攻擊)等。通常包括壓力測試、容量測試、效能測試、安全測試、容錯測試….等。 4.驗收測試(交付測試):針對使用者需求、業務流程進行的測試,以確定系統是否滿足驗收標準,由使用者、客戶或其他授權機構決定是否接受系統。 2.單元測試框架的定義 單元測試框架 (Unit Test Framework) 讓開發人員可以輕易地撰寫以「類 (Class)」為單位的測試程式,並且隨時可以執行自動化的重複性測試 (automation repeatable test),以確保該單一類別的正確性。 3.撰寫單元測試的目的與效益 目的: 1.能快速發現既有的某段程式碼邏輯是否因需求修改增加而有被變動。 2.減少重複性的測試前置動作 3.自動化測試原先所有測試案例,節省人工手動重複測試的耗時。 Unit Test: Tiny testable parts of a program independently tested for expected functionality. TDD(Test-Driven Development): Process that uses unit tests to drive the design of softwa