本發(fā)明涉及軟件度量領(lǐng)域,尤其涉及一種軟件度量檢測(cè)方法和系統(tǒng)。
背景技術(shù):
在軟件度量領(lǐng)域,行覆蓋率、分支覆蓋率和圈復(fù)雜是對(duì)軟件度量非常重要的關(guān)鍵度量指標(biāo)?,F(xiàn)有技術(shù)中,通過人工執(zhí)行驗(yàn)收用例來(lái)獲得被測(cè)軟件的行覆蓋率、分支覆蓋率和圈復(fù)雜度信息,人工執(zhí)行一次驗(yàn)收用例只能獲得本次執(zhí)行的驗(yàn)收用例所測(cè)試的軟件的行覆蓋率、分支覆蓋率和圈復(fù)雜度信息,要獲得多個(gè)驗(yàn)收用例測(cè)試的軟件的行覆蓋率、分支覆蓋率和圈復(fù)雜度信息需要人工手動(dòng)執(zhí)行多次。當(dāng)軟件維護(hù)人員想要檢查當(dāng)前維護(hù)的軟件的健康狀況,或者測(cè)試人員想要獲得當(dāng)前測(cè)試的軟件質(zhì)量通常需要通過多個(gè)驗(yàn)收用例來(lái)對(duì)要維護(hù)或者要測(cè)試的軟件進(jìn)行測(cè)試得到其行覆蓋率、分支覆蓋率和圈復(fù)雜度信息。
現(xiàn)有技術(shù)中,一般采用人工執(zhí)行多個(gè)驗(yàn)收用例,然后再綜合多個(gè)驗(yàn)收用例的行覆蓋率、分支覆蓋率和圈復(fù)雜度信息對(duì)被測(cè)軟件進(jìn)行分析,所以現(xiàn)有技術(shù)存在任務(wù)繁重、工作量大、度量效率低下和耗時(shí)長(zhǎng)的問題。
因此,提供一種能夠快速度量軟件,提高度量效率和降低工作量的軟件度量方法是現(xiàn)有技術(shù)急需解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的主要技術(shù)問題是,提供一種軟件度量檢測(cè)方法和系統(tǒng),解決現(xiàn)有技術(shù)中因?yàn)槿斯?zhí)行多個(gè)驗(yàn)收用例和人工分析多個(gè)驗(yàn)收用例結(jié)果,而導(dǎo)致的任務(wù)繁重、工作量大、度量效率低下和耗時(shí)長(zhǎng)的問題。
為解決上述技術(shù)問題,本發(fā)明提供一種軟件度量檢測(cè)方法,包括:
檢測(cè)裝置對(duì)被測(cè)軟件進(jìn)行驗(yàn)收標(biāo)識(shí);
所述檢測(cè)裝置基于所述驗(yàn)收標(biāo)識(shí),調(diào)用并執(zhí)行驗(yàn)收用例對(duì)所述被測(cè)軟件進(jìn)行驗(yàn)收;
所述檢測(cè)裝置根據(jù)驗(yàn)收結(jié)果輸出度量報(bào)告,所述度量報(bào)告包括覆蓋率報(bào)告和圈復(fù)雜度報(bào)告。
進(jìn)一步地,所述檢測(cè)裝置對(duì)被測(cè)軟件進(jìn)行驗(yàn)收標(biāo)識(shí)包括:所述檢測(cè)裝置通過插針操作對(duì)所述被測(cè)軟件中需要驗(yàn)收的內(nèi)容進(jìn)行驗(yàn)收標(biāo)識(shí)。
進(jìn)一步地,所述驗(yàn)收用例包括:預(yù)置的驗(yàn)收用例和/或?qū)崟r(shí)編寫的驗(yàn)收用例。
進(jìn)一步地,所述驗(yàn)收用例包括:用戶界面測(cè)試用例和/或邏輯測(cè)試用例;所述用戶界面測(cè)試用例用于對(duì)所述被測(cè)軟件的用戶界面的界面元素進(jìn)行測(cè)試;所述邏輯測(cè)試用例用于對(duì)所述被測(cè)軟件的邏輯進(jìn)行測(cè)試。
進(jìn)一步地,所述檢測(cè)裝置調(diào)用并執(zhí)行驗(yàn)收用例包括:檢測(cè)裝置調(diào)用并執(zhí)行用戶界面測(cè)試用例,所述檢測(cè)裝置調(diào)用并執(zhí)行用戶界面測(cè)試用例包括:所述檢測(cè)裝置根據(jù)模板文件定義界面元素類型、名稱和索引來(lái)定位所述界面元素,得到所述界面元素的坐標(biāo)位置,再調(diào)用鼠標(biāo)移動(dòng)事件去操作所述坐標(biāo)位置的界面元素。
進(jìn)一步地,所述檢測(cè)裝置調(diào)用并執(zhí)行驗(yàn)收用例還包括:所述檢測(cè)裝置調(diào)用并執(zhí)行邏輯測(cè)試用例,所述檢測(cè)裝置調(diào)用并執(zhí)行邏輯測(cè)試用例包括:所述檢測(cè)裝置將邏輯測(cè)試用例中設(shè)置的輸入作為對(duì)應(yīng)的被測(cè)軟件的最小可測(cè)試單元的輸入,運(yùn)行所述最小可測(cè)單元。
進(jìn)一步地,所述度量報(bào)告還包括驗(yàn)收用例報(bào)告,所述驗(yàn)收用例報(bào)告中通過驗(yàn)收的驗(yàn)收用例用綠色標(biāo)記,未通過驗(yàn)收的驗(yàn)收用例用紅色標(biāo)記。
進(jìn)一步地,所述檢測(cè)裝置根據(jù)驗(yàn)收結(jié)果輸出度量報(bào)告包括:檢測(cè)裝置對(duì)驗(yàn)收結(jié)果中的圈復(fù)雜度按由高到低排列得到圈復(fù)雜度報(bào)告、對(duì)驗(yàn)收結(jié)果中的行覆蓋率和分支覆蓋率分別按由低到高排列得到覆蓋率報(bào)告。
本發(fā)明還提供一種軟件度量檢測(cè)系統(tǒng),包括:
標(biāo)識(shí)模塊,用于對(duì)被測(cè)軟件進(jìn)行驗(yàn)收標(biāo)識(shí);
驗(yàn)收模塊,用于基于所述驗(yàn)收標(biāo)識(shí),調(diào)用并執(zhí)行驗(yàn)收用例對(duì)所述被測(cè)軟件 進(jìn)行驗(yàn)收;
處理模塊,用于根據(jù)驗(yàn)收結(jié)果輸出度量報(bào)告,所述度量報(bào)告包括覆蓋率報(bào)告和圈復(fù)雜度報(bào)告。
進(jìn)一步地,所述標(biāo)識(shí)模塊包括標(biāo)識(shí)子模塊,所述標(biāo)識(shí)子模塊用于通過插針操作對(duì)所述被測(cè)軟件中需要驗(yàn)收的內(nèi)容進(jìn)行驗(yàn)收標(biāo)識(shí)。
進(jìn)一步地,所述驗(yàn)收用例包括:預(yù)置的驗(yàn)收用例和/或?qū)崟r(shí)編寫的驗(yàn)收用例。
進(jìn)一步地,所述驗(yàn)收用例包括:用戶界面測(cè)試用例和/或邏輯測(cè)試用例;所述用戶界面測(cè)試用例用于對(duì)所述被測(cè)軟件的用戶界面的界面元素進(jìn)行測(cè)試;所述邏輯測(cè)試用例用于對(duì)所述被測(cè)軟件的邏輯進(jìn)行測(cè)試。
進(jìn)一步地,所述驗(yàn)收模塊包括第一驗(yàn)收模塊,用于調(diào)用并執(zhí)行用戶界面測(cè)試用例,所述第一驗(yàn)收模塊包括第一驗(yàn)收子模塊,用于根據(jù)模板文件定義界面元素類型、名稱和索引來(lái)定位所述界面元素,得到所述界面元素的坐標(biāo)位置,再調(diào)用鼠標(biāo)移動(dòng)事件去操作所述坐標(biāo)位置的界面元素。
進(jìn)一步地,所述驗(yàn)收模塊還包括第二驗(yàn)收模塊,用于調(diào)用并執(zhí)行邏輯測(cè)試用例;所述第二驗(yàn)收模塊包括第二驗(yàn)收子模塊,用于將邏輯測(cè)試用例中設(shè)置的輸入作為對(duì)應(yīng)的被測(cè)軟件的最小可測(cè)試單元的輸入,運(yùn)行所述最小可測(cè)單元。
進(jìn)一步地,所述處理模塊包括驗(yàn)收用例報(bào)告處理模塊,用于對(duì)所述驗(yàn)收用例報(bào)告中通過驗(yàn)收的驗(yàn)收用例進(jìn)行綠色標(biāo)記,對(duì)未通過驗(yàn)收的驗(yàn)收用例進(jìn)行紅色標(biāo)記。
進(jìn)一步地,所述處理模塊還包括:圈復(fù)雜度處理模塊和覆蓋率處理模塊;
所述圈復(fù)雜度處理模塊,用于對(duì)驗(yàn)收結(jié)果中的圈復(fù)雜度按由高到低排列得到圈復(fù)雜度報(bào)告;
所述覆蓋率處理模塊,用于對(duì)驗(yàn)收結(jié)果中的行覆蓋率和分支覆蓋率分別按由低到高排列得到覆蓋率報(bào)告。
本發(fā)明的有益效果是:本發(fā)明提供了一種軟件度量檢測(cè)方法和系統(tǒng),檢測(cè)裝置對(duì)被測(cè)軟件進(jìn)行驗(yàn)收標(biāo)識(shí),再基于該驗(yàn)收標(biāo)識(shí)調(diào)用并執(zhí)行驗(yàn)收用例對(duì)被測(cè)軟件進(jìn)行驗(yàn)收,然后根據(jù)驗(yàn)收結(jié)果輸出包含覆蓋率報(bào)告和圈復(fù)雜度報(bào)告的度量 報(bào)告,可見本發(fā)明對(duì)被測(cè)軟件測(cè)試時(shí)驗(yàn)收用例的調(diào)用、執(zhí)行以及驗(yàn)收結(jié)果的分析都可以通過測(cè)試裝置自動(dòng)完成,減輕了人工操作帶來(lái)的繁重任務(wù)量,降低人工成本,提高軟件度量效率,提升軟件度量速度。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例一提供的軟件度量檢測(cè)方法流程圖;
圖2為本發(fā)明實(shí)施例二提供的軟件度量檢測(cè)系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面通過具體實(shí)施方式結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
實(shí)施例一:
本實(shí)施例提供一種軟件度量檢測(cè)方法,其相對(duì)現(xiàn)有人工度量檢測(cè)的方式具有軟件度量成本低、軟件度量效率高、軟件度量速度快的優(yōu)點(diǎn),該方法請(qǐng)參見圖1所示,包括:
S101:檢測(cè)裝置對(duì)被測(cè)軟件進(jìn)行驗(yàn)收標(biāo)識(shí);
S102:檢測(cè)裝置基于驗(yàn)收標(biāo)識(shí),調(diào)用并執(zhí)行驗(yàn)收用例對(duì)被測(cè)軟件進(jìn)行驗(yàn)收;
S103:檢測(cè)裝置根據(jù)驗(yàn)收結(jié)果輸出度量報(bào)告。
優(yōu)選地,上述S101中檢測(cè)裝置對(duì)被測(cè)軟件進(jìn)行驗(yàn)收標(biāo)識(shí)的方為通過插針操作對(duì)被測(cè)軟件中需要測(cè)試的內(nèi)容進(jìn)行驗(yàn)收標(biāo)識(shí)。
優(yōu)選地,步驟S102中驗(yàn)收用例的來(lái)源有多種,例如預(yù)置在測(cè)試裝置上的驗(yàn)收用例和/或測(cè)試人員實(shí)時(shí)編寫的驗(yàn)收用例。上述驗(yàn)收用例包括:用戶界面測(cè)試用例和/或邏輯測(cè)試用例;用戶界面測(cè)試用例是用來(lái)對(duì)被測(cè)軟件的用戶界面的界面元素進(jìn)行測(cè)試的用例;邏輯測(cè)試用例是用來(lái)對(duì)被測(cè)軟件的邏輯功能進(jìn)行測(cè)試的用例。
因此,檢測(cè)裝置調(diào)用并執(zhí)行驗(yàn)收用例就會(huì)包括測(cè)裝置調(diào)用并執(zhí)行用戶界面測(cè)試用例和測(cè)裝置調(diào)用并執(zhí)行邏輯測(cè)試用例。
檢測(cè)裝置調(diào)用并執(zhí)行用戶界面測(cè)試用例包括:檢測(cè)裝置根據(jù)模板文件定義界面元素類型、名稱和索引來(lái)定位該界面元素,得到該界面元素對(duì)應(yīng)的坐標(biāo)位置,再調(diào)用鼠標(biāo)移動(dòng)事件去操作該坐標(biāo)位置上的界面元素??梢酝ㄟ^界面元素對(duì)對(duì)應(yīng)的鼠標(biāo)移動(dòng)事件的響應(yīng)來(lái)判斷該界面元素功能是否符合要求。
本實(shí)施例中的模板文件規(guī)定了界面元素需要具備的屬性,比如:名稱、索引等,不同的界面元素都按照該模板文件來(lái)設(shè)置自己的屬性特征,設(shè)置完后,就可以根據(jù)這些屬性特征找到唯一對(duì)應(yīng)的界面元素。
檢測(cè)裝置調(diào)用并執(zhí)行邏輯測(cè)試用例包括:將邏輯測(cè)試用例中設(shè)置的輸入作為對(duì)應(yīng)的被測(cè)軟件的最小可測(cè)試單元的輸入,運(yùn)行所述最小可測(cè)單元。
上述邏輯測(cè)試用例里還可以設(shè)置對(duì)應(yīng)的被測(cè)軟件的最小測(cè)試單元的目標(biāo)輸出,上述檢測(cè)裝置調(diào)用并執(zhí)行邏輯測(cè)試用例后會(huì)得到一個(gè)實(shí)際輸出,將該實(shí)際輸出與預(yù)設(shè)的目標(biāo)輸出比較就可以知道該被測(cè)的最小測(cè)試單元的邏輯是否正確。
在本實(shí)施例中的邏輯測(cè)試用例可以是基于JUnit(一個(gè)Java語(yǔ)言的單元測(cè)試框架)技術(shù)編寫的,且該邏輯測(cè)試用例的文件名稱后綴統(tǒng)一命名為*Test.class。
優(yōu)選地,在步驟S103中檢測(cè)裝置輸出的度量報(bào)告包括覆蓋率報(bào)告和圈復(fù)雜度報(bào)告,覆蓋率報(bào)告里包含了執(zhí)行多個(gè)被測(cè)軟件的驗(yàn)收用例后得到的被測(cè)軟件的行覆蓋率和分支覆蓋率,圈復(fù)雜度報(bào)告里包含的是執(zhí)行多個(gè)被測(cè)軟件的驗(yàn)收用例后得到的被測(cè)軟件的圈復(fù)雜度。
該度量報(bào)告還包括驗(yàn)收用例報(bào)告,驗(yàn)收用例報(bào)告包含所有被執(zhí)行的驗(yàn)收用例通過還是未通過的信息,為了能更直觀、更快速地將驗(yàn)收用例通過還是未通過的信息展示出來(lái),用不同的顏色標(biāo)記通過和未通過的驗(yàn)收用例,例如將驗(yàn)收用例報(bào)告中通過驗(yàn)收的驗(yàn)收用例用綠色標(biāo)記,未通過驗(yàn)收的驗(yàn)收用例用紅色標(biāo)記。
步驟S103中檢測(cè)裝置根據(jù)驗(yàn)收結(jié)果輸出度量報(bào)告包括:檢測(cè)裝置對(duì)驗(yàn)收結(jié)果中的圈復(fù)雜度按由高到低排列得到圈復(fù)雜度報(bào)告、對(duì)驗(yàn)收結(jié)果中的行覆蓋率和分支覆蓋率分別按由低到高排列得到覆蓋率報(bào)告。當(dāng)然,圈復(fù)雜度按照低到 高來(lái)排列,行覆蓋率和分支覆蓋率按照由高到低來(lái)排列也是可以的。
另外,為了能夠更好地識(shí)別度量報(bào)告內(nèi)報(bào)告數(shù)據(jù)的優(yōu)良情況,將度量報(bào)告中不同分段內(nèi)的數(shù)據(jù)用不同顏色標(biāo)記。
本發(fā)明中,步驟S101對(duì)被測(cè)軟件進(jìn)行驗(yàn)收標(biāo)識(shí)是為了在后續(xù)的軟件度量過程中得到被測(cè)軟件的覆蓋率。以執(zhí)行一個(gè)驗(yàn)收用例為例,說(shuō)明怎么基于驗(yàn)收標(biāo)識(shí),得到被測(cè)軟件的覆蓋率。
首先測(cè)試裝置對(duì)被測(cè)軟件中驗(yàn)收用例需要調(diào)用的內(nèi)容進(jìn)行標(biāo)識(shí)形成驗(yàn)收標(biāo)識(shí),然后測(cè)試裝置調(diào)用并執(zhí)行驗(yàn)收用例,在該過程中,實(shí)際運(yùn)行到的代碼的標(biāo)識(shí)會(huì)發(fā)生改變,變成新驗(yàn)收標(biāo)識(shí),根據(jù)新驗(yàn)收標(biāo)識(shí)和原來(lái)的驗(yàn)收標(biāo)識(shí)就可以計(jì)算出覆蓋率的值。
本實(shí)施例的有益效果是:本實(shí)施例提供一種軟件度量檢測(cè)方法,檢測(cè)裝置先對(duì)被測(cè)軟件進(jìn)行驗(yàn)收標(biāo)識(shí),然后基于驗(yàn)收標(biāo)識(shí),調(diào)用并執(zhí)行驗(yàn)收用例對(duì)被測(cè)軟件進(jìn)行驗(yàn)收,之后檢測(cè)裝置根據(jù)驗(yàn)收結(jié)果輸出包含覆蓋率報(bào)告、圈復(fù)雜度報(bào)告和驗(yàn)收用例報(bào)告的度量報(bào)告。本實(shí)施例對(duì)被測(cè)軟件測(cè)試時(shí)驗(yàn)收用例的調(diào)用、執(zhí)行以及驗(yàn)收結(jié)果的分析都可以通過測(cè)試裝置自動(dòng)完成,減輕了人工操作帶來(lái)的繁重任務(wù)量,降低人工成本,提高軟件度量效率,提升軟件度量速度。更進(jìn)一步地,本實(shí)施例對(duì)覆蓋率報(bào)告、圈復(fù)雜度報(bào)告中的數(shù)據(jù)進(jìn)行了排序和分段標(biāo)記,使度量報(bào)告內(nèi)數(shù)據(jù)的優(yōu)良情況更直觀,提升用戶體驗(yàn)。
實(shí)施例二:
請(qǐng)參見圖2所示,本實(shí)施例提供一種軟件度量檢測(cè)系統(tǒng),包括:
標(biāo)識(shí)模塊1,用于對(duì)被測(cè)軟件進(jìn)行驗(yàn)收標(biāo)識(shí);
驗(yàn)收模塊2,用于基于所述驗(yàn)收標(biāo)識(shí),調(diào)用并執(zhí)行驗(yàn)收用例對(duì)所述被測(cè)軟件進(jìn)行驗(yàn)收;
處理模塊3,用于根據(jù)驗(yàn)收結(jié)果輸出度量報(bào)告,所述度量報(bào)告包括覆蓋率報(bào)告和圈復(fù)雜度報(bào)告。
優(yōu)選地,標(biāo)識(shí)模塊1包括標(biāo)識(shí)子模塊11,標(biāo)識(shí)子模塊11用于通過插針操作 對(duì)被測(cè)軟件中需要驗(yàn)收的內(nèi)容進(jìn)行驗(yàn)收標(biāo)識(shí)。當(dāng)然,標(biāo)識(shí)子模塊11也可以通過其他方式對(duì)被測(cè)軟件進(jìn)行驗(yàn)收標(biāo)識(shí)。
優(yōu)選地,本實(shí)施例中的驗(yàn)收用例的來(lái)源有多種,例如預(yù)置在測(cè)試裝置上的驗(yàn)收用例和/或測(cè)試人員實(shí)時(shí)編寫的驗(yàn)收用例。上述驗(yàn)收用例的種類包括:用戶界面測(cè)試用例和/或邏輯測(cè)試用例;用戶界面測(cè)試用例是用來(lái)對(duì)被測(cè)軟件的用戶界面的界面元素進(jìn)行測(cè)試的用例;邏輯測(cè)試用例是用來(lái)對(duì)被測(cè)軟件的邏輯功能進(jìn)行測(cè)試的用例。
對(duì)應(yīng)的,驗(yàn)收模塊2包括用于調(diào)用并執(zhí)行用戶界面測(cè)試用例的第一驗(yàn)收模塊21和用于調(diào)用并執(zhí)行邏輯測(cè)試用例的第二驗(yàn)收模塊22。
第一驗(yàn)收模塊21還包括第一驗(yàn)收子模塊211,用于根據(jù)模板文件定義界面元素類型、名稱和索引來(lái)定位該界面元素,得到該界面元素對(duì)應(yīng)的坐標(biāo)位置,再調(diào)用鼠標(biāo)移動(dòng)事件去操作該坐標(biāo)位置上的界面元素??梢酝ㄟ^界面元素對(duì)對(duì)應(yīng)的鼠標(biāo)移動(dòng)事件的響應(yīng)來(lái)判斷該界面元素功能是否符合要求。
第二驗(yàn)收模塊22還包括第二驗(yàn)收子模塊221,用于將邏輯測(cè)試用例中設(shè)置的輸入作為對(duì)應(yīng)的被測(cè)軟件的最小可測(cè)試單元的輸入,運(yùn)行所述最小可測(cè)單元。
上述邏輯測(cè)試用例里還可以設(shè)置對(duì)應(yīng)的被測(cè)軟件的最小測(cè)試單元的目標(biāo)輸出,上述檢測(cè)裝置調(diào)用并執(zhí)行邏輯測(cè)試用例后會(huì)得到一個(gè)實(shí)際輸出,將該實(shí)際輸出與預(yù)設(shè)的目標(biāo)輸出比較就可以知道該被測(cè)的最小測(cè)試單元的邏輯是否正確。
在本實(shí)施例中的邏輯測(cè)試用例可以是基于JUnit(一個(gè)Java語(yǔ)言的單元測(cè)試框架)技術(shù)編寫的,且該邏輯測(cè)試用例的文件名稱后綴統(tǒng)一命名為*Test.class。
優(yōu)選地,處理模塊3包括圈復(fù)雜度處理模塊32和覆蓋率處理模塊33,圈復(fù)雜處理模塊32,用于對(duì)驗(yàn)收結(jié)果中的圈復(fù)雜度按由高到低排列得到圈復(fù)雜度報(bào)告;覆蓋率處理模塊33,用于對(duì)驗(yàn)收結(jié)果中的行覆蓋率和分支覆蓋率分別按由低到高排列得到覆蓋率報(bào)告。當(dāng)然,圈復(fù)雜度按照低到高來(lái)排列,行覆蓋率和分支覆蓋率按照由高到低來(lái)排列也是可以的。
另外,為了能夠更好地識(shí)別度量報(bào)告內(nèi)報(bào)告數(shù)據(jù)的優(yōu)良情況,圈復(fù)雜度處 理模塊32和覆蓋率處理模塊33分別將圈復(fù)雜度報(bào)告和覆蓋率報(bào)告中不同分段內(nèi)的數(shù)據(jù)用不同顏色標(biāo)記。
上述度量報(bào)告中還包括驗(yàn)收用例報(bào)告,驗(yàn)收用例報(bào)告包含所有被執(zhí)行的驗(yàn)收用例通過還是未通過的信息,為了能更直觀、更快速地將驗(yàn)收用例通過還是未通過的信息展示出來(lái)。優(yōu)選地,處理模塊3還包括驗(yàn)收用例報(bào)告處理模塊31,用于對(duì)所述驗(yàn)收用例報(bào)告中通過驗(yàn)收的驗(yàn)收用例進(jìn)行綠色標(biāo)記,對(duì)未通過驗(yàn)收的驗(yàn)收用例進(jìn)行紅色標(biāo)記。
實(shí)施例三:
本實(shí)施例以被測(cè)軟件的具體測(cè)試過程為例進(jìn)行說(shuō)明,該過程包括:
步驟一,Thruster對(duì)被測(cè)軟件中的每一行代碼都進(jìn)行標(biāo)識(shí);
步驟二,在CI中編寫用戶界面測(cè)試用例和邏輯測(cè)試用例,將邏輯測(cè)試用例的文件名稱后綴統(tǒng)一命名為*Test.class;
步驟三,CIEXE掃描并獲得CI中的編寫好的驗(yàn)收用例;
步驟四,CIEXE依次開始運(yùn)行所有驗(yàn)收用例,如果該驗(yàn)收用例是用戶界面測(cè)試用例則轉(zhuǎn)到步驟五;如果該驗(yàn)收用例是邏輯測(cè)試用例則轉(zhuǎn)到步驟七;
步驟五,CIEXE根據(jù)模板文件定義界面元素類型、名稱和索引來(lái)定位該界面元素,得到該界面元素對(duì)應(yīng)的坐標(biāo)位置,再調(diào)用鼠標(biāo)移動(dòng)事件去操作該坐標(biāo)位置上的界面元素;
步驟六,根據(jù)五的運(yùn)行結(jié)果判斷該用戶界面測(cè)試用例測(cè)試的軟件是否通過驗(yàn)收,并將該結(jié)論記錄到驗(yàn)收用例報(bào)告中;
步驟七,CIEXE將邏輯測(cè)試用例中設(shè)置的輸入作為對(duì)應(yīng)的被測(cè)軟件的最小可測(cè)試單元的輸入,運(yùn)行該最小可測(cè)單元,得到一個(gè)實(shí)際輸出;
步驟八,將七中的實(shí)際輸出與預(yù)設(shè)在邏輯測(cè)試用例中的目標(biāo)輸出比較,判斷該被測(cè)的最小測(cè)試單元的邏輯是否正確,若正確,則通過驗(yàn)收,否則不通過,并將該結(jié)論記錄到驗(yàn)收用例報(bào)告中;
步驟九,CIEXE將驗(yàn)收用例執(zhí)行過程中被測(cè)軟件里實(shí)際運(yùn)行的語(yǔ)句的標(biāo)識(shí)變?yōu)樾聵?biāo)識(shí),根據(jù)新標(biāo)識(shí)和未改變的標(biāo)識(shí)計(jì)算出覆蓋率,并將該結(jié)論記錄到覆 蓋率報(bào)告中;
步驟十,圈復(fù)雜度的檢測(cè)插件在用例執(zhí)行過程中計(jì)算圈復(fù)雜度,并將該結(jié)論記錄到圈復(fù)雜度報(bào)告中;
步驟十一,F(xiàn)inish Switch控制軟件測(cè)試結(jié)束;
步驟十二,Metric對(duì)測(cè)試結(jié)果中的覆蓋率按低到高排列得到覆蓋率報(bào)告,對(duì)圈復(fù)雜度按高到低排列得到圈復(fù)雜度報(bào)告。
步驟十三,對(duì)驗(yàn)收用例報(bào)告中的通過和不通過的驗(yàn)收用例分別用不同的顏色標(biāo)記,將圈復(fù)雜度報(bào)告和覆蓋率報(bào)告中不同分段內(nèi)的數(shù)據(jù)用不同顏色標(biāo)記,覆蓋率按低于80%呈現(xiàn)紅色,不低于80%且不高于90%呈現(xiàn)藍(lán)色,高于90%呈現(xiàn)綠色;圈復(fù)雜度按高到低排列,高于5呈現(xiàn)紅色,不低于2且不高于5時(shí)呈現(xiàn)藍(lán)色,低于2呈現(xiàn)綠色;驗(yàn)收用例通過綠色識(shí)別通過,紅色識(shí)別不通過;
步驟十四,Metric輸出包含覆蓋率報(bào)告、圈復(fù)雜度報(bào)告和驗(yàn)收用例報(bào)告的軟件度量報(bào)告。
結(jié)合上述實(shí)施例可知,通過本發(fā)明的實(shí)施至少具備以下有益效果:
采用本發(fā)明中的軟件度量檢測(cè)方法和系統(tǒng),對(duì)被測(cè)軟件進(jìn)行驗(yàn)收標(biāo)識(shí),再基于該驗(yàn)收標(biāo)識(shí)調(diào)用并執(zhí)行驗(yàn)收用例對(duì)被測(cè)軟件進(jìn)行驗(yàn)收,然后根據(jù)驗(yàn)收結(jié)果輸出包含覆蓋率報(bào)告和圈復(fù)雜度報(bào)告的度量報(bào)告。本發(fā)明對(duì)被測(cè)軟件測(cè)試時(shí)驗(yàn)收用例的調(diào)用、執(zhí)行以及驗(yàn)收結(jié)果的分析都可以通過測(cè)試裝置或軟件度量檢測(cè)系統(tǒng)自動(dòng)完成,減輕了人工操作帶來(lái)的繁重任務(wù)量,降低人工成本,提高軟件度量效率,提升軟件度量速度。更進(jìn)一步地,本發(fā)明還對(duì)覆蓋率報(bào)告、圈復(fù)雜度報(bào)告中的數(shù)據(jù)進(jìn)行了排序和分段標(biāo)記,使度量報(bào)告內(nèi)數(shù)據(jù)的優(yōu)良情況更直觀、更清楚,提升用戶體驗(yàn)。
以上內(nèi)容是結(jié)合具體的實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。