qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          通過增加代碼覆蓋率提高單元測試的質量

           簡介: 許多敏捷軟件開發團隊都面臨的一個挑戰是,確保其單元測試包含大部分代碼。這在確保他們創建盡可能少的缺陷并且代碼可重構時非常重要。因此,重要的度量指標(除了通過的所有測試之外)之一是已包含的代碼數量。從 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. 代碼覆蓋率交付失敗


           在 Rational Team Concert 中設置流程

            在流程中存儲信息意味著集中存儲所必需的代碼百分比閾值,并在團隊中平等應用它們(盡管您可要針對不同組件配置不同的代碼覆蓋率要求,如后面所見)。您可以在本地客戶端設置不同的覆蓋率設置,但是當交付代碼時將使用基于服務器的設置。

            配置流程

            提示:

            在開始前,您需要具有修改 Project Area 的流程的相應角色。

            1、從 Eclipse shell,導航到 Work Item 視圖,打開 Team Artifacts 視圖。

            2、在想要配置的項目區域右鍵單擊,并選擇 Open。

            3、然后單擊 Process Configuration 選項卡打開流程編輯器(圖 4)。

          圖 4. 流程配置編輯器

            1、打開 Team Configuration 視圖,選擇 Deliver (client) 操作,然后選擇 Everyone (default) 列下面的單元格,如圖 5 所示。

          圖 5. 交付選項

            將足夠的代碼覆蓋率配置為先決條件

            現在您準備好配置規則,然后可以檢查每次有人交付代碼時代碼覆蓋率是否足夠。

            1、添加一個先決條件來檢查代碼覆蓋率:

            a)在 Preconditions 部分單擊 Add,選擇 Prohibit Unsatisfactory Code Coverage(參見圖 6)。

            b)配置所需的各種代碼覆蓋率級別。

            您可以在源代碼的不同級別指定所需的覆蓋率。例如,每個文件可能需要 70% 的行覆蓋率;但是,開發人員對每種類型必須具有 100% 的覆蓋率。您還可以正則表達式以將文件從覆蓋率統計信息中排除,這在您具有一些自動生成的不在意覆蓋率的代碼時很有用。最后,不同的組件可以具有不同的規 則,方法是指定這些覆蓋率設置應用的組件。

          圖 6. Prohibit Unsatisfactory Code Coverage 配置

            2、現在保存流程,這些新規則會在您下次交付代碼時生效。

          posted on 2013-01-08 18:13 順其自然EVO 閱讀(549) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄敏捷測試

          <2013年1月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 新安县| 定远县| 渝北区| 舒城县| 芜湖县| 满城县| 中宁县| 漳州市| 兴仁县| 卫辉市| 横峰县| 伊川县| 鹿邑县| 石阡县| 若尔盖县| 旬阳县| 台中县| 珲春市| 团风县| 保山市| 宜宾县| 宜良县| 鸡东县| 卢龙县| 策勒县| 新郑市| 锡林郭勒盟| 胶州市| 紫阳县| 禹城市| 江华| 淮南市| 马山县| 隆德县| 磐石市| 宜阳县| 桂平市| 凤冈县| 牟定县| 延边| 东乡族自治县|