• 
    

    
    

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

      結(jié)合需求與反饋的動態(tài)測試用例優(yōu)先級排序方法

      2015-06-23 16:25:34謝小竹崔建峰莊蔚蔚
      廈門理工學院學報 2015年5期
      關(guān)鍵詞:測試用例排序動態(tài)

      謝小竹, 肖 蕾, 崔建峰, 莊蔚蔚

      (1.廈門理工學院計算機與信息工程學院,福建廈門361024; 2.廈門市軟件體系結(jié)構(gòu)重點實驗室,福建廈門361024)

      結(jié)合需求與反饋的動態(tài)測試用例優(yōu)先級排序方法

      謝小竹1,2, 肖 蕾1,2, 崔建峰1,2, 莊蔚蔚1,2

      (1.廈門理工學院計算機與信息工程學院,福建廈門361024; 2.廈門市軟件體系結(jié)構(gòu)重點實驗室,福建廈門361024)

      為提高軟件測試的缺陷檢測速率,提出結(jié)合需求與反饋信息的動態(tài)測試用例優(yōu)先級排序方法.根據(jù)需求優(yōu)先級和需求是否變更對測試用例優(yōu)先級進行初始化,執(zhí)行過程中結(jié)合需求相關(guān)性和反饋信息動態(tài)調(diào)整未被執(zhí)行的測試用例的優(yōu)先級,直到測試用例執(zhí)行條件跳出為止.在GPSking中的驗證結(jié)果為:本方法的APFD為68.73%,而測試用例按被創(chuàng)建順序的APFD為51.4%,僅采用需求優(yōu)先級靜態(tài)排序的APFD為67.5%.結(jié)果表明,該方法能很好地提高缺陷檢測速率.

      測試用例;優(yōu)先級;動態(tài);需求;相關(guān)性

      環(huán)境在改變,軟件需求也無時無刻不在變化,而需求的改變,如完善已有功能、新增功能模塊、提高性能等,則帶來了軟件演化、新版本的發(fā)布.頻繁的版本發(fā)布卻帶來回歸測試成本的劇增.為此,國內(nèi)外研究人員在提高回歸測試的效率、降低回歸測試成本方面展開了深入研究,其中測試用例優(yōu)先級技術(shù)就是研究熱點之一[1-3].測試用例優(yōu)先級技術(shù)是將所有測試用例按照重要性進行優(yōu)先級排序,優(yōu)先級越高,表示其檢錯能力或覆蓋率越強.優(yōu)先執(zhí)行優(yōu)先級高的測試用例,就能夠保證盡早地發(fā)現(xiàn)軟件中的缺陷.同時,還可以根據(jù)優(yōu)先級的排序?qū)y試用例集分不同的等級,在不同的開發(fā)階段執(zhí)行不同等級的測試用例集.

      文獻 [1]將測試用例優(yōu)先級技術(shù)分為3類:代碼、模型和需求.基于代碼的優(yōu)先級技術(shù)[2-3]是依據(jù)每個測試用例所能覆蓋的程序?qū)嶓w (根據(jù)粒度大小,主要有語句覆蓋、方法覆蓋、類覆蓋、函數(shù)覆蓋等)進行排序,覆蓋率越高,測試用例優(yōu)先級越高.不過,根據(jù)文獻 [4],粒度大小對測試用例優(yōu)先級排序沒有明顯影響.基于模型的測試用例優(yōu)先級技術(shù)是隨著實踐人員逐漸傾向于借助模型來設(shè)計和實現(xiàn)軟件系統(tǒng)而逐步興起的.當系統(tǒng)改變時,模型也會進行修改操作 (包括遷移添加、遷移移除等),稱為模型差異.依據(jù)測試用例對模型差異的覆蓋信息進行排序,覆蓋率越高,測試用例優(yōu)先級越高[5-6].從需求角度出發(fā)來指導測試用例的排序,主要考慮因素包括客戶定義的需求優(yōu)先級、需求變動信息、需求實現(xiàn)復雜度等[7-9].在回歸測試執(zhí)行中,這些技術(shù)或者因素既可以單獨也可以結(jié)合起來作用于測試用例排序,測試者可以根據(jù)實際案例情況權(quán)衡考慮技術(shù)或因素的權(quán)重.本文提出一種結(jié)合需求與反饋信息的動態(tài)測試用例優(yōu)先級排序方法,首先根據(jù)需求優(yōu)先級和需求變更對測試用例優(yōu)先級進行初始化,然后執(zhí)行優(yōu)先級最高且未被執(zhí)行的測試用例,接著結(jié)合需求相關(guān)性動態(tài)調(diào)整未被執(zhí)行的測試用例的優(yōu)先級,反復執(zhí)行直到測試用例執(zhí)行條件跳出為止.

      1 測試用例優(yōu)先級排序問題描述

      測試用例優(yōu)先級排序 (test case prioritization,簡稱TCP)技術(shù)最早是為解決回歸測試中測試用例全面執(zhí)行帶來的成本問題而提出的,它根據(jù)一定的考慮因素將測試用例進行排序,先執(zhí)行優(yōu)先級高的測試用例,后執(zhí)行優(yōu)先級低的測試用例,有些優(yōu)先級低的甚至不執(zhí)行,從而提高測試中缺陷檢測的速率,降低回歸測試的執(zhí)行成本.Elbaum等[10]在2000年對TCP問題進行形式化描述如下:

      給定:測試用例集T,T的全排列集PT,排序目標函數(shù)f(其定義域為PT,值域為實數(shù)).問題:求出T′∈PT,且滿足:(?T″)(T″∈PT)(T″≠T′)[f(T′)≥f(T″)].

      其中,集合PT是T中所有測試用例的全排列,函數(shù)f是對排列的度量公式,輸入是PT中一個排列,輸出值為一個實數(shù),值越大,說明該測試用例的執(zhí)行次序的效果越好.TCP問題就是要找到一個測試用例的執(zhí)行次序,使得f值最大.

      2 結(jié)合需求與反饋的優(yōu)先級排序

      2.1 相關(guān)需求指標

      1)需求優(yōu)先級 (requirement priority,RP).任何一個產(chǎn)品都是基于需求開發(fā)的,而且根據(jù)二八定律,80%的用戶僅僅使用系統(tǒng)20%的功能,80%的系統(tǒng)功能只有少數(shù)用戶使用.在時間、人力、資源等成本有限的情況下,回歸測試應(yīng)首先根據(jù)需求的優(yōu)先級先保證那20%的測試需求.需求優(yōu)先級越高,其對應(yīng)的測試用例就越早被執(zhí)行.用RPi表示第i個測試用例對應(yīng)的需求優(yōu)先級,需求優(yōu)先級一般分為最高、次高、中、次低、低5個等級,可對應(yīng)賦值5、4、3、2、1或10、8、6、4、2、1,值越大代表優(yōu)先級越高.

      2)需求變更 (requirement modify,RM).需求變更常常引入軟件缺陷,越頻繁的需求變更,其軟件質(zhì)量越難以保障.如果測試用例對應(yīng)的需求發(fā)生變更,那么對應(yīng)的測試用例的執(zhí)行優(yōu)先級將提高.用RMi表示第i個測試用例對應(yīng)的需求是否發(fā)生變更.根據(jù)需求發(fā)生變更與否,RMi可對應(yīng)賦值5、0或者10、0,與需求優(yōu)先級的賦值對應(yīng).

      3)需求相關(guān)性 (requirement relativity,RR).各個需求之間一般都不是獨立存在,而是相互關(guān)聯(lián)的.一個較大需求由若干個小需求組成,只有所有小需求都測試通過,大需求才算通過,稱大小需求互為父子關(guān)系,小需求之間為兄弟關(guān)系.定義需求的關(guān)系矩陣MRR如定義1.

      測試用例是根據(jù)測試需求來設(shè)計的,且是多對多的關(guān)系,即一個測試需求可能對應(yīng)多個測試用例,一個測試用例也有可能對應(yīng)多個測試需求.定義測試用例與測試需求的關(guān)聯(lián)矩陣MTR如定義2.

      當一個測試用例檢測出某一測試需求的缺陷時,該測試需求的父子需求或者兄弟需求也很有可能存在相關(guān)或類似的缺陷.

      2.2 優(yōu)先級初始化

      根據(jù)實際需求對RPi和RMi設(shè)置不同的權(quán)重α、1-α,綜合考慮這兩個因素對測試用例優(yōu)先級排序,則基于需求的測試用例優(yōu)先級值 (test case prioritization based on requirements,TCPR)的計算公式如下:TCPRi,j=RPi,j*α+RMi,j*(1-α),其中:α和1-α分別代表RP和RM的權(quán)重,默認值各為0.5;RPi,j就是第j次回歸測試中用例i的對應(yīng)需求優(yōu)先級值,值越大,優(yōu)先級越高;RMi,j就是第j次回歸測試中用例i對應(yīng)的需求是否修改,非零代表進行修改,零代表未修改.該優(yōu)先級排序不僅適用于回歸測試,也適用于首次測試.如果用于首次測試,則將RM的權(quán)重設(shè)為0即可.

      2.3 需求相關(guān)動態(tài)調(diào)整優(yōu)先級

      需求優(yōu)先級一般由用戶指定,具有一定主觀性.為此,在測試執(zhí)行過程中,利用需求相關(guān)性,根據(jù)測試反饋信息動態(tài)調(diào)整測試用例優(yōu)先級[11],減少人為主觀性帶來的偏差,提高缺陷檢測速率.

      需求相關(guān)動態(tài)調(diào)整測試用例優(yōu)先級的步驟為:1)根據(jù)2.2描述的算法對測試用例集T進行排序初始化,對于相同優(yōu)先級的測試用例,采用隨機算法排序;2)按照從高到低的順序執(zhí)行測試用例,當檢測到缺陷時,動態(tài)地提升該測試用例對應(yīng)的測試需求ri的兄弟需求和父子需求 (即矩陣MRR第i行元素值為1所對應(yīng)的所有需求列集合)對應(yīng)的所有未執(zhí)行的測試用例的優(yōu)先級.重復步驟2),直到測試用例執(zhí)行條件不滿足為止.算法描述如下:

      輸入:測試用例集 T,需求的關(guān)系矩陣MRR=(ki,j),測試用例與需求的關(guān)系矩陣MTR=(hi,j).

      輸出:排序后的測試用例集T′.

      3 實驗分析

      GPSking將全球定位系統(tǒng) (global positioning system,GPS)、地理信息系統(tǒng) (geographic information system,GIS)技術(shù)相結(jié)合,通過GPS并利用語音信道,將移動車輛上的GPS位置數(shù)據(jù)傳送到監(jiān)視中心,實現(xiàn)GIS的圖形化監(jiān)視查詢功能,對車輛進行點名、跟蹤、軌跡回放.該平臺主要包括車輛信息管理、車輛位置查詢、車輛監(jiān)控、車輛調(diào)度、車輛電召、報警處理等模塊.本文選擇車輛監(jiān)控、車輛調(diào)度2個模塊進行實驗,共75個測試需求,與之對應(yīng)的85個測試用例,共發(fā)現(xiàn)51個bug.

      圖1 測試用例按被創(chuàng)建時間順序執(zhí)行效果Fig.1 Results of prioritization of created time

      測試用例按照被創(chuàng)建的時間順序進行執(zhí)行,缺陷檢測速率效果如圖1.由圖1可以看到,結(jié)果具有隨機性,測試用例執(zhí)行有3個階段 (10%~20%,50%~60%,80%~90%)沒有發(fā)現(xiàn)一個缺陷,而有些階段 (20% ~30%,70% ~80%)缺陷集中爆發(fā),當測試用例完全執(zhí)行完才將所有缺陷檢測完整,其APFD的值為51.4%.圖2是根據(jù)需求優(yōu)先級對測試用例進行排序后的執(zhí)行結(jié)果,當測試用例執(zhí)行到10%時就檢測到了27%的缺陷,缺陷檢測速率也趨于平穩(wěn),當執(zhí)行80%測試用例時就已經(jīng)檢測到所有缺陷,計算得到APFD的值為67.5%.圖3是結(jié)合需求與反饋信息動態(tài)調(diào)整優(yōu)先級對測試用例進行排序后的執(zhí)行結(jié)果,可以看到,缺陷檢測速率稍優(yōu)于僅按需求優(yōu)先級排序,計算得到APFD的值為68.73%.

      圖2 測試用例按需求優(yōu)先級順序執(zhí)行效果Fig.2 Results of requirements prioritization

      圖3 結(jié)合需求相關(guān)與反饋信息動態(tài)調(diào)整測試用例執(zhí)行效果Fig.3 Results of dynamic prioritization of requirements and feedback

      通過實驗分析發(fā)現(xiàn):1)基于需求優(yōu)先級得到的測試用例集排序,與不進行排序或任意排序相比,缺陷檢測速率有明顯提高,能較快檢測到缺陷;2)結(jié)合需求相關(guān)和反饋信息動態(tài)調(diào)整測試用例優(yōu)先級,相比簡單基于需求優(yōu)先級排序,缺陷檢測速率稍有提高,且對人為認定需求優(yōu)先級的主觀性具有魯棒性.

      4 結(jié)語

      本文提出的基于需求優(yōu)先級、需求變更與歷史反饋信息的測試用例優(yōu)先級排序方法,既適用于回歸測試,也適用于首次測試.結(jié)合反饋信息,利用需求相關(guān)性,在測試過程中動態(tài)調(diào)整測試用例執(zhí)行優(yōu)先級以適應(yīng)需求優(yōu)先級的主觀性,逐步優(yōu)化測試用例執(zhí)行順序,加快缺陷檢測速率,盡早發(fā)現(xiàn)缺陷,降低缺陷修復成本.

      下一步的工作應(yīng)考慮以下幾點:一是優(yōu)先級排序影響因子的完善,本文只考慮了需求優(yōu)先級和需求變更情況2個指標,可以結(jié)合實際情況考慮其余指標;二是各影響因子的權(quán)重分配優(yōu)化,本文采用的是均值權(quán)重,可以根據(jù)實際測試目標進行比例的調(diào)整;三是需求相關(guān)矩陣的優(yōu)化,本文對父子、兄弟關(guān)系采用統(tǒng)一權(quán)值,未考慮不同關(guān)系是否產(chǎn)生不同影響;四是動態(tài)調(diào)整算法的優(yōu)化.

      [1]陳翔,陳繼紅,鞠小林,等.回歸測試中的測試用例優(yōu)先排序技術(shù)述評 [J].軟件學報,2013,24(8):1 695-1 712.

      [2]ROTHERMEL G,UNTCH R J,CHU C.Prioritizing test cases for regression testing[J].IEEE Trans on Software Engineering,2001,27(10):929-948.

      [3]MEI H,HAO D,ZHANG L M,et al.A static approach to prioritizing JUnit test cases[J].IEEE Trans on Software Engineering,2012,38(6):1 258-1 275.

      [4]HYUNSOOK D O,GREGG R,ALEX K.Empirical studies of test case prioritization in a JUnit testing environment[J]. IEEE Computer Society,2004,11(1):111-124.

      [5]KOREL B,TAHAT L,HARMAN M.Test prioritization using system models[C]//Proceedings of the 21st IEEE International Conference on Software Maintenance.Budapest:IEEE,2005:559-568.

      [6]KOREL B,KOUTSOGIANNAKIS G,TAHAT L.Application of system models in regression test suite prioritization[C]//Proceedings of the 24th IEEE International Conference on Software Maintenance.Beijing:IEEE,2008:247-256.

      [7]楊廣華,包陽,李東紅,等.基于需求的測試用例優(yōu)先級排序 [J].計算機工程與設(shè)計,2011,32(8):2 724-2 728.

      [8]KRISHNAMOORTHI R,SASA M.Factor oriented requirement coverage based system test case prioritization of new and regression test cases[J].Information and Software Technology,2009,51(4):799-808.

      [9]JUNAID ARAFEEN M D,HYUNSOOK D O.Test case prioritization using requirements-based clustering//IEEE Sixth International Conference on Software Testing,Verification and Validation.Luxembourg:IEEE,2013:312-321.

      [10]ELBAUM S,MALISHEVSKY A G,ROTHERMEL G.Prioritizing test cases for regression testing[C]//Proceedings of the International Symposium on Software Testing and Analysis.New York:ACM Press,2000:102-112.

      [11]常龍輝,繆淮扣,肖蕾.基于歷史信息的自適應(yīng)測試用例優(yōu)先級技術(shù) [J].計算機科學,2015,42(9):154-158.

      Research on Dynamic Combination of Requirements and Feedback

      XIE Xiao-zhu1,2,XIAO Lei1,2,CUI Jian-feng1,2,ZHUANG Wei-wei1,2
      (1.School of Computer&Information Engineering,Xiamen University of Technology,Xiamen 361024,China;2.Xiamen Key Lab of Software Architecture,Xiamen 361024,China)

      In order to improve the defect detection rate in the process of software testing,dynamic test case prioritization using combination of requirements and feedback is proposed in this paper.First,initialize the test case priority according to the requirement priorities and require-ment change,and then adaptivly adjust the unexecuted test cases prioritization according to requir-ement relativity and feedback in the following execution until the test case execution conditions out of date.The results of being validated in the project GPSking are followings:the APFD is 68.73%using the dynamic method,the APFD is 51.4%using created time,and the APFD is 67.5%using the static method.The experimental result shows that this method can improve the defect rate.

      test case;prioritization;dynamic;requirement;relativity

      TP311

      A

      1673-4432(2015)05-0070-05

      (責任編輯 雨 松)

      2015-05-06

      2015-06-04

      福建省教育廳科技項目 (JB12186)

      謝小竹 (1984-),女,助教,碩士,研究方向為體系結(jié)構(gòu)和軟件度量.E-mail:xzxie@xmut.edu.cn

      猜你喜歡
      測試用例排序動態(tài)
      國內(nèi)動態(tài)
      國內(nèi)動態(tài)
      國內(nèi)動態(tài)
      排序不等式
      基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
      恐怖排序
      動態(tài)
      節(jié)日排序
      基于混合遺傳算法的回歸測試用例集最小化研究
      刻舟求劍
      兒童繪本(2018年5期)2018-04-12 16:45:32
      酒泉市| 大埔县| 南充市| 施秉县| 宜兴市| 龙胜| 朝阳市| 绥阳县| 镇江市| 舟曲县| 保德县| 阜城县| 滨海县| 平顶山市| 新和县| 侯马市| 普陀区| 浏阳市| 葵青区| 荥经县| 龙山县| 广西| 龙陵县| 泸州市| 将乐县| 若羌县| 仙游县| 义马市| 准格尔旗| 额尔古纳市| 化州市| 长丰县| 林口县| 汾西县| 民权县| 离岛区| 海兴县| 保山市| 宜春市| 鄂尔多斯市| 同江市|