本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,特別涉及一種對軟件功能進(jìn)行測試的方法及裝置。
背景技術(shù):
在軟件開發(fā)完成后,為了保證軟件能夠穩(wěn)定地運(yùn)行,需要對軟件功能進(jìn)行測試,在對軟件功能進(jìn)行測試的過程中,測試人員選擇測試用例,通過測試用例對軟降功能進(jìn)行測試。其中,測試用例是為某個特殊目標(biāo)而編制的一組測試輸入、執(zhí)行條件以及預(yù)期結(jié)果,一遍測試某個程序路徑或核實(shí)是否滿足某個特定需求。
測試用例包括自動化測試用例和手動化測試用例,其中自動化測試用例可以自動化完成對軟件的測試,而手動化測試用例需要人工參與才能完成對軟件的測試。
目前,需要對軟件功能進(jìn)行測試時,測試人員根據(jù)經(jīng)驗選擇相應(yīng)的測試用例,通過所選的測試用例對軟件功能進(jìn)行測試。
針對于目前對軟件功能進(jìn)行測試的方法,由于測試人員的經(jīng)驗以及對產(chǎn)品的了解不同,測試人員所選擇的測試用例中包括較多的手動化測試用例,造成對軟件功能進(jìn)行測試的自動化程度較低,導(dǎo)致對軟件功能進(jìn)行測試的效率較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種對軟件功能進(jìn)行測試的方法及裝置,能夠提高對軟件功能進(jìn)行測試的效率。
本發(fā)明實(shí)施例提供了一種對軟件功能進(jìn)行測試的方法,獲取至少一個對應(yīng)于待測試軟件的測試用例,還包括:
確定所述待測試軟件的核心業(yè)務(wù)模塊及基礎(chǔ)業(yè)務(wù)模塊;
針對于每一個所述測試用例,根據(jù)至少一個自動化測試專家的判斷結(jié)果,確定所述測試用例對應(yīng)的自動化分值;
針對于每一個所述測試用例,根據(jù)所述測試用例對應(yīng)的自動化分值及測試對象,判斷所述測試用例是否為自動化測試用例,其中所述測試對象包括所述核心業(yè)務(wù)模塊或使所述基礎(chǔ)業(yè)務(wù)模塊;
獲取判斷結(jié)果為是的至少一個所述測試用例,形成自動化測試用例集;
從所述自動化測試用例集中選擇至少一個測試用例,通過所選的測試用例對所述待測試軟件的功能進(jìn)行測試。
優(yōu)選地,
所述根據(jù)至少一個自動化測試專家的判斷結(jié)果確定所述測試用例對應(yīng)的自動化分值,包括:
獲取所述至少一個自動化測試專家中判斷所述測試用例為自動化測試用例的第一人數(shù);
獲取所述至少一個自動化測試專家中判斷所述測試用例為手動化測試用例的第二人數(shù);
根據(jù)所述第一人數(shù)及所述第二人數(shù),通過如下公式一確定所述測試用例對應(yīng)的自動化分值;
所述公式一包括:
其中,所述P為所述測試用例對應(yīng)的自動化分值,所述R1為所述至少一個自動化測試專家中判斷所述測試用例為自動化測試用例的第一人數(shù),所述R2為所述至少一個自動化測試專家中判斷所述測試用例為手動化測試用例的第二人數(shù)。
優(yōu)選地,
所述根據(jù)所述測試用例對應(yīng)的自動化分值及測試對象判斷所述測試用例是否為自動化測試用例,包括:
S1:判斷所述測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第一閾值,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則執(zhí)行步驟S2;
S2:判斷所述測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第二閾值,如果是,執(zhí)行步驟S3,否則執(zhí)行步驟S4,其中所述第二閾值小于所述第一閾值;
S3:判斷所述測試用例對應(yīng)的測試對象是否為核心業(yè)務(wù)模塊,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則執(zhí)行步驟S8;
S4:判斷所述測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第三閾值,如果是,執(zhí)行步驟S5,否則執(zhí)行步驟S6,其中所述第三閾值小于所述第二閾值;
S5:判斷所述測試用例對應(yīng)的測試對象是否為核心業(yè)務(wù)模塊,如果是,執(zhí)行步驟S7,否則執(zhí)行步驟S8;
S6:判斷測試用例對應(yīng)的自動化分值是否大于零,如果是,執(zhí)行步驟S9,否則確定所述測試用例為手動化測試用例,并結(jié)束當(dāng)前流程;
S7:判斷所述測試用例實(shí)現(xiàn)自動化的平均工時是否小于或等于預(yù)設(shè)的標(biāo)準(zhǔn)工時,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則執(zhí)行步驟S10;其中,所述平均工時根據(jù)判斷所述測試用例為自動化測試用例的至少一個自動化測試專家提供的實(shí)現(xiàn)工時確定。
S8:判斷所述測試用例實(shí)現(xiàn)自動化的平均工時是否小于或等于預(yù)設(shè)的標(biāo)準(zhǔn)工時,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則確定所述測試用例為手動化測試用例,并結(jié)束當(dāng)前流程;
S9:判斷所述測試用例對應(yīng)的測試對應(yīng)是否為核心業(yè)務(wù)模塊,如果是,執(zhí)行步驟10,否則確定所述測試用例為手動化測試用例,并結(jié)束當(dāng)前流程;
S10:根據(jù)所述至少一個自動化測試專家的評審結(jié)果,確定所述測試用例是否為自動化測試用例。
優(yōu)選地,
所述根據(jù)判斷所述測試用例為自動化測試用例的至少一個自動化測試專家提供的實(shí)現(xiàn)工時確定所述平均工時,包括:
獲取所述至少一個自動化測試專家中判斷所述測試用例為自動化測試用例的第一人數(shù);
獲取判斷所述測試用例為自動化測試用例的每一個自動化測試專家提供的針對于所述測試用例的實(shí)現(xiàn)工時;
根據(jù)所述第一人數(shù)及各個所述實(shí)現(xiàn)工時,通過如下公式二確定所述測試用例實(shí)現(xiàn)自動化的平均工時;
所述公式二包括:
其中,所述T為所述測試用例實(shí)現(xiàn)自動化的平均工時,所述Ti第i個判斷所述測試用例為自動化測試用例的自動化測試專家提供過的針對于所述測試用例的實(shí)現(xiàn)工時,所述m為是至少一個自動化測試專家中判斷所述測試用例為自動化測試用例的第一人數(shù)。
優(yōu)選地,
所述從所述自動化測試用例集中選擇至少一個測試用例,包括:
根據(jù)所述測試用例對應(yīng)的自動化分值,按照自動化分值由大到小的順序?qū)λ鲎詣踊瘻y試用例集中的所述測試用例進(jìn)行排序;
根據(jù)排序結(jié)果,按照從先到后的順序從所述自動化測試用例集中選擇至少一個測試用例。
本發(fā)明實(shí)施例還提供了一種對軟件功能進(jìn)行測試的裝置,包括:獲取單元、計算單元、判斷單元及測試單元;
所述獲取單元,用于獲取至少一個對應(yīng)于待測試軟件的測試用例,并確定所述待測試軟件的核心業(yè)務(wù)模塊及基礎(chǔ)業(yè)務(wù)模塊;
所述計算單元,用于針對于所述獲取單元獲取到的每一個所述測試用例,根據(jù)至少一個自動化測試專家的判斷結(jié)果,確定所述測試用例對應(yīng)的自動化分值;
所述判斷單元,用于針對于所述獲取單元獲取到的每一個所述測試用例,根據(jù)所述計算單元確定出的所述測試用例對應(yīng)的自動化分值及測試對象,判斷所述測試用例是否為自動化測試用例,其中所述測試對象包括所述獲取單元獲取到的所述核心業(yè)務(wù)模塊或使所述基礎(chǔ)業(yè)務(wù)模塊;
所述測試單元,用于根據(jù)所述判斷單元的判斷結(jié)果,獲取判斷結(jié)果為是的至少一個所述測試用例,形成自動化測試用例集;并從所述自動化測試用例集中選擇至少一個測試用例,通過所選的測試用例對所述待測試軟件的功能進(jìn)行測試。
優(yōu)選地,
所述計算單元,用于獲取所述至少一個自動化測試專家中判斷所述測試用例為自動化測試用例的第一人數(shù),以及獲取所述至少一個自動化測試專家中判斷所述測試用例為手動化測試用例的第二人數(shù);并根據(jù)所述第一人數(shù)及所述第二人數(shù),通過如下公式一確定所述測試用例對應(yīng)的自動化分值;
所述公式一包括:
其中,所述P為所述測試用例對應(yīng)的自動化分值,所述R1為所述至少一個自動化測試專家中判斷所述測試用例為自動化測試用例的第一人數(shù),所述R2為所述至少一個自動化測試專家中判斷所述測試用例為手動化測試用例的第二人數(shù)。
優(yōu)選地,
所述判斷單元,用于執(zhí)行如下步驟:
S1:判斷所述測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第一閾值,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則執(zhí)行步驟S2;
S2:判斷所述測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第二閾值,如果是,執(zhí)行步驟S3,否則執(zhí)行步驟S4,其中所述第二閾值小于所述第一閾值;
S3:判斷所述測試用例對應(yīng)的測試對象是否為核心業(yè)務(wù)模塊,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則執(zhí)行步驟S8;
S4:判斷所述測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第三閾值,如果是,執(zhí)行步驟S5,否則執(zhí)行步驟S6,其中所述第三閾值小于所述第二閾值;
S5:判斷所述測試用例對應(yīng)的測試對象是否為核心業(yè)務(wù)模塊,如果是,執(zhí)行步驟S7,否則執(zhí)行步驟S8;
S6:判斷測試用例對應(yīng)的自動化分值是否大于零,如果是,執(zhí)行步驟S9,否則確定所述測試用例為手動化測試用例,并結(jié)束當(dāng)前流程;
S7:判斷所述測試用例實(shí)現(xiàn)自動化的平均工時是否小于或等于預(yù)設(shè)的標(biāo)準(zhǔn)工時,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則執(zhí)行步驟S10;其中,所述平均工時根據(jù)判斷所述測試用例為自動化測試用例的至少一個自動化測試專家提供的實(shí)現(xiàn)工時確定。
S8:判斷所述測試用例實(shí)現(xiàn)自動化的平均工時是否小于或等于預(yù)設(shè)的標(biāo)準(zhǔn)工時,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則確定所述測試用例為手動化測試用例,并結(jié)束當(dāng)前流程;
S9:判斷所述測試用例對應(yīng)的測試對應(yīng)是否為核心業(yè)務(wù)模塊,如果是,執(zhí)行步驟10,否則確定所述測試用例為手動化測試用例,并結(jié)束當(dāng)前流程;
S10:根據(jù)所述至少一個自動化測試專家的評審結(jié)果,確定所述測試用例是否為自動化測試用例。
優(yōu)選地,
所述判斷單元包括:平均工時計算子單元;
所述平均工時計算子單元,用于獲取所述至少一個自動化測試專家中判斷所述測試用例為自動化測試用例的第一人數(shù),以及獲取判斷所述測試用例為自動化測試用例的每一個自動化測試專家提供的針對于所述測試用例的實(shí)現(xiàn)工時;并根據(jù)所述第一人數(shù)及各個所述實(shí)現(xiàn)工時,通過如下公式二確定所述測試用例實(shí)現(xiàn)自動化的平均工時;
所述公式二包括:
其中,所述T為所述測試用例實(shí)現(xiàn)自動化的平均工時,所述Ti第i個判斷所述測試用例為自動化測試用例的自動化測試專家提供過的針對于所述測試用例的實(shí)現(xiàn)工時,所述m為是至少一個自動化測試專家中判斷所述測試用例為自動化測試用例的第一人數(shù)。
優(yōu)選地,
所述測試單元包括:排序子單元及選擇子單元;
所述排序子單元,用于根據(jù)所述測試用例對應(yīng)的自動化分值,按照自動化分值由大到小的順序?qū)λ鲎詣踊瘻y試用例集中的所述測試用例進(jìn)行排序;
所述選擇子單元,用于根據(jù)所述排序子單元的排序結(jié)果,按照從先到后的順序從所述自動化測試用例集中選擇至少一個測試用例。
本發(fā)明實(shí)施例提供了一種對軟件功能進(jìn)行測試的方法及裝置,獲取至少一個對應(yīng)于待測試軟件的測試用例后,根據(jù)至少一個自動化測試專家的判斷結(jié)果分別確定各個測試用例對應(yīng)的自動化分值;針對于每一個測試用例,根據(jù)其對應(yīng)的自動化分值及對應(yīng)的測試對象,確定該測試用例是否為自動化測試用例;由確定為自動化測試用例的至少一個測試用例形成自動化測試用例集;從自動化測試用例集中選擇至少一個測試用例對待測試軟件的功能進(jìn)行測試。根據(jù)自動化分值及測試對象來確定測試用例是否為自動化測試用例,可以保證確定出的自動化測試用例集中的測試用例具有較高的自動化率,進(jìn)而通過自動化測試用例集中的測試用例對待測試軟件的功能進(jìn)行測試時,可以提高對軟件功能進(jìn)行測試的自動化程度,從而提高對軟件功能進(jìn)行測試的效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一個實(shí)施例提供的一種對軟件功能進(jìn)行測試的方法流程圖;
圖2是本發(fā)明一個實(shí)施例提供的一種根據(jù)自動化分值判斷自動化測試用例的方法流程圖;
圖3是本發(fā)明一個實(shí)施例提供的一種自動化分值位于第一區(qū)間內(nèi)時對測試用例進(jìn)行判斷的方法流程圖;
圖4是本發(fā)明一個實(shí)施例提供的一種自動化分值位于第二區(qū)間內(nèi)時對測試用例進(jìn)行判斷的方法流程圖;
圖5是本發(fā)明一個實(shí)施例提供的一種自動化分值位于第三區(qū)間內(nèi)時對測試用例進(jìn)行判斷的方法流程圖;
圖6是本發(fā)明一個實(shí)施例提供的一種對軟件功能進(jìn)行測試的裝置示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,本發(fā)明實(shí)施例提供了一種對軟件功能進(jìn)行測試的方法,該方法可以包括以下步驟:
步驟101:獲取至少一個對應(yīng)于待測試軟件的測試用例;
步驟102:確定所述待測試軟件的核心業(yè)務(wù)模塊及基礎(chǔ)業(yè)務(wù)模塊;
步驟103:針對于每一個所述測試用例,根據(jù)至少一個自動化測試專家的判斷結(jié)果,確定所述測試用例對應(yīng)的自動化分值;
步驟104:針對于每一個所述測試用例,根據(jù)所述測試用例對應(yīng)的自動化分值及測試對象,判斷所述測試用例是否為自動化測試用例,其中所述測試對象包括所述核心業(yè)務(wù)模塊或使所述基礎(chǔ)業(yè)務(wù)模塊;
步驟105:獲取判斷結(jié)果為是的至少一個所述測試用例,形成自動化測試用例集;
步驟106:從所述自動化測試用例集中選擇至少一個測試用例,通過所選的測試用例對所述待測試軟件的功能進(jìn)行測試。
本發(fā)明實(shí)施例提供了一種對軟件功能進(jìn)行測試的方法,獲取至少一個對應(yīng)于待測試軟件的測試用例后,根據(jù)至少一個自動化測試專家的判斷結(jié)果分別確定各個測試用例對應(yīng)的自動化分值;針對于每一個測試用例,根據(jù)其對應(yīng)的自動化分值及對應(yīng)的測試對象,確定該測試用例是否為自動化測試用例;由確定為自動化測試用例的至少一個測試用例形成自動化測試用例集;從自動化測試用例集中選擇至少一個測試用例對待測試軟件的功能進(jìn)行測試。根據(jù)自動化分值及測試對象來確定測試用例是否為自動化測試用例,可以保證確定出的自動化測試用例集中的測試用例具有較高的自動化率,進(jìn)而通過自動化測試用例集中的測試用例對待測試軟件的功能進(jìn)行測試時,可以提高對軟件功能進(jìn)行測試的自動化程度,從而提高對軟件功能進(jìn)行測試的效率。
在本發(fā)明一個實(shí)施例中,測試用例對應(yīng)的自動化分值是根據(jù)至少一個自動化專家的判斷結(jié)果來確定的。具體地,針對每一個測試用例,由至少一個自動化測試專家分別判斷該測試用例是自動化測試用例還是手動化測試用例,獲取至少一個自動化測試專家中判斷該測試用例為自動化測試用例的第一人數(shù)和判斷該測試用例為手動化測試用例的第二人數(shù);根據(jù)獲取到的第一人數(shù)和第二人數(shù),通過如下公式一計算該測試用例對應(yīng)的自動化分值;
所述公式一為:
其中,P為測試用例對應(yīng)的自動化分值,R1為第一人數(shù),R2為第二人數(shù)。
具體地,
針對于每一個測試用例,由多個自動化測試專家分別判斷其為自動化測試用例還是手動化測試用例,根據(jù)各個自動化測試專家的判斷結(jié)果,將判斷該測試用例為自動化測試用例的人數(shù)占自動化測試專家總?cè)藬?shù)的比例作為該測試用例的自動化分值;自動化分值越大,說明認(rèn)為該測試用例是自動化測試用例的人數(shù)越多,由于自動化測試專家具有比較豐富的軟件功能測試經(jīng)驗,因此,自動化分值越大說明該測試用例為自動化測試用例的概率越高。通過自動化分值來評判測試用例是否為自動化測試用例,可以保證對測試用例進(jìn)行判斷的準(zhǔn)確性。
例如,有20位自動化測試專家參與一個測試用例A的判斷,其中有12位自動化測試專家認(rèn)為該測試用例A是自動化測試用例,其與8位自動化測試專家認(rèn)為該測試用例A是手動化測試用例,則該測試用例A對應(yīng)的自動化分值等于0.6。
在本發(fā)明一個實(shí)施例中,根據(jù)對應(yīng)的自動化分值及測試對象來判斷一個測試用例是否為自動化測試用例時,該判斷方法可以包括如下步驟:
S1:判斷所述測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第一閾值,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則執(zhí)行步驟S2;
S2:判斷所述測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第二閾值,如果是,執(zhí)行步驟S3,否則執(zhí)行步驟S4,其中所述第二閾值小于所述第一閾值;
S3:判斷所述測試用例對應(yīng)的測試對象是否為核心業(yè)務(wù)模塊,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則執(zhí)行步驟S8;
S4:判斷所述測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第三閾值,如果是,執(zhí)行步驟S5,否則執(zhí)行步驟S6,其中所述第三閾值小于所述第二閾值;
S5:判斷所述測試用例對應(yīng)的測試對象是否為核心業(yè)務(wù)模塊,如果是,執(zhí)行步驟S7,否則執(zhí)行步驟S8;
S6:判斷測試用例對應(yīng)的自動化分值是否大于零,如果是,執(zhí)行步驟S9,否則確定所述測試用例為手動化測試用例,并結(jié)束當(dāng)前流程;
S7:判斷所述測試用例實(shí)現(xiàn)自動化的平均工時是否小于或等于預(yù)設(shè)的標(biāo)準(zhǔn)工時,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則執(zhí)行步驟S10;其中,所述平均工時根據(jù)判斷所述測試用例為自動化測試用例的至少一個自動化測試專家提供的實(shí)現(xiàn)工時確定。
S8:判斷所述測試用例實(shí)現(xiàn)自動化的平均工時是否小于或等于預(yù)設(shè)的標(biāo)準(zhǔn)工時,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則確定所述測試用例為手動化測試用例,并結(jié)束當(dāng)前流程;
S9:判斷所述測試用例對應(yīng)的測試對應(yīng)是否為核心業(yè)務(wù)模塊,如果是,執(zhí)行步驟10,否則確定所述測試用例為手動化測試用例,并結(jié)束當(dāng)前流程;
S10:根據(jù)所述至少一個自動化測試專家的評審結(jié)果,確定所述測試用例是否為自動化測試用例。
為了更加清楚的對判斷測試用例是否為自動化測試用例的過程進(jìn)行說明,下面結(jié)合圖2至圖5,分別對判斷測試用例是否為自動化測試用例的方法進(jìn)行分別說明。
首先判斷測試用例對應(yīng)自動化測試分值所屬的范圍,如圖2所示,判斷過程包括以下步驟:
步驟201:判斷測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第一閾值,如果是,確定測試用例為自動化測試用例,否則執(zhí)行步驟202;
步驟202:判斷測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第二閾值,其中第二閾值小于第一閾值,如果是,確定自動化分值位于大于等于第二閾值且小于第一閾值的范圍(對應(yīng)圖3中步驟301),否則執(zhí)行步驟203;
步驟203:判斷測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第三閾值,其中第三閾值小于第二閾值,如果是,確定自動化分值位于大于等于第三閾值且小于第二閾值的范圍(對應(yīng)圖4中步驟401),否則執(zhí)行步驟204;
步驟204:判斷測試用例對應(yīng)的自動化分值是否大于零,其中第三閾值大于零,如果是,確定自動化分值位于大于零且小于第三閾值的范圍(對應(yīng)圖5中步驟501),否則確定測試用例為手動化測試用例。
當(dāng)確定自動化分值位于大于等于第二閾值且小于第一閾值的范圍時,進(jìn)一步的處理過程如圖3所示,包括如下步驟:
步驟301:確定自動化分值位于大于等于第二閾值且小于第一閾值的范圍。
在本發(fā)明一個實(shí)施例中,預(yù)設(shè)的第一閾值為0.8,第二閾值為0.5,首先判斷測試用例對應(yīng)的自動化分值是否大于或等于0.8,如果是直接確定該測試用例為自動化測試用例;如果否,繼續(xù)判斷該測試用例對應(yīng)的自動化分值是否大于或等于0.5,如果是則確定該測試用例對應(yīng)的自動化分值位于大于等于0.5且小于0.8的范圍。
步驟302:判斷測試用例對應(yīng)的測試對象是否為核心業(yè)務(wù)模塊,如果是,執(zhí)行步驟304,否則執(zhí)行步驟303。
在本發(fā)明一個實(shí)施例中,在確定該測試用例對應(yīng)的自動化分值位于大于等于0.5且小于0.8的范圍之后,進(jìn)一步判斷該測試用例的測試對象是否為待測試軟件的核心業(yè)務(wù)模塊,如果是確定該測試用例為自動化測試用例,相應(yīng)地執(zhí)行步驟304,否則執(zhí)行步驟303。
步驟303:判斷測試用例實(shí)現(xiàn)自動化的平均工時是否小于或等于預(yù)設(shè)的標(biāo)準(zhǔn)工時,如果是,執(zhí)行步驟304,否則執(zhí)行步驟305。
在本發(fā)明一個實(shí)施例中,在判斷測試用例的測試對象為基礎(chǔ)業(yè)務(wù)模塊后,進(jìn)一步判斷該測試用例實(shí)現(xiàn)自動化的平均工時是否小于預(yù)設(shè)的標(biāo)準(zhǔn)工時,比如標(biāo)準(zhǔn)工時為4,如果判斷結(jié)果為是,確定該測試用例為自動化測試用例,相應(yīng)地執(zhí)行步驟304,如果判斷結(jié)果為否,確定該測試用例為手動化測試用例,相應(yīng)地執(zhí)行步驟305。其中,平均工時是根據(jù)判斷該測試用例為自動化測試用例的各個自動化測試專家給出的實(shí)現(xiàn)工時計算而獲得。
步驟304:確定測試用例為自動化測試用例,并結(jié)束當(dāng)前流程。
步驟305:確定測試用例為手動化測試用例。
當(dāng)確定自動化分值位于大于等于第三閾值且小于第二閾值的范圍時,進(jìn)一步的處理過程如圖4所示,包括如下步驟:
步驟401:確定自動化分值位于大于等于第三閾值且小于第二閾值的范圍。
在本發(fā)明一個實(shí)施例中,預(yù)設(shè)的第三閾值為0.2,在判斷測試用例對應(yīng)的自動化分值小于0.5后,繼續(xù)判斷該測試用例對應(yīng)的自動化分值是否大于或等于0.2,如果是則確定該測試用例對應(yīng)的自動化分值位于大于等于0.2且小于0.5的范圍。
步驟402:判斷判斷測試用例對應(yīng)的測試對象是否為核心業(yè)務(wù)模塊,如果是,執(zhí)行步驟403,否則執(zhí)行步驟406。
在本發(fā)明一個實(shí)施例中,在確定該測試用例對應(yīng)的自動化分值位于大于等于0.2且小于0.5的范圍之后,進(jìn)一步判斷該測試用例的測試對象是否為待測試軟件的核心業(yè)務(wù)模塊,如果是執(zhí)行步驟403,否則執(zhí)行步驟406。
步驟403:判斷測試用例實(shí)現(xiàn)自動化的平均工時是否小于或等于預(yù)設(shè)的標(biāo)準(zhǔn)工時,如果是,執(zhí)行步驟404,否則執(zhí)行步驟405。
在本發(fā)明一個實(shí)施例中,在確定測試用例的測試對象為待測試軟件的核心業(yè)務(wù)模塊后,進(jìn)一步判斷該測試用例實(shí)現(xiàn)自動化的平均工時是否小于預(yù)設(shè)的標(biāo)準(zhǔn)工時,比如標(biāo)準(zhǔn)工時為4,如果判斷結(jié)果為是,確定該測試用例為自動化測試用例,相應(yīng)地執(zhí)行步驟404,如果判斷結(jié)果為否,相應(yīng)地執(zhí)行步驟405。
步驟404:確定測試用例為自動化測試用例,并結(jié)束當(dāng)前流程。
步驟405:根據(jù)至少一個自動化測試專家的評審結(jié)果,確定測試用例是否為自動化測試用例,并結(jié)束當(dāng)前流程。
在本發(fā)明一個實(shí)施例中,在判斷測試用例滿足如下三個條件后,由至少一個自動化測試專家對該測試用例進(jìn)行進(jìn)一步的評審,根據(jù)評審結(jié)果確定該測試用例是否為自動化測試用例;其中三個條件分別為:
條件1:對應(yīng)的自動化分值位于大于等于第三閾值且小于第二閾值的范圍;
條件2:對應(yīng)的測試對象為待測試軟件的核心業(yè)務(wù)模塊;
條件3:對應(yīng)的實(shí)現(xiàn)自動化的平均工時等于或等于預(yù)設(shè)的標(biāo)準(zhǔn)工時。
步驟406:判斷測試用例實(shí)現(xiàn)自動化的平均工時是否小于或等于預(yù)設(shè)的標(biāo)準(zhǔn)工時,如果是,執(zhí)行步驟404,否則執(zhí)行步驟407。
在本發(fā)明一個實(shí)施例中,在判斷測試用例滿足如下三個條件后,確定該測試用例為自動化測試?yán)?,相?yīng)地執(zhí)行步驟404,否則確定該測試用例為手動化測試用例,相應(yīng)地執(zhí)行步驟407;其中所述的三個條件分別為:
條件1:對應(yīng)的自動化分值位于大于等于第三閾值且小于第二閾值的范圍;
條件2:對應(yīng)的測試對象為待測試軟件的基礎(chǔ)業(yè)務(wù)模塊;
條件3:對應(yīng)的實(shí)現(xiàn)自動化的平均工時等于或等于預(yù)設(shè)的標(biāo)準(zhǔn)工時。
步驟407:確定測試用例為手動化測試用例。
當(dāng)確定自動化分值位于大于零且小于第三閾值的范圍時,進(jìn)一步的處理過程如圖5所示,包括如下步驟:
步驟501:確定自動化分值位于大于零且小于第三閾值的范圍。
在本發(fā)明一個實(shí)施例中,在判斷測試用例對應(yīng)的自動化分值小于第三閾值(0.2)后,繼續(xù)判斷該測試用例對應(yīng)的自動化分值是否大于零,如果是則確定該測試用例對應(yīng)的自動化分值位于大于零且小于0.2的范圍,否則直接確定該測試用例為手動化測試用例。
步驟502:判斷測試用例對應(yīng)的測試對象是否為核心業(yè)務(wù)模塊,如果是,執(zhí)行步驟503,否則執(zhí)行步驟504。
在本發(fā)明一個實(shí)施例中,在確定測試用例對應(yīng)的自動化分值位于大于零且小于0.2的范圍后,進(jìn)一步判斷該測試用例的測試對象是否為待測試軟件的核心業(yè)務(wù)模塊,如果是確定該測試用例為自動化測試用例,相應(yīng)地執(zhí)行步驟503,否則確定該測試用例為手動化測試用例,相應(yīng)地執(zhí)行步驟504。
步驟503:確定測試用例為自動化測試用例,并結(jié)束當(dāng)前流程。
步驟504:確定測試用例為手動化測試用例。
在本發(fā)明一個實(shí)施例中,確定測試用例實(shí)現(xiàn)自動化的平均工時的過程包括如下操作:
獲取至少一個自動化測試專家中判斷測試用例為自動化測試測試用例的第一人數(shù);
獲取判斷測試用例為自動化測試用例的各個自動化測試專家提供的針對該測試用例的實(shí)現(xiàn)工時;
根據(jù)獲取到的第一人數(shù)及各個實(shí)現(xiàn)工時,通過如下公式二確定測試用例實(shí)現(xiàn)自動化的平均工時;
所述公式二包括:
其中,T為測試用例實(shí)現(xiàn)自動化的平均工時,Ti第i個判斷測試用例為自動化測試用例的自動化測試專家提供過的針對于測試用例的實(shí)現(xiàn)工時,m為是至少一個自動化測試專家中判斷測試用例為自動化測試用例的第一人數(shù)。
具體地,
在由判斷一個測試用例為自動化測試用例的各個自動化測試專家給出該測試用例實(shí)現(xiàn)自動化的實(shí)現(xiàn)工時,計算各個自動化測試專家給出的實(shí)現(xiàn)工時的平均值,形成平均工時。由于自動化測試用例對軟件功能進(jìn)行測試的過程自動實(shí)現(xiàn),所需的工時相對較少,通過平均工時進(jìn)一步對有爭議的測試用例進(jìn)行判斷,保證自動化測試用例集中盡可能包括更多的自動化測試用例,提供對軟件進(jìn)行測試的全面性;另外,還能夠保證自動化測試用例集中所包括的測試用例具有較高的自動化率。
在本發(fā)明一個實(shí)施例中,在從自動化測試用例集中選擇用于測試待測試軟件的測試用例時,首先根據(jù)測試用例對應(yīng)的自動化分值,按照自動化分值由大到小的順序?qū)ψ詣踊瘻y試用例集中的測試用例進(jìn)行排序;根據(jù)排序結(jié)果,按照從先到后的順序從自動化測試用例集中選擇至少一個測試用例,通過選擇的測試用例對待測試軟件的功能進(jìn)行測試。由于測試用例對應(yīng)的自動化分值越高,測試用例能夠進(jìn)行自動化測試的概率越大,根據(jù)自動化分值排序后選擇自動化分值較大的測試用例對待測試軟件進(jìn)行測試,可以進(jìn)一步保證對待測試軟件進(jìn)行測試的效率。
如圖6所示,本發(fā)明一個實(shí)施例提供了一種對軟件功能進(jìn)行測試的裝置,包括:獲取單元601、計算單元602、判斷單元603及測試單元604;
所述獲取單元601,用于獲取至少一個對應(yīng)于待測試軟件的測試用例,并確定所述待測試軟件的核心業(yè)務(wù)模塊及基礎(chǔ)業(yè)務(wù)模塊;
所述計算單元602,用于針對于所述獲取單元601獲取到的每一個所述測試用例,根據(jù)至少一個自動化測試專家的判斷結(jié)果,確定所述測試用例對應(yīng)的自動化分值;
所述判斷單元603,用于針對于所述獲取單元601獲取到的每一個所述測試用例,根據(jù)所述計算單元602確定出的所述測試用例對應(yīng)的自動化分值及測試對象,判斷所述測試用例是否為自動化測試用例,其中所述測試對象包括所述獲取單元601獲取到的所述核心業(yè)務(wù)模塊或使所述基礎(chǔ)業(yè)務(wù)模塊;
所述測試單元604,用于根據(jù)所述判斷單元603的判斷結(jié)果,獲取判斷結(jié)果為是的至少一個所述測試用例,形成自動化測試用例集;并從所述自動化測試用例集中選擇至少一個測試用例,通過所選的測試用例對所述待測試軟件的功能進(jìn)行測試。
在本發(fā)明一個實(shí)施例中,所述計算單元602用于獲取所述至少一個自動化測試專家中判斷所述測試用例為自動化測試用例的第一人數(shù),以及獲取所述至少一個自動化測試專家中判斷所述測試用例為手動化測試用例的第二人數(shù);并根據(jù)所述第一人數(shù)及所述第二人數(shù),通過如下公式一確定所述測試用例對應(yīng)的自動化分值;
所述公式一包括:
其中,所述P為所述測試用例對應(yīng)的自動化分值,所述R1為所述至少一個自動化測試專家中判斷所述測試用例為自動化測試用例的第一人數(shù),所述R2為所述至少一個自動化測試專家中判斷所述測試用例為手動化測試用例的第二人數(shù)。
在本發(fā)明一個實(shí)施例中,所述判斷單元603用于執(zhí)行如下步驟:
S1:判斷所述測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第一閾值,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則執(zhí)行步驟S2;
S2:判斷所述測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第二閾值,如果是,執(zhí)行步驟S3,否則執(zhí)行步驟S4,其中所述第二閾值小于所述第一閾值;
S3:判斷所述測試用例對應(yīng)的測試對象是否為核心業(yè)務(wù)模塊,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則執(zhí)行步驟S8;
S4:判斷所述測試用例對應(yīng)的自動化分值是否大于或等于預(yù)設(shè)的第三閾值,如果是,執(zhí)行步驟S5,否則執(zhí)行步驟S6,其中所述第三閾值小于所述第二閾值;
S5:判斷所述測試用例對應(yīng)的測試對象是否為核心業(yè)務(wù)模塊,如果是,執(zhí)行步驟S7,否則執(zhí)行步驟S8;
S6:判斷測試用例對應(yīng)的自動化分值是否大于零,如果是,執(zhí)行步驟S9,否則確定所述測試用例為手動化測試用例,并結(jié)束當(dāng)前流程;
S7:判斷所述測試用例實(shí)現(xiàn)自動化的平均工時是否小于或等于預(yù)設(shè)的標(biāo)準(zhǔn)工時,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則執(zhí)行步驟S10;其中,所述平均工時根據(jù)判斷所述測試用例為自動化測試用例的至少一個自動化測試專家提供的實(shí)現(xiàn)工時確定。
S8:判斷所述測試用例實(shí)現(xiàn)自動化的平均工時是否小于或等于預(yù)設(shè)的標(biāo)準(zhǔn)工時,如果是,確定所述測試用例為自動化測試用例,并結(jié)束當(dāng)前流程,否則確定所述測試用例為手動化測試用例,并結(jié)束當(dāng)前流程;
S9:判斷所述測試用例對應(yīng)的測試對應(yīng)是否為核心業(yè)務(wù)模塊,如果是,執(zhí)行步驟10,否則確定所述測試用例為手動化測試用例,并結(jié)束當(dāng)前流程;
S10:根據(jù)所述至少一個自動化測試專家的評審結(jié)果,確定所述測試用例是否為自動化測試用例。
在本發(fā)明一個實(shí)施例中,所述判斷單元603包括:平均工時計算子單元;
所述平均工時計算子單元,用于獲取所述至少一個自動化測試專家中判斷所述測試用例為自動化測試用例的第一人數(shù),以及獲取判斷所述測試用例為自動化測試用例的每一個自動化測試專家提供的針對于所述測試用例的實(shí)現(xiàn)工時;并根據(jù)所述第一人數(shù)及各個所述實(shí)現(xiàn)工時,通過如下公式二確定所述測試用例實(shí)現(xiàn)自動化的平均工時;
所述公式二包括:
其中,所述T為所述測試用例實(shí)現(xiàn)自動化的平均工時,所述Ti第i個判斷所述測試用例為自動化測試用例的自動化測試專家提供過的針對于所述測試用例的實(shí)現(xiàn)工時,所述m為是至少一個自動化測試專家中判斷所述測試用例為自動化測試用例的第一人數(shù)。
在本發(fā)明一個實(shí)施例中,所述測試單元604包括:排序子單元及選擇子單元;
所述排序子單元,用于根據(jù)所述測試用例對應(yīng)的自動化分值,按照自動化分值由大到小的順序?qū)λ鲎詣踊瘻y試用例集中的所述測試用例進(jìn)行排序;
所述選擇子單元,用于根據(jù)所述排序子單元的排序結(jié)果,按照從先到后的順序從所述自動化測試用例集中選擇至少一個測試用例。
上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
本發(fā)明實(shí)施例提供的對軟件功能進(jìn)行測試的方法及裝置,至少具有如下有益效果:
1、獲取至少一個對應(yīng)于待測試軟件的測試用例后,根據(jù)至少一個自動化測試專家的判斷結(jié)果分別確定各個測試用例對應(yīng)的自動化分值;針對于每一個測試用例,根據(jù)其對應(yīng)的自動化分值及對應(yīng)的測試對象,確定該測試用例是否為自動化測試用例;由確定為自動化測試用例的至少一個測試用例形成自動化測試用例集;從自動化測試用例集中選擇至少一個測試用例對待測試軟件的功能進(jìn)行測試。根據(jù)自動化分值及測試對象來確定測試用例是否為自動化測試用例,可以保證確定出的自動化測試用例集中的測試用例具有較高的自動化率,進(jìn)而通過自動化測試用例集中的測試用例對待測試軟件的功能進(jìn)行測試時,可以提高對軟件功能進(jìn)行測試的自動化程度,從而提高對軟件功能進(jìn)行測試的效率。
2、通過自動化測試專家的判斷獲取測試用例對應(yīng)的自動化分值,將自動化分值作為判斷測試用例是否為自動化測試用例的一個參數(shù),通過這種類專家法評判測試用例可否進(jìn)行自動化,將判斷出的可進(jìn)行自動化的測試用例作為一個自動化測試用例集,測試人員從自動化測試用例集中選擇測試用例對軟件的功能進(jìn)行測試,將測試人員水平對于自動化測試用例選擇的影響降到最低,保證所選的測試用例用例能夠進(jìn)行自動化測試,提高對軟件功能進(jìn)行測試的效率。
3、將測試用例的測試對象作為判斷自動化測試用例的一個參數(shù),由于待測試軟件的核心業(yè)務(wù)模塊是待測試軟件的測試重點(diǎn),當(dāng)一個測試用例對應(yīng)的自動化分值較低時,可以進(jìn)一步判斷該測試用例的測試對象是否為核心業(yè)務(wù)模塊,如果是則進(jìn)一步判斷其是否為自動化測試用例。這樣可以保證對核心業(yè)務(wù)模塊測試的測試用例得到更加準(zhǔn)確的判斷,保證對核心業(yè)務(wù)模塊進(jìn)行測試的自動化測試用例能夠添加到自動化測試用例集中,保證對軟件核心業(yè)務(wù)模塊進(jìn)行能夠測試的全面性。
4、如果一個測試用例的測試對象是核心業(yè)務(wù)模塊,在根據(jù)自動化分值及平均工時判斷該測試用例均不是自動化測試用例后,需要自動化測試專家進(jìn)一步對該測試用例進(jìn)行評審,根據(jù)評審的結(jié)果決定該測試用例是否為自動化測試用例。進(jìn)一步保證對核心業(yè)務(wù)模塊進(jìn)行測試的自動化測試用例能夠添加到自動化測試用例集中,保證對軟件核心業(yè)務(wù)模塊進(jìn)行能夠測試的全面性。
需要說明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個······”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同因素。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲在計算機(jī)可讀取的存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)中。
最后需要說明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。