通過增加代碼覆蓋率提高單元測試的質量
簡介: 許多敏捷軟件開發團隊都面臨的一個挑戰是,確保其單元測試包含大部分代碼。這在確保他們創建盡可能少的缺陷并且代碼可重構時非常重要。因此,重要的度量指標(除了通過的所有測試之外)之一是已包含的代碼數量。從 Rational Application Developer 8.0.3 開始,您可以配置 IBM® Rational® Application Developer 并將它與 IBM® Rational Team Concert™ 集成,以便在交付代碼之前運行測試并檢查代碼覆蓋率。本文將介紹如何設置此先決條件(名為 Code Coverage Advisor),還將介紹如何使用它來增加項目中測試的代碼的覆蓋率。
在許多類型的開發項目中,無論您使用的是敏捷開發方法、Rational Unified Process (RUP),還是瀑布式開發方法,在開發期間,測量已執行代碼的數量是一個主要度量指標。這對開發人員和測試人員都很重要,因為當開發人員生成具有高代碼 覆蓋率的代碼時,測試團隊可以關注代碼是否滿足業務目標,而不是陷入大量低級代碼缺陷中。
當代碼覆蓋率非常重要時
下列是代碼覆蓋率非常重要時的一些場景的常見示例:
● 任何想要響應業務并以低風險方式進行更改的團隊
● 正在開發代碼、想要提供工作質量可見性或需要滿足約定的 SLA 的第三方
● 當某個項目定義了開發和測試之間的協議,以便通過開發測試獲得代碼覆蓋率時,這意味著測試團隊在捕捉代碼錯誤上花費的時間更少
● 敏捷團隊可能想要在每個 sprint(沖刺階段)結束時制定發布代碼決策,因為這會提高交付物的質量,在將代碼用于生產之前很少需要轉換代碼
● 一些想要減少技術債務的團隊,這些團隊可以逐漸增加單元測試的數量并重構代碼,從而減少錯誤并減低復雜性
● 想要通過構建度量程序來衡量質量和技術債務的組織,這樣做可及早發現發展趨勢并進行相應的改進
許多敏捷團隊都面臨的一個具體挑戰是,確保他們的單元測試包含大部分代碼。這在確保他們創建盡可能少的缺陷并且代碼可重構時非常重要。(考慮到團隊發展 的趨勢是涉及很少的設計或沒有設計,則具有良好的單元測試非常重要。)一個主要度量指標(除了通過的所有測試)是已包含的代碼數量,這是新 IBM? Rational? Application Developer 版本發揮作用的地方。
今年早些時候,我編寫了一個原型擴展,用該擴展來集成 IBM? Rational Team Concert? 和 Rational Application Developer。如果沒有足夠的代碼覆蓋率,就會阻止交付給 Rational Team Concert 的代碼,正如在 Rational Application Developer 中測量的那樣。此擴展(現在名為 Code Coverage Advisor)已正式納入 Rational Application Developer 中,在版本 8.0.3 之后都可以找到它。這意味著您現在可以配置 Rational Application Developer 和 IBM Rational Team Concert,在交付代碼之前檢查代碼覆蓋率。本文將介紹如何設置它,以及在項目開發期間如何使用它來提高代碼覆蓋率。
提示:
您需要了解一些 Rational Application Developer 知識才能理解本文。
后面的內容包含了三個主題:
1、何時適合使用 Code Coverage Advisor
2、當使用在 Rational Application Developer 中配置的此額外過程交付代碼時會發生什么事
3、如何配置 Rational Team Concert 以使用 Advisor
最適合使用 Code Coverage Advisor 的情況
如何使用 advisor?以下是兩個主要場景:
● 第一個場景針對的是新項目,出現在您想要確保單元測試提供足夠的代碼覆蓋率時。在這種場景下,可使用 Advisor 幫助開發團隊維護高標準的單元測試和代碼覆蓋率。
● 第二個場景針對的是您想要改進的具有糟糕的單元測試或不存在單元測試的項目。通過打開 Advisor,要求開發人員為他們修改的代碼提供單元測試,這樣這些團隊可以一種簡單、遞增且可管理的方式進行改進。此外,這種方法意味著正在編寫的單 元測試將包含正在修改的代碼;因此,開發人員很可能會發現缺陷。
在這兩種場景中,Code Coverage Advisor 可提供大量價值,通過幫助團隊維護單元測試的高代碼覆蓋率來改進其代碼質量。下一部分將介紹開發人員在已經配置了代碼覆蓋率功能時如何使用 Rational Application Developer 交付代碼。
使用 Rational Application Developer 中的新流程交付代碼
您需要做的第一件事是(如果還沒有做)配置項目,以收集代碼覆蓋率信息。
配置項目的流程
1、在 Project Explorer 中右鍵單擊項目,選擇 Properties。
2、然后從菜單中選擇 Code Coverage ,采用與設置團隊相同的方式設置項目的代碼覆蓋率信息(參見圖 1)。
圖 1.項目代碼覆蓋率配置
使用啟動的流程交付代碼時會發生什么事
在配置了代碼覆蓋率后,Code Coverage Advisor 會檢查文件的覆蓋率,以確定是否交付了代碼。Coverage Advisor 在下列情況下不支持交付代碼:
● 覆蓋率低于目標水平。
● 覆蓋率過期了(例如,您已修改了其中一個文件,但沒有重新運行測試)。
● 項目未啟用代碼覆蓋率。
在這些情況下,需要開發人員在交付代碼前提高覆蓋率。但是,如果已大致配置了流程,并且人員具有必備的權限,那么開發人員可選擇忽略警告并交付代碼覆蓋率不足的代碼。
讓我們看一個示例。在如圖 2 所示的項目中,您可以看到,HelloWorld.java 類并不滿足覆蓋率要求。
圖 2. Project Explorer 顯示了失敗的代碼覆蓋率
如果您嘗試交付代碼,交付將失敗,您將得到如圖 3 所示的流程建議:重寫“Prohibit Unsatisfactory Code Coverage”先決條件。
圖 3. 代碼覆蓋率交付失敗
posted on 2013-01-08 18:13 順其自然EVO 閱讀(549) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄 、敏捷測試