單元測試是我們在軟件開發過程中經常用到的一種軟件測試的方法,而今天我們就一起來了解一下,一個好的單元測試都是如何來編輯完成的。
創新互聯從2013年創立,先為方山等服務建站,方山等地企業,進行企業商務咨詢服務。為方山企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
1.使用框架來用于單元測試
Java提供了若干用于單元測試的框架。TestNG和JUnit是流行的測試框架。JUnit和TestNG的一些重要功能:
易于設置和運行。
支持注釋。
允許忽略或分組并一起執行某些測試。
支持參數化測試,即通過在運行時指定不同的值來運行單元測試。
通過與構建工具,如Ant,Maven和Gradle集成來支持自動化的測試執行。
EasyMock是一個模擬框架,是單元測試框架,如JUnit和TestNG的補充。EasyMock本身不是一個完整的框架。它只是添加了創建模擬對象以便于測試的能力。例如,我們想要測試的一個方法可以調用從數據庫獲取數據的DAO類。在這種情況下,EasyMock可用于創建返回硬編碼數據的MockDAO。這使我們能夠輕松地測試我們意向的方法,而不必擔心數據庫訪問。
2.謹慎使用測試驅動開發!
測試驅動開發(TDD)是一個軟件開發過程,在這過程中,在開始任何編碼之前,我們基于需求來編寫測試。由于還沒有編碼,測試初會失敗。然后寫入小量的代碼以通過測試。然后重構代碼,直到被優化。
目標是編寫覆蓋所有需求的測試,而不是一開始就寫代碼,卻可能甚至都不能滿足需求。TDD是偉大的,因為它導致簡單的模塊化代碼,且易于維護。總體開發速度加快,容易發現缺陷。此外,單元測試被創建作為TDD方法的副產品。
然而,TDD可能不適合所有的情況。在設計復雜的項目中,專注于簡單的設計以便于通過測試用例,而不提前思考可能會導致巨大的代碼更改。此外,TDD方法難以用于與遺留系統,GUI應用程序或與數據庫一起工作的應用程序交互的系統。另外,測試需要隨著代碼的改變而更新。
因此,在決定采用TDD方法之前,應考慮上述因素,并應根據項目的性質采取措施。
3.測量代碼覆蓋率
代碼覆蓋率衡量(以百分比表示)了在運行單元測試時執行的代碼量。通常,高覆蓋率的代碼包含未檢測到的錯誤的幾率要低,因為其更多的源代碼在測試過程中被執行。云南電腦培訓發現測量代碼覆蓋率的一些佳做法包括:
使用代碼覆蓋工具,如Clover,Corbetura,JaCoCo或Sonar。使用工具可以提高測試質量,因為這些工具可以指出未經測試的代碼區域,讓你能夠開發開發額外的測試來覆蓋這些領域。
怎么判斷代碼是否是優質量的代碼呢?下面重慶電腦培訓來簡單對代碼質量的問題進行一個介紹。
代碼質量所涉及的5個方面,編碼標準、代碼重復、代碼覆蓋率、依賴項分析、復雜度分析。
我們分別來看一下這5方面:編碼標準:一般來說,公司都會有一份編碼規范,類命名、包命名、代碼風格之類的都會有所要求。
代碼重復:顧名思義就是重復的代碼,如果代碼中有大量的重復代碼,就要考慮是否將重復的代碼提取出來,封裝成一個公共的方法或者組件。
代碼覆蓋率:測試代碼能運行到的代碼比率,代碼經過了單元測試了嗎?是不是每個方法都進行了測試,代碼覆蓋率是多少?這關系到代碼的功能性和穩定性。
依賴項分析:代碼依賴關系怎么樣?耦合關系怎么樣?是否有循環依賴?是否符合高內聚低耦合的原則?復雜度分析:如果代碼中嵌套了很多層的ifelse,就會讓人很難閱讀。
要相信越優秀的代碼,越容易讀懂。
測試覆蓋率和代碼覆蓋率是衡量代碼有效性的最流行方法。這些術語有時會同時出現,因為它們的基本原理相同。但是它們并不是那么一致。很多時候,測試團隊和開發團隊對這兩個術語的使用感到困惑。下面詳細討論代碼覆蓋率和測試覆蓋率之間的區別的原因。
代碼覆蓋率:表示通過用Selenium或任何其他測試自動化框架進行的手動測試和自動化測試,測試用例覆蓋的代碼百分比。例如,如果源代碼具有一個簡單的if...else循環,則如果測試代碼可以覆蓋這兩種情況(即if&else),則代碼覆蓋率將為100%。
測試范圍:包括測試作為功能需求規范,軟件需求規范和其他必需文檔的一部分而實現的功能。例如,如果要對Web應用程序執行跨瀏覽器測試,以確保應用程序可以在其他瀏覽器流暢運行。測試覆蓋范圍是已驗證Web應用程序的瀏覽器兼容性的瀏覽器+操作系統組合的數量。
開發人員在單元測試期間執行代碼覆蓋,以驗證代碼實現,盡可能多執行代碼語句。大多數代碼覆蓋率工具都使用靜態工具,將監視執行的語句插入代碼中的必要位置。盡管添加檢測代碼會導致總體應用程序大小和執行時間增加,但與通過執行檢測代碼生成的信息相比,開銷卻很小。輸出包含一個詳細描述測試套件測試范圍的報告。
單元測試主要用于在單個單元級別上測試代碼。由于單元測試是由開發人員自己編寫的,因此他對應該作為單元測試的一部分包含的測試具有更好的可見性。單元測試有助于提高軟件的整體質量,但是關于構成單元測試的測試數量始終存在疑問。測試套件中是否有足夠數量的測試方案?我們應該添加更多測試嗎?代碼覆蓋率是所有這些問題的重要衡量標準。
隨著產品開發的進行,新功能以及BUG修復補丁將添加到發布周期中。這意味著測試代碼可能還需要進行更改,以使其與開發過程中所做的軟件更改保持一致。在項目開始時設定的測試標準必須與后續的發布周期保持一致,這一點很重要。代碼覆蓋率可用于確保測試過程符合這些標準,并且質量最好的代碼進入生產階段。
代碼覆蓋率越高,發生未檢測到的錯誤的概率越低。在某些組織中,質量團隊設置在將軟件推向生產階段之前需要實現的最小代碼覆蓋量。這樣做的主要原因是為了減少在產品開發的后期階段檢測到錯誤的可能性。
代碼覆蓋范圍有不同的級別,代碼覆蓋率的一些常見的類型為:
為了檢查代碼覆蓋率,使用了一種稱為檢測的方法。工具可用于監視性能,插入跟蹤信息以及診斷源代碼中的任何類型的錯誤。
儀器分為三種主要類型
根據測試要求,團隊應該選擇正確的代碼覆蓋率工具以及該工具支持的最佳檢測方法。
有許多支持不同編程語言的代碼覆蓋工具,其中許多還可以兼用作QA工具。許多工具可以與構建工具和項目管理工具集成在一起,從而使它們更加強大的作用。選擇開源代碼覆蓋率工具時,應檢查該工具支持的功能以及該工具是否正在積極開發迭代中。下面是一些流行的開源代碼覆蓋工具:
與代碼覆蓋率是白盒測試方法不同,測試覆蓋率是黑盒測試方法。以最大范圍覆蓋FRS(功能需求規范),SRS(軟件需求規范),URS(用戶需求規范)等中提到的需求的方式編寫測試用例。
像代碼覆蓋率一樣,也可以通過不同類型的測試來評估測試覆蓋率。但是,應遵循哪種測試完全取決于具體的業務。例如在以用戶為中心的Web應用程序中,可能存在UI/UX測試比功能測試具有更高優先級的情況,而在其他類型的應用程序中(例如銀行,金融);可用性測試,安全性測試等可能更為重要。
以下是一些測試覆蓋率機制:
要注意的另一個重要點是,測試覆蓋范圍的目的和含義可能會有所不同,具體取決于執行測試的級別。它還取決于執行黑盒測試的產品類型。用于測試手機的測試覆蓋率指標將不同于用于網站測試的指標。一些分類如下:
在代碼覆蓋率的情況下,度量標準是通過測試用例/測試套件測試的代碼的百分比。因此,可以量化測試結果,即在100 LOC(代碼行)中,代碼覆蓋率為80行。這意味著代碼覆蓋率為80%。由于執行測試是為了驗證功能要求,因此無法量化測試覆蓋率的結果。還可以提出可以在單個測試中測試多個需求的黑匣子測試。 盡管在少數情況下必須編寫測試代碼來達到測試覆蓋率要求,但是在某些情況下,您可能仍需要使用一些流行的測試框架。兩種最受歡迎 的測試框架是:
衡量代碼覆蓋率和測試覆蓋率的影響的基礎完全不同。代碼覆蓋率是通過測試期間覆蓋的代碼百分比來衡量的,而測試覆蓋率是通過測試覆蓋的功能來衡量的。 重要的是“其中哪一項最適合項目”?這個問題沒有確切的答案,因為解決方案取決于項目的類型和復雜性。在大多數情況下,使用測試覆蓋率和代碼覆蓋率,因為它們在軟件項目中同等重要。
測試團隊應花費大量時間來了解總體要求并確定測試活動的優先級。為了跟蹤進度,他們應該有一個清單,該清單應定期更新(至少在每次發行之后)。測試團隊還必須與質量保證(QA)團隊保持頻繁的溝通,這是很重要的,因為他們具有要發布給客戶/客戶的產品/項目必須達到的目標(測試/代碼)覆蓋范圍的詳細信息。沒有專門的經驗法則提到測試產品時需要達到的最小代碼覆蓋率或測試覆蓋率百分比。
追求覆蓋率只是手段而不是目的。測試同學的終極目的還是要在首先的資源情況下最大顯得保障產品質量。不能因為KPI就盲目追求手段的極致,反而本末倒置,最終陷入泥潭不能自拔。
在軟件開發過程中,每個單元的運行都是非常關鍵的,并且直接關系到后期程序員的運行。那么在進行軟件開發過程中,經常使用到的單元測試方法有哪些呢,一個好的單元測試是如何進行實現的?下面云南電腦培訓為大家介紹進行Java單元測試的具體方法。
1、使用框架進行單元測試
Java能夠提供單元測試方法的框架,在測試過程中,測試NG和JUnit是現在流行的測試框架。JUnit和TestNG框架測試有幾個重要功能:設置和運行很容易;允許忽略或分組,并一起運行多個測試;支持參數化測試,并且云南IT培訓發現能夠通過在運行時指定不同的值來執行單元測試。
2、謹慎使用測試驅動開發
測試驅動開發是一個軟件開發的過程。在整個開發過程中,在開始編碼的時候,應該根據程序的需求進行編程測試。但是昆明IT培訓發現由于這個時候還沒有進行編程,所以初次測試會面臨失敗,只需要寫入少量的代碼就能通過測試,進行重置代碼。
3、測試代碼的覆蓋率
代碼覆蓋率是以百分比測定執行單元測試時進行的代碼量。通常,高覆蓋率的代碼包含未被檢測出的錯誤的概率較低,因為更多的源代碼在測試中被執行。測試代碼覆蓋率的工具有:Clover,Corbetura,JaCoCo。使用工具測試能夠更好的提高測試質量。
4、將測試數據外部優化
在JUnit4之前,測試用例執行的數據必須被測試用例硬編碼,這會引起限制。為了使用不同的數據執行測試,必須修正測試用例代碼。但是,昆明電腦培訓認為JUnit4以及TestNG支持外部化測試數據,無需變更源代碼,就可以對不同的數據組執行測試用例。
分享標題:java代碼覆蓋率標準 代碼覆蓋率一般達到多少
本文地址:http://vcdvsql.cn/article0/doodooo.html
成都網站建設公司_創新互聯,為您提供標簽優化、網站制作、外貿網站建設、電子商務、網站營銷、企業網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯