本發(fā)明涉及軟件測(cè)試技術(shù)領(lǐng)域,尤其涉及一種測(cè)試用例的生成方法及裝置。
背景技術(shù):
在現(xiàn)有的軟件生命周期管理中,一般均具有成熟的軟件故障管理系統(tǒng),并積累有多種軟件產(chǎn)品的歷史故障信息。這些故障信息對(duì)同類軟件產(chǎn)品有極大的參考價(jià)值。而軟件測(cè)試過程的主要目的是暴露軟件產(chǎn)品的缺陷,所以能夠?qū)崿F(xiàn)這一目的的測(cè)試設(shè)計(jì)在用例設(shè)計(jì)中具有最大的價(jià)值。
但是,目前軟件測(cè)試過程中,從事測(cè)試設(shè)計(jì)的專業(yè)人員,對(duì)軟件產(chǎn)品的各類故障情況受到知識(shí)面、從業(yè)經(jīng)驗(yàn)和熟悉的產(chǎn)品類型等限制,測(cè)試設(shè)計(jì)過程中很難做到對(duì)軟件易發(fā)故障的較全面覆蓋。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是提供一種測(cè)試用例的生成方法及裝置,通過歷史故障信息建模,并自動(dòng)篩選與待測(cè)產(chǎn)品相對(duì)應(yīng)的故障模型,生成相應(yīng)的測(cè)試用例,大大提高了測(cè)試效率和有效性。
為了解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案:
依據(jù)本發(fā)明的一個(gè)方面,提供了一種測(cè)試用例的生成方法,包括:
采集歷史故障數(shù)據(jù)并依據(jù)所述歷史故障數(shù)據(jù)和預(yù)設(shè)產(chǎn)品特征生成易發(fā)故障模型,其中,所述易發(fā)故障為發(fā)生頻數(shù)超過預(yù)定閾值的故障;
獲取待測(cè)試產(chǎn)品的產(chǎn)品特征;
根據(jù)所述產(chǎn)品特征從所述故障模型中查詢與所述待測(cè)試產(chǎn)品的產(chǎn)品特征相匹配的故障模型;
根據(jù)所述故障模型生成相應(yīng)的測(cè)試用例。
其中,所述依據(jù)所述歷史故障數(shù)據(jù)和預(yù)設(shè)產(chǎn)品特征生成易發(fā)故障模型,具 體包括:
根據(jù)所述歷史故障數(shù)據(jù)獲取故障的頻數(shù)信息,并依據(jù)故障發(fā)生頻數(shù)的預(yù)定閾值確定易發(fā)故障;
將至少一個(gè)預(yù)設(shè)產(chǎn)品特征作為觸發(fā)所述易發(fā)故障發(fā)生的至少一個(gè)特征條件;
對(duì)所述特征條件和所述故障范圍進(jìn)行匹配,并遞歸更新與所述特征條件相匹配的故障范圍;
當(dāng)任一所述特征條件匹配完成后,對(duì)更新后的所述故障范圍內(nèi)的存在數(shù)據(jù),進(jìn)行建模計(jì)算,生成易發(fā)故障模型。
其中,所述對(duì)所述特征條件和所述故障范圍進(jìn)行匹配,并遞歸更新與所述特征條件相匹配的故障范圍,具體包括:
讀取一所述特征條件;
依據(jù)所述特征條件,通過查詢算法查詢符合所述特征條件的故障范圍;
若存在與所述特征條件相匹配的故障范圍,則更新當(dāng)前所述故障范圍;
查詢是否存在未進(jìn)行匹配的所述特征條件;
若存在未進(jìn)行匹配的所述特征條件,則對(duì)所述特征條件和故障范圍進(jìn)行匹配,并更新與所述特征條件相匹配的故障范圍。
其中,所述根據(jù)所述故障模型生成相應(yīng)的測(cè)試用例,具體包括:
依據(jù)所述故障模型,獲取生成所述測(cè)試用例所需具備的用例要素;
依據(jù)所述用例要素生成相應(yīng)的測(cè)試用例。
其中,所述歷史故障數(shù)據(jù)包括:故障所適用的產(chǎn)品類型、產(chǎn)品開發(fā)所使用的語言及版本、產(chǎn)品使用的平臺(tái)、中間件及版本、故障引入原因、故障觸發(fā)條件、故障所對(duì)應(yīng)的功能點(diǎn)功能說明和/或故障現(xiàn)象說明。
其中,所述產(chǎn)品特征包括:產(chǎn)品類型、語言版本、平臺(tái)中間件版本、產(chǎn)品功能點(diǎn)和/或類型清單。
依據(jù)本發(fā)明的另一個(gè)方面,還提供了一種測(cè)試用例的生成裝置,包括:
故障模型生成模塊,用于采集歷史故障數(shù)據(jù)并依據(jù)所述歷史故障數(shù)據(jù)和預(yù)設(shè)產(chǎn)品特征生成易發(fā)故障模型,其中,所述易發(fā)故障為發(fā)生頻數(shù)超過預(yù)定閾值的故障;
獲取模塊,用于獲取待測(cè)試產(chǎn)品的產(chǎn)品特征;
匹配模塊,用于根據(jù)所述產(chǎn)品特征從所述故障模型中查詢與所述待測(cè)試產(chǎn)品的產(chǎn)品特征相匹配的故障模型;
測(cè)試用例生成模塊,用于根據(jù)所述故障模型生成相應(yīng)的測(cè)試用例。
其中,所述故障模型生成模塊包括:
統(tǒng)計(jì)和分析單元,用于根據(jù)所述歷史故障數(shù)據(jù)獲取故障的頻數(shù)信息,并依據(jù)故障發(fā)生頻數(shù)的預(yù)定閾值確定易發(fā)故障;
獲取單元,用于將至少一個(gè)預(yù)設(shè)產(chǎn)品特征作為觸發(fā)所述易發(fā)故障發(fā)生的至少一個(gè)特征條件;
更新單元,用于對(duì)所述特征條件和所述故障范圍進(jìn)行匹配,并遞歸更新與所述特征條件相匹配的故障范圍;
建模單元,用于當(dāng)任一所述特征條件匹配完成后,對(duì)更新后的所述故障范圍內(nèi)的存在數(shù)據(jù),進(jìn)行建模計(jì)算,生成易發(fā)故障模型。
其中,所述更新單元包括:
讀取子單元,用于讀取一所述特征條件;
第一查詢子單元,用于依據(jù)所述特征條件,通過查詢算法查詢符合所述特征條件的故障范圍;
第一更新子單元,用于若存在與所述特征條件相匹配的故障范圍,則更新當(dāng)前所述故障范圍;
第二查詢子單元,用于查詢是否存在未進(jìn)行匹配的所述特征條件;
第二更新子單元,用于若存在未進(jìn)行匹配的所述特征條件,則對(duì)所述特征條件和故障范圍進(jìn)行匹配,并更新與所述特征條件相匹配的故障范圍。
其中,所述測(cè)試用例生成模塊具體用于:
依據(jù)所述故障模型,獲取生成所述測(cè)試用例所需具備的用例要素;
依據(jù)所述用例要素生成相應(yīng)的測(cè)試用例。
其中,所述歷史故障數(shù)據(jù)包括:故障所適用的產(chǎn)品類型、產(chǎn)品開發(fā)所使用的語言及版本、產(chǎn)品使用的平臺(tái)、中間件及版本、故障引入原因、故障觸發(fā)條件、故障所對(duì)應(yīng)的功能點(diǎn)功能說明和/或故障現(xiàn)象說明。
其中,所述產(chǎn)品特征包括:產(chǎn)品類型、語言版本、平臺(tái)中間件版本、產(chǎn)品 功能點(diǎn)和/或類型清單。
本發(fā)明的有益效果是:
本發(fā)明實(shí)施例的測(cè)試用例的生成方法,根據(jù)采集的歷史故障數(shù)據(jù)生成與相應(yīng)產(chǎn)品的產(chǎn)品特征相對(duì)應(yīng)的故障模型,作為后續(xù)同類產(chǎn)品的測(cè)試設(shè)計(jì)依據(jù)。當(dāng)需要對(duì)待測(cè)產(chǎn)品進(jìn)行測(cè)試時(shí),獲取該待測(cè)產(chǎn)品的產(chǎn)品特征,并從建立的故障模型中查詢與該待測(cè)產(chǎn)品的產(chǎn)品特征相匹配的故障模型,從而依據(jù)該故障模型生成相應(yīng)的測(cè)試用例,使得待測(cè)產(chǎn)品可通過該測(cè)試用例進(jìn)行產(chǎn)品的測(cè)試,從而能夠在測(cè)試設(shè)計(jì)過程中更好地做到對(duì)軟件易發(fā)故障的較全面覆蓋,并聚焦到產(chǎn)品的易發(fā)故障部分,大大提高測(cè)試效率和有效性。
附圖說明
圖1表示本發(fā)明實(shí)施例的測(cè)試用例的生成方法流程示意圖;
圖2表示本發(fā)明實(shí)施例的測(cè)試用例的生成裝置結(jié)構(gòu)框圖;
圖3表示本發(fā)明實(shí)施例的故障模型生成模塊的結(jié)構(gòu)框圖;
圖4表示本發(fā)明實(shí)施例的更新單元的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
實(shí)施例一
依據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種測(cè)試用例的生成方法,首先,采集歷史故障數(shù)據(jù)并依據(jù)所述歷史故障數(shù)據(jù)和預(yù)設(shè)產(chǎn)品特征生成易發(fā)故障模型;接著,獲取待測(cè)試產(chǎn)品的產(chǎn)品特征;再次,跟據(jù)所述產(chǎn)品特征從所述故障模型中查詢與所述待測(cè)試產(chǎn)品的產(chǎn)品特征相匹配的故障模型;最后,根據(jù)所述故障模型生成相應(yīng)的測(cè)試用例。由此可知,本發(fā)明實(shí)施例的測(cè)試用例的生成方法,能夠充分提取出同類產(chǎn)品的歷史故障信息并轉(zhuǎn)換為高價(jià)值的測(cè)試用例,突破了單純利用產(chǎn)品規(guī)格、需求作為測(cè)試設(shè)計(jì)依據(jù)的局限性。
如圖1所示,該測(cè)試用例的生成方法,包括:
步驟S11、采集歷史故障數(shù)據(jù)并依據(jù)所述歷史故障數(shù)據(jù)和預(yù)設(shè)產(chǎn)品特征生成易發(fā)故障模型。
其中,易發(fā)故障為發(fā)生頻數(shù)超過預(yù)定閾值的故障,且預(yù)設(shè)產(chǎn)品特征即為給定的產(chǎn)品特征,包括:產(chǎn)品類型、語言版本、平臺(tái)中間件版本、產(chǎn)品功能點(diǎn)類型清單等信息。
此外,目前大部分軟件故障管理系統(tǒng),均可以實(shí)現(xiàn)軟件產(chǎn)品故障數(shù)據(jù)的采集和存儲(chǔ)。其中,需要記錄的每一個(gè)故障的故障數(shù)據(jù)包括:故障所適用的產(chǎn)品類型、產(chǎn)品開發(fā)所使用的語言及版本、產(chǎn)品使用的平臺(tái)、中間件及版本、故障引入原因、故障觸發(fā)條件、故障所對(duì)應(yīng)的功能點(diǎn)功能說明和/或故障現(xiàn)象說明。在本發(fā)明實(shí)施例的測(cè)試用例的生成方法中,可直接從軟件故障管理系統(tǒng)中記錄的上述故障數(shù)據(jù)作為建立易發(fā)故障模型的歷史數(shù)據(jù)依據(jù)。
當(dāng)然,可以理解的是,所采集的歷史故障數(shù)據(jù)并不局限于包括:故障所適用的產(chǎn)品類型、產(chǎn)品開發(fā)所使用的語言及版本、產(chǎn)品使用的平臺(tái)、中間件及版本、故障引入原因、故障觸發(fā)條件、故障所對(duì)應(yīng)的功能點(diǎn)功能說明和/或故障現(xiàn)象說明,還可依據(jù)實(shí)際情況包括一些其他必要的補(bǔ)充信息。
可選地,步驟S11包括:
根據(jù)所述歷史故障數(shù)據(jù)獲取故障的頻數(shù)信息,并依據(jù)故障發(fā)生頻數(shù)的預(yù)定閾值確定易發(fā)故障;
將至少一個(gè)預(yù)設(shè)產(chǎn)品特征作為觸發(fā)所述易發(fā)故障發(fā)生的至少一個(gè)特征條件;
對(duì)所述特征條件和所述故障范圍進(jìn)行匹配,并遞歸更新與所述特征條件相匹配的故障范圍;
當(dāng)任一所述特征條件匹配完成后,對(duì)更新后的所述故障范圍內(nèi)的存在數(shù)據(jù),進(jìn)行建模計(jì)算,生成易發(fā)故障模型。
其中,故障范圍即為依據(jù)特征條件將采集的多個(gè)故障的歷史故障數(shù)據(jù)進(jìn)行分組后,每一組內(nèi)所包括的多個(gè)故障所適用的產(chǎn)品的類型、版本、功能等。而將故障范圍進(jìn)行遞歸更新的特征條件即為預(yù)設(shè)產(chǎn)品特征。本發(fā)明實(shí)施例的測(cè)試用例的生成方法中,建模計(jì)算主要是保證故障模型和給定產(chǎn)品的相關(guān)性和復(fù)現(xiàn) 幾率,具體計(jì)算方法可以根據(jù)系統(tǒng)要求定義。
其中,所述對(duì)所述特征條件和所述故障范圍進(jìn)行匹配,并遞歸更新與所述特征條件相匹配的故障范圍,具體包括:
讀取一所述特征條件;
依據(jù)所述特征條件,通過查詢算法查詢符合所述特征條件的故障范圍;
若存在與所述特征條件相匹配的故障范圍,則更新當(dāng)前所述故障范圍;
查詢是否存在未進(jìn)行匹配的所述特征條件;
若存在未進(jìn)行匹配的所述特征條件,則對(duì)所述特征條件和故障范圍進(jìn)行匹配,并更新與所述特征條件相匹配的故障范圍。
在對(duì)所述特征條件和所述故障范圍進(jìn)行匹配,并遞歸更新與所述特征條件相匹配的故障范圍的步驟中,具體舉例說明如下:
若特征條件包括條件x和條件y,則首先讀取一特征條件,如條件x;接著,對(duì)條件x匹配故障范圍,若確定的與條件x匹配的故障范圍為范圍A則對(duì)條件y匹配故障范圍,若與條件y匹配的故障范圍為范圍B,則對(duì)范圍A和B按照一定的更新策略進(jìn)行處理獲得更新后的故障范圍C,若此時(shí)仍然存在未進(jìn)行匹配的條件z,則對(duì)條件z匹配故障范圍,若與條件z匹配的故障范圍為范圍D,則對(duì)范圍C和D按照一定的更新策略進(jìn)行處理獲得更新后的故障范圍,直到所有特征條件均匹配完成。
其中,在對(duì)范圍A和B進(jìn)行處理時(shí),若需要獲取要求更為嚴(yán)格的故障范圍,且范圍A和B存在交集,則將范圍A和B的交集作為更新后的故障范圍;若需要獲取涵蓋范圍更加廣泛的故障范圍,則將范圍A和B的并集作為更新后的故障范圍。
步驟S12、獲取待測(cè)試產(chǎn)品的產(chǎn)品特征。
其中,待測(cè)試產(chǎn)品本身具有一定的產(chǎn)品特征,比如,產(chǎn)品類型、語言版本、平臺(tái)中間件版本、產(chǎn)品功能點(diǎn)、類型清單等。因此,可將產(chǎn)品類型、語言版本、平臺(tái)中間件版本、產(chǎn)品功能點(diǎn)和/或類型清單作為待測(cè)產(chǎn)品的產(chǎn)品特征,以便后續(xù)對(duì)該待測(cè)產(chǎn)品進(jìn)行測(cè)試。
步驟S13、根據(jù)所述產(chǎn)品特征從所述故障模型中查詢與所述待測(cè)試產(chǎn)品的產(chǎn)品特征相匹配的故障模型。
在本發(fā)明實(shí)施例的測(cè)試用例的生成方法中,所生成的故障模型與產(chǎn)品的產(chǎn)品特征相對(duì)應(yīng),因此在對(duì)待測(cè)產(chǎn)品進(jìn)行測(cè)試之前,可從生成的多個(gè)故障模型中查詢與該待測(cè)產(chǎn)品的產(chǎn)品特征相匹配的故障模型,從而便于進(jìn)行待測(cè)產(chǎn)品的后續(xù)測(cè)試過程。
步驟S14、根據(jù)所述故障模型生成相應(yīng)的測(cè)試用例。
可選地,步驟S14具體為:
根據(jù)所述故障模型,獲取生成所述測(cè)試用例所需具備的用例要素;
依據(jù)所述用例要素生成相應(yīng)的測(cè)試用例。
生成測(cè)試用例需要具備用例要素,而用例要素所包括的具體信息可從故障模型中獲取,但是故障模型中所涵蓋的相應(yīng)信息與用例要素的相應(yīng)格式或字段不相符,因而在生成測(cè)試用例之前,需要從故障模型中提取生成測(cè)試用例所需的信息,并轉(zhuǎn)換成符合用例要素的格式,從而生成相應(yīng)的測(cè)試用例。
具體地,舉例來說,對(duì)于Android終端應(yīng)用測(cè)試用例的生成。在歷史產(chǎn)品的測(cè)試過程中,曾發(fā)現(xiàn)過這樣的故障:androidV4.2版本在應(yīng)用運(yùn)行(ART)模式下出現(xiàn)應(yīng)用閃退問題。通過本發(fā)明實(shí)施例的測(cè)試用例的生成方法,進(jìn)行故障模型匹配后,會(huì)自動(dòng)生成針對(duì)AndroidV4.2版本在ART模式下進(jìn)行應(yīng)用閃退測(cè)試的測(cè)試用例,會(huì)有效避免同樣問題在后續(xù)同類產(chǎn)品的重復(fù)出現(xiàn)。
另外,對(duì)于業(yè)務(wù)系統(tǒng)賬號(hào)信息安全測(cè)試用例的生成。在同類產(chǎn)品中,曾出現(xiàn)過這樣的故障:用戶的賬號(hào)密碼信息,在接口交互過程中因?yàn)橹蛔隽藛纬绦r?yàn),可以被旁路截獲并篡改,導(dǎo)致權(quán)限泄露。通過本系統(tǒng)的故障模型匹配,在同類采用接口驗(yàn)證的場景下,會(huì)自動(dòng)生成中途截獲接口內(nèi)容并修改進(jìn)行權(quán)限泄露測(cè)試的測(cè)試用例,從而能夠可以有效避免同樣的問題在同類型產(chǎn)品中的重復(fù)出現(xiàn)。
實(shí)施例二
依據(jù)本發(fā)明實(shí)施例的另一個(gè)方面,還提供了一種測(cè)試用例的生成裝置,如圖2所示,該裝置200包括:
故障模型生成模塊201,用于采集歷史故障數(shù)據(jù)并依據(jù)所述歷史故障數(shù)據(jù)生成易發(fā)故障模型,其中,所述易發(fā)故障為發(fā)生頻數(shù)超過預(yù)定閾值的故障;
獲取模塊202,用于獲取待測(cè)試產(chǎn)品的產(chǎn)品特征;
匹配模塊203,用于根據(jù)所述產(chǎn)品特征從所述故障模型中查詢與所述待測(cè)試產(chǎn)品的產(chǎn)品特征相匹配的故障模型;
測(cè)試用例生成模塊204,用于根據(jù)所述故障模型生成相應(yīng)的測(cè)試用例。
其中,如圖3所示,所述故障模型生成模塊201包括:
統(tǒng)計(jì)和分析單元2011,用于根據(jù)所述歷史故障數(shù)據(jù)獲取故障的頻數(shù)信息,并依據(jù)故障發(fā)生頻數(shù)的預(yù)定閾值確定易發(fā)故障;
獲取單元2012,用于將至少一個(gè)預(yù)設(shè)產(chǎn)品特征作為觸發(fā)所述易發(fā)故障發(fā)生的至少一個(gè)特征條件;
更新單元2013,用于對(duì)所述特征條件和所述故障范圍進(jìn)行匹配,并遞歸更新與所述特征條件相匹配的故障范圍;
建模單元2014,用于當(dāng)任一所述特征條件匹配完成后,對(duì)更新后的所述故障范圍內(nèi)的存在數(shù)據(jù),進(jìn)行建模計(jì)算,生成易發(fā)故障模型。
其中,如圖4所示,所述更新單元2013包括:
讀取子單元20131,用于讀取一所述特征條件;
第一查詢子單元20132,用于依據(jù)所述特征條件,通過查詢算法查詢符合所述特征條件的故障范圍;
第一更新子單元20133,用于若存在與所述特征條件相匹配的故障范圍,則更新當(dāng)前所述故障范圍;
第二查詢子單元20134,用于查詢是否存在未進(jìn)行匹配的所述特征條件;
第二更新子單元20135,用于若存在未進(jìn)行匹配的所述特征條件,則對(duì)所述特征條件和故障范圍進(jìn)行匹配,并更新與所述特征條件相匹配的故障范圍。
其中,所述測(cè)試用例生成模塊204具體用于:
依據(jù)所述故障模型,獲取生成所述測(cè)試用例所需具備的用例要素;
依據(jù)所述用例要素生成相應(yīng)的測(cè)試用例。
其中,所述歷史故障數(shù)據(jù)包括:故障所適用的產(chǎn)品類型、產(chǎn)品開發(fā)所使用的語言及版本、產(chǎn)品使用的平臺(tái)、中間件及版本、故障引入原因、故障觸發(fā)條件、故障所對(duì)應(yīng)的功能點(diǎn)功能說明和/或故障現(xiàn)象說明。
其中,所述產(chǎn)品特征包括:產(chǎn)品類型、語言版本、平臺(tái)中間件版本、產(chǎn)品功能點(diǎn)和/或類型清單。
以上所述的是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出對(duì)于本技術(shù)領(lǐng)域的普通人員來說,在不脫離本發(fā)明所述的原理前提下還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也在本發(fā)明的保護(hù)范圍內(nèi)。