原創(chuàng)|使用教程|編輯:鄭恭琳|2021-01-15 10:47:15.273|閱讀 215 次
概述:通過了解需要進(jìn)行新測(cè)試的地方,智能地使用代碼覆蓋率指標(biāo)將測(cè)試工作集中在最需要的地方,并創(chuàng)建可維護(hù)的測(cè)試套件。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
通過了解需要進(jìn)行新測(cè)試的地方,智能地使用代碼覆蓋率指標(biāo)將測(cè)試工作集中在最需要的地方,并創(chuàng)建可維護(hù)的測(cè)試套件。
敏捷的主要宗旨之一是確保增量交付物的可交付質(zhì)量,同時(shí)響應(yīng)不斷變化的需求。但是,在平衡新功能測(cè)試同時(shí)驗(yàn)證現(xiàn)有功能的正確操作方面所面臨的挑戰(zhàn)使許多敏捷開發(fā)團(tuán)隊(duì)陷入了擴(kuò)展,擴(kuò)展測(cè)試套件的創(chuàng)建,管理和維護(hù)困境。最后,如果沒有適當(dāng)?shù)男畔⒇?cái)富,那么加速敏捷和對(duì)產(chǎn)品質(zhì)量和安全性都充滿信心將變得非常困難。
為了了解所執(zhí)行的風(fēng)險(xiǎn)緩解水平,查看測(cè)試期間執(zhí)行的代碼量是一個(gè)有用的指標(biāo),但是它經(jīng)常被濫用,并且從宏觀角度來看,它并不是質(zhì)量的良好指標(biāo)。在本文中,我將向您展示如何智能地使用代碼覆蓋率指標(biāo),通過了解需要進(jìn)行新測(cè)試的地方,將測(cè)試工作集中在最需要的地方。我們還將介紹一些創(chuàng)建可維護(hù)測(cè)試套件的最佳實(shí)踐。
代碼覆蓋率不是確定您何時(shí)有足夠測(cè)試的“數(shù)字”,而是對(duì)于指導(dǎo)團(tuán)隊(duì)關(guān)注的重點(diǎn)非常有用的“數(shù)字”。
不幸的是,它經(jīng)常被錯(cuò)誤地用來管理團(tuán)隊(duì),因?yàn)?他們只關(guān)注人數(shù)本身并針對(duì)代碼庫按特定百分比射擊,例如,使用諸如“我們必須擁有80%的覆蓋率才能發(fā)布”或“覆蓋率”之類的策略應(yīng)該與先前的版本相同或更高。”
這種方法的問題在于,獲取和維護(hù)目標(biāo)保險(xiǎn)單號(hào)本身很困難且耗時(shí),因此我們盲目地努力爭(zhēng)取該保險(xiǎn)單號(hào),沒有人會(huì)花時(shí)間問一些重要問題,例如:
我們涵蓋了哪80%?
測(cè)試工作會(huì)驗(yàn)證質(zhì)量并降低交付應(yīng)用程序的風(fēng)險(xiǎn)嗎?
隨著代碼的發(fā)展,我將如何維護(hù)測(cè)試?
正如我在上一個(gè)博客中所討論的那樣,代碼庫中的每個(gè)更改都代表引入風(fēng)險(xiǎn),了解每個(gè)變更對(duì)現(xiàn)有代碼的特定影響,以及了解如何減輕這種風(fēng)險(xiǎn)都很重要。
通過識(shí)別代碼庫中的更改,并使用代碼覆蓋率將測(cè)試與這些更改相關(guān)聯(lián),可以根據(jù)需要進(jìn)行重新測(cè)試的位置來創(chuàng)建最佳測(cè)試計(jì)劃(在此處了解有關(guān)基于更改的測(cè)試的更多信息。)
但這并不能涵蓋所有風(fēng)險(xiǎn)。顯然,我們?nèi)匀恍枰獮樾鹿δ軇?chuàng)建測(cè)試,但是現(xiàn)有/舊版代碼又如何呢?我們討論過的許多組織的目標(biāo)是60-80%的代碼覆蓋率,但實(shí)際上要達(dá)到50%以上是很困難的。因此,很有可能現(xiàn)有的測(cè)試用例不會(huì)覆蓋對(duì)現(xiàn)有代碼的更改。宏覆蓋目標(biāo)僅關(guān)注于保留或逐步增長,就無法避免將回歸引入“已經(jīng)使用多年”的傳統(tǒng)功能。
相反,通過仔細(xì)查看覆蓋率詳細(xì)信息,可以快速識(shí)別出未覆蓋的特定已修改行,因此您可以將團(tuán)隊(duì)集中在需要?jiǎng)?chuàng)建新測(cè)試的位置。此外,利用測(cè)試用例與它們執(zhí)行的特定代碼之間的可追溯性,您可以識(shí)別出可以重復(fù)或擴(kuò)展以覆蓋更改的潛在測(cè)試用例。
通過專注于實(shí)現(xiàn)已修改代碼的100%覆蓋率,而不是團(tuán)隊(duì)任意設(shè)定的“總覆蓋率80%”的目標(biāo),團(tuán)隊(duì)可以在降低新代碼風(fēng)險(xiǎn)的同時(shí)更加高效,同時(shí)消除影響整體項(xiàng)目穩(wěn)定性的因素(例如,對(duì)舊代碼。)
使用Parasoft DTP的Modified Code Coverage小部件(Parasoft DTP的過程智能引擎(PIE)的分析“切片”)可以測(cè)量此智能代碼的覆蓋率。在這里,您可以輕松查看在兩個(gè)內(nèi)部版本之間添加或更改的代碼的覆蓋范圍(例如,當(dāng)前內(nèi)部版本和您選擇的目標(biāo)內(nèi)部版本)。例如,圖1顯示了這樣的小部件。在此示例中,在兩個(gè)版本之間添加或更改了177行代碼,并且其中的109行已經(jīng)過測(cè)試,即61.6%。這意味著有68行新代碼或更改的代碼未經(jīng)過任何測(cè)試,因此尚未通過驗(yàn)證,并且在代碼庫中代表風(fēng)險(xiǎn)。
此小部件后面的是修改后的覆蓋率報(bào)告。該報(bào)告提供了有關(guān)缺少適當(dāng)測(cè)試的代碼的確切詳細(xì)信息。這是開發(fā)人員和測(cè)試人員集中精力所需要的關(guān)鍵信息。圖2顯示了這樣的報(bào)告,其中可以根據(jù)更改數(shù)量或缺少代碼的代碼對(duì)修改后的文件進(jìn)行排序,未發(fā)現(xiàn)的修改行用紅色標(biāo)記。
該報(bào)告回答了“我缺少哪些測(cè)試?”這一問題。根據(jù)每個(gè)構(gòu)建的此處信息,可以創(chuàng)建測(cè)試計(jì)劃。
一旦確定了缺少測(cè)試的代碼,實(shí)際上就需要開始工作并創(chuàng)建測(cè)試以填補(bǔ)空白——但是,您將創(chuàng)建哪種類型的測(cè)試?測(cè)試金字塔(由Martin Fowler和Mike Cohn宣傳)概述了如何創(chuàng)建有效,可管理和可維護(hù)的測(cè)試組合。通過最大程度地減少脆弱的UI級(jí)別測(cè)試,并專注于堅(jiān)實(shí)的單元測(cè)試基礎(chǔ)(以全面的Service/API級(jí)別測(cè)試作為后盾),您可以構(gòu)建可擴(kuò)展、可維護(hù)并且可以連續(xù)執(zhí)行的測(cè)試策略。
我們不會(huì)在此博客中介紹創(chuàng)建單元或API測(cè)試的詳細(xì)信息,但是您可以查看我以前的有關(guān)單元測(cè)試的博客,并關(guān)注有關(guān)Parasoft SOAtest的博客:用于簡化API/服務(wù)級(jí)別測(cè)試的創(chuàng)建。
代碼覆蓋率是一項(xiàng)重要指標(biāo),但是它經(jīng)常被濫用和濫用,尤其是在用于衡量質(zhì)量時(shí)。為了從代碼覆蓋范圍中獲取更多價(jià)值,請(qǐng)利用Parasoft DTP的分析智能來檢測(cè)需要進(jìn)行新測(cè)試的地方,降低風(fēng)險(xiǎn),集中測(cè)試并優(yōu)化實(shí)現(xiàn)質(zhì)量目標(biāo)。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn