軟件系統(tǒng)的異常測試方法、系統(tǒng)和軟件測試系統(tǒng)的制作方法
【專利摘要】本發(fā)明提出一種軟件系統(tǒng)的異常測試方法、系統(tǒng)和軟件測試系統(tǒng)。其中所述方法包括以下步驟:在待測軟件系統(tǒng)中插入通信模塊和異常控制代碼,并通過待測軟件系統(tǒng)對(duì)通信模塊和異??刂拼a進(jìn)行編譯,其中,異??刂拼a具有多個(gè)程序運(yùn)行路徑,且每個(gè)程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位;以及測試控制端根據(jù)測試用例選擇對(duì)應(yīng)的控制位和測試數(shù)據(jù),并根據(jù)控制位和測試數(shù)據(jù)對(duì)待測軟件系統(tǒng)進(jìn)行異常測試。本發(fā)明實(shí)施例的方法,可實(shí)現(xiàn)軟件系統(tǒng)的代碼級(jí)異常測試,特別是Linux內(nèi)核的異常測試,提高測試覆蓋率,降低軟件系統(tǒng)的bug風(fēng)險(xiǎn),同時(shí)可靈活地對(duì)軟件系統(tǒng)進(jìn)行各種異常測試,將軟件系統(tǒng)的質(zhì)量問題解決在開發(fā)、編碼階段,降低解決bug的成本。
【專利說明】軟件系統(tǒng)的異常測試方法、系統(tǒng)和軟件測試系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種軟件系統(tǒng)的異常測試方法、系統(tǒng)和軟件測試系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中,在進(jìn)行軟件系統(tǒng)測試時(shí),一般是構(gòu)造測試用例對(duì)軟件系統(tǒng)進(jìn)行測試。現(xiàn)有技術(shù)存在的問題是,對(duì)Linux系統(tǒng)內(nèi)核等高級(jí)軟件系統(tǒng)進(jìn)行異常測試時(shí),有些異常的測試用例很難構(gòu)造,導(dǎo)致異常測試覆蓋不全面,并且對(duì)Linux系統(tǒng)內(nèi)核等高級(jí)軟件的異常測試方法即測試用例較少。
【發(fā)明內(nèi)容】
[0003]本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問題之一。
[0004]為此,本發(fā)明的第一個(gè)目的在于提出一種可以實(shí)現(xiàn)代碼級(jí)異常測試、提高測試覆蓋率且降低軟件系統(tǒng)bug風(fēng)險(xiǎn)的軟件系統(tǒng)的異常測試方法。
[0005]本發(fā)明的第二個(gè)目的在于提出一種軟件系統(tǒng)的異常測試系統(tǒng)。
[0006]本發(fā)明的第三個(gè)目的在于提出一種軟件測試系統(tǒng)。
[0007]為了實(shí)現(xiàn)上述目的,本發(fā)明的第一方面實(shí)施例的軟件系統(tǒng)的異常測試方法包括以下步驟:在待測軟件系統(tǒng)中插入通信模塊和異??刂拼a,并通過所述待測軟件系統(tǒng)對(duì)所述通信模塊和所述異??刂拼a進(jìn)行編譯,其中,所述異??刂拼a具有多個(gè)程序運(yùn)行路徑,且每個(gè)所述程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位;以及測試控制端根據(jù)測試用例選擇對(duì)應(yīng)的控制位和測試數(shù)據(jù),并根據(jù)所述控制位和所述測試數(shù)據(jù)對(duì)所述待測軟件系統(tǒng)進(jìn)行異常測試。
[0008]根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)的異常測試方法,通過在待測軟件系統(tǒng)中插入通信模塊和異??刂拼a,并通過測試控制端根據(jù)控制位和測試數(shù)據(jù)對(duì)待測軟件系統(tǒng)進(jìn)行異常測試,一方面實(shí)現(xiàn)軟件系統(tǒng)代碼級(jí)的異常測試,特別是實(shí)現(xiàn)Linux內(nèi)核的異常測試,同時(shí)對(duì)難以構(gòu)造的異常能夠?qū)崿F(xiàn)測試,提高測試覆蓋率,降低軟件系統(tǒng)的bug風(fēng)險(xiǎn),另一方面通過控制位和測試數(shù)據(jù)可以靈活地對(duì)軟件系統(tǒng)進(jìn)行各種異常測試,可以實(shí)現(xiàn)開發(fā)時(shí)期的軟件系統(tǒng)測試,將軟件系統(tǒng)的質(zhì)量問題解決在開發(fā)、編碼階段,降低解決bug的成本。
[0009]為了實(shí)現(xiàn)上述目的,本發(fā)明的第二方面實(shí)施例的軟件系統(tǒng)的異常測試系統(tǒng)包括:待測軟件系統(tǒng),其中,在所述待測軟件系統(tǒng)中插入有通信模塊和異??刂拼a,所述待測軟件系統(tǒng)用于對(duì)所述通信模塊和所述異??刂拼a進(jìn)行編譯,其中,所述異常控制代碼具有多個(gè)程序運(yùn)行路徑,且每個(gè)所述程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位;以及測試控制端,用于根據(jù)測試用例選擇對(duì)應(yīng)的控制位和測試數(shù)據(jù),并根據(jù)所述控制位和所述測試數(shù)據(jù)對(duì)所述待測軟件系統(tǒng)進(jìn)行異常測試。
[0010]根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)的異常測試系統(tǒng),在待測軟件系統(tǒng)中插入通信模塊和異??刂拼a,測試控制端根據(jù)控制位和測試數(shù)據(jù)對(duì)待測軟件系統(tǒng)進(jìn)行異常測試,一方面該系統(tǒng)可以實(shí)現(xiàn)軟件系統(tǒng)代碼級(jí)的異常測試,特別是實(shí)現(xiàn)Linux內(nèi)核的異常測試,同時(shí)對(duì)難以構(gòu)造的異常能夠?qū)崿F(xiàn)測試,提高測試覆蓋率,降低軟件系統(tǒng)的bug風(fēng)險(xiǎn),另一方面通過控制位和測試數(shù)據(jù)可以靈活地對(duì)軟件系統(tǒng)進(jìn)行各種異常測試,可以實(shí)現(xiàn)開發(fā)時(shí)期的軟件系統(tǒng)測試,將軟件系統(tǒng)的質(zhì)量問題解決在開發(fā)、編碼階段,降低解決bug的成本。
[0011]為了實(shí)現(xiàn)上述目的,本發(fā)明的第三方面實(shí)施例的軟件系統(tǒng)包括:通信模塊,用于與測試控制端進(jìn)行通訊,接收所述測試控制端發(fā)送的測試數(shù)據(jù)和控制位;以及異常控制代碼模塊,其中,所述異??刂拼a模塊具有多個(gè)程序運(yùn)行路徑,且每個(gè)所述程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位,所述異??刂拼a模塊用于根據(jù)所述通訊模塊發(fā)送的控制位選擇相應(yīng)的程序運(yùn)行路徑。
[0012]根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng),包括通信模塊和異??刂拼a,測試控制端可以通過控制位和測試數(shù)據(jù)進(jìn)行異常測試,可以實(shí)現(xiàn)代碼級(jí)的異常測試,特別是Linux內(nèi)核的軟件系統(tǒng)的異常測試,并且對(duì)難以構(gòu)造的異常能夠?qū)崿F(xiàn)測試,提高測試覆蓋率,降低軟件系統(tǒng)的bug風(fēng)險(xiǎn),同時(shí)可以實(shí)現(xiàn)開發(fā)時(shí)期的軟件系統(tǒng)測試,將軟件系統(tǒng)的質(zhì)量問題解決在開發(fā)、編碼階段,降低解決bug的成本。
[0013]本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
【專利附圖】
【附圖說明】
[0014]本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
[0015]圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的軟件系統(tǒng)的異常測試方法的流程圖;
[0016]圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例的軟件系統(tǒng)的異常測試方法的流程圖;
[0017]圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的軟件系統(tǒng)的異常測試方法的流程圖;
[0018]圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例的軟件系統(tǒng)的異常測試系統(tǒng)的結(jié)構(gòu)框圖;以及
[0019]圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的軟件系統(tǒng)的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0020]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。
[0021]在本發(fā)明的描述中,術(shù)語“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明而不是要求本發(fā)明必須以特定的方位構(gòu)造和操作,因此不能理解為對(duì)本發(fā)明的限制。
[0022]下面參考說明書附圖描述根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)的異常測試方法。
[0023]一種軟件系統(tǒng)的異常測試方法,包括以下步驟:在待測軟件系統(tǒng)中插入通信模塊和異??刂拼a,并通過待測軟件系統(tǒng)對(duì)通信模塊和異??刂拼a進(jìn)行編譯,其中,異??刂拼a具有多個(gè)程序運(yùn)行路徑,且每個(gè)程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位;以及測試控制端根據(jù)測試用例選擇對(duì)應(yīng)的控制位和測試數(shù)據(jù),并根據(jù)控制位和測試數(shù)據(jù)對(duì)待測軟件系統(tǒng)進(jìn)行異常測試。
[0024]圖1為本發(fā)明一個(gè)實(shí)施例的軟件系統(tǒng)的異常測試方法的流程圖。
[0025]如圖1所示,根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)的異常測試方法包括下述步驟。
[0026]步驟S101,在待測軟件系統(tǒng)中插入通信模塊和異??刂拼a,并通過待測軟件系統(tǒng)對(duì)通信模塊和異常控制代碼進(jìn)行編譯,其中,異??刂拼a具有多個(gè)程序運(yùn)行路徑,且每個(gè)程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位。
[0027]在本發(fā)明的一個(gè)實(shí)施例中,待測軟件系統(tǒng)可以為Linux內(nèi)核,也可以為普通的軟件系統(tǒng)。具體地,如果待測軟件系統(tǒng)是Linux內(nèi)核,插入的通信模塊可以通過串口、網(wǎng)卡等實(shí)現(xiàn),也可以通過API (Application Programming Interface,應(yīng)用程序編程接口)實(shí)現(xiàn),或者可以通過proc文件系統(tǒng)實(shí)現(xiàn),本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解插入的通信模塊還可以通過其他方式實(shí)現(xiàn);如果待測軟件系統(tǒng)是普通的軟件系統(tǒng),可以在普通的軟件系統(tǒng)的源碼中添加通信接口以實(shí)現(xiàn)插入通信模塊。
[0028]步驟S102,測試控制端根據(jù)測試用例選擇對(duì)應(yīng)的控制位和測試數(shù)據(jù),并根據(jù)控制位和測試數(shù)據(jù)對(duì)待測軟件系統(tǒng)進(jìn)行異常測試。
[0029]其中,測試控制端可以和待測軟件系統(tǒng)運(yùn)行在同一臺(tái)機(jī)器,也可以不在同一臺(tái)機(jī)器,如果不在同一臺(tái)機(jī)器上,可以通過串口、網(wǎng)絡(luò)等進(jìn)行遠(yuǎn)程控制。
[0030]具體地,測試控制端運(yùn)行測試用例。測試用例包括控制信息,其中控制信息可以為控制位和測試數(shù)據(jù),測試控制端根據(jù)相應(yīng)測試用例的控制位和測試數(shù)據(jù)對(duì)待測軟件系統(tǒng)進(jìn)行異常測試。
[0031]根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)的異常測試方法,通過在待測軟件系統(tǒng)中插入通信模塊和異常控制代碼,并通過測試控制端根據(jù)控制位和測試數(shù)據(jù)對(duì)待測軟件系統(tǒng)進(jìn)行異常測試,一方面實(shí)現(xiàn)軟件系統(tǒng)代碼級(jí)的異常測試,特別是實(shí)現(xiàn)Linux內(nèi)核的異常測試,對(duì)于難以構(gòu)造的異常能夠?qū)崿F(xiàn)測試,提高測試覆蓋率,降低軟件系統(tǒng)的bug風(fēng)險(xiǎn),另一方面通過控制位和測試數(shù)據(jù)可以靈活地對(duì)軟件系統(tǒng)進(jìn)行各種異常測試,可以實(shí)現(xiàn)開發(fā)時(shí)期的軟件系統(tǒng)測試,將軟件系統(tǒng)的質(zhì)量問題解決在開發(fā)、編碼階段,降低解決bug的成本。
[0032]圖2為本發(fā)明一個(gè)實(shí)施例的軟件系統(tǒng)的異常測試方法的流程圖。
[0033]如圖2所示,根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)的異常測試方法包括下述步驟。
[0034]步驟S201,在待測軟件系統(tǒng)中插入通信模塊和異??刂拼a,并通過待測軟件系統(tǒng)對(duì)通信模塊和異??刂拼a進(jìn)行編譯,其中,異??刂拼a具有多個(gè)程序運(yùn)行路徑,且每個(gè)程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位。
[0035]在本發(fā)明的一個(gè)實(shí)施例中,待測軟件系統(tǒng)可以為Linux內(nèi)核,也可以為普通的軟件系統(tǒng)。具體地,如果待測軟件系統(tǒng)是Linux內(nèi)核,插入的通信模塊可以通過串口、網(wǎng)卡等實(shí)現(xiàn),也可以通過API (Application Programming Interface,應(yīng)用程序編程接口)實(shí)現(xiàn),或者可以通過proc文件系統(tǒng)實(shí)現(xiàn),本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解插入的通信模塊還可以通過其他方式實(shí)現(xiàn);如果待測軟件系統(tǒng)是普通的軟件系統(tǒng),可以在普通的軟件系統(tǒng)的源碼中添加通信接口以實(shí)現(xiàn)插入通信模塊。
[0036]步驟S202,測試控制端根據(jù)測試用例選擇對(duì)應(yīng)的控制位和測試數(shù)據(jù),測試控制端將控制位和測試數(shù)據(jù)發(fā)送至通信模塊。
[0037]其中,測試控制端可以和待測軟件系統(tǒng)運(yùn)行在同一臺(tái)機(jī)器,也可以不在同一臺(tái)機(jī)器,如果不在同一臺(tái)機(jī)器上,可以通過串口、網(wǎng)絡(luò)等進(jìn)行遠(yuǎn)程控制。
[0038]具體地,測試控制端運(yùn)行測試用例。測試用例包括控制信息(控制信息可以為控制位和測試數(shù)據(jù)),測試控制端將相應(yīng)測試用例的控制位和測試數(shù)據(jù)發(fā)送至通信模塊。
[0039]步驟S203,通信模塊提取控制位和測試數(shù)據(jù)。
[0040]具體地,通信模塊接收測試控制端發(fā)送的控制位和測試數(shù)據(jù),并且提取控制位和測試數(shù)據(jù),然后向測試控制端發(fā)送確認(rèn)信息。
[0041]步驟S204,通信模塊將測試數(shù)據(jù)輸入待測軟件系統(tǒng),并將控制位輸入異??刂拼a以選擇多個(gè)程序運(yùn)行路徑中的一個(gè)。
[0042]具體地,將測試數(shù)據(jù)輸入待測軟件系統(tǒng)并將控制位輸入異常控制代碼以選擇多個(gè)程序運(yùn)行路徑中的一個(gè)之后,測試控制端可以對(duì)待測軟件系統(tǒng)進(jìn)行異常測試。
[0043]在本發(fā)明的一個(gè)實(shí)施例中,異??刂拼a在未收到控制位時(shí)不運(yùn)行。
[0044]根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)的異常測試方法,通過通信模塊將測試數(shù)據(jù)輸入待測軟件系統(tǒng)并將控制位輸入異??刂拼a以選擇多個(gè)程序運(yùn)行路徑中的一個(gè),由此測試控制端可以方便實(shí)現(xiàn)對(duì)軟件系統(tǒng)的異常測試,實(shí)現(xiàn)靈活,并且便于進(jìn)行各種異常測試。
[0045]圖3為本發(fā)明一個(gè)實(shí)施例的軟件系統(tǒng)的異常測試方法的流程圖。
[0046]如圖3所示,根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)的異常測試方法包括下述步驟。
[0047]步驟S301,在待測軟件系統(tǒng)中插入通信模塊和異??刂拼a,并通過待測軟件系統(tǒng)對(duì)通信模塊和異??刂拼a進(jìn)行編譯,其中,異??刂拼a具有多個(gè)程序運(yùn)行路徑,且每個(gè)程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位。
[0048]在本發(fā)明的一個(gè)實(shí)施例中,待測軟件系統(tǒng)可以為Linux內(nèi)核,也可以為普通的軟件系統(tǒng)。具體地,如果待測軟件系統(tǒng)是Linux內(nèi)核,插入的通信模塊可以通過串口、網(wǎng)卡等實(shí)現(xiàn),也可以通過API (Application Programming Interface,應(yīng)用程序編程接口)實(shí)現(xiàn),或者可以通過proc文件系統(tǒng)實(shí)現(xiàn),本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解插入的通信模塊還可以通過其他方式實(shí)現(xiàn);如果待測軟件系統(tǒng)是普通的軟件系統(tǒng),可以在普通的軟件系統(tǒng)的源碼中添加通信接口以實(shí)現(xiàn)插入通信模塊。
[0049]步驟S302,測試控制端根據(jù)測試用例選擇對(duì)應(yīng)的控制位和測試數(shù)據(jù),測試控制端將控制位和測試數(shù)據(jù)發(fā)送至通信模塊。
[0050]其中,測試控制端可以和待測軟件系統(tǒng)運(yùn)行在同一臺(tái)機(jī)器,也可以不在同一臺(tái)機(jī)器,如果不在同一臺(tái)機(jī)器上,可以通過串口、網(wǎng)絡(luò)等進(jìn)行遠(yuǎn)程控制。
[0051]具體地,具體地,測試控制端運(yùn)行測試用例。測試用例包括控制信息(控制信息可以為控制位和測試數(shù)據(jù)),測試控制端將相應(yīng)測試用例的控制位和測試數(shù)據(jù)發(fā)送至通信模塊。
[0052]步驟S303,通信模塊提取控制位和測試數(shù)據(jù)。
[0053]具體地,通信模塊接收測試控制端發(fā)送的控制位和測試數(shù)據(jù),并且提取控制位和測試數(shù)據(jù),然后向測試控制端發(fā)送確認(rèn)信息。
[0054]步驟S304,通信模塊將測試數(shù)據(jù)輸入待測軟件系統(tǒng),并將控制位輸入異常控制代碼以選擇多個(gè)程序運(yùn)行路徑中的一個(gè)。
[0055]具體地,將測試數(shù)據(jù)輸入待測軟件系統(tǒng)并將控制位輸入異??刂拼a以選擇多個(gè)程序運(yùn)行路徑中的一個(gè)之后,測試控制端可以對(duì)待測軟件系統(tǒng)進(jìn)行異常測試。[0056]在本發(fā)明的一個(gè)實(shí)施例中,異常控制代碼在未收到控制位時(shí)不運(yùn)行。
[0057]步驟S305,待測軟件系統(tǒng)按照異??刂拼a選擇的程序運(yùn)行路徑運(yùn)行測試數(shù)據(jù)。
[0058]步驟S306,測試控制端采集待測軟件系統(tǒng)的系統(tǒng)信息,并根據(jù)系統(tǒng)信息對(duì)待測軟件系統(tǒng)進(jìn)行異常測試。
[0059]根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)的異常測試方法,測試控制端可以實(shí)時(shí)監(jiān)控待測軟件系統(tǒng)狀態(tài)和判斷異常處理是否正確等,降低測試難度。
[0060]為了實(shí)現(xiàn)上述實(shí)施例,本發(fā)明的另一個(gè)方面還提出一種軟件系統(tǒng)的異常測試系統(tǒng)。下面參考說明書附圖描述根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)的異常測試系統(tǒng)。
[0061]一種軟件系統(tǒng)的異常測試系統(tǒng),包括:待測軟件系統(tǒng),其中,在待測軟件系統(tǒng)中插入有通信模塊和異??刂拼a,待測軟件系統(tǒng)用于對(duì)通信模塊和異常控制代碼進(jìn)行編譯,其中,異??刂拼a具有多個(gè)程序運(yùn)行路徑,且每個(gè)程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位;以及測試控制端,用于根據(jù)測試用例選擇對(duì)應(yīng)的控制位和測試數(shù)據(jù),并根據(jù)控制位和測試數(shù)據(jù)對(duì)待測軟件系統(tǒng)進(jìn)行異常測試。
[0062]圖4為本發(fā)明一個(gè)實(shí)施例的軟件系統(tǒng)的異常測試系統(tǒng)的結(jié)構(gòu)框圖。
[0063]如圖4所示,根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)的異常測試系統(tǒng)包括待測軟件系統(tǒng)100和測試控制端200。
[0064]具體地,在待測軟件系統(tǒng)100中插入有通信模塊和異??刂拼a,待測軟件系統(tǒng)100用于對(duì)通信模塊和異常控制代碼進(jìn)行編譯,其中,異??刂拼a具有多個(gè)程序運(yùn)行路徑,且每個(gè)程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位。
[0065]在本發(fā)明的一個(gè)實(shí)施例中,待測軟件系統(tǒng)100可以為Linux內(nèi)核,也可以為普通的軟件系統(tǒng)。具體地,如果待測軟件系統(tǒng)100是Linux內(nèi)核,插入的通信模塊可以通過串口、網(wǎng)卡等實(shí)現(xiàn),也可以通過API (Application Programming Interface,應(yīng)用程序編程接口)實(shí)現(xiàn),或者可以通過proc文件系統(tǒng)實(shí)現(xiàn),本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解插入的通信模塊還可以通過其他方式實(shí)現(xiàn);如果待測軟件系統(tǒng)100是普通的軟件系統(tǒng),可以在普通的軟件系統(tǒng)的源碼中添加通信接口以實(shí)現(xiàn)插入通信模塊。
[0066]測試控制端200用于根據(jù)測試用例選擇對(duì)應(yīng)的控制位和測試數(shù)據(jù),并根據(jù)控制位和測試數(shù)據(jù)對(duì)待測軟件系統(tǒng)100進(jìn)行異常測試。其中,測試控制端200可以和待測軟件系統(tǒng)100運(yùn)行在同一臺(tái)機(jī)器,也可以不在同一臺(tái)機(jī)器,如果不在同一臺(tái)機(jī)器上,可以通過串口、網(wǎng)絡(luò)等進(jìn)行遠(yuǎn)程控制。具體地,測試控制端200運(yùn)行測試用例。測試用例包括控制信息,其中控制信息可以為控制位和測試數(shù)據(jù),測試控制端200根據(jù)相應(yīng)測試用例的控制位和測試數(shù)據(jù)對(duì)待測軟件系統(tǒng)100進(jìn)行異常測試。
[0067]根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)的異常測試系統(tǒng),在待測軟件系統(tǒng)中插入通信模塊和異??刂拼a,測試控制端根據(jù)控制位和測試數(shù)據(jù)對(duì)待測軟件系統(tǒng)進(jìn)行異常測試,一方面該系統(tǒng)可以實(shí)現(xiàn)軟件系統(tǒng)代碼級(jí)的異常測試,特別是實(shí)現(xiàn)Linux內(nèi)核的異常測試,同時(shí)對(duì)難以構(gòu)造的異常能夠?qū)崿F(xiàn)測試,提高測試覆蓋率,降低軟件系統(tǒng)的bug風(fēng)險(xiǎn),另一方面通過控制位和測試數(shù)據(jù)可以靈活地對(duì)軟件系統(tǒng)進(jìn)行各種異常測試,可以實(shí)現(xiàn)開發(fā)時(shí)期的軟件系統(tǒng)測試,將軟件系統(tǒng)的質(zhì)量問題解決在開發(fā)、編碼階段,降低解決bug的成本。
[0068]在本發(fā)明的一個(gè)實(shí)施例中,測試控制端200用于將控制位和測試數(shù)據(jù)發(fā)送至通信模塊,由通信模塊提取控制位和測試數(shù)據(jù),并將測試數(shù)據(jù)輸入待測軟件系統(tǒng)100,以及將控制位輸入異??刂拼a以選擇多個(gè)程序運(yùn)行路徑中的一個(gè)。其中,異常控制代碼在未收到控制位時(shí)不運(yùn)行。
[0069]具體地,測試控制端200將相應(yīng)測試用例的控制位和測試數(shù)據(jù)發(fā)送至通信模塊,通信模塊接收測試控制端200發(fā)送的控制位和測試數(shù)據(jù),并且提取控制位和測試數(shù)據(jù),然后通信模塊向測試控制端200發(fā)送確認(rèn)信息,通信模塊再將測試數(shù)據(jù)輸入待測軟件系統(tǒng)100并將控制位輸入異??刂拼a以選擇多個(gè)程序運(yùn)行路徑中的一個(gè),由此測試控制端200可以對(duì)待測軟件系統(tǒng)100進(jìn)行異常測試。
[0070]根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)的異常測試系統(tǒng),通過通信模塊將測試數(shù)據(jù)輸入待測軟件系統(tǒng)并將控制位輸入異常控制代碼以選擇多個(gè)程序運(yùn)行路徑中的一個(gè),由此測試控制端可以方便實(shí)現(xiàn)對(duì)軟件系統(tǒng)的異常測試,實(shí)現(xiàn)靈活,并且便于進(jìn)行各種異常測試。
[0071]在本發(fā)明的一個(gè)實(shí)施例中,待測軟件系統(tǒng)100還用于按照異??刂拼a選擇的程序運(yùn)行路徑運(yùn)行測試數(shù)據(jù),以及測試控制端200還用于采集待測軟件系統(tǒng)100的系統(tǒng)信息,并根據(jù)系統(tǒng)信息對(duì)待測軟件系統(tǒng)100進(jìn)行異常測試。由此,測試控制端可以實(shí)時(shí)監(jiān)控待測軟件系統(tǒng)狀態(tài)和判斷異常處理是否正確等,降低測試難度。
[0072]為了實(shí)現(xiàn)上述實(shí)施例,本發(fā)明的又一方面還提出一種軟件系統(tǒng)。下面參考說明書附圖描述根據(jù)本發(fā)明實(shí)施例的彩信編輯裝置。
[0073]—種軟件系統(tǒng),包括:通信模塊,用于與測試控制端進(jìn)行通訊,接收測試控制端發(fā)送的測試數(shù)據(jù)和控制位;以及異??刂拼a模塊,其中,異??刂拼a模塊具有多個(gè)程序運(yùn)行路徑,且每個(gè)程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位,異常控制代碼模塊用于根據(jù)通訊模塊發(fā)送的控制位選擇相應(yīng)的程序運(yùn)行路徑。
[0074]圖5為本發(fā)明一個(gè)實(shí)施例的軟件系統(tǒng)的結(jié)構(gòu)框圖。
[0075]如圖5所示,根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng)包括通信模塊10和異常控制代碼模塊20。
[0076]具體地,通信模塊10用于與測試控制端進(jìn)行通訊,接收測試控制端發(fā)送的測試數(shù)據(jù)和控制位。
[0077]異??刂拼a模塊20具有多個(gè)程序運(yùn)行路徑,且每個(gè)程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位,異??刂拼a模塊20用于根據(jù)通訊模塊發(fā)送的控制位選擇相應(yīng)的程序運(yùn)行路徑。其中,異??刂拼a模塊20在未收到控制位時(shí)不運(yùn)行。
[0078]在本發(fā)明的一個(gè)實(shí)施例中,待測軟件系統(tǒng)可以為Linux內(nèi)核,也可以為普通的軟件系統(tǒng)。具體地,如果待測軟件系統(tǒng)是Linux內(nèi)核,插入的通信模塊10可以通過串口、網(wǎng)卡等實(shí)現(xiàn),也可以通過API (Application Programming Interface,應(yīng)用程序編程接口 )實(shí)現(xiàn),或者可以通過proc文件系統(tǒng)實(shí)現(xiàn),本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解插入的通信模塊還可以通過其他方式實(shí)現(xiàn);如果待測軟件系統(tǒng)是普通的軟件系統(tǒng),可以在普通的軟件系統(tǒng)的源碼中添加通信接口以實(shí)現(xiàn)插入通信模塊10。
[0079]在本發(fā)明的一個(gè)實(shí)施例中,通信模塊10還用于將軟件系統(tǒng)的系統(tǒng)信息反饋至測試控制端。由此,測試控制端可以通過通信模塊實(shí)時(shí)監(jiān)控待測軟件系統(tǒng)狀態(tài)和判斷異常處理是否正確等,降低測試難度。
[0080]根據(jù)本發(fā)明實(shí)施例的軟件系統(tǒng),包括通信模塊和異??刂拼a,測試控制端可以通過控制位和測試數(shù)據(jù)進(jìn)行異常測試,可以實(shí)現(xiàn)代碼級(jí)的異常測試,特別是Linux內(nèi)核的軟件系統(tǒng)的異常測試,并且對(duì)難以構(gòu)造的異常能夠?qū)崿F(xiàn)測試,提高測試覆蓋率,降低軟件系統(tǒng)的bug風(fēng)險(xiǎn),同時(shí)可以實(shí)現(xiàn)開發(fā)時(shí)期的軟件系統(tǒng)測試,將軟件系統(tǒng)的質(zhì)量問題解決在開發(fā)、編碼階段,降低解決bug的成本。
[0081]在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實(shí)現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實(shí)現(xiàn)在任何計(jì)算機(jī)可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計(jì)算機(jī)的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,“計(jì)算機(jī)可讀介質(zhì)”可以是任何可以包含、存儲(chǔ)、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。
[0082]計(jì)算機(jī)可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個(gè)或多個(gè)布線的電連接部(電子裝置),便攜式計(jì)算機(jī)盤盒(磁裝置),隨機(jī)存取存儲(chǔ)器(RAM),只讀存儲(chǔ)器(R0M),可擦除可編輯只讀存儲(chǔ)器(EPR0M或閃速存儲(chǔ)器),光纖裝置,以及便攜式光盤只讀存儲(chǔ)器(CDROM)。另外,計(jì)算機(jī)可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因?yàn)榭梢岳缤ㄟ^對(duì)紙或其他介質(zhì)進(jìn)行光學(xué)掃描,接著進(jìn)行編輯、解譯或必要時(shí)以其他合適方式進(jìn)行處理來以電子方式獲得所述程序,然后將其存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中。
[0083]應(yīng)當(dāng)理解,在本發(fā)明的實(shí)施例中,移動(dòng)終端可以是手機(jī)、平板電腦、個(gè)人數(shù)字助理、電子書等具有各種操作系統(tǒng)的硬件設(shè)備。
[0084]應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實(shí)現(xiàn)。例如,如果用硬件來實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來實(shí)現(xiàn):具有用于對(duì)數(shù)據(jù)信號(hào)實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
[0085]在本說明書的描述中,參考術(shù)語“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說明書中,對(duì)上述術(shù)語的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。
[0086]盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,本領(lǐng)域的普通技術(shù)人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對(duì)這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同物限定。
【權(quán)利要求】
1.一種軟件系統(tǒng)的異常測試方法,其特征在于,包括以下步驟: 在待測軟件系統(tǒng)中插入通信模塊和異??刂拼a,并通過所述待測軟件系統(tǒng)對(duì)所述通信模塊和所述異??刂拼a進(jìn)行編譯,其中,所述異??刂拼a具有多個(gè)程序運(yùn)行路徑,且每個(gè)所述程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位;以及 測試控制端根據(jù)測試用例選擇對(duì)應(yīng)的控制位和測試數(shù)據(jù),并根據(jù)所述控制位和所述測試數(shù)據(jù)對(duì)所述待測軟件系統(tǒng)進(jìn)行異常測試。
2.如權(quán)利要求1所述的軟件系統(tǒng)的異常測試方法,其特征在于,所述測試控制端根據(jù)所述控制位和所述測試數(shù)據(jù)對(duì)所述待測軟件系統(tǒng)進(jìn)行異常測試進(jìn)一步包括: 所述測試控制端將所述控制位和所述測試數(shù)據(jù)發(fā)送至所述通信模塊; 所述通信模塊提取所述控制位和所述測試數(shù)據(jù); 所述通信模塊將所述測試數(shù)據(jù)輸入所述待測軟件系統(tǒng),并將所述控制位輸入所述異??刂拼a以選擇所述多個(gè)程序運(yùn)行路徑中的一個(gè)。
3.如權(quán)利要求2所述的軟件系統(tǒng)的異常測試方法,其特征在于,所述異??刂拼a在未收到所述控制位時(shí)不運(yùn)行。
4.如權(quán)利要求1-3任一項(xiàng)所述的軟件系統(tǒng)的異常測試方法,其特征在于,所述待測軟件系統(tǒng)為Linux內(nèi)核。
5.如權(quán)利要求1-4任一項(xiàng)所述的軟件系統(tǒng)的異常測試方法,其特征在于,還包括: 所述待測軟件系統(tǒng)按照所述異??刂拼a選擇的程序運(yùn)行路徑運(yùn)行所述測試數(shù)據(jù);以及 所述測試控制端采集所述待測軟件系統(tǒng)的系統(tǒng)信息,并根據(jù)所述系統(tǒng)信息對(duì)所述待測軟件系統(tǒng)進(jìn)行異常測試。
6.一種軟件系統(tǒng)的異常測試系統(tǒng),其特征在于,包括: 待測軟件系統(tǒng),其中,在所述待測軟件系統(tǒng)中插入有通信模塊和異??刂拼a,所述待測軟件系統(tǒng)用于對(duì)所述通信模塊和所述異??刂拼a進(jìn)行編譯,其中,所述異??刂拼a具有多個(gè)程序運(yùn)行路徑,且每個(gè)所述程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位;以及 測試控制端,用于根據(jù)測試用例選擇對(duì)應(yīng)的控制位和測試數(shù)據(jù),并根據(jù)所述控制位和所述測試數(shù)據(jù)對(duì)所述待測軟件系統(tǒng)進(jìn)行異常測試。
7.如權(quán)利要求6所述的軟件系統(tǒng)的異常測試系統(tǒng),其特征在于,所述測試控制端用于將所述控制位和所述測試數(shù)據(jù)發(fā)送至所述通信模塊,由所述通信模塊提取所述控制位和所述測試數(shù)據(jù),并將所述測試數(shù)據(jù)輸入所述待測軟件系統(tǒng),以及將所述控制位輸入所述異??刂拼a以選擇所述多個(gè)程序運(yùn)行路徑中的一個(gè)。
8.如權(quán)利要求7所述的軟件系統(tǒng)的異常測試系統(tǒng),其特征在于,所述異??刂拼a在未收到所述控制位時(shí)不運(yùn)行。
9.如權(quán)利要求6所述的軟件系統(tǒng)的異常測試系統(tǒng),其特征在于,所述待測軟件系統(tǒng)為Linux內(nèi)核。
10.如權(quán)利要求7所述的軟件系統(tǒng)的異常測試系統(tǒng),其特征在于,所述待測軟件系統(tǒng)還用于按照所述異??刂拼a選擇的程序運(yùn)行路徑運(yùn)行所述測試數(shù)據(jù),以及所述測試控制端還用于采集所述待測軟件系統(tǒng)的系統(tǒng)信息,并根據(jù)所述系統(tǒng)信息對(duì)所述待測軟件系統(tǒng)進(jìn)行異常測試。
11.一種軟件系統(tǒng),其特征在于,包括: 通信模塊,用于與測試控制端進(jìn)行通訊,接收所述測試控制端發(fā)送的測試數(shù)據(jù)和控制位;以及 異常控制代碼模塊,其中,所述異常控制代碼模塊具有多個(gè)程序運(yùn)行路徑,且每個(gè)所述程序運(yùn)行路徑對(duì)應(yīng)一個(gè)唯一的控制位,所述異常控制代碼模塊用于根據(jù)所述通訊模塊發(fā)送的控制位選擇相應(yīng)的程序運(yùn)行路徑。
12.如權(quán)利要求11所述的軟件系統(tǒng),其特征在于,所述異??刂拼a模塊在未收到所述控制位時(shí)不運(yùn)行。
13.如權(quán)利要求11所述的軟件系統(tǒng),其特征在于,所述待測軟件系統(tǒng)為Linux內(nèi)核。
14.如權(quán)利要求11所述的軟件系統(tǒng),其特征在于,所述通信模塊還用于將所述軟件系統(tǒng)的系統(tǒng)信息反饋至所述測試控制端。
【文檔編號(hào)】G06F11/36GK103577317SQ201210273309
【公開日】2014年2月12日 申請(qǐng)日期:2012年8月2日 優(yōu)先權(quán)日:2012年8月2日
【發(fā)明者】侯娜 申請(qǐng)人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司