• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      測試工時(shí)受限的測試策略研究

      2014-02-09 07:47:12輝,周
      關(guān)鍵詞:測試用例用例工時(shí)

      陳 輝,周 豐

      (華北計(jì)算技術(shù)研究所,北京100083)

      0 引 言

      要想對軟件進(jìn)行盡可能完備的測試,需要設(shè)計(jì)和執(zhí)行充足的測試用例。但是,測試用例也不是無止盡的越多越好,因?yàn)樾枰O(shè)計(jì)和執(zhí)行的測試用例越多,測試成本也就越高。在現(xiàn)實(shí)中,很多軟件項(xiàng)目存在開發(fā)進(jìn)度延遲的問題,導(dǎo)致測試工時(shí)有限乃至不足,而軟件又面臨按時(shí)發(fā)布的壓力。因此,有必要研究在測試工時(shí)受限條件下,如何使用較少的測試用例進(jìn)行盡可能充分的測試。

      當(dāng)前,對如何使用較少的測試用例進(jìn)行盡可能充分的測試,主要集中在回歸測試領(lǐng)域,如測試用例優(yōu)先排序[1-3]、測試用例集縮減和測試用例集擴(kuò)充[4,5],這些技術(shù)無法在測試用例設(shè)計(jì)好之前使用。也有一些技術(shù)可以在測試用例設(shè)計(jì)前使用,如統(tǒng)計(jì)測試方法[6],但是應(yīng)用該方法之前需要建立軟件使用模型,這本身就很消耗工作量,而且因?yàn)槭且环N隨機(jī)測試方法,難以在軟件投入使用之前判定測試的充分性。另外,張德平[7]等人研究了劃分測試中劃分方案確定情形下,如何在各個(gè)子域中合理選擇測試用例問題,但是由于要求測試人員了解待測軟件的錯(cuò)誤分布,并給出失效概率矩陣,因此不便于在實(shí)際應(yīng)用領(lǐng)域使用。為此,分析了制定測試策略時(shí)需要考慮的幾個(gè)因素,提出了一種對將要設(shè)計(jì)的測試用例進(jìn)行優(yōu)先級估計(jì)的方法,該方法的最大特點(diǎn)就是可在設(shè)計(jì)測試用例之前使用,在以上基礎(chǔ)上,提出了測試工時(shí)受限的測試策略。

      1 影響測試策略的因素

      制定測試策略時(shí)需要考慮的因素有很多,下面只對測試工時(shí)、測試充分性展開探討。

      1.1 測試工時(shí)

      在本文中,測試工時(shí)表示分配給測試工作的時(shí)間,也指完成測試工作所需要的時(shí)間。測試工作包括測試策劃、測試設(shè)計(jì)和實(shí)現(xiàn)、測試執(zhí)行、測試總結(jié)。假設(shè)有一個(gè)測試項(xiàng)目,有m個(gè)全職測試人員,要求在n個(gè)工作日內(nèi)完成,每個(gè)工作日有t小時(shí)的有效工作時(shí)間,那么對這個(gè)測試項(xiàng)目的測試工時(shí)有

      測試策略的制定必然受到分配給測試工作的時(shí)間的影響,如果分配給測試工作的時(shí)間少于完成測試工作所需要的時(shí)間,則需要對測試策略進(jìn)行必要的調(diào)整和優(yōu)化。測試需求直接決定了完成測試工作所需要的時(shí)間,測試需求直接決定了需要進(jìn)行哪些類型的測試以及相應(yīng)的測試設(shè)計(jì)方法,及測試用例的最少數(shù)量。測試用例的設(shè)計(jì)執(zhí)行所需時(shí)間直接受到測試用例類型、測試用例數(shù)量及單位測試用例的設(shè)計(jì)執(zhí)行時(shí)間的影響。

      1.2 測試充分性

      從測試設(shè)計(jì)角度上看,采用的測試類型和測試用例設(shè)計(jì)方法,以及設(shè)計(jì)的有效測試用例數(shù)量,會(huì)影響到測試充分性。采用的測試類型越多,不同測試用例設(shè)計(jì)方法設(shè)計(jì)出的有效測試用例數(shù)量越多,則能達(dá)到的測試覆蓋率越高,也越可能發(fā)現(xiàn)更多的潛在缺陷,從而更能保證測試的充分性。但是另外一方面,采用的測試類型越多,測試用例數(shù)量越多,也會(huì)導(dǎo)致測試成本更高。因此,在測試實(shí)踐當(dāng)中,需要在測試充分性與測試成本之間尋找合適的平衡點(diǎn)。

      假設(shè)測試發(fā)現(xiàn)的所有缺陷都被修復(fù),測試成本與有效測試用例數(shù)量直接相關(guān),則判斷有效測試用例數(shù)量是否足夠的一個(gè)方法是:潛在的遺留缺陷(即在測試中未被發(fā)現(xiàn)的潛在缺陷)導(dǎo)致的質(zhì)量風(fēng)險(xiǎn)成本≤測試成本,如圖1所示。

      圖1 測試用例數(shù)量、測試成本與質(zhì)量風(fēng)險(xiǎn)成本的關(guān)系

      2 一種測試用例優(yōu)先級估計(jì)方法

      在有限的測試工時(shí)中,如果依照測試類型和相應(yīng)的測試方法設(shè)計(jì)所有的用例,則必然會(huì)消耗較多的寶貴的測試工時(shí),因此有必要對將要設(shè)計(jì)的測試用例進(jìn)行優(yōu)先級估計(jì),然后再有選擇地設(shè)計(jì)較高優(yōu)先級的測試用例。

      目前,對于已設(shè)計(jì)或執(zhí)行的測試用例的優(yōu)先級研究較多[8-10],但是卻沒有適合在測試用例設(shè)計(jì)前就預(yù)估其優(yōu)先級的實(shí)用方法,為此假設(shè)每個(gè)測試用例被設(shè)計(jì)之前都有針對性的測試目標(biāo),通過專家經(jīng)驗(yàn)及實(shí)際測試經(jīng)驗(yàn),提出了測試用例優(yōu)先級的6個(gè)度量元(見表1)供參考,即被測目標(biāo)重要度、被測目標(biāo)復(fù)雜度、被測目標(biāo)緊迫度、用例重要度、預(yù)計(jì)用例的檢測缺陷能力、開發(fā)團(tuán)隊(duì)信心度,然后依據(jù)這6個(gè)度量元去估算測試用例的優(yōu)先級。記這6個(gè)度量元分別為ap、ac、ae、tp、td、tc,則測試用例的優(yōu)先級p的計(jì)算方法如下

      表1 測試用例優(yōu)先級的度量元權(quán)值

      3 測試工時(shí)受限的測試策略

      在制定測試計(jì)劃時(shí),進(jìn)行測試設(shè)計(jì)之前,需要依據(jù)測試需求確定相應(yīng)的測試類型,提出測試的基本方法,估計(jì)可產(chǎn)生的各類測試用例及其優(yōu)先級、測試用例數(shù)量以及單位測試用例所需的測試時(shí)間,然后進(jìn)行測試用例選擇,僅設(shè)計(jì)和執(zhí)行選中的測試用例,從而能夠在測試設(shè)計(jì)階段就力爭用最少的測試用例發(fā)現(xiàn)盡可能多的缺陷。

      3.1 測試用例估計(jì)

      測試設(shè)計(jì)人員可依照“測試用例優(yōu)先級的度量元權(quán)值”(見表1)估算測試用例的優(yōu)先級,然后依據(jù)經(jīng)驗(yàn)或者歷史測試數(shù)據(jù),估算出各測試目標(biāo)對應(yīng)的測試用例數(shù)量以及每個(gè)測試用例所需的測試時(shí)間,填寫測試用例估計(jì)表(見表2)。

      表2 測試用例估計(jì)表(示例)

      完成測試用例估計(jì)后,測試用例可表示為

      式中:TC——測試用例,ID——用例標(biāo)識,SM——被測軟件模塊,TK——測試目標(biāo),即采用何種測試類型及測試方法,測試相應(yīng)種類的缺陷,SF——是否合法用例,MP——測試用例的優(yōu)先級,TT——測試所需的時(shí)間。

      3.2 測試用例選擇方法

      依據(jù)測試用例優(yōu)先級,以及設(shè)計(jì)、執(zhí)行這些測試用例所需的測試工時(shí),可以計(jì)算出整個(gè)測試所需的測試工時(shí)。假設(shè)可設(shè)計(jì)出i個(gè)測試用例,第i個(gè)測試用例的優(yōu)先級、所需測試時(shí)間分別為pi、ti,則這些測試用例所需的測試工時(shí)ts為

      記可支配的測試工時(shí)為tp,依據(jù)tp與ts的大小關(guān)系,判斷是否需要進(jìn)行測試用例選擇:

      (1)如果tp=ts,則表示可以按時(shí)完成預(yù)計(jì)的所有測試用例的設(shè)計(jì)和執(zhí)行。

      (2)如果tp>ts,則表示可以提前完成預(yù)計(jì)的所有測試用例的設(shè)計(jì)和執(zhí)行,可以考慮是否補(bǔ)充更多的測試用例。

      (3)如果tp<ts,則表示無法按時(shí)完成預(yù)計(jì)的所有測試用例的設(shè)計(jì)和執(zhí)行,需要通過測試用例的選擇來調(diào)整測試用例數(shù)量,以減少測試所需時(shí)間。

      本文著重考慮第三種狀況,即無法在可支配的測試工時(shí)范圍內(nèi),按時(shí)完成預(yù)計(jì)的所有測試用例的設(shè)計(jì)和執(zhí)行。對于這種狀況,需要進(jìn)行測試用例選擇,然后僅設(shè)計(jì)和執(zhí)行選中的測試用例。

      測試用例選擇策略如下:

      (1)對每一個(gè)功能模塊,從其相應(yīng)的測試用例中,選擇一個(gè)優(yōu)先級最高的合法用例,從而確保每一個(gè)軟件功能至少被一個(gè)合法用例所覆蓋;

      (2)按第一個(gè)策略選擇完測試用例后,優(yōu)先選擇優(yōu)先級高的測試用例,如果兩個(gè)測試用例的優(yōu)先級相同,則優(yōu)先選擇預(yù)計(jì)所需測試工時(shí)較少的那個(gè)。

      假設(shè)可選測試用例的集合為T,已選擇的測試用例的集合為S,已選擇用例的累計(jì)所需測試工時(shí)為ts,可支配的測試工時(shí)為tp,則上述測試策略對應(yīng)的算法如下:

      (1)0→ts;

      (2)計(jì)算各測試用例的優(yōu)先級;

      (3)將T中的測試用例按照被測軟件模塊分組,依次從每組測試用例中選擇最高優(yōu)先級的合法測試用例到S中(如果同組中有多個(gè)用例的優(yōu)先級并列第一,則從這些用例中隨機(jī)選擇一個(gè)),同時(shí)從T中刪除相應(yīng)測試用例;

      (4)S中所有測試用例所需的測試工時(shí)→ts;

      (5)如果ts≥tp或者T中的測試用例數(shù)為0,則算法終止,否則轉(zhuǎn)入(6);

      (6)將T中的測試用例按照優(yōu)先級升序排序;

      (7)選取T中的最后一個(gè)測試用例到S中,同時(shí)從T中刪除相應(yīng)測試用例,ts+該測試用例所需測試時(shí)間→ts;

      (8)如果ts≥tp或者T中的測試用例數(shù)為0,則算法終止,否則轉(zhuǎn)入(7)。

      需要說明的是,如果已選中的用例所需測試工時(shí)遠(yuǎn)超可支配的測試工時(shí),則說明測試工時(shí)嚴(yán)重不足,一定需要增加更多的可支配工時(shí)。另外,對未被選擇的測試用例,可能需要視情況決定是否進(jìn)行風(fēng)險(xiǎn)決策。假設(shè)單位測試工時(shí)的成本為c,則設(shè)計(jì)和執(zhí)行該測試用例的成本ct=c*ti,假設(shè)該測試用例預(yù)計(jì)所檢測的缺陷在軟件實(shí)際運(yùn)行中出現(xiàn)的概率為pt,該缺陷顯現(xiàn)導(dǎo)致的損失和修復(fù)成本為qt,如果ct<pt,則表示該測試用例值得設(shè)計(jì)和執(zhí)行。另外,如果有嚴(yán)格的測試內(nèi)容、測試類型覆蓋要求,還需要驗(yàn)證選擇的測試用例是否完全覆蓋了測試內(nèi)容,是否有對應(yīng)必要測試類型的測試用例。

      4 實(shí)驗(yàn)結(jié)果與分析

      以某辦公系統(tǒng)為實(shí)驗(yàn)對象,該辦公系統(tǒng)功能包括用戶登錄、系統(tǒng)管理(含部門管理、用戶管理、通知公告管理、消息管理等)、資源共享、考勤管理、假期管理等,其中用戶登錄、部門管理、用戶管理部分復(fù)用代碼庫中的代碼,其余部分為新編寫的代碼。使用功能點(diǎn)估算法估計(jì)的系統(tǒng)規(guī)模為286FP。首先依據(jù)測試需求、計(jì)劃采用的測試類型及測試設(shè)計(jì)方法,估算出預(yù)計(jì)產(chǎn)生的各類測試用例的優(yōu)先級、數(shù)量、單位用例設(shè)計(jì)和執(zhí)行所需的工時(shí),形成測試用例估計(jì)表(見表3)。如果不進(jìn)行測試用例選擇,預(yù)計(jì)會(huì)產(chǎn)生1447個(gè)測試用例,完成所有測試工作大約需要142人時(shí)。

      表3 測試用例估計(jì)(用戶登錄功能)

      隨后,不進(jìn)行測試用例選擇,按照測試需求、計(jì)劃采用的測試類型及測試方法,設(shè)計(jì)和執(zhí)行所有的測試用例。最后再依據(jù)測試用例估計(jì)表,假設(shè)事先進(jìn)行了測試用例選擇,則不同的測試用例選擇數(shù)的設(shè)計(jì)執(zhí)行時(shí)間(測試工時(shí),單位:人時(shí))、檢出缺陷數(shù)、單位測試用例的設(shè)計(jì)執(zhí)行時(shí)間(人時(shí)/用例)、單位測試用例檢出的缺陷數(shù)(檢出缺陷數(shù)/用例)、檢出缺陷數(shù)/人時(shí)的比較結(jié)果見表4。從表4可看出,分配給測試的時(shí)間越少,能選擇的測試用例數(shù)越少,但是按照測試用例的估計(jì)和選擇方法選擇出的測試用例,平均每個(gè)用例檢出了更多的缺陷,單位時(shí)間檢出的缺陷數(shù)也更多。

      表4 不同的測試用例選擇數(shù)(示例)

      選擇不同數(shù)量的測試用例時(shí),平均每個(gè)測試用例檢出的缺陷數(shù)的趨勢如圖2所示,利用本文的測試策略,確實(shí)選擇出了檢出缺陷能力更強(qiáng)的測試用例。

      選擇不同數(shù)量的測試用例時(shí),檢出的各級缺陷數(shù)如圖3所示,在4個(gè)缺陷級別中,一級缺陷表示致命缺陷,二級缺陷表示嚴(yán)重缺陷,三級缺陷表示一般缺陷,四級缺陷表示不影響用戶使用的缺陷。在選擇出的測試用例數(shù)比較少時(shí),所選的測試用例檢出重大缺陷的能力較強(qiáng),但是也說明,要想檢測出所有較重大的缺陷,測試用例數(shù)不能太少,也就是說分配給測試工作的時(shí)間不能太少。

      實(shí)驗(yàn)結(jié)果表明,所提出的測試工時(shí)受限的測試策略,能夠選擇出檢出缺陷能力更強(qiáng),尤其是檢出重大缺陷能力更強(qiáng)的測試用例,從而可以在適當(dāng)減少需設(shè)計(jì)的測試用例數(shù)量的基礎(chǔ)上,達(dá)到較好的測試效果。

      圖2 單位測試用例檢出的缺陷數(shù)

      圖3 選擇的測試用例檢出的各級缺陷數(shù)

      5 結(jié)束語

      在測試工時(shí)受限的情況,如何制定有效的測試策略是一個(gè)有待解決的現(xiàn)實(shí)問題,為此提出了測試工時(shí)受限的基于測試用例優(yōu)先級的測試策略。該策略將測試用例按被測目標(biāo)重要度、被測目標(biāo)復(fù)雜度、被測目標(biāo)緊迫度、用例重要度、預(yù)計(jì)用例的檢測缺陷能力、開發(fā)團(tuán)隊(duì)信心度等多種因素綜合考慮,計(jì)算出各類測試用例的優(yōu)先級,接著估算各類測試用例的數(shù)量、設(shè)計(jì)和執(zhí)行單位用例所需的工時(shí),然后采用測試用例選擇方法,確保在有限的測試工時(shí)內(nèi),設(shè)計(jì)和執(zhí)行盡可能多的優(yōu)先級高的測試用例,且力保每個(gè)功能至少被一個(gè)合法測試用例所覆蓋。實(shí)驗(yàn)結(jié)果表明了該測試策略的有效性。

      [1]CHEN Xiang,CHEN Jihong,JU Xiaolin,et al.Survey of test case prioritization techniques for regression testing[J].Journal of Software,2013,24(8):1695-1712(in Chinese).[陳翔,陳繼紅,鞠小林,等.回歸測試中的測試用例優(yōu)先排序技術(shù)述評[J].軟件學(xué)報(bào),2013,24(8):1695-1712.]

      [2]Mei H,Hao D,Zhang LM,et al.A static approach to prioritizing JUnit test cases[J].IEEE Trans on Software Engineering,2012,38(6):1258-1275.

      [3]YANG Guanghua,BAO Yang,LI Donghong,et al.Test case prioritization based on requirement[J].Computer Engineering and Design,2011,32(8):2724-2728(in Chinese).[楊廣華,包陽,李東紅,等.基于需求的測試用例優(yōu)先級排序[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(8):2724-2728.]

      [4]ZHANG Xiaofang,CHEN Lin,XU Baowen,et al.Survey of test suite reduction problem[J].Journal of Frontiers of Computer Science and Technology,2008,2(3):235-247(in Chinese).[章曉芳,陳林,徐寶文,等.測試用例集約簡問題研究及其進(jìn)展[J].計(jì)算機(jī)科學(xué)與探索,2008,2(3):235-247.]

      [5]Yoo S,Harman M.Regression testing minimization,selection and prioritization:A survey[J].Software Testing,Verification &Reliability,2012,22(2):67-120.

      [6]ZHANG Deping,NIE Changhai,XU Baowen.Acceleration testing method of safety-critical software with testing resource constraint[J].Computer Science,2009,36(5):138-141(in Chinese).[張德平,聶長海,徐寶文.測試資源受約束的安全關(guān)鍵軟件加速測試方法[J].計(jì)算機(jī)科學(xué),2009,36(5):138-141.]

      [7]ZHANG Deping,ZHA Rijun.Risk decision approach to test allocation problem in partition testing[J].Application Research of Computers,2010,27(12):4536-4540(in Chinese).[張德平,查日軍.劃分測試用例選擇的風(fēng)險(xiǎn)決策方法[J].計(jì)算機(jī)應(yīng)用研究,2010,27(12):4536-4540.]

      [8]DAI Ruxin,GU Chunhua.Advanced test case prioritization for black box testing[J].Computer Engineering and Design,2010,31(20):4343-4346(in Chinese).[戴如昕,顧春華.用于黑盒測試的測試用例優(yōu)先級改進(jìn)算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(20):4343-4346.]

      [9]PAN Weifeng,LI Bing,MA Yutao.Test case prioritization based on complex software networks[J].Acta Electronica Sinica,2012,40(12):2456-2465(in Chinese).[潘偉豐,李兵,馬于濤.基于復(fù)雜軟件網(wǎng)絡(luò)的回歸測試用例優(yōu)先級排序[J].電子學(xué)報(bào),2012,40(12):2456-2465.]

      [10]Pravin A,Srinivasan S.Effective test case selection and prioritization in regression testing[J].Journal of Computer Science,2013,9(5):654-659.

      猜你喜歡
      測試用例用例工時(shí)
      UML用例模型中依賴關(guān)系的比較與分析
      淺析國有企業(yè)如何推行標(biāo)準(zhǔn)工時(shí)管理
      基于SmartUnit的安全通信系統(tǒng)單元測試用例自動(dòng)生成
      特殊工時(shí)制不能成為企業(yè)“變相剝削”的工具
      聯(lián)鎖軟件詳細(xì)設(shè)計(jì)的測試需求分析和用例編寫
      從出土文獻(xiàn)用例看王氏父子校讀古書的得失
      基于混合遺傳算法的回歸測試用例集最小化研究
      基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
      《修辭學(xué)發(fā)凡》用例的當(dāng)代學(xué)術(shù)價(jià)值
      軟件回歸測試用例選取方法研究
      西平县| 龙南县| 泸水县| 鹿邑县| 休宁县| 鄂尔多斯市| 浦北县| 武穴市| 康定县| 凭祥市| 阳春市| 靖安县| 安化县| 理塘县| 江川县| 苍山县| 杭锦后旗| 梅州市| 洛川县| 南靖县| 增城市| 富裕县| 马龙县| 宁国市| 钦州市| 乡城县| 陵川县| 台北市| 镇安县| 汉阴县| 南陵县| 伊金霍洛旗| 高碑店市| 舟曲县| 广昌县| 石台县| 东至县| 察隅县| 缙云县| 咸丰县| 陆丰市|