單元測試重要意義及方法介紹
軟件項目開發中,有些開發人員對單元測試的重視不夠,可能有幾種原因:
一、開發人員主觀原因,認為“測試主要是測試人員的事情,我主要負責代碼實現,功能實現就可以了,測試不是我的重要工作”,重代碼輕測試;
二、環境客觀原因,如由于項目進度的迫切要求和壓力,使開發人員也不得不快速編碼實現作為重要任務,而來不及或忽視了測試;
三、單元測試方法、工具單一,或者成本太高,沒有方便支持單元測試的工具,依靠簡單編寫測試方法、用例,花費額外多余的時間,有些測試用例用完可能就丟棄不用了,得不償失;
四、一些編程高手編程經驗豐富,不需要單元測試就能滿足要求。
這些對單元測試的片面認識,可能都會造成項目質量成果的不同程度的危害。從項目整體生命周期看,可能在項目早期能夠快速實現軟件功能需求,提高開發進度,但可能存在潛在的bug,bug量可能會很多,或者可能在送交正式測試階段都難以發現,有些可能延遲到運維期才發現,修改不當會使代碼變得更加膨脹臃腫,難以維護,使修改維護成本大大增加了,可維護性變得差,反而”欲速則不達“,整體成本還是很高。與其如此,不如早期未雨綢繆,“bug發現越早,成本越低”,若在編碼早期進行更多的單元測試,即將bug隱患消除在早期,成本就大大降低了。所以,對項目質量、成本都造成直接或間接的危害后果,我們要重視單元測試。
測試是保證項目質量的一個重要手段。一般測試可分為單元測試、系統測試、集成測試。項目開發編碼實現后,一般要經過項目組內部測試,測試通過后,將項目產品交付給測試人員送測。是在項目開發中的一項測試工作,一般由開發人員進行一段,自行測試,做完編碼開發后,提交給測試人員完在項目開發中
單元測試能帶來哪些益處?
1.方便分析學習源代碼。把單元測試可以作為分析、學習編碼的工具,編碼不僅是原創開發人員編寫的,而且是需要給人閱讀,共享給后續開發人員進行維護修改的,所以學習理解原創人員代碼,對于正確維護修改意義很大。可以通過單元測試,對自己不理解的代碼部分進行分析、調試,很有幫助。
2.方便跟蹤測試源代碼。單元測試用例,可以作為指導后續開發人員理解編碼的工具,有許多開發人員抱怨前期開發人員遺留代碼缺少注釋,可理解性差,自己又沒有有效方法切入修改代碼,因為如果在沒有理解別人代碼的時候,貿然修改或者注釋別人的代碼,可能會更增加代碼的復雜度、難理解性。單元測試用例則與源代碼是分開管理的,白盒測試,可以針對源代碼的方法進行debug跟蹤測試,并可以根據自己測試后的理解,寫出自己的理解注釋,而不影響源代碼。
如何能有效運用單元測試工具提高開發效率?
·功能概述
主要采用Junit4。推薦采用注解方式測試。
·本組件所在項目位置
各項目源碼的unittest包下,測試類與相應的目標類的包目錄相同。
·本組件主要涉及的元件
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath:META-INF/application-*.xml"}) public class WarnRuleParserTest { @Test public void testGetWarnRule4Cpu() {//cpu WarnRuleValue warnRuleValue=WarnRuleParser.getWarnRule4Cpu(); System.out.println( JSONObject.fromObject(warnRuleValue).toString()); } |