本發(fā)明涉及大數(shù)據(jù)分析提取技術領域,尤其涉及一種用軟件測試缺陷預測方法及系統(tǒng)。
背景技術:
大數(shù)據(jù)(big data),指無法在可承受的時間范圍內(nèi)用常規(guī)軟件工具進行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力來適應海量、高增長率和多樣化的信息資產(chǎn)。
數(shù)據(jù)挖掘(Data mining),又譯為資料探勘、數(shù)據(jù)采礦。它是數(shù)據(jù)庫知識發(fā)現(xiàn)中的一個步驟。數(shù)據(jù)挖掘一般是指從大量的數(shù)據(jù)中通過算法搜索隱藏于其中信息的過程。數(shù)據(jù)挖掘通常與計算機科學有關,并通過統(tǒng)計、在線分析處理、情報檢索、機器學習、專家系統(tǒng)(依靠過去的經(jīng)驗法則)和模式識別等諸多方法來實現(xiàn)上述目標。
軟件測試是軟件生命周期中的一個環(huán)節(jié),是使用人工操作或者軟件自動運行的方式來檢驗軟件產(chǎn)品是否滿足規(guī)定的需求。在測試過程中,發(fā)現(xiàn)的某種破壞產(chǎn)品正常運行,錯誤,或者隱藏的功能的問題就是軟件缺陷,也被叫做Bug。軟件缺陷的存在會導致軟件產(chǎn)品在某種程度上不能滿足用戶的需求,或者影響用戶的使用體驗。
軟件測試缺陷從屬性上分有缺陷標識、缺陷類型、缺陷嚴重程度、缺陷優(yōu)先級、缺陷狀態(tài)、缺陷根源等。缺陷在軟件測試生命周期的不同階段,也是就是不同軟件版本的情況下,會有不同的分布。不同公司、不同行業(yè)、由于采用的不同開發(fā)過程和各種人為因素都對缺陷的數(shù)量、嚴重程度、發(fā)生模塊等有不同影響。正因為這些多變元素的存在,對于每個軟件版本會出現(xiàn)的缺陷,目前很難做到預測。大多數(shù)情況下,產(chǎn)品負責人和測試負責人會根據(jù)自己的經(jīng)驗值和項目情況來預估可能產(chǎn)生的缺陷數(shù)量和風險評價,從而判斷測試過程中是否符合正常的趨勢。
目前,對軟件缺陷管理有很多成熟的管理工具,比如Bugzilla,Bugfree等。當然還有很多提供云測試平臺服務的公司,我們可以在這種公有的平臺上搭建環(huán)境進行軟件測試,同時對軟件產(chǎn)品進行缺陷管理。這些工具和平臺將會產(chǎn)生很多測試相關的數(shù)據(jù),那么我們可以利用這些數(shù)據(jù)找到相關性,使用數(shù)據(jù)挖掘的技術,對不同版本的測試進行缺陷預估。
如果有種方法可以按照項目情況在測試執(zhí)行之前就可以做出預估,可以為對測試負責人對軟件測試的管理,產(chǎn)品負責人對軟件產(chǎn)品的市場分布和市場規(guī)劃,提供可靠的數(shù)據(jù)支持,有較大的輔助作用。
技術實現(xiàn)要素:
針對上述現(xiàn)狀,本發(fā)明公開了一種可以基于軟件項目的各個版本測試情況的大數(shù)據(jù),通過數(shù)據(jù)挖掘技術來獲得軟件測試缺陷數(shù)量的預測方法和系統(tǒng)。
本發(fā)明提供了一種軟件測試缺陷預測方法,其包括:
步驟S1,數(shù)據(jù)采集,收集來自多個測試客戶端的測試管理數(shù)據(jù),獲得包含多個測試管理數(shù)據(jù)的測試管理數(shù)據(jù)集合;
步驟S2,數(shù)據(jù)處理,篩選和預處理所述測試管理數(shù)據(jù)集合,獲得測試特征數(shù)據(jù)集合;
步驟S3,數(shù)據(jù)分類,將所述測試特征數(shù)據(jù)集合按照分類模式分為不同的數(shù)據(jù)簇;
步驟S4,數(shù)據(jù)分析,查找與輸入的待分析軟件測試匹配的所述數(shù)據(jù)簇,根據(jù)所述數(shù)據(jù)簇預測待所述分析軟件測試的測試缺陷信息;
其中,所述測試管理數(shù)據(jù)至少包括測試項目信息、軟件版本信息和測試缺陷信息;所述待分析軟件測試信息至少包括測試項目信息和軟件版本信息;
所述測試缺陷信息至少包括缺陷類型信息和缺陷數(shù)量信息;所述缺陷類型信息用于表示缺陷的嚴重程度,所述缺陷數(shù)量信息與所述缺陷類型信息一一對應。
作為優(yōu)選,所述測試項目信息,至少包括項目類型信息、測試人員信息、開發(fā)人員信息、測試開始時間信息、測試結束時間信息;所述軟件版本信息,至少包括主版本號信息、子版本號信息。
作為優(yōu)選,所述步驟S2進一步包括
步驟S201,數(shù)據(jù)篩選,包括從所述測試管理數(shù)據(jù)集合中挑選出能夠提取出特征參數(shù)的數(shù)據(jù),組成有效測試數(shù)據(jù)集合;
步驟S202,數(shù)據(jù)預處理,包括提取所述有效測試數(shù)據(jù)集合中的測試管理數(shù)據(jù)的特征參數(shù),組成測試特征數(shù)據(jù)集合。
作為優(yōu)選,所述步驟S3進一步包括:
步驟S301,初次分類,將所述測試特征數(shù)據(jù)集合中的特征數(shù)據(jù)分為不同的數(shù)據(jù)簇;
步驟S302,再次分類,將各所述數(shù)據(jù)簇中的特征數(shù)據(jù)分為不同的子數(shù)據(jù)簇;
步驟S303,均值計算,計算各所述子數(shù)據(jù)簇的平均測試缺陷信息。
作為優(yōu)選,所述步驟S302中,對各所述數(shù)據(jù)簇中的特征數(shù)據(jù)通過聚分類分為不同的子數(shù)據(jù)簇。
作為優(yōu)選,所述待分析軟件測試的測試信息至少包括所述測試項目信息、所述軟件版本信息;所述步驟S4進一步包括:
步驟S401,初次匹配,根據(jù)所述待分析軟件測試的測試項目信息查找與所述待分析軟件測試匹配的數(shù)據(jù)簇;
步驟S402,再次匹配,在步驟S401獲得的數(shù)據(jù)簇中,查找與所述待分析軟件測試的測試項目信息和軟件版本信息匹配的子數(shù)據(jù)簇;
步驟S403,缺陷預測,根據(jù)步驟S402獲得的數(shù)據(jù)簇的平均測試缺陷信息預測所述待分析軟件測試的測試缺陷信息。
本發(fā)明還提供了一種軟件測試缺陷預測系統(tǒng),其包括:
數(shù)據(jù)采集模塊,收集來自多個測試客戶端的測試管理數(shù)據(jù),獲得包含多個測試管理數(shù)據(jù)的測試管理數(shù)據(jù)集合;
數(shù)據(jù)處理模塊,篩選和預處理所述測試管理數(shù)據(jù)集合,獲得測試特征數(shù)據(jù)集合;
數(shù)據(jù)分類模塊,將所述測試特征數(shù)據(jù)集合按照分類模式分為不同的數(shù)據(jù)簇;
數(shù)據(jù)分析模塊,根據(jù)輸入的待分析軟件測試信息和所述測試特征數(shù)據(jù)集合,預測待分析軟件測試的測試缺陷信息;
其中,所述測試管理數(shù)據(jù)至少包括測試項目信息、軟件版本信息和測試缺陷信息;所述待分析軟件測試信息至少包括測試項目信息和軟件版本信息;所述測試缺陷信息至少包括缺陷類型信息和缺陷數(shù)量信息;所述缺陷類型信息用于表示缺陷的嚴重程度,所述缺陷數(shù)量信息與所述缺陷類型信息一一對應。
作為優(yōu)選,所述數(shù)據(jù)處理模塊進一步包括:
數(shù)據(jù)篩選單元,從所述測試管理數(shù)據(jù)集合中挑選出能夠提取出特征參數(shù)的數(shù)據(jù),組成有效測試數(shù)據(jù)集合;
數(shù)據(jù)預處理單元,提取所述有效測試數(shù)據(jù)集合中的測試管理數(shù)據(jù)的特征參數(shù),組成測試特征數(shù)據(jù)集合。
作為優(yōu)選,所述數(shù)據(jù)分類模塊進一步包括
初次分類單元,將所述測試特征數(shù)據(jù)集合中的特征數(shù)據(jù)分為不同的數(shù)據(jù)簇;
再次分類單元,將各所述數(shù)據(jù)簇中的特征數(shù)據(jù)分為不同的子數(shù)據(jù)簇;
均值計算單元,計算各所述子數(shù)據(jù)簇的平均測試缺陷信息。
作為優(yōu)選,所述待分析軟件測試的測試信息至少包括所述測試項目信息、所述軟件版本信息;所述數(shù)據(jù)分析模塊進一步包括
初次匹配單元,根據(jù)所述待分析軟件測試的測試項目信息查找與所述待分析軟件測試匹配的數(shù)據(jù)簇;
再次匹配單元,在所述初次匹配單元獲得的數(shù)據(jù)簇中,查找與所述待分析軟件測試的測試項目信息和軟件版本信息匹配的子數(shù)據(jù)簇;
缺陷預測單元,根據(jù)所述再次匹配單元獲得的數(shù)據(jù)簇的平均測試缺陷信息預測所述待分析軟件測試的測試缺陷信息。
本發(fā)明用軟件測試缺陷預測方法及系統(tǒng),基于目前已有的或者可以實時更新的軟件項目測試情況的大數(shù)據(jù)進行數(shù)據(jù)挖掘,實現(xiàn)對軟件測試缺陷的預測方法。數(shù)據(jù)挖掘是通過從大數(shù)據(jù)中剝離有效的數(shù)據(jù),通過數(shù)據(jù)清洗、數(shù)據(jù)分類、從而找到測試缺陷的規(guī)律性。
附圖說明
附圖1本發(fā)明實施例的軟件測試缺陷預測系統(tǒng)的系統(tǒng)圖。
附圖2本發(fā)明實施例的軟件測試缺陷預測方法流程圖。
具體實施方式
以下具體實施例僅僅是對本發(fā)明的解釋,其并不是對本發(fā)明的限制,本領域技術人員在閱讀完本說明書后可以根據(jù)需要對本實施例做出沒有創(chuàng)造性貢獻的修改,但只要在本發(fā)明的權利要求范圍內(nèi)都受到專利法的保護。雖然附圖中顯示了本公開的示例性實施例,然而當然可以理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開并且能夠?qū)⒈竟_的范圍完整的傳達給本領域的技術人員。
本發(fā)明的技術任務是基于目前已有的或者可以實時更新的軟件項目測試情況的大數(shù)據(jù)進行數(shù)據(jù)挖掘,實現(xiàn)對軟件測試缺陷的預測方法。數(shù)據(jù)挖掘是通過從大數(shù)據(jù)中剝離有效的數(shù)據(jù),通過數(shù)據(jù)清洗、數(shù)據(jù)分類、從而找到測試缺陷的規(guī)律性。
實施例一
如圖1所示,一種軟件測試缺陷預測系統(tǒng),包括:
一.數(shù)據(jù)采集模塊
收集來自多個測試客戶端的測試管理數(shù)據(jù),獲得包含多個測試管理數(shù)據(jù)的測試管理數(shù)據(jù)集合。測試管理數(shù)據(jù)至少包括測試項目信息、軟件版本信息和測試缺陷信息。其中:
測試項目信息,至少包括項目類型信息、測試人員信息、開發(fā)人員信息、測試開始時間信息、測試結束時間信息。根據(jù)所述測試項目信息可以區(qū)分待測試的軟件產(chǎn)品屬于哪種類型的項目。不同的項目,產(chǎn)生的缺陷也是不同的。比如做電子商務Web端的產(chǎn)品和做電子商務APP端的產(chǎn)品,它們在不同的軟件版本中會有不同的缺陷分布,在添加項目的時候盡量對項目類型進行較細的分類。測試過程中,測試執(zhí)行時間(通過測試開始時間信息和測試結束時間信息可以獲得)、測試人員和開發(fā)人員的分配、軟件版本這些數(shù)據(jù)對于缺陷預測是有幫助的。相對來說,測試執(zhí)行時間較長,代表測試過程中可以投入更多的時間,對產(chǎn)品進行細致的測試,可能會增加嚴重程度較低的缺陷數(shù)量。測試人員和開發(fā)人員的分配比,以及人數(shù)安排也會對缺陷數(shù)量和嚴重程度有影響。一般,如果開發(fā)人員較多,代表產(chǎn)品的成熟度較高,出現(xiàn)嚴重程度高的缺陷概率會低。而如果測試人員較少的話,發(fā)現(xiàn)缺陷的數(shù)量也可能會因為個人能力、時間等問題而降低。
軟件版本信息,至少包括主版本號信息、子版本號信息。不同的軟件版本,也會對缺陷數(shù)量有影響。比如子版本越大,代表測試的迭代數(shù)越多,相對產(chǎn)品會比低版本的軟件更加穩(wěn)定,產(chǎn)生的缺陷也會減少。
那么,根據(jù)上面這些情況可以啟發(fā)到,這些測試大數(shù)據(jù)的背后應該是有一定的規(guī)律性,可以根據(jù)這些規(guī)律,對缺陷進行預測獲得測試缺陷信息。
測試缺陷信息至少包括缺陷類型信息和缺陷數(shù)量信息。缺陷類型信息用于表示缺陷的嚴重程度,缺陷數(shù)量信息與所述缺陷類型信息一一對應。
二.數(shù)據(jù)處理模塊
篩選和預處理所述測試管理數(shù)據(jù)集合,獲得測試特征數(shù)據(jù)集合。進一步包括:
數(shù)據(jù)篩選單元,從所述測試管理數(shù)據(jù)集合中挑選出能夠提取出特征參數(shù)的數(shù)據(jù),組成有效測試數(shù)據(jù)集合。
數(shù)據(jù)預處理單元,提取所述有效測試數(shù)據(jù)集合中的測試管理數(shù)據(jù)的特征參數(shù),組成測試特征數(shù)據(jù)集合。
三.數(shù)據(jù)分類模塊
將所述測試特征數(shù)據(jù)集合按照分類模式分為不同的數(shù)據(jù)簇。進一步包括:
初次分類單元,將所述測試特征數(shù)據(jù)集合中的特征數(shù)據(jù)按照第一分類模型分為不同的數(shù)據(jù)簇。
再次分類單元,對各所述數(shù)據(jù)簇中的特征數(shù)據(jù)按照第二分類模型分為不同的子數(shù)據(jù)簇;
均值計算單元,計算各所述子數(shù)據(jù)簇的平均測試缺陷信息。
四.數(shù)據(jù)分析模塊
根據(jù)輸入的待分析軟件測試信息和所述測試特征數(shù)據(jù)集合,預測待分析軟件測試的測試缺陷信息。待分析軟件測試信息至少包括測試項目信息和軟件版本信息。該模塊進一步包括:
初次匹配單元,根據(jù)所述待分析軟件測試的測試項目信息查找與所述待分析軟件測試匹配的數(shù)據(jù)簇。
再次匹配單元,在所述初次匹配單元獲得的數(shù)據(jù)簇中,查找與所述待分析軟件測試的測試項目信息和軟件版本信息匹配的子數(shù)據(jù)簇。
缺陷預測單元,根據(jù)所述再次匹配單元獲得的數(shù)據(jù)簇的平均測試缺陷信息預測所述待分析軟件測試的測試缺陷信息。
本發(fā)明的技術任務是按照以下方式實現(xiàn)的,如圖2所示,該方法的操作步驟如下:
步驟S1,數(shù)據(jù)采集,利用多個數(shù)據(jù)庫來收集來自多個測試客戶端(Web、App等)的測試管理數(shù)據(jù),獲得包含多個測試管理數(shù)據(jù)的測試管理數(shù)據(jù)集合。比如目前有很多企業(yè)會在云測試平臺中對自己的軟件項目的測試缺陷進行管理,而這些管理數(shù)據(jù)就可以作為采集的目標,組成測試管理數(shù)據(jù)集合,作為后續(xù)缺陷預測的數(shù)據(jù)來源。
步驟S2,數(shù)據(jù)處理,篩選和預處理所述測試管理數(shù)據(jù)集合,獲得測試特征數(shù)據(jù)集合。對獲取的測試管理數(shù)據(jù)需要進行篩選,導入待分析的數(shù)據(jù)庫。還需要對這些未經(jīng)過加工的測試管理數(shù)據(jù),進行預處理,提取出有特征值的數(shù)據(jù)。比如,我們需要從中獲取測試項目的類型、執(zhí)行天數(shù)、測試人員和開發(fā)人員的分配、版本號等有效數(shù)據(jù)。
步驟S3,數(shù)據(jù)分類,將所述測試特征數(shù)據(jù)集合按照分類模式分為不同的數(shù)據(jù)簇。
步驟S4,數(shù)據(jù)分析,查找與輸入的待分析軟件測試匹配的所述數(shù)據(jù)簇,根據(jù)所述數(shù)據(jù)簇預測待所述分析軟件測試的測試缺陷信息。
具體方法為:
一.步驟S1數(shù)據(jù)采集
一般在管理測試缺陷的時候,測試人員會根據(jù)項目需要在缺陷管理系統(tǒng)中首先創(chuàng)建一個項目,輸入項目的基本信息,比如項目類型、測試人員、開發(fā)人員、項目的開始日期、模塊劃分等。接著,在測試開始前,也會輸入軟件版本、測試文檔存放地址、軟件代碼存放地、測試工具等信息。然后,在測試進行的時候,會在系統(tǒng)中錄入缺陷,這里在錄入的時候需要定義缺陷的名稱、嚴重程度、緊急程度、重現(xiàn)步驟、創(chuàng)建者、缺陷狀態(tài)等信息。在缺陷修復的時候,也需要對缺陷狀態(tài)進行及時更新。所以,在整個軟件測試生命周期中,會產(chǎn)生很多缺陷管理的相關數(shù)據(jù)。我們可以從大數(shù)據(jù)庫中獲得這些相關的原始數(shù)據(jù),從而得到有利用價值的信息。
二.步驟S2,數(shù)據(jù)處理
步驟S201,數(shù)據(jù)篩選,包括從所述測試管理數(shù)據(jù)集合中挑選出能夠提取出特征參數(shù)的數(shù)據(jù),組成有效測試數(shù)據(jù)集合。
這是指對各種臟數(shù)據(jù)進行對應方式的處理,得到標準的、干凈的、連續(xù)的數(shù)據(jù),提供給后面的數(shù)據(jù)統(tǒng)計、數(shù)據(jù)挖掘等使用。數(shù)據(jù)的篩選可以根據(jù)數(shù)據(jù)的完整性、唯一性、權威性、合法性、一致性等來解決。比如,如果我們這里有項目類型是“0”的內(nèi)容,這就不符合合法性的原則了,對于這種數(shù)據(jù)是需要剔除的。
經(jīng)過篩選后得到的有效測試數(shù)據(jù)包含:
能夠直接獲得特征參數(shù)的數(shù)據(jù),如:項目類型、測試人員數(shù)量、開發(fā)人員數(shù)量、測試開始日期、測試結束日期、節(jié)假日、版本編號、每個版本的缺陷數(shù)量等。
需經(jīng)預處理來獲得特征參數(shù)的數(shù)據(jù),如:
測試版本號=V i.j(注:一般我們會用V主版本號.子版本號[.修正版本號[.編譯版本號]],來表示。比如V 1.0.169,V 2.1.0,這種格式來記錄軟件版本。一般第一和第二位數(shù)字的變化會認為是一個較大的版本,而第三位數(shù)字的變化都是迭代的小版本)。
測試時間(天)=測試結束日期-測試開始日期-節(jié)假日。
A類缺陷數(shù)量=版本中A類缺陷新激活數(shù)量(注:一般會用A、B、C、D高到低來區(qū)分缺陷的嚴重程度,這個也是測試人員判斷產(chǎn)品在這個版本中的功能實現(xiàn)和穩(wěn)定性的重要數(shù)據(jù)來源)。
B類缺陷數(shù)量=版本中B類缺陷新激活數(shù)量。
C類缺陷數(shù)量=版本中C類缺陷新激活數(shù)量。
D類缺陷數(shù)量=版本中D類缺陷新激活數(shù)量。
步驟S202,數(shù)據(jù)預處理,包括提取所述有效測試數(shù)據(jù)集合中的測試管理數(shù)據(jù)的特征參數(shù),組成測試特征數(shù)據(jù)集合。即從上述測試版本號中提取主版本號信息、子版本號信息、測試時間信息、各種缺陷類型的缺陷的缺陷數(shù)量信息等特征參數(shù)。
三.步驟S3數(shù)據(jù)分類
步驟S301,初次分類,將所述測試特征數(shù)據(jù)集合中的特征數(shù)據(jù)按照第一分類模型分為不同的數(shù)據(jù)簇;
步驟S302,再次分類,對各所述數(shù)據(jù)簇中的特征數(shù)據(jù)按照第二分類模型分為不同的子數(shù)據(jù)簇;
步驟S303,均值計算,計算各所述子數(shù)據(jù)簇的平均測試缺陷信息。
例如,目前需要對不同嚴重程度的缺陷按照測試時間、版本號(主版本號和/或子版本號)、測試人員、開發(fā)人員進行分類。這里以A類缺陷分類進行描述,測試特征數(shù)據(jù)包括:{測試版本號,測試時間,測試人員數(shù)量,開發(fā)人員數(shù)量,A類缺陷數(shù)量}。如:
數(shù)據(jù)1:{V1.1,20,2,5,15}
數(shù)據(jù)2:{V1.2,15,2,5,6}
數(shù)據(jù)3:{V1.3,15,2,3,1}
數(shù)據(jù)4:{V2.1,22,2,5,13}
數(shù)據(jù)5:{V2.2,20,1,3,6}
數(shù)據(jù)6:{V2.3,20,2,3,0}
數(shù)據(jù)7:{V2.4,10,2,2,0}
數(shù)據(jù)8:{V3.1,22,3,8,8}
……
得到數(shù)據(jù)簇{數(shù)據(jù)1,數(shù)據(jù)2,數(shù)據(jù)3,數(shù)據(jù)4,數(shù)據(jù)5,數(shù)據(jù)6,數(shù)據(jù)7,數(shù)據(jù)8,...}。
然后使用k-means++的方法,對這些數(shù)據(jù)簇中的這些數(shù)據(jù)進行聚類分析。
a)從該數(shù)據(jù)簇中隨機選擇一個點作為第一個聚類中心。比如我們可以選擇“數(shù)據(jù)2:{V1.2,15,2,5,6}”作為第一個聚類中心。
b)對于數(shù)據(jù)簇中的每一個點x,計算它與聚類中心的距離D(x)。比如數(shù)據(jù)1與數(shù)據(jù)2的距離為D(1),數(shù)據(jù)3與數(shù)據(jù)2的距離為D(2),以此獲得其他的距離。
本實施例中的數(shù)據(jù)是5個維度(w、v、x、y、z)來確定點位的,我們可以根據(jù)坐標軸上2點距離的方法來確定每個數(shù)據(jù)點與中心點的距離,如以下公式:
c)選擇一個新的數(shù)據(jù)點最為新的聚類中心,這里選擇的原則是:D(x)較大的點。
d)然后重復步驟b、c直到K個聚類中心被選出來。注意,這里的K是指將數(shù)據(jù)簇中的數(shù)據(jù)分為K個子數(shù)據(jù)簇。目前對于K的選擇沒有較好的方法,一般可以按照經(jīng)驗值來確定。比如電子商務項目可以用K=5,移動辦公項目可以用K=3。
e)利用這K個初始的聚類中心來運行標準的K-means算法。
f)將數(shù)據(jù)簇中的數(shù)據(jù)點劃分到最近的中心點那一子數(shù)據(jù)簇。本實施例中的數(shù)據(jù)是5個維度(w、v、x、y、z)來確定點位的,我們可以步驟b中的距離計算公式來確定每個數(shù)據(jù)點與中心點的距離,然后進行劃分。
g)更新每個子數(shù)據(jù)簇的中心,即把該子數(shù)據(jù)簇的所有數(shù)據(jù)點的坐標加起來取平均值。
h)重復f、g直到每個子數(shù)據(jù)簇的中心不在移動位為止。
通過上面的K-means++的方法可以對數(shù)據(jù)簇進行聚分類,這樣可以分別獲得缺陷A、B、C、D的數(shù)據(jù)簇分類的情況,從而為下一步的分析做準備。
四.步驟S4數(shù)據(jù)分析
步驟S401,初次匹配,根據(jù)所述待分析軟件測試的測試項目信息查找與所述待分析軟件測試匹配的數(shù)據(jù)簇。
步驟S402,再次匹配,在步驟S401獲得的數(shù)據(jù)簇中,查找與所述待分析軟件測試的測試項目信息和軟件版本信息匹配的子數(shù)據(jù)簇。
步驟S403,缺陷預測,根據(jù)步驟S402獲得的數(shù)據(jù)簇的平均測試缺陷信息預測所述待分析軟件測試的測試缺陷信息。
比如這里有個電子商務的軟件測試項目,目前版本是V1.1,測試人員為2,開發(fā)人員為5,那么我們可以獲得這樣的包含待分析軟件的測試信息的待分析軟件測試數(shù)據(jù){電子商務,V1.1,2,5}。
首先,可以根據(jù)該軟件測試的項目類型信息(即電子商務)進行初次匹配,選擇電子商務的數(shù)據(jù)簇來作為預測分析的數(shù)據(jù)源。然后將軟件測試數(shù)據(jù){V1.1,2,5}選擇合適的子數(shù)據(jù)簇放入比對。這里可以用到KNN鄰近算法,來將我們需要預測的數(shù)據(jù)點匹配到與它最相近的子數(shù)據(jù)簇中。
KNN算法是指,在距離空間里,如果一個樣本的最近的K個鄰居里絕大多數(shù)屬于某個類別,則該樣本也屬于這個類別。比如我們這個樣本x{V 1.1,2,5},對應子數(shù)據(jù)簇1{數(shù)據(jù)1,數(shù)據(jù)4,數(shù)據(jù)9,數(shù)據(jù)12...},子數(shù)據(jù)簇2{數(shù)據(jù)2,數(shù)據(jù)5,數(shù)據(jù)15...},...,子數(shù)據(jù)簇n中與子數(shù)據(jù)簇1臨近4個,其他子數(shù)據(jù)簇都小于4個,那么樣本x可以屬于子數(shù)據(jù)簇1。
然后,從子數(shù)據(jù)簇1的缺陷數(shù)量的平均值,獲得該待分析軟件測試項目的缺陷數(shù)量。比如A類缺陷的平均值為13,那么這個版本這個項目的A類缺陷預測數(shù)量為13個。