本申請涉及軟件測試,尤其涉及需求測試覆蓋率統(tǒng)計方法、裝置、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、在軟件測試技術(shù)中,代碼測試覆蓋率是衡量測試用例覆蓋軟件代碼范圍的重要指標(biāo)。一方面,代碼測試覆蓋率能夠輔助測試人員判斷測試用例是否有效和充分,并及時發(fā)現(xiàn)軟件中存在的錯誤和缺陷。另一方,代碼測試覆蓋率能夠輔助開發(fā)人員提升代碼質(zhì)量。傳統(tǒng)的軟件測試技術(shù)已經(jīng)有多種代碼測試覆蓋率統(tǒng)計方案,包括行覆蓋率、分支覆蓋率、路徑覆蓋率和條件覆蓋率,前述的傳統(tǒng)代碼覆蓋率統(tǒng)計方案區(qū)別在于按照不同的代碼區(qū)域界定進行覆蓋率統(tǒng)計,但是在實際的軟件開發(fā)過程中,開發(fā)人員在完成需求開發(fā)之后會進行自測,在自測通過后才換才會提交測試人員進行轉(zhuǎn)測,此時開發(fā)人員和測試人員只需要關(guān)注需求關(guān)聯(lián)的代碼部分的測試覆蓋率數(shù)據(jù),傳統(tǒng)的代碼測試覆蓋率統(tǒng)計方案無法達到前述測試場景要求的需求級別維度的代碼覆蓋率統(tǒng)計。
技術(shù)實現(xiàn)思路
1、本申請實施方式主要解決的技術(shù)問題是傳統(tǒng)代碼測覆蓋率統(tǒng)計技術(shù)的統(tǒng)計精確度不足。
2、為解決上述技術(shù)問題,本申請實施方式采用的第一個技術(shù)方案是:提供一種需求測試覆蓋率統(tǒng)計方法,包括:根據(jù)需求編號獲取原始代碼行點擊數(shù)據(jù)清單和需求關(guān)聯(lián)代碼文件清單;根據(jù)所述需求關(guān)聯(lián)代碼文件清單和接收的當(dāng)前待測試需求數(shù)據(jù)得到需求關(guān)聯(lián)變更代碼行清單;通過預(yù)設(shè)第一數(shù)據(jù)轉(zhuǎn)換規(guī)則,將所述需求關(guān)聯(lián)變更代碼行清單轉(zhuǎn)換為需求關(guān)聯(lián)規(guī)則文件;解析所述需求關(guān)聯(lián)規(guī)則文件,得到需求關(guān)聯(lián)規(guī)則,并根據(jù)所述原始代碼行點擊數(shù)據(jù)清單執(zhí)行所述需求關(guān)聯(lián)規(guī)則,得到目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù);根據(jù)預(yù)設(shè)需求測試覆蓋率公式和所述目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù)計算,得到對應(yīng)的需求測試覆蓋率。
3、可選地,所述根據(jù)需求編號獲取原始代碼行點擊數(shù)據(jù)清單和需求關(guān)聯(lián)代碼文件清單的步驟,包括:根據(jù)需求編號獲取在自測流程和轉(zhuǎn)測流程中被執(zhí)行代碼行的行號,以及所述被執(zhí)行代碼行的點擊數(shù)信息;從代碼管理工具中獲取當(dāng)前需求測試對應(yīng)的變更代碼文件,其中,所述變更代碼文件包括新增代碼文件和改動代碼文件。
4、可選地,所述根據(jù)所述需求關(guān)聯(lián)代碼文件清單和接收的當(dāng)前待測試需求數(shù)據(jù)得到需求關(guān)聯(lián)變更代碼行清單的步驟,包括:遍歷所述需求關(guān)聯(lián)代碼文件清單中的所述變更代碼文件的變更類型;若所述變更類型為新增類型,則添加對應(yīng)新增的所述變更代碼文件至所述需求關(guān)聯(lián)變更代碼行清單;若所述變更類型為改動類型,則獲取對應(yīng)改動的所述變更代碼文件中的被改動代碼行的改動行號,添加所述對應(yīng)改動的所述變更代碼文件和對應(yīng)的所述改動行號至所述需求關(guān)聯(lián)變更代碼行清單。
5、可選地,所述通過預(yù)設(shè)第一數(shù)據(jù)轉(zhuǎn)換規(guī)則,將所述需求關(guān)聯(lián)變更代碼行清單轉(zhuǎn)換為需求關(guān)聯(lián)規(guī)則文件的步驟,包括:解析所述需求關(guān)聯(lián)變更代碼行清單,遍歷所述需求編號對應(yīng)的變更代碼文件對應(yīng)的變更內(nèi)容;若所述變更內(nèi)容為對應(yīng)的變更代碼文件,則生成第一格式的第一需求關(guān)聯(lián)規(guī)則,其中,所述第一格式包括文件名、代碼分支名和需求編號;若所述變更內(nèi)容為對應(yīng)的變更代碼文件的代碼行,則生成第二格式的第二需求關(guān)聯(lián)規(guī)則,其中,所述第二格式包括文件名、代碼分支名、需求編號和行號索引數(shù)據(jù);遍歷結(jié)束后,添加所述第一需求關(guān)聯(lián)規(guī)則和所述第二需求關(guān)聯(lián)規(guī)則至所述需求關(guān)聯(lián)規(guī)則文件。
6、可選地,所述解析所述需求關(guān)聯(lián)規(guī)則文件,得到需求關(guān)聯(lián)規(guī)則,并根據(jù)所述原始代碼行點擊數(shù)據(jù)清單執(zhí)行所述需求關(guān)聯(lián)規(guī)則,得到目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù)的步驟,包括:解析所述需求關(guān)聯(lián)規(guī)則文件,得到文件級關(guān)聯(lián)數(shù)據(jù)和代碼行級關(guān)聯(lián)數(shù)據(jù);遍歷所述原始代碼行點擊數(shù)據(jù)清單;若當(dāng)前被遍歷的代碼文件不被所述需求關(guān)聯(lián)規(guī)則文件包含,則刪除當(dāng)前被遍歷的代碼文件對應(yīng)的代碼行點擊數(shù)據(jù);若當(dāng)前被遍歷的代碼文件被所述文件級關(guān)聯(lián)數(shù)據(jù)包含,則添加當(dāng)前被遍歷的代碼文件全部代碼行點擊數(shù)據(jù)至所述目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù);若當(dāng)前被遍歷的代碼文件被所述代碼行級關(guān)聯(lián)數(shù)據(jù)包含,則解析所述代碼行級關(guān)聯(lián)數(shù)據(jù)得到對應(yīng)的關(guān)聯(lián)代碼行號,添加當(dāng)前被遍歷的代碼文件中所述關(guān)聯(lián)代碼行號對應(yīng)的代碼行點擊數(shù)據(jù)至所述目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù)。
7、可選地,所述解析所述代碼行級關(guān)聯(lián)數(shù)據(jù)得到對應(yīng)的關(guān)聯(lián)代碼行號,添加當(dāng)前被遍歷的代碼文件中所述關(guān)聯(lián)代碼行號對應(yīng)的代碼行點擊數(shù)據(jù)至所述目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù)的步驟,包括:解析所述代碼行級關(guān)聯(lián)數(shù)據(jù),得到對應(yīng)的單行代碼行號和代碼行號范圍;遍歷當(dāng)前代碼文件的行號;若被遍歷的當(dāng)前行號等于所述單行代碼行號,或者被遍歷的當(dāng)前行號在所述代碼行號范圍內(nèi),則添加被遍歷的當(dāng)前行號的代碼行點擊數(shù)據(jù)至所述目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù)。
8、可選地,所述根據(jù)預(yù)設(shè)需求測試覆蓋率公式和所述目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù)計算,得到對應(yīng)的需求測試覆蓋率的步驟,包括:獲取需求關(guān)聯(lián)代碼文件清單中代碼文件的總行數(shù);獲取所述目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù)中點擊數(shù)大于0的測試覆蓋行數(shù);根據(jù)預(yù)設(shè)需求測試覆蓋率公式計算所述需求測試覆蓋率,其中,所述需求測試覆蓋率公式表示為:
9、
10、其中,p表表示所述需求測試覆蓋率,nclick表表示所述測試覆蓋行數(shù),ntotal表表示所述總行數(shù)。
11、為解決上述技術(shù)問題,本申請實施方式采用的第二個技術(shù)方案是:提供一種需求測試覆蓋率統(tǒng)計裝置,包括:清單數(shù)據(jù)獲取模塊,用于根據(jù)需求編號獲取原始代碼行點擊數(shù)據(jù)清單和需求關(guān)聯(lián)代碼文件清單;變更清單數(shù)據(jù)模塊,用于根據(jù)所述需求關(guān)聯(lián)代碼文件清單和接收的當(dāng)前待測試需求數(shù)據(jù)得到需求關(guān)聯(lián)變更代碼行清單;關(guān)聯(lián)規(guī)則轉(zhuǎn)換模塊,用于通過預(yù)設(shè)第一數(shù)據(jù)轉(zhuǎn)換規(guī)則,將所述需求關(guān)聯(lián)變更代碼行清單轉(zhuǎn)換為需求關(guān)聯(lián)規(guī)則文件;關(guān)聯(lián)規(guī)則執(zhí)行模塊,用于解析所述需求關(guān)聯(lián)規(guī)則文件,得到需求關(guān)聯(lián)規(guī)則,并根據(jù)所述原始代碼行點擊數(shù)據(jù)清單執(zhí)行所述需求關(guān)聯(lián)規(guī)則,得到目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù);覆蓋率計算模塊,用于根據(jù)預(yù)設(shè)需求測試覆蓋率公式和所述目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù)計算,得到對應(yīng)的需求測試覆蓋率。
12、為解決上述技術(shù)問題,本申請實施方式采用的第三個技術(shù)方案是:提供一種電子設(shè)備,包括:至少一個處理器;以及,與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執(zhí)行的指令,所述指令被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠執(zhí)行如上所述的需求測試覆蓋率統(tǒng)計方法。
13、為解決上述技術(shù)問題,本申請實施方式采用的第四個技術(shù)方案是:提供一種非易失性計算機可讀存儲介質(zhì),所述非易失性計算機可讀存儲介質(zhì)存儲有計算機可執(zhí)行指令,當(dāng)所述計算機可執(zhí)行指令被電子設(shè)備執(zhí)行時,使所述電子設(shè)備執(zhí)行如上所述的需求測試覆蓋率統(tǒng)計方法。
14、區(qū)別于相關(guān)技術(shù)的情況,本申請不僅把原有的測試覆蓋率的計算精度進一步細(xì)化到需求級別,使得對于測試過程和測試結(jié)果的分析能夠得到精度更高的數(shù)據(jù)用于分析,而且在計算需求測試覆蓋率的過程中過濾了與需求無關(guān)代碼,避免了與需求無關(guān)的代碼對需求測試覆蓋率計算的干擾,也進一步提高了需求測試覆蓋率統(tǒng)計的精確度。
1.一種需求測試覆蓋率統(tǒng)計方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的需求測試覆蓋率統(tǒng)計方法,其特征在于,所述根據(jù)需求編號獲取原始代碼行點擊數(shù)據(jù)清單和需求關(guān)聯(lián)代碼文件清單的步驟,包括:
3.根據(jù)權(quán)利要求2所述的需求測試覆蓋率統(tǒng)計方法,其特征在于,所述根據(jù)所述需求關(guān)聯(lián)代碼文件清單和接收的當(dāng)前待測試需求數(shù)據(jù)得到需求關(guān)聯(lián)變更代碼行清單的步驟,包括:
4.根據(jù)權(quán)利要求1所述的需求測試覆蓋率統(tǒng)計方法,其特征在于,所述通過預(yù)設(shè)第一數(shù)據(jù)轉(zhuǎn)換規(guī)則,將所述需求關(guān)聯(lián)變更代碼行清單轉(zhuǎn)換為需求關(guān)聯(lián)規(guī)則文件的步驟,包括:
5.根據(jù)權(quán)利要求1所述的需求測試覆蓋率統(tǒng)計方法,其特征在于,所述解析所述需求關(guān)聯(lián)規(guī)則文件,得到需求關(guān)聯(lián)規(guī)則,并根據(jù)所述原始代碼行點擊數(shù)據(jù)清單執(zhí)行所述需求關(guān)聯(lián)規(guī)則,得到目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù)的步驟,包括:
6.根據(jù)權(quán)利要求5所述的需求測試覆蓋率統(tǒng)計方法,其特征在于,所述解析所述代碼行級關(guān)聯(lián)數(shù)據(jù)得到對應(yīng)的關(guān)聯(lián)代碼行號,添加當(dāng)前被遍歷的代碼文件中所述關(guān)聯(lián)代碼行號對應(yīng)的代碼行點擊數(shù)據(jù)至所述目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù)的步驟,包括:
7.根據(jù)權(quán)利要求1所述的需求測試覆蓋率統(tǒng)計方法,其特征在于,所述根據(jù)預(yù)設(shè)需求測試覆蓋率公式和所述目標(biāo)需求關(guān)聯(lián)代碼行點擊數(shù)據(jù)計算,得到對應(yīng)的需求測試覆蓋率的步驟,包括:
8.一種需求測試覆蓋率統(tǒng)計裝置,其特征在于,包括:
9.一種電子設(shè)備,其特征在于,包括:
10.一種非易失性計算機可讀存儲介質(zhì),其特征在于,所述非易失性計算機可讀存儲介質(zhì)存儲有計算機可執(zhí)行指令,當(dāng)所述計算機可執(zhí)行指令被電子設(shè)備執(zhí)行時,使所述電子設(shè)備執(zhí)行權(quán)利要求1-7任一項所述的需求測試覆蓋率統(tǒng)計方法。