十分鐘瞭解單元測試
一、單元測試
1、什麼是單元測試?
單元測試(unit testing),是指對軟體中的最小可測試單元進行檢查和驗證。
單元測試是在軟體開發過程中要進行的最低級別的測試活動,軟體的獨立單元將在與程式的其他部分相隔離的情況下進行測試。
2、單元測試的分類有哪些?
軟體測試可以按測試範圍、測試目的、測試物件、測試過程分類
按測試範圍分類 | 按測試目的分類 | 按測試物件分類 | 按測試過程分類 | 其他測試技術 |
單元測試unit testing 元件測試component testing 整合測試integration testing,string testing 系統測試system testing 驗收測試acceptance testing,beta testing 安裝測試installation testing | A、正確性測試correctness testing 白盒測試white-box 黑盒測試black-box B、效能測試performance testing C、可靠性測試reliability testing 強壯性測試robustness,strong testing 異常處理測試exception handing testing 負載測試stress,load testing D、安全性測試security testing |
單元測試unit testing 元件測試component testing 模組測試module testing 程式測試program testing 系統測試system testing 文件測試documentation testing | 需求階段的測試requirements phase testing 設計階段的測試design phase testing 程式階段的測試program phase testing 測試結果的評估evaluating test results 安裝測試installation phase testing 驗收測試acceptance testing 測試變化:維護testing changes:maintenance |
迴歸測試regression testing 壓力測試stress testing 恢復測試recovery testing 安全測試security testing 相容性測試compatibility testing |
3、單元測試的作用是什麼?
單元測試(Unit Testing),是指對軟體或專案中最小可測試單元進行正確性檢驗的測試工作。單元是人為規定最小可測試的功能模組,可以是一個模組,一個函式或者一個類。單元測試需要與模組開發進行隔離情況下進行測試。
測試通常是開發人員比較厭煩的一個活動,不清楚它的意義所在,也會有人覺得它會浪費時間。有很多開發人員不知道如何編寫單元測試,也會由於專案中沒有要求的原因,所以對此就不Care,也會常常認為開發人員的主要工作是開發,測試是測試人員的事情。這是一種普遍現象。
4、常見的單元測試框架有哪些?
除了我們常見的JUnit,還有Arquillian、JTEST、The Grinder、TestNG、JWalk、Mockito、Powermock,在這裡就不一一介紹了,
大家可以去https://www.sohu.com/a/145107423_731023看一下
5、簡述JUnit與TestNG區別
在junit3的時候,testng和junit還是有點差別的,比如它不支援註解,它不支援套件suite,它 不能依賴測試,它只適合支援單元測試,但是隨著時間的推移,這些東西慢慢被完善,差別也不是那麼明顯了,連語法都是那麼驚人相似。所以你學習junit4就行了
6、什麼是TDD?他有那些優缺點?
TDD是測試驅動開發(Test-Driven Development)的英文簡稱,是敏捷開發中的一項核心實踐和技術,也是一種設計方法論。TDD的原理是在開發功能程式碼之前,先編寫單元測試用例程式碼,測試程式碼確定需要編寫什麼產品程式碼。TDD雖是敏捷方法的核心實踐,但不只適用於XP(Extreme Programming),同樣可以適用於其他開發方法和過程。
優點:在任意一個開發 節點都可以拿出一個可以使用,含少量bug並具一定功能和能夠釋出的產品。 缺點:增加程式碼量。測試程式碼是系統程式碼的兩倍或更多,但是同時節省了除錯程式及挑錯時間。