欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

測試用例處理方法和裝置與流程

文檔序號:12719398閱讀:205來源:國知局
測試用例處理方法和裝置與流程
本發(fā)明涉及計算機(jī)
技術(shù)領(lǐng)域
,特別是涉及一種測試用例處理方法和裝置。
背景技術(shù)
:測試用例(TestCase)是為測試程序而設(shè)計的一組測試輸入、執(zhí)行條件和預(yù)期的結(jié)果的數(shù)據(jù)。測試用例可以設(shè)計一個場景,使被測程序在這種場景下運(yùn)行,以測試程序是否能否滿足設(shè)計需求。目前,需要為被測程序設(shè)計足夠數(shù)量的測試用例,通常全量執(zhí)行測試用例以保證對被測程序進(jìn)行充分的測試。在被測程序開發(fā)初期,測試用例總量較少,執(zhí)行全量的測試用例也容易管理。然而,隨著被測程序的開發(fā)進(jìn)展,在每個開發(fā)階段會產(chǎn)生新的測試用例,測試用例的數(shù)量顯著增加,全量執(zhí)行測試用例需要消耗大量的時間成本和人力成本,測試效率低。技術(shù)實(shí)現(xiàn)要素:基于此,有必要針對目前每次測試需要執(zhí)行全量測試用例導(dǎo)致測試成本低的問題,提供一種測試用例處理方法和裝置。一種測試用例處理方法,包括:獲取測試用例標(biāo)識集合和被測函數(shù)標(biāo)識集合;對于所述測試用例標(biāo)識集合中的每個測試用例標(biāo)識,確定針對所述被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系;將所述測試用例標(biāo)識集合中的測試用例標(biāo)識,按照相應(yīng)的所述測試覆蓋關(guān)系之間的相似度進(jìn)行聚類,獲得多于一個的測試用例標(biāo)識子集;根據(jù)所述測試用例標(biāo)識子集,從所述測試用例標(biāo)識集合中篩選出部分測試用例標(biāo)識。一種測試用例處理裝置,包括:獲取模塊,用于獲取測試用例標(biāo)識集合和被測函數(shù)標(biāo)識集合;測試覆蓋關(guān)系確定模塊,用于對于所述測試用例標(biāo)識集合中的每個測試用例標(biāo)識,確定針對所述被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系;聚類模塊,用于將所述測試用例標(biāo)識集合中的測試用例標(biāo)識,按照相應(yīng)的所述測試覆蓋關(guān)系之間的相似度進(jìn)行聚類,獲得多于一個的測試用例標(biāo)識子集;測試用例篩選模塊,用于根據(jù)所述測試用例標(biāo)識子集,從所述測試用例標(biāo)識集合中篩選出部分測試用例標(biāo)識。上述測試用例處理方法和裝置,獲取測試用例標(biāo)識集合和被測函數(shù)標(biāo)識集合后,確定每個測試用例標(biāo)識相對于被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系,該測試覆蓋關(guān)系反映了該測試用例標(biāo)識表示的測試用例,對于被測函數(shù)標(biāo)識集合所表示的被測函數(shù)的覆蓋情況。利用測試覆蓋關(guān)系之間的相似度進(jìn)行聚類,得到若干測試用例標(biāo)識子集。根據(jù)所述測試用例標(biāo)識子集篩選出部分測試用例標(biāo)識,以對測試用例標(biāo)識集合進(jìn)行精簡。利用精簡后得到的測試用例標(biāo)識所對應(yīng)的測試用例對被測程序進(jìn)行測試,不僅可以保證測試覆蓋率,還能提高測試效率。附圖說明圖1為一個實(shí)施例中測試用例處理方法的應(yīng)用環(huán)境圖;圖2為一個實(shí)施例中用于執(zhí)行測試用例處理方法的電子設(shè)備的內(nèi)部結(jié)構(gòu)示意圖;圖3為一個實(shí)施例中測試用例處理方法的流程示意圖;圖4為一個實(shí)施例中對于測試用例標(biāo)識集合中的每個測試用例標(biāo)識,確定針對被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系的步驟的流程示意圖;圖5為一個實(shí)施例中對于測試用例標(biāo)識集合中的每個測試用例標(biāo)識,分別判斷與被測函數(shù)標(biāo)識集合中的每個被測函數(shù)標(biāo)識是否存在測試對應(yīng)關(guān)系的步驟的流程示意圖;圖6為一個實(shí)施例中將測試用例標(biāo)識集合中的測試用例標(biāo)識,按照相應(yīng)的測試覆蓋關(guān)系之間的相似度進(jìn)行聚類,獲得多于一個的測試用例標(biāo)識子集的步驟的流程示意圖;圖7為一個實(shí)施例中將數(shù)值化對象按照數(shù)值化對象之間的相似度進(jìn)行聚類,獲得多于一個的數(shù)值化對象聚類簇的步驟的流程示意圖;圖8為一個實(shí)施例中輪次將每個數(shù)值化對象聚類簇按照數(shù)值化對象之間的相似度劃分為兩個候選聚類簇,得到每個候選聚類簇的聚類中心的步驟的流程示意圖;圖9為一個具體應(yīng)用場景中測試用例處理方法的流程示意圖;圖10為一個實(shí)施例中測試用例處理裝置的結(jié)構(gòu)框圖。具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。圖1為一個實(shí)施例中測試用例處理方法的應(yīng)用環(huán)境圖。參照圖1,該測試用例處理方法可應(yīng)用于服務(wù)器110。服務(wù)器110具體可獲取測試用例標(biāo)識集合和被測函數(shù)標(biāo)識集合;對于測試用例標(biāo)識集合中的每個測試用例標(biāo)識,確定針對被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系;將測試用例標(biāo)識集合中的測試用例標(biāo)識,按照相應(yīng)的測試覆蓋關(guān)系之間的相似度進(jìn)行聚類,獲得多于一個的測試用例標(biāo)識子集;根據(jù)測試用例標(biāo)識子集,從測試用例標(biāo)識集合中篩選出部分測試用例標(biāo)識。服務(wù)器110可將篩選出的部分測試用例標(biāo)識推薦至終端120,或者可以將篩選出的部分測試用例標(biāo)識所對應(yīng)的測試用例推薦至終端120。通過網(wǎng)絡(luò)連接的服務(wù)器110和終端120可構(gòu)成一種測試用例推薦系統(tǒng)??梢岳斫獾氖牵瑴y試用例處理方法可應(yīng)用于一種獨(dú)立的電子設(shè)備,該電子設(shè)備可在篩選出部分測試用例標(biāo)識后,根據(jù)該部分測試用例標(biāo)識所對應(yīng)的測試用例直接對被測程序進(jìn)行測試。圖2為一個實(shí)施例中電子設(shè)備的結(jié)構(gòu)框圖。該電子設(shè)備可以是服務(wù)器110,該電子設(shè)備用于實(shí)現(xiàn)一種測試用例處理方法。參照圖2,該電子設(shè)備包括通過系統(tǒng)總線連接的處理器、非易失性存儲介質(zhì)、內(nèi)存儲器和網(wǎng)絡(luò)接口。其中,該電子設(shè)備的非易失性存儲介質(zhì)存儲有操作系統(tǒng)、數(shù)據(jù)庫和測試用例處理裝置。數(shù)據(jù)庫中存儲有測試用例標(biāo)識集合和被測函數(shù)標(biāo)識集合,還可以存儲有測試對應(yīng)關(guān)系集合。測試用例處理裝置用于實(shí)現(xiàn)一種測試用例處理方法。該電子設(shè)備的處理器用于提供計算和控制能力,支撐整個電子設(shè)備的運(yùn)行。該電子設(shè)備的內(nèi)存儲器為非易失性存儲介質(zhì)中的測試用例處理裝置的運(yùn)行提供環(huán)境,該內(nèi)存儲器中可儲存有計算機(jī)可讀指令,該計算機(jī)可讀指令被處理器執(zhí)行時,可使得處理器執(zhí)行一種測試用例處理方法。該服務(wù)器的網(wǎng)絡(luò)接口用于連接網(wǎng)絡(luò)進(jìn)行通信。電子設(shè)備可以是獨(dú)立的設(shè)備或者是多個電子設(shè)備組成的設(shè)備集群來實(shí)現(xiàn)。本領(lǐng)域技術(shù)人員可以理解,圖2中示出的結(jié)構(gòu),僅僅是與本申請方案相關(guān)的部分結(jié)構(gòu)的框圖,并不構(gòu)成對本申請方案所應(yīng)用于其上的服務(wù)器的限定,具體的服務(wù)器可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者具有不同的部件布置。圖3為一個實(shí)施例中測試用例處理方法的流程示意圖。本實(shí)施例主要以該方法應(yīng)用于上述圖1中的服務(wù)器來舉例說明。參照圖3,該測試用例處理方法包括如下步驟:S302,獲取測試用例標(biāo)識集合和被測函數(shù)標(biāo)識集合。其中,測試用例標(biāo)識集合是測試用例標(biāo)識構(gòu)成的集合,測試用例標(biāo)識用于唯一標(biāo)識相應(yīng)的測試用例。被測函數(shù)標(biāo)識集合是被測函數(shù)標(biāo)識構(gòu)成的集合,被測函數(shù)標(biāo)識用于唯一標(biāo)識相應(yīng)的被測函數(shù)。被測函數(shù)是被測程序的函數(shù),通過調(diào)用被測函數(shù)可以實(shí)現(xiàn)對被測程序的測試。被測函數(shù)標(biāo)識集合可以是全量被測函數(shù)標(biāo)識構(gòu)成的集合,也可以是從全量被測函數(shù)標(biāo)識中篩選出的部分被測函數(shù)標(biāo)識構(gòu)成的集合。全量被測函數(shù)標(biāo)識,是指被測程序所有被測函數(shù)各自的標(biāo)識。測試用例標(biāo)識集合可以是全量測試用例標(biāo)識構(gòu)成的集合。S304,對于測試用例標(biāo)識集合中的每個測試用例標(biāo)識,確定針對被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系。其中,測試用例標(biāo)識相對于被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系,表示該測試用例標(biāo)識所標(biāo)識的測試用例,相對于該被測函數(shù)標(biāo)識集合所表示的該被測函數(shù)集合的測試覆蓋情況。測試覆蓋關(guān)系可以反映相應(yīng)的測試用例所能夠覆蓋的被測函數(shù)。比如,假設(shè)某測試用例涉及被測函數(shù)集合中的測試用例A和B,不涉及測試用例C,表達(dá)的就是該測試用例相對于該被測函數(shù)集合的測試覆蓋關(guān)系,也就是相應(yīng)的測試用例標(biāo)識相對于被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系。S306,將測試用例標(biāo)識集合中的測試用例標(biāo)識,按照相應(yīng)的測試覆蓋關(guān)系之間的相似度進(jìn)行聚類,獲得多于一個的測試用例標(biāo)識子集。其中,測試覆蓋關(guān)系之間的相似度,表示的是相應(yīng)的測試用例對被測函數(shù)集合的測試覆蓋情況的相似程度。相似度與測試覆蓋關(guān)系之間的相似程度正相關(guān),也就是相似度越高,表示相應(yīng)的測試覆蓋關(guān)系更加相似。測試覆蓋關(guān)系之間的相似度可以用覆蓋的被測函數(shù)標(biāo)識的交集大小表示。比如測試覆蓋關(guān)系X表示覆蓋被測函數(shù)A、B和C,測試覆蓋關(guān)系Y表示覆蓋被測函數(shù)A、B和D,測試覆蓋關(guān)系Z表示覆蓋被測函數(shù)D、E和F。那么測試覆蓋關(guān)系X與Y由于存在交集{A,B},相似度最高;測試覆蓋關(guān)系Y和Z存在交集{D},相似度次之;測試覆蓋關(guān)系X和Z沒有交集,相似度最小。測試用例標(biāo)識子集是對測試用例標(biāo)識集合中的測試用例標(biāo)識進(jìn)行聚類后得到的聚類結(jié)果。聚類后測試用例標(biāo)識集合中的測試用例標(biāo)識,被劃分為不同的子集,每個子集表示一個測試用例標(biāo)識子集。每個測試用例標(biāo)識子集包括一個或多于一個的測試用例標(biāo)識。具體地,服務(wù)器可計算兩兩測試覆蓋關(guān)系之間的相似度,然后將相似度較高的測試覆蓋關(guān)系對應(yīng)的測試用例標(biāo)識聚類為相同的聚類簇,得到多于一個的測試用例標(biāo)識子集。聚類時可采用層次聚類算法、神經(jīng)網(wǎng)絡(luò)聚類算法或者FCM(FuzzyC-means,一種基于目標(biāo)函數(shù)的模糊聚類算法)算法等。S308,根據(jù)測試用例標(biāo)識子集,從測試用例標(biāo)識集合中篩選出部分測試用例標(biāo)識。其中,部分測試用例標(biāo)識,是指從測試用例標(biāo)識集合中篩選出的局部的測試用例標(biāo)識。部分測試用例標(biāo)識中測試用例標(biāo)識的數(shù)量,小于測試用例標(biāo)識集合中測試用例標(biāo)識的數(shù)量。通過篩選出部分測試用例標(biāo)識,可以實(shí)現(xiàn)測試用例精簡。具體地,服務(wù)器可將測試用例標(biāo)識子集發(fā)送至終端,由終端顯示測試用例標(biāo)識子集,并獲取針對顯示的測試用例標(biāo)識子集的選擇指令,根據(jù)選擇指令選擇部分測試用例標(biāo)識。進(jìn)一步地,服務(wù)器可以將篩選出的部分測試用例標(biāo)識存儲在本地。服務(wù)器也可以將篩選出的部分測試用例標(biāo)識發(fā)送至終端,實(shí)現(xiàn)向終端推薦精簡的測試用例。上述測試用例處理方法,獲取測試用例標(biāo)識集合和被測函數(shù)標(biāo)識集合后,確定每個測試用例標(biāo)識相對于被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系,該測試覆蓋關(guān)系反映了該測試用例標(biāo)識表示的測試用例,對于被測函數(shù)標(biāo)識集合所表示的被測函數(shù)的覆蓋情況。利用測試覆蓋關(guān)系之間的相似度進(jìn)行聚類,得到若干測試用例標(biāo)識子集。根據(jù)測試用例標(biāo)識子集篩選出部分測試用例標(biāo)識,以對測試用例標(biāo)識集合進(jìn)行精簡。利用精簡后得到的測試用例標(biāo)識所對應(yīng)的測試用例對被測程序進(jìn)行測試,不僅可以保證測試覆蓋率,還能提高測試效率。如圖4所示,在一個實(shí)施例中,步驟S304包括如下步驟:S402,對于測試用例標(biāo)識集合中的每個測試用例標(biāo)識,分別判斷與被測函數(shù)標(biāo)識集合中的每個被測函數(shù)標(biāo)識是否存在測試對應(yīng)關(guān)系。其中,測試用例標(biāo)識與被測函數(shù)標(biāo)識之間存在測試對應(yīng)關(guān)系,表示該測試用例標(biāo)識所對應(yīng)的測試用例能夠?qū)崿F(xiàn)對該被測函數(shù)的測試。該被測函數(shù)可以存在于該測試用例中。測試用例標(biāo)識與被測函數(shù)標(biāo)識之間不存在測試對應(yīng)關(guān)系,則表示該測試用例標(biāo)識所對應(yīng)的測試用例不能夠?qū)崿F(xiàn)對該被測函數(shù)的測試。具體地,服務(wù)器可遍歷測試用例標(biāo)識集合中的每個測試用例標(biāo)識,遍歷至某測試用例標(biāo)識時,對應(yīng)于遍歷至的該測試用例標(biāo)識,再遍歷被測函數(shù)標(biāo)識集合中的每個被測函數(shù)標(biāo)識,從而判斷遍歷至的測試用例標(biāo)識和遍歷至的被測函數(shù)標(biāo)識是否存在測試對應(yīng)關(guān)系。進(jìn)一步地,服務(wù)器在判斷一個測試用例標(biāo)識和一個被測函數(shù)標(biāo)識是否存在測試對應(yīng)關(guān)系時,具體可判斷該測試用例標(biāo)識所標(biāo)識的測試用例中是否存在對該被測函數(shù)標(biāo)識的調(diào)用;若存在則可以判定存在測試對應(yīng)關(guān)系;若不存在則可判定不存在測試對應(yīng)關(guān)系。在一個實(shí)施例中,服務(wù)器也可以對于測試用例標(biāo)識集合中的每個測試用例標(biāo)識,分別在預(yù)設(shè)的測試對應(yīng)關(guān)系集合中,查詢與被測函數(shù)標(biāo)識集合中的每個被測函數(shù)標(biāo)識是否存在測試對應(yīng)關(guān)系。S404,根據(jù)是否存在測試對應(yīng)關(guān)系的判斷結(jié)果,確定與測試用例標(biāo)識集合中的每個測試用例標(biāo)識相應(yīng)的針對被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系。具體地,服務(wù)器在判斷出每個測試用例標(biāo)識與每個被測函數(shù)標(biāo)識是否存在測試對應(yīng)關(guān)系后,可以將對應(yīng)相同測試用例標(biāo)識的是否存在測試對應(yīng)關(guān)系的判斷結(jié)果整合,得到對應(yīng)該相同測試用例標(biāo)識的、且針對被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系。本實(shí)施例中,可準(zhǔn)確地衡量測試覆蓋關(guān)系,根據(jù)該測試覆蓋關(guān)系可以準(zhǔn)確地從測試用例標(biāo)識集合中篩選出部分測試用例標(biāo)識,提高了測試用例精簡的準(zhǔn)確性和效率。如圖5所示,在一個實(shí)施例中,步驟S402具體包括如下步驟:S502,獲取測試用例標(biāo)識和被測函數(shù)標(biāo)識之間的根據(jù)歷史測試記錄確定的測試對應(yīng)關(guān)系集合。其中,歷史測試記錄,是執(zhí)行本實(shí)施例的測試用例處理方法之前,對被測程序進(jìn)行測試時保留的相關(guān)記錄。歷史測試記錄至少直接或間接記錄了測試用例標(biāo)識和被測函數(shù)標(biāo)識之間的測試對應(yīng)關(guān)系。具體地,服務(wù)器可預(yù)先收集歷史測試記錄,從而從歷史測試記錄中提取測試用例標(biāo)識和被測函數(shù)標(biāo)識之間的測試對應(yīng)關(guān)系,構(gòu)成測試對應(yīng)關(guān)系集合。該測試對應(yīng)關(guān)系集合包括了若干測試對應(yīng)關(guān)系。每個測試對應(yīng)關(guān)系可用存在測試對應(yīng)關(guān)系的測試用例標(biāo)識和被測函數(shù)標(biāo)識之間的映射關(guān)系表示。S504,對于測試用例標(biāo)識集合中的每個測試用例標(biāo)識,分別在測試對應(yīng)關(guān)系集合中,查詢與被測函數(shù)標(biāo)識集合中的每個被測函數(shù)標(biāo)識是否存在測試對應(yīng)關(guān)系。具體地,服務(wù)器可遍歷測試用例標(biāo)識集合中的每個測試用例標(biāo)識,遍歷至某測試用例標(biāo)識時,對應(yīng)于遍歷至的該測試用例標(biāo)識,再遍歷被測函數(shù)標(biāo)識集合中的每個被測函數(shù)標(biāo)識,從而判斷遍歷至的測試用例標(biāo)識和遍歷至的被測函數(shù)標(biāo)識的測試對應(yīng)關(guān)系是否存在于測試對應(yīng)關(guān)系集合中。若存在,則可判定遍歷至的測試用例標(biāo)識和遍歷至的被測函數(shù)標(biāo)識存在測試對應(yīng)關(guān)系。若不存在,則可判定該遍歷至的測試用例標(biāo)識和遍歷至的被測函數(shù)標(biāo)識不存在對應(yīng)關(guān)系。本實(shí)施例中,根據(jù)歷史測試記錄確可以確定測試對應(yīng)關(guān)系集合,從而可以據(jù)此高效地查詢測試用例標(biāo)識和被測函數(shù)標(biāo)識之間的測試對應(yīng)關(guān)系,從而進(jìn)一步提高精簡測試用例的效率。在一個實(shí)施例中,步驟S308包括:從每個測試用例標(biāo)識子集中選擇至少一個測試用例標(biāo)識,獲得測試用例標(biāo)識集合中的部分測試用例標(biāo)識。具體地,服務(wù)器可遍歷每個測試用例標(biāo)識子集,若遍歷至的測試用例標(biāo)識子集中的測試用例標(biāo)識為一個,則選擇該一個測試用例標(biāo)識;若遍歷至的測試用例標(biāo)識子集中的測試用例標(biāo)識為多個,則選擇一個或多于一個的測試用例標(biāo)識。遍歷完畢后,將每個遍歷至的測試用例標(biāo)識子集中篩選出的測試用例標(biāo)識,構(gòu)成測試用例標(biāo)識集合中的部分測試用例標(biāo)識。其中,一個或多于一個的測試用例標(biāo)識,可以是與相應(yīng)的測試用例標(biāo)識子集的聚類中心最近的一個或多個測試用例標(biāo)識。一個或多個測試用例標(biāo)識的數(shù)量可以是預(yù)設(shè)的,也可以是根據(jù)測試覆蓋率動態(tài)確定的。測試覆蓋率,表示與篩選出的部分測試用例標(biāo)識存在測試對應(yīng)關(guān)系的測試用例標(biāo)識,占測試用例標(biāo)識集合的比例。本實(shí)施例中,從每個測試用例標(biāo)識子集中選擇至少一個測試用例標(biāo)識,獲得測試用例標(biāo)識集合中的部分測試用例標(biāo)識,可以盡可能保證足夠大的測試覆蓋率,并實(shí)現(xiàn)測試用例精簡,提高測試效率。在一個實(shí)施例中,步驟S308包括:對于包括多于一個的測試用例標(biāo)識的測試用例標(biāo)識子集,從指定數(shù)量為1起,從每個測試用例標(biāo)識子集中挑選指定數(shù)量的測試用例標(biāo)識,與僅包括一個測試用例標(biāo)識的測試用例標(biāo)識子集構(gòu)成部分測試用例標(biāo)識,計算測試覆蓋率。若測試覆蓋率達(dá)到預(yù)設(shè)值則停止,若測試覆蓋率未達(dá)到預(yù)設(shè)值則將指定數(shù)量自增1后,繼續(xù)從每個測試用例標(biāo)識子集中挑選指定數(shù)量的測試用例標(biāo)識,與僅包括一個測試用例標(biāo)識的測試用例標(biāo)識子集構(gòu)成部分測試用例標(biāo)識,計算測試覆蓋率,直至測試覆蓋率達(dá)到預(yù)設(shè)值時停止。如圖6所示,在一個實(shí)施例中,步驟S306包括以下步驟:S602,獲取表示每個測試用例標(biāo)識所對應(yīng)的測試覆蓋關(guān)系的數(shù)值化對象。其中,數(shù)值化對象,是將測試覆蓋關(guān)系數(shù)值化后的數(shù)據(jù)。對于每個測試用例標(biāo)識,存在與之一一對應(yīng)的數(shù)值化對象,表示與該測試用例標(biāo)識一一對應(yīng)的測試覆蓋關(guān)系。數(shù)值化對象具體可以是坐標(biāo)點(diǎn)、向量或者二值化序列。坐標(biāo)點(diǎn)和向量中各個維度的取值可以是兩種值中的一種。在一個實(shí)施例中,步驟S602包括:獲取分別表示每個測試覆蓋關(guān)系的坐標(biāo)點(diǎn),坐標(biāo)點(diǎn)的維度的數(shù)量等于被測函數(shù)標(biāo)識集合中被測函數(shù)標(biāo)識的數(shù)量,且每個維度在相應(yīng)的被測函數(shù)標(biāo)識與坐標(biāo)點(diǎn)對應(yīng)的測試用例標(biāo)識之間存在或者不存在測試對應(yīng)關(guān)系時分別取不同的數(shù)值。舉例說明,假設(shè)每個測試用例標(biāo)識所對應(yīng)的測試覆蓋關(guān)系如下表一:case\funcfunc1func2func3func4…funcMcase11001…1case20011…1case31101…1case41000…0case51101…0…………………caseN0011…1上表一中,case1~caseN均為測試用例標(biāo)識,構(gòu)成包括N個測試用例標(biāo)識的測試用例標(biāo)識集合,N為大于1的正整數(shù)。func1~funcM均為被測函數(shù)標(biāo)識,構(gòu)成包括M個被測函數(shù)標(biāo)識的被測函數(shù)標(biāo)識集合。上述表一的行列交叉處的數(shù)值,表示相應(yīng)的測試用例標(biāo)識與相應(yīng)的被測函數(shù)標(biāo)識之間是否存在測試對應(yīng)關(guān)系,用兩種數(shù)值分別表示存在和不存在測試對應(yīng)關(guān)系。比如當(dāng)數(shù)值為1時可表示存在測試對應(yīng)關(guān)系,當(dāng)數(shù)值為0時表示不存在測試對應(yīng)關(guān)系。對應(yīng)于case1,可按照指定的被測函數(shù)標(biāo)識排序,將相應(yīng)的是否存在對應(yīng)關(guān)系的判斷結(jié)果數(shù)值化,構(gòu)成坐標(biāo)點(diǎn)(1,0,0,1,…,1),或構(gòu)成向量[1001…1],或構(gòu)成二值化序列1001…1。其中,坐標(biāo)點(diǎn)的總數(shù)量為N,每個坐標(biāo)點(diǎn)的維度數(shù)量為M,每個維度取1和0中的一種,表示相應(yīng)的測試用例標(biāo)識和相應(yīng)的被測函數(shù)標(biāo)識是否存在測試對應(yīng)關(guān)系。S604,將數(shù)值化對象按照數(shù)值化對象之間的相似度進(jìn)行聚類,獲得多于一個的數(shù)值化對象聚類簇。具體地,當(dāng)數(shù)值化對象為坐標(biāo)點(diǎn)時,數(shù)值化對象之間的相似度可采用坐標(biāo)點(diǎn)之間的歐式距離表示,相應(yīng)的數(shù)值化對象聚類簇為坐標(biāo)點(diǎn)聚類簇。當(dāng)數(shù)值化對象為向量時,數(shù)值化對象之間的相似度可采用向量之間的余弦相似度,相應(yīng)的數(shù)值化對象聚類簇為向量聚類簇。當(dāng)數(shù)值化對象為二值化序列時,數(shù)值化對象之間的相似度可采用漢明距離,相應(yīng)的數(shù)值化對象聚類簇為二值化序列聚類簇。S606,根據(jù)數(shù)值化對象聚類簇獲得相應(yīng)的測試用例標(biāo)識子集。具體地,在確定數(shù)值化對象聚類簇后,可根據(jù)數(shù)值化對象與測試用例標(biāo)識之間的一一對應(yīng)關(guān)系,將數(shù)值化對象聚類簇轉(zhuǎn)化為測試用例標(biāo)識子集。進(jìn)一步地,服務(wù)器可獲取每個數(shù)值化對象聚類簇中的數(shù)值化對象所對應(yīng)的測試用例標(biāo)識,構(gòu)成與每個數(shù)值化對象聚類簇相應(yīng)的測試用例標(biāo)識子集。本實(shí)施例中,將測試覆蓋關(guān)系數(shù)值化后進(jìn)行聚類,可高效地對數(shù)值化對象進(jìn)行聚類,從而高效地得到測試用例標(biāo)識子集,提高精簡測試用例的效率。如圖7所示,在一個實(shí)施例中,步驟S604具體包括如下步驟:S702,將數(shù)值化對象按照數(shù)值化對象之間的相似度劃分為兩個數(shù)值化對象聚類簇,得到每個數(shù)值化對象聚類簇的聚類中心。具體地,服務(wù)器可將所有的數(shù)值化對象作為一個數(shù)值化對象聚類簇,求取該數(shù)值化對象聚類簇的聚類中心。服務(wù)器將該數(shù)值化對象聚類簇劃分為兩個數(shù)值化對象聚類簇,并得到劃分出的兩個數(shù)值化對象聚類簇各自的聚類中心。具體地,服務(wù)器可將所有的坐標(biāo)點(diǎn)構(gòu)成一個坐標(biāo)點(diǎn)聚類簇,求取坐標(biāo)點(diǎn)聚類簇中所有坐標(biāo)點(diǎn)的均值得到作為聚類中心的中心坐標(biāo)點(diǎn)。服務(wù)器進(jìn)而將該一個坐標(biāo)點(diǎn)聚類簇劃分為兩個坐標(biāo)點(diǎn)聚類簇,并計算劃分出的每個坐標(biāo)點(diǎn)聚類簇的中心坐標(biāo)點(diǎn)作為相應(yīng)的聚類中心。S704,當(dāng)數(shù)值化對象聚類簇的總數(shù)少于預(yù)設(shè)數(shù)量時,輪次將每個數(shù)值化對象聚類簇按照數(shù)值化對象之間的相似度劃分為兩個候選聚類簇,得到每個候選聚類簇的聚類中心。具體地,服務(wù)器可獲取當(dāng)前數(shù)值化對象聚類簇的總數(shù)k,與預(yù)設(shè)數(shù)量K比較。當(dāng)k<K時,輪次對當(dāng)前每個數(shù)值化對象聚類簇進(jìn)行一分為二的劃分,每次劃分所針對的數(shù)值化對象聚類簇都劃分出兩個候選聚類簇。其中,預(yù)設(shè)數(shù)量可取測試用例標(biāo)識集合中測試用例標(biāo)識總數(shù)的10%~50%.S706,根據(jù)候選聚類簇和相應(yīng)的聚類中心,和未劃分的數(shù)值化對象聚類簇及相應(yīng)的聚類中心,計算方差和。具體地,服務(wù)器可將候選聚類簇和當(dāng)次未劃分的數(shù)值化對象聚類簇作為當(dāng)前所有的數(shù)值化對象聚類簇,根據(jù)每個數(shù)值化對象聚類簇和相應(yīng)的聚類中心計算相應(yīng)的方差,將每個計算出的方差求和得到方差和。舉例說明,假設(shè)當(dāng)前有k個坐標(biāo)點(diǎn)聚類簇,分別對每個坐標(biāo)點(diǎn)聚類簇進(jìn)行一分為二的劃分,則的到2個候選聚類簇,加上當(dāng)次未劃分的k-1個坐標(biāo)點(diǎn)聚類簇,構(gòu)成k+1個聚類簇和相應(yīng)的聚類中心。計算該k+1個聚類簇的方差和。S708,將對應(yīng)最小方差和的候選聚類簇作為本次劃分出的數(shù)值化對象聚類簇。具體地,服務(wù)器可從計算出的方差和中,找出最小的方差和,從而將與該最小的方差和對應(yīng)的候選聚類簇作為本次劃分出的數(shù)值化對象聚類簇。其它劃分方式則丟棄。執(zhí)行步驟S708后,繼續(xù)判斷數(shù)值化對象聚類簇的總數(shù)是否少于預(yù)設(shè)數(shù)量。S710,當(dāng)數(shù)值化對象聚類簇的總數(shù)等于預(yù)設(shè)數(shù)量時,輸出當(dāng)前所有的數(shù)值化對象聚類簇。具體地,服務(wù)器可獲取當(dāng)前數(shù)值化對象聚類簇的總數(shù)k,與預(yù)設(shè)數(shù)量K比較。當(dāng)k=K時,直接輸出當(dāng)前所有的數(shù)值化對象聚類簇。本實(shí)施例中,根據(jù)數(shù)值化對象之間的相似度,從少到多逐步劃分出預(yù)設(shè)數(shù)量的數(shù)值化對象聚類簇,可以保證相同數(shù)值化對象聚類簇內(nèi)的數(shù)值化對象足夠相似,不同數(shù)值化對象聚類簇之間的數(shù)值化對象足夠差異化,從而在精簡測試用例時可以盡可能保證測試覆蓋率。如圖8所示,在一個實(shí)施例中,輪次將每個數(shù)值化對象聚類簇按照數(shù)值化對象之間的相似度劃分為兩個候選聚類簇,得到每個候選聚類簇的聚類中心具體的步驟,包括如下步驟:S802,輪次在每個數(shù)值化對象聚類簇中,隨機(jī)選擇兩個數(shù)值化對象作為需劃分出的兩個候選聚類簇各自的聚類中心。具體地,服務(wù)器輪次執(zhí)行步驟S802至步驟S808或S810。服務(wù)器在當(dāng)次劃分所針對的數(shù)值化對象聚類簇中,隨機(jī)選擇兩個數(shù)值化對象,該兩個數(shù)值化對象假設(shè)為兩個候選聚類簇各自的聚類中心。S804,將當(dāng)次的數(shù)值化對象聚類簇中的數(shù)值化對象,歸類到相似度最高的聚類中心所屬的候選聚類簇。具體地,作為聚類中心的兩個數(shù)值化對象,自然屬于相應(yīng)的候選聚類簇。對于數(shù)值化對象聚類簇中除去兩個聚類中心的其它數(shù)值化對象,則分別計算與兩個聚類中心之間的相似度,從而將這些數(shù)值化對象均歸類到與之相似度最高的聚類中心所屬的候選聚類簇。S806,計算歸類后每個候選聚類簇的聚類中心。S808,當(dāng)計算出的聚類中心與當(dāng)次歸類所用的相應(yīng)聚類中心不一致時,重新執(zhí)行步驟S804。S810,當(dāng)計算出的聚類中心與當(dāng)次歸類所用的相應(yīng)聚類中心一致時,輸出當(dāng)前劃分出的候選聚類簇。具體地,計算出歸類后兩個候選聚類簇各自的聚類中心后,將計算出的聚類中心分別與當(dāng)次歸類所用的兩個聚類中心中相對應(yīng)的聚類中心比較。如果經(jīng)比較不一致,說明當(dāng)前劃分出的候選聚類簇不是最優(yōu)的,需要基于計算出的聚類中心重新劃分候選聚類簇。如果經(jīng)比較一致,則說明當(dāng)前劃分出的候選聚類簇是最優(yōu)的,可以直接輸出。本實(shí)施例中,在從數(shù)值化對象聚類簇中劃分候選聚類簇時,采用上述步驟S802至步驟S808或S810,可以找到最優(yōu)的劃分方式劃分出相應(yīng)的候選聚類簇,保證相同數(shù)值化對象聚類簇內(nèi)的數(shù)值化對象足夠相似,從而能夠有效地實(shí)現(xiàn)測試用例的精簡。下面用一個具體的應(yīng)用場景來說明上述測試用例處理方法的原理。參照圖9,已知測試用例標(biāo)識集合,輸入被測函數(shù)標(biāo)識集合以及測試對應(yīng)關(guān)系集合,啟動測試用例聚類推薦。根據(jù)測試對應(yīng)關(guān)系集合初始化,查詢測試用例標(biāo)識集合中的每個測試用例標(biāo)識與被測函數(shù)標(biāo)識集合中的每個被測函數(shù)標(biāo)識是否存在測試對應(yīng)關(guān)系,得到相應(yīng)的測試覆蓋關(guān)系;用兩種數(shù)值(1或0)來表示該測試覆蓋關(guān)系,將該測試覆蓋關(guān)系轉(zhuǎn)化為坐標(biāo)點(diǎn)。從k=1個坐標(biāo)點(diǎn)聚類簇起,通過聚類運(yùn)算選擇最合適的坐標(biāo)點(diǎn)聚類簇拆分,k自增1,直至k<K時停止聚類,輸出聚類得到的坐標(biāo)點(diǎn)聚類簇,從而得到相應(yīng)的測試用例標(biāo)識子集并推薦。圖10為一個實(shí)施例中測試用例處理裝置1000的結(jié)構(gòu)框圖。參照圖10,測試用例處理裝置1000包括:獲取模塊1001、測試覆蓋關(guān)系確定模塊1002、聚類模塊1003和測試用例篩選模塊1004。獲取模塊1001,用于獲取測試用例標(biāo)識集合和被測函數(shù)標(biāo)識集合。測試覆蓋關(guān)系確定模塊1002,用于對于測試用例標(biāo)識集合中的每個測試用例標(biāo)識,確定針對被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系。聚類模塊1003,用于將測試用例標(biāo)識集合中的測試用例標(biāo)識,按照相應(yīng)的測試覆蓋關(guān)系之間的相似度進(jìn)行聚類,獲得多于一個的測試用例標(biāo)識子集。測試用例篩選模塊1004,用于根據(jù)測試用例標(biāo)識子集,從測試用例標(biāo)識集合中篩選出部分測試用例標(biāo)識。上述測試用例處理裝置1000,獲取測試用例標(biāo)識集合和被測函數(shù)標(biāo)識集合后,確定每個測試用例標(biāo)識相對于被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系,該測試覆蓋關(guān)系反映了該測試用例標(biāo)識表示的測試用例,對于被測函數(shù)標(biāo)識集合所表示的被測函數(shù)的覆蓋情況。利用測試覆蓋關(guān)系之間的相似度進(jìn)行聚類,得到若干測試用例標(biāo)識子集。根據(jù)測試用例標(biāo)識子集篩選出部分測試用例標(biāo)識,以對測試用例標(biāo)識集合進(jìn)行精簡。利用精簡后得到的測試用例標(biāo)識所對應(yīng)的測試用例對被測程序進(jìn)行測試,不僅可以保證測試覆蓋率,還能提高測試效率。在一個實(shí)施例中,測試覆蓋關(guān)系確定模塊1002還用于對于測試用例標(biāo)識集合中的每個測試用例標(biāo)識,分別判斷與被測函數(shù)標(biāo)識集合中的每個被測函數(shù)標(biāo)識是否存在測試對應(yīng)關(guān)系;根據(jù)與測試用例標(biāo)識集合中的每個測試用例標(biāo)識相應(yīng)的是否存在測試對應(yīng)關(guān)系的判斷結(jié)果,確定與每個測試用例標(biāo)識相應(yīng)的針對被測函數(shù)標(biāo)識集合的測試覆蓋關(guān)系。本實(shí)施例中,可準(zhǔn)確地衡量測試覆蓋關(guān)系,根據(jù)該測試覆蓋關(guān)系可以準(zhǔn)確地從測試用例標(biāo)識集合中篩選出部分測試用例標(biāo)識,提高了測試用例精簡的準(zhǔn)確性和效率。在一個實(shí)施例中,測試覆蓋關(guān)系確定模塊1002還用于獲取測試用例標(biāo)識和被測函數(shù)標(biāo)識之間的根據(jù)歷史測試記錄確定的測試對應(yīng)關(guān)系集合;對于測試用例標(biāo)識集合中的每個測試用例標(biāo)識,分別在測試對應(yīng)關(guān)系集合中,查詢與被測函數(shù)標(biāo)識集合中的每個被測函數(shù)標(biāo)識是否存在測試對應(yīng)關(guān)系。本實(shí)施例中,根據(jù)歷史測試記錄確可以確定測試對應(yīng)關(guān)系集合,從而可以據(jù)此高效地查詢測試用例標(biāo)識和被測函數(shù)標(biāo)識之間的測試對應(yīng)關(guān)系,從而進(jìn)一步提高精簡測試用例的效率。在一個實(shí)施例中,測試用例篩選模塊1004還用于從每個測試用例標(biāo)識子集中選擇至少一個測試用例標(biāo)識,獲得測試用例標(biāo)識集合中的部分測試用例標(biāo)識。本實(shí)施例中,從每個測試用例標(biāo)識子集中選擇至少一個測試用例標(biāo)識,獲得測試用例標(biāo)識集合中的部分測試用例標(biāo)識,可以盡可能保證足夠大的測試覆蓋率,并實(shí)現(xiàn)測試用例精簡,提高測試效率。在一個實(shí)施例中,聚類模塊1003還用于獲取表示每個測試用例標(biāo)識所對應(yīng)的測試覆蓋關(guān)系的數(shù)值化對象;將數(shù)值化對象按照數(shù)值化對象之間的相似度進(jìn)行聚類,獲得多于一個的數(shù)值化對象聚類簇;根據(jù)數(shù)值化對象聚類簇獲得相應(yīng)的測試用例標(biāo)識子集。本實(shí)施例中,將測試覆蓋關(guān)系數(shù)值化后進(jìn)行聚類,可高效地對數(shù)值化對象進(jìn)行聚類,從而高效地得到測試用例標(biāo)識子集,提高精簡測試用例的效率。在一個實(shí)施例中,數(shù)值化對象為坐標(biāo)點(diǎn),數(shù)值化對象之間的相似度為坐標(biāo)點(diǎn)之間的歐式距離,數(shù)值化對象聚類簇為坐標(biāo)點(diǎn)聚類簇。在一個實(shí)施例中,測試覆蓋關(guān)系,表示相應(yīng)的測試用例標(biāo)識與被測函數(shù)標(biāo)識集合中的每個被測函數(shù)標(biāo)識是否存在測試對應(yīng)關(guān)系。聚類模塊1003還用于獲取分別表示每個測試覆蓋關(guān)系的坐標(biāo)點(diǎn),坐標(biāo)點(diǎn)的維度的數(shù)量等于被測函數(shù)標(biāo)識集合中被測函數(shù)標(biāo)識的數(shù)量,且每個維度在相應(yīng)的被測函數(shù)標(biāo)識與坐標(biāo)點(diǎn)對應(yīng)的測試用例標(biāo)識之間存在或者不存在測試對應(yīng)關(guān)系時分別取不同的數(shù)值。在一個實(shí)施例中,聚類模塊1003還用于將數(shù)值化對象按照數(shù)值化對象之間的相似度劃分為兩個數(shù)值化對象聚類簇,得到每個數(shù)值化對象聚類簇的聚類中心;當(dāng)數(shù)值化對象聚類簇的總數(shù)少于預(yù)設(shè)數(shù)量時,輪次將每個數(shù)值化對象聚類簇按照數(shù)值化對象之間的相似度劃分為兩個候選聚類簇,得到每個候選聚類簇的聚類中心;根據(jù)候選聚類簇和相應(yīng)的聚類中心,和未劃分的數(shù)值化對象聚類簇及相應(yīng)的聚類中心,計算方差和;將對應(yīng)最小方差和的候選聚類簇作為本次劃分出的數(shù)值化對象聚類簇;當(dāng)數(shù)值化對象聚類簇的總數(shù)等于預(yù)設(shè)數(shù)量時,輸出當(dāng)前所有的數(shù)值化對象聚類簇。本實(shí)施例中,根據(jù)數(shù)值化對象之間的相似度,從少到多逐步劃分出預(yù)設(shè)數(shù)量的數(shù)值化對象聚類簇,可以保證相同數(shù)值化對象聚類簇內(nèi)的數(shù)值化對象足夠相似,不同數(shù)值化對象聚類簇之間的數(shù)值化對象足夠差異化,從而在精簡測試用例時可以盡可能保證測試覆蓋率。在一個實(shí)施例中,聚類模塊1003還用于輪次在每個數(shù)值化對象聚類簇中,隨機(jī)選擇兩個數(shù)值化對象作為需劃分出的兩個候選聚類簇各自的聚類中心;將當(dāng)次的數(shù)值化對象聚類簇中的數(shù)值化對象,歸類到相似度最高的聚類中心所屬的候選聚類簇;計算歸類后每個候選聚類簇的聚類中心;當(dāng)計算出的聚類中心與當(dāng)次歸類所用的相應(yīng)聚類中心不一致時,重新執(zhí)行將當(dāng)次的數(shù)值化對象聚類簇中的數(shù)值化對象,歸類到相似度最高的聚類中心所屬的候選聚類簇;當(dāng)計算出的聚類中心與當(dāng)次歸類所用的相應(yīng)聚類中心一致時,輸出當(dāng)前劃分出的候選聚類簇。本實(shí)施例中,可以找到最優(yōu)的劃分方式劃分出相應(yīng)的候選聚類簇,保證相同數(shù)值化對象聚類簇內(nèi)的數(shù)值化對象足夠相似,從而能夠有效地實(shí)現(xiàn)測試用例的精簡。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,該計算機(jī)程序可存儲于一計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實(shí)施例的流程。其中,前述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-OnlyMemory,ROM)等非易失性存儲介質(zhì),或隨機(jī)存儲記憶體(RandomAccessMemory,RAM)等。以上實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對上述實(shí)施例中的各個技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。以上實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
鄱阳县| 色达县| 承德县| 兴城市| 平武县| 资溪县| 铁岭市| 南乐县| 若尔盖县| 新宁县| 五莲县| 日喀则市| 梨树县| 延吉市| 江川县| 金塔县| 岳普湖县| 紫金县| 鸡泽县| 文安县| 中方县| 奈曼旗| 千阳县| 永泰县| 仙桃市| 盐津县| 莎车县| 石景山区| 鹤山市| 儋州市| 内乡县| 常熟市| 乌兰察布市| 门头沟区| 大名县| 聊城市| 西藏| 青冈县| 汽车| 庆元县| 金昌市|