国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      軟件測(cè)試方法及系統(tǒng)與流程

      文檔序號(hào):11154858閱讀:371來(lái)源:國(guó)知局
      軟件測(cè)試方法及系統(tǒng)與制造工藝

      本發(fā)明涉及軟件測(cè)試技術(shù)領(lǐng)域,特別是涉及一種軟件測(cè)試方法及系統(tǒng)。



      背景技術(shù):

      軟件測(cè)試是保證軟件質(zhì)量的關(guān)鍵,通常情況下,軟件測(cè)試的過(guò)程占整個(gè)軟件工程生命周期40%以上。在軟件持續(xù)集成的過(guò)程中,也在逐步滿足客戶的各種軟件需求。軟件單元測(cè)試在不斷地細(xì)化,通過(guò)對(duì)軟件中的最小可測(cè)試單元進(jìn)行測(cè)試以檢查和驗(yàn)證其是否滿足客戶的需求。軟件的持續(xù)集成過(guò)程中需要不斷地對(duì)軟件進(jìn)行修改,以驗(yàn)證軟件開發(fā)的新功能是否滿足客戶需求。軟件在不斷地變化,且變化的總體趨勢(shì)是越來(lái)越接近客戶的需求,在軟件逐步變化的過(guò)程中,若軟件變化的因素較為簡(jiǎn)單,相應(yīng)地軟件單元測(cè)試代碼地變更也會(huì)相對(duì)較少。

      但是,目前對(duì)于新版本的軟件測(cè)試,測(cè)試人員仍需重復(fù)編寫、修改軟件測(cè)試單元的測(cè)試代碼,從而造成軟件單元測(cè)試代碼的編寫效率效率較低,進(jìn)而導(dǎo)致軟件的測(cè)試效率不高,并使得測(cè)試人員進(jìn)行大量的重復(fù)性工作。



      技術(shù)實(shí)現(xiàn)要素:

      鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的軟件測(cè)試方法和相應(yīng)的系統(tǒng)。

      根據(jù)本發(fā)明的一方面,提供了一種軟件測(cè)試方法,包括:

      獲取多組基礎(chǔ)單元測(cè)試代碼,其中,各組基礎(chǔ)單元測(cè)試代碼用于測(cè)試一個(gè)或多個(gè)軟件功能;

      基于所述各組基礎(chǔ)單元測(cè)試代碼測(cè)試的一個(gè)或多個(gè)軟件功能,為所述各組基礎(chǔ)單元測(cè)試代碼構(gòu)建語(yǔ)法描述信息;

      當(dāng)存在待測(cè)試的源程序時(shí),獲取所述待測(cè)試的源程序并分析出所述待測(cè)試的源程序的語(yǔ)法特征;

      將所述語(yǔ)法特征與構(gòu)建的所述語(yǔ)法描述信息進(jìn)行匹配,得到與所述語(yǔ)法特征匹配的語(yǔ)法描述信息對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼;

      利用匹配的語(yǔ)法描述信息對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼對(duì)所述待測(cè)試的源程序進(jìn)行測(cè)試,得到測(cè)試結(jié)果。

      可選地,所述獲取多組基礎(chǔ)單元測(cè)試代碼包括:

      從預(yù)先建立的基礎(chǔ)單元測(cè)試庫(kù)中獲取多組基礎(chǔ)單元測(cè)試代碼。

      可選地,通過(guò)以下步驟建立所述基礎(chǔ)單元測(cè)試庫(kù):

      獲取軟件相關(guān)文檔,并從中分析出各軟件功能以及各軟件功能之間的關(guān)系;

      分析并量化所述各軟件功能的測(cè)試標(biāo)準(zhǔn),并依據(jù)所述各軟件功能的測(cè)試標(biāo)準(zhǔn)設(shè)計(jì)各個(gè)軟件功能對(duì)應(yīng)的單元測(cè)試代碼,其中,所述測(cè)試標(biāo)準(zhǔn)指的是所述各個(gè)軟件功能對(duì)其所在系統(tǒng)的系統(tǒng)資源的使用情況;

      基于設(shè)計(jì)的各個(gè)軟件功能對(duì)應(yīng)的單元測(cè)試代碼建立所述基礎(chǔ)單元測(cè)試庫(kù)。

      可選地,所述基于設(shè)計(jì)的各個(gè)軟件功能對(duì)應(yīng)的單元測(cè)試代碼建立所述基礎(chǔ)單元測(cè)試庫(kù),包括:

      對(duì)所述單元測(cè)試代碼進(jìn)行分類,并得到分類后的多組基礎(chǔ)單元測(cè)試代碼,其中,所述每類單元測(cè)試代碼對(duì)應(yīng)一組基礎(chǔ)單元測(cè)試代碼;

      依據(jù)所述多組基礎(chǔ)單元測(cè)試代碼建立所述基礎(chǔ)單元測(cè)試庫(kù)。

      可選地,對(duì)所述單元測(cè)試代碼進(jìn)行分類,包括:依據(jù)各軟件功能的預(yù)設(shè)的測(cè)試標(biāo)準(zhǔn)對(duì)所述單元測(cè)試代碼進(jìn)行分類。

      可選地,所述當(dāng)存在待測(cè)試的源程序時(shí),獲取所述待測(cè)試的源程序并分析出所述待測(cè)試的源程序的語(yǔ)法特征,包括:

      構(gòu)建單元測(cè)試識(shí)別器,并利用所述單元測(cè)試識(shí)別器分析識(shí)別出所述待測(cè)試的源程序的語(yǔ)法特征。

      可選地,所述待測(cè)試的源程序的語(yǔ)法特征包括以下至少之一:

      待測(cè)試的源程序中的變量、函數(shù)、流程控制結(jié)構(gòu)以及所述待測(cè)試的源程序所使用的系統(tǒng)資源。

      可選地,所述構(gòu)建單元測(cè)試識(shí)別器,包括:

      對(duì)所述各組基礎(chǔ)單元測(cè)試代碼對(duì)應(yīng)的語(yǔ)法描述信息進(jìn)行組合,以生成語(yǔ)法描述文件;

      依據(jù)所述語(yǔ)法描述文件構(gòu)建狀態(tài)機(jī)模型,并利用所述狀態(tài)機(jī)模型構(gòu)建出所述單元測(cè)試識(shí)別器。

      可選地,在得到測(cè)試結(jié)果之后,所述方法還包括:

      對(duì)所述測(cè)試結(jié)果進(jìn)行分析,并依據(jù)分析結(jié)果判斷所述待測(cè)試的源程序中是否存在未被測(cè)試的程序部分,若是,則生成提示信息并輸出。

      根據(jù)本發(fā)明的另一方面,還提供了一種軟件測(cè)試系統(tǒng),包括:

      獲取模塊,適于獲取多組基礎(chǔ)單元測(cè)試代碼,其中,各組基礎(chǔ)單元測(cè)試代碼用于測(cè)試一個(gè)或多個(gè)軟件功能;

      構(gòu)建模塊,適于基于所述各組基礎(chǔ)單元測(cè)試代碼測(cè)試的一個(gè)或多個(gè)軟件功能,為所述各組基礎(chǔ)單元測(cè)試代碼構(gòu)建語(yǔ)法描述信息;

      分析模塊,適于當(dāng)存在待測(cè)試的源程序時(shí),獲取所述待測(cè)試的源程序并分析出所述待測(cè)試的源程序的語(yǔ)法特征;

      匹配模塊,適于將所述語(yǔ)法特征與構(gòu)建的所述語(yǔ)法描述信息進(jìn)行匹配,得到與所述語(yǔ)法特征匹配的語(yǔ)法描述信息對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼;

      測(cè)試模塊,適于利用匹配的語(yǔ)法描述信息對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼對(duì)所述待測(cè)試的源程序進(jìn)行測(cè)試,得到測(cè)試結(jié)果。

      可選地,所述獲取模塊還適于:

      從預(yù)先建立的基礎(chǔ)單元測(cè)試庫(kù)中獲取多組基礎(chǔ)單元測(cè)試代碼。

      可選地,所述裝置還包括建立模塊,適于通過(guò)以下步驟建立所述基礎(chǔ)單元測(cè)試庫(kù):

      獲取軟件相關(guān)文檔,并從中分析出各軟件功能以及各軟件功能之間的關(guān)系;

      分析并量化所述各軟件功能的測(cè)試標(biāo)準(zhǔn),并依據(jù)所述各軟件功能的測(cè)試標(biāo)準(zhǔn)設(shè)計(jì)各個(gè)軟件功能對(duì)應(yīng)的單元測(cè)試代碼,其中,所述測(cè)試標(biāo)準(zhǔn)指的是所述各個(gè)軟件功能對(duì)其所在系統(tǒng)的系統(tǒng)資源的使用情況;

      基于設(shè)計(jì)的各個(gè)軟件功能對(duì)應(yīng)的單元測(cè)試代碼建立所述基礎(chǔ)單元測(cè)試庫(kù)。

      可選地,所述建立模塊還適于:

      對(duì)所述單元測(cè)試代碼進(jìn)行分類,并得到分類后的多組基礎(chǔ)單元測(cè)試代碼,其中,所述每類單元測(cè)試代碼對(duì)應(yīng)一組基礎(chǔ)單元測(cè)試代碼;

      依據(jù)所述多組基礎(chǔ)單元測(cè)試代碼建立所述基礎(chǔ)單元測(cè)試庫(kù)。

      可選地,所述建立模塊還適于:

      依據(jù)各軟件功能的預(yù)設(shè)的測(cè)試標(biāo)準(zhǔn)對(duì)所述單元測(cè)試代碼進(jìn)行分類。

      可選地,所述分析模塊還適于:

      構(gòu)建單元測(cè)試識(shí)別器,并利用所述單元測(cè)試識(shí)別器分析識(shí)別出所述待測(cè)試的源程序的語(yǔ)法特征。

      可選地,所述待測(cè)試的源程序的語(yǔ)法特征包括以下至少之一:

      待測(cè)試的源程序中的變量、函數(shù)、流程控制結(jié)構(gòu)以及所述待測(cè)試的源程序所使用的系統(tǒng)資源。

      可選地,所述分析模塊還適于:

      對(duì)所述各組基礎(chǔ)單元測(cè)試代碼對(duì)應(yīng)的語(yǔ)法描述信息進(jìn)行組合,以生成語(yǔ)法描述文件;

      依據(jù)所述語(yǔ)法描述文件構(gòu)建狀態(tài)機(jī)模型,并利用所述狀態(tài)機(jī)模型構(gòu)建出所述單元測(cè)試識(shí)別器。

      可選地,所述裝置還包括判斷模塊,適于:在所述測(cè)試模塊中測(cè)試得到測(cè)試結(jié)果之后,對(duì)所述測(cè)試結(jié)果進(jìn)行分析,并依據(jù)分析結(jié)果判斷所述待測(cè)試的源程序中是否存在未被測(cè)試的程序部分,若是,則生成提示信息并輸出。

      在本發(fā)明實(shí)施例中,首先獲取多組基礎(chǔ)單元測(cè)試代碼,然后基于各組基礎(chǔ)單元測(cè)試代碼測(cè)試的一個(gè)或多個(gè)軟件功能,為各組基礎(chǔ)單元測(cè)試代碼構(gòu)建語(yǔ)法描述信息。當(dāng)存在待測(cè)試的源程序時(shí),獲取待測(cè)試的源程序并分析出待測(cè)試的源程序的語(yǔ)法特征,并將語(yǔ)法特征與各組基礎(chǔ)單元測(cè)試代碼對(duì)應(yīng)的語(yǔ)法描述信息進(jìn)行匹配,從而匹配得到與語(yǔ)法特征一致的語(yǔ)法描述信息,進(jìn)而利用匹配得到的語(yǔ)法描述信息對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼對(duì)待測(cè)試的源程序進(jìn)行測(cè)試,以得到測(cè)試結(jié)果。由此,在本發(fā)明實(shí)施例中,當(dāng)存在待測(cè)試的源程序時(shí),若待測(cè)試的源程序中存在與基礎(chǔ)單元測(cè)試代碼的語(yǔ)法描述信息相匹配的語(yǔ)法特征,則可以無(wú)需測(cè)試人員重新編寫測(cè)試程序,只需根據(jù)匹配結(jié)果,從已經(jīng)準(zhǔn)備好的多組基礎(chǔ)單元測(cè)試代碼中調(diào)取相應(yīng)的基礎(chǔ)單元測(cè)試代碼,從而可以利用該調(diào)用的基礎(chǔ)單元測(cè)試代碼對(duì)待測(cè)試的源程序進(jìn)行測(cè)試,進(jìn)而不僅提高了已編寫好的基礎(chǔ)單元測(cè)試代碼的使用率,還減少了測(cè)試人員重復(fù)編寫、修改單元測(cè)試代碼的步驟。

      進(jìn)一步地,由于可以通過(guò)匹配并直接利用已有的基礎(chǔ)單元測(cè)試代碼對(duì)待測(cè)試的源程序進(jìn)行測(cè)試,從而減少了測(cè)試人員編寫測(cè)試代碼的步驟,并提高了對(duì)待測(cè)試的源程序進(jìn)行測(cè)試的效率,進(jìn)而有助于提高軟件的開發(fā)效率。

      上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。

      根據(jù)下文結(jié)合附圖對(duì)本發(fā)明具體實(shí)施例的詳細(xì)描述,本領(lǐng)域技術(shù)人員將會(huì)更加明了本發(fā)明的上述以及其他目的、優(yōu)點(diǎn)和特征。

      附圖說(shuō)明

      通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:

      圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的軟件測(cè)試方法流程示意圖;

      圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的網(wǎng)絡(luò)測(cè)試具體用例示意圖;

      圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的單元測(cè)試識(shí)別器對(duì)待測(cè)試的源程序的識(shí)別過(guò)程示意圖;

      圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的建立基礎(chǔ)單元測(cè)試庫(kù)的方法的流程示意圖;

      圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的語(yǔ)法描述文件的示意圖;

      圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的利用圖5所示的語(yǔ)法描述文件對(duì)待測(cè)試的程序進(jìn)行識(shí)別后的識(shí)別結(jié)果的示意圖;

      圖7示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的軟件測(cè)試裝置的結(jié)構(gòu)示意圖;以及

      圖8示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的軟件測(cè)試裝置的結(jié)構(gòu)示意圖。

      具體實(shí)施方式

      下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

      為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種軟件測(cè)試方法。該方法可以應(yīng)用于多種軟件,如聊天軟件(QQ、微信等)、辦公軟件(office軟件等)、以及娛樂(lè)購(gòu)物軟件(愛(ài)奇藝、天貓等)等等,圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的軟件測(cè)試方法的流程示意圖。參見圖1,該方法至少包括步驟S102至步驟S110。

      步驟S102,獲取多組基礎(chǔ)單元測(cè)試代碼,其中,各組基礎(chǔ)單元測(cè)試代碼用于測(cè)試一個(gè)或多個(gè)軟件功能。

      在該實(shí)施例中,測(cè)試軟件功能可以包括對(duì)軟件的網(wǎng)絡(luò)功能測(cè)試,如圖2所示的網(wǎng)絡(luò)測(cè)試具體用例可以包括測(cè)試網(wǎng)絡(luò)地址和端口、網(wǎng)絡(luò)傳輸使用的協(xié)議棧、網(wǎng)絡(luò)傳輸過(guò)程中的報(bào)文大小、單位時(shí)間內(nèi)網(wǎng)絡(luò)吞吐量、已經(jīng)網(wǎng)絡(luò)故障時(shí)的錯(cuò)誤、異常處理等。本發(fā)明實(shí)施例對(duì)測(cè)試的軟件功能不做具體限定。

      步驟S104,基于各組基礎(chǔ)單元測(cè)試代碼測(cè)試的一個(gè)或多個(gè)軟件功能,為各組基礎(chǔ)單元測(cè)試代碼構(gòu)建語(yǔ)法描述信息。

      在該實(shí)施例中,語(yǔ)法描述信息用于標(biāo)識(shí)、描述軟件功能的特征,例如,采用“bind”代表軟件功能為網(wǎng)絡(luò)地址和端口。其中,語(yǔ)法描述信息還可以依據(jù)語(yǔ)法樹結(jié)構(gòu)對(duì)軟件的功能進(jìn)行描述,從而使得語(yǔ)法描述信息對(duì)軟件功能的描述更加清楚、直觀。此處提及的語(yǔ)法樹是句子結(jié)構(gòu)的圖形表示,它代表了句子的推導(dǎo)結(jié)果,有利于理解句子語(yǔ)法結(jié)構(gòu)的層次。簡(jiǎn)單說(shuō),語(yǔ)法樹就是按照某一規(guī)則進(jìn)行推導(dǎo)時(shí)所形成的樹。

      步驟S106,當(dāng)存在待測(cè)試的源程序時(shí),獲取待測(cè)試的源程序并分析出待測(cè)試的源程序的語(yǔ)法特征。

      在該實(shí)施例中,待測(cè)試的源程序的語(yǔ)法特征可以包括待測(cè)試的源程序中的變量、函數(shù)、流程控制結(jié)構(gòu)以及待測(cè)試的源程序所使用的系統(tǒng)資源等。其中,系統(tǒng)資源可以包括,CPU資源、內(nèi)存資源、磁盤資源、網(wǎng)絡(luò)設(shè)備資源、以及外圍設(shè)備資源等。

      步驟S108,將語(yǔ)法特征與構(gòu)建的語(yǔ)法描述信息進(jìn)行匹配,得到與語(yǔ)法特征匹配的語(yǔ)法描述信息對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼。

      在該實(shí)施例中,通過(guò)將待測(cè)試的源程序的語(yǔ)法特征與各組基礎(chǔ)單元測(cè)試代碼對(duì)應(yīng)的語(yǔ)法描述信息進(jìn)行匹配,可以得到與待測(cè)試的源程序的語(yǔ)法特征相匹配的語(yǔ)法描述信息。

      步驟S110,利用匹配的語(yǔ)法描述信息對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼對(duì)待測(cè)試的源程序進(jìn)行測(cè)試,得到測(cè)試結(jié)果。

      當(dāng)匹配得出與待測(cè)試的源程序的語(yǔ)法特征相匹配的語(yǔ)法描述信息時(shí),可以從獲取的多組基礎(chǔ)單元測(cè)試代碼中查找出與語(yǔ)法描述信息相對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼,從而利用查找到的基礎(chǔ)單元測(cè)試代碼對(duì)待測(cè)試的源程序進(jìn)行測(cè)試。

      參見上文步驟S102,在本發(fā)明一實(shí)施例中,當(dāng)需要獲取多組基礎(chǔ)單元測(cè)試代碼時(shí),可以從預(yù)先建立的基礎(chǔ)單元測(cè)試庫(kù)中獲取多組基礎(chǔ)單元測(cè)試代碼,該預(yù)先建立的基礎(chǔ)單元測(cè)試庫(kù)中預(yù)先保存了多組基礎(chǔ)單元測(cè)試代碼。

      參見上文步驟S106,在本發(fā)明一實(shí)施例中,還可以通過(guò)構(gòu)建單元測(cè)試識(shí)別器,以利用單元測(cè)試識(shí)別器分析并識(shí)別出待測(cè)試的源程序的語(yǔ)法特征。其中,該實(shí)施例中的單元測(cè)試識(shí)別器可以由程序來(lái)實(shí)現(xiàn)。具體的,對(duì)單元測(cè)試識(shí)別器的構(gòu)建過(guò)程可以是,對(duì)各組基礎(chǔ)單元測(cè)試代碼對(duì)應(yīng)的語(yǔ)法描述信息進(jìn)行組合,以生成語(yǔ)法描述文件,進(jìn)而依據(jù)語(yǔ)法描述文件構(gòu)建狀態(tài)機(jī)模型,并利用狀態(tài)機(jī)模型構(gòu)建出單元測(cè)試識(shí)別器。例如,可以使用Bison(語(yǔ)法分析器生成器)將語(yǔ)法描述文件翻譯成對(duì)應(yīng)的狀態(tài)機(jī)模型,進(jìn)而對(duì)該狀態(tài)機(jī)模型進(jìn)行編譯,以構(gòu)建出單元測(cè)試識(shí)別器。參見圖3,是單元測(cè)試識(shí)別器對(duì)待測(cè)的源程序的識(shí)別過(guò)程示意圖,由語(yǔ)法描述文件構(gòu)建單元測(cè)試識(shí)別器,單元測(cè)試識(shí)別器對(duì)待測(cè)試的源程序進(jìn)行分析識(shí)別,以得到識(shí)別結(jié)果,識(shí)別結(jié)果可以是識(shí)別得到待測(cè)的源程序中的變量、函數(shù)、流程控制結(jié)構(gòu)等語(yǔ)法特征。

      參見上文步驟S110,在本發(fā)明一實(shí)施例中,在利用匹配得到語(yǔ)法描述信息對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼對(duì)待測(cè)試的源程序進(jìn)行測(cè)試之前,還可以先建立虛擬化測(cè)試環(huán)境,從而在建立的虛擬化測(cè)試環(huán)境中,利用匹配得到語(yǔ)法描述信息對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼對(duì)待測(cè)試的源程序進(jìn)行測(cè)試。該實(shí)施例中的虛擬化測(cè)試環(huán)境可以是基于Linux系統(tǒng)的Mock虛擬化環(huán)境,在Mock虛擬化環(huán)境中運(yùn)行待測(cè)試的源程序和基礎(chǔ)單元測(cè)試代碼,以實(shí)現(xiàn)對(duì)待測(cè)試的源程序的測(cè)試。

      在本發(fā)明一實(shí)施例中,在上文步驟S110中得到測(cè)試結(jié)果之后,為了確保待測(cè)試的源程序能夠被完全測(cè)試,還可以對(duì)測(cè)試結(jié)果進(jìn)行分析,并依據(jù)分析結(jié)果判斷待測(cè)程序中是否存在未被測(cè)試的程序部分,其中,對(duì)測(cè)試結(jié)果的分析可以依據(jù)待測(cè)試的源程序的符號(hào)表信息。在計(jì)算機(jī)領(lǐng)域中,符號(hào)表是一種用于語(yǔ)言翻譯器(例如編譯器和解釋器)中的數(shù)據(jù)結(jié)構(gòu)。在符號(hào)表中,程序源代碼中的每個(gè)標(biāo)識(shí)符都和它的聲明或使用信息綁定在一起,比如數(shù)據(jù)類型、作用域以及內(nèi)存地址等。

      對(duì)測(cè)試結(jié)果的具體分析過(guò)程可以是,首先,獲取待測(cè)試的源程序?qū)?yīng)的符號(hào)表信息和待測(cè)試的源程序中已被測(cè)試的程序部分對(duì)應(yīng)的符號(hào)表信息,然后,比對(duì)待測(cè)試的源程序?qū)?yīng)的符號(hào)表信息和待測(cè)試的源程序中已被測(cè)試的程序部分對(duì)應(yīng)的符號(hào)表信息,若比對(duì)不一致,則表明待測(cè)試的源程序中存在未被測(cè)試的程序部分。若存在未被測(cè)試的程序部分,則分析出未被測(cè)試的程序部分,從而生成相應(yīng)的提示信息并輸出。該實(shí)施例中,提示消息可以以通知報(bào)告、聲音、文字等形式輸出,以對(duì)測(cè)試人員或者測(cè)試系統(tǒng)發(fā)出提醒。從而,可以依據(jù)提醒消息進(jìn)一步地對(duì)基礎(chǔ)單元測(cè)試庫(kù)進(jìn)行不斷的完善。另外,若比對(duì)一致,則表明已經(jīng)完成對(duì)待測(cè)試的源程序的測(cè)試。

      參見圖4,在本發(fā)明一實(shí)施例中,還提供了一種建立基礎(chǔ)單元測(cè)試庫(kù)的方法,具體的實(shí)現(xiàn)步驟如下:

      步驟S402,獲取軟件相關(guān)文檔,并從中分析出各軟件功能以及各軟件功能之間的關(guān)系。

      在該實(shí)施例中,軟件相關(guān)文檔可以包括軟件需求文檔、軟件概要設(shè)計(jì)文檔以及軟件詳細(xì)設(shè)計(jì)文檔等。在分析各軟件功能以及各軟件功能之間的關(guān)系時(shí),首先,可以分析軟件需求文檔中描述軟件最終要實(shí)現(xiàn)的目標(biāo)以及預(yù)期結(jié)果,并進(jìn)一步依據(jù)實(shí)現(xiàn)目標(biāo)以及預(yù)期結(jié)果分析各個(gè)軟件功能之間的目標(biāo)以及預(yù)期結(jié)果是否存在:沖突、冗余、缺少等關(guān)系。然后,可以分析軟件概要設(shè)計(jì)文檔,從中分析出各個(gè)軟件功能以及各軟件功能之間的層次關(guān)系,并構(gòu)建出相應(yīng)的軟件功能層次結(jié)構(gòu)圖。

      步驟S404,分析并量化各軟件功能的測(cè)試標(biāo)準(zhǔn),并依據(jù)各軟件功能的測(cè)試標(biāo)準(zhǔn)設(shè)計(jì)各個(gè)軟件功能對(duì)應(yīng)的單元測(cè)試代碼,其中,測(cè)試標(biāo)準(zhǔn)指的是各個(gè)軟件功能對(duì)其所在系統(tǒng)的系統(tǒng)資源的使用情況。

      在該實(shí)施例中,可以依據(jù)上文步驟S402中獲取的軟件詳細(xì)設(shè)計(jì)文檔對(duì)分析出的每個(gè)軟件功能進(jìn)行測(cè)試標(biāo)準(zhǔn)的量化,進(jìn)而依據(jù)測(cè)試標(biāo)準(zhǔn)設(shè)計(jì)出用于測(cè)試各個(gè)軟件功能的測(cè)試用例和具體的單元測(cè)試代碼。其中,測(cè)試用例是測(cè)試人員進(jìn)行測(cè)試操作的依據(jù),它定義了測(cè)試的前提、測(cè)試環(huán)境、測(cè)試步驟、測(cè)試預(yù)期結(jié)果等要素,測(cè)試人員主要根據(jù)它來(lái)進(jìn)行測(cè)試。

      在該實(shí)施例中,系統(tǒng)資源可以包括,CPU資源、內(nèi)存資源、磁盤資源、網(wǎng)絡(luò)設(shè)備資源、以及外圍設(shè)備資源等,通過(guò)對(duì)這些資源的利用情況設(shè)定合理的范圍,可以評(píng)估測(cè)試結(jié)果的合理性,從而對(duì)測(cè)試的結(jié)果進(jìn)行分析提供依據(jù)。

      步驟S406,基于設(shè)計(jì)的各個(gè)軟件功能對(duì)應(yīng)的單元測(cè)試代碼建立基礎(chǔ)單元測(cè)試庫(kù)。

      在該步驟中,在基于設(shè)計(jì)的各個(gè)軟件功能對(duì)應(yīng)的單元測(cè)試代碼建立基礎(chǔ)單元測(cè)試庫(kù)的時(shí)候,可以先對(duì)單元測(cè)試代碼進(jìn)行分類,從而有分類、有層次、有組織地構(gòu)建出多組基礎(chǔ)單元測(cè)試代碼。然后依據(jù)多組基礎(chǔ)單元測(cè)試代碼建立基礎(chǔ)單元測(cè)試庫(kù)。在該實(shí)施例中,每類單元測(cè)試代碼對(duì)應(yīng)一組基礎(chǔ)單元測(cè)試代碼。其中,對(duì)單元測(cè)試代碼進(jìn)行分類時(shí),可以依據(jù)各軟件功能的預(yù)設(shè)的測(cè)試標(biāo)準(zhǔn)對(duì)單元測(cè)試代碼進(jìn)行分類。

      參見上文步驟S406,在本發(fā)明一實(shí)施例中,當(dāng)軟件產(chǎn)生新的功能或者現(xiàn)有的功能有所更新時(shí),采用上文步驟S402至步驟S404設(shè)計(jì)出新的單元測(cè)試代碼,進(jìn)而對(duì)新的單元測(cè)試代碼分類后得到新的基礎(chǔ)單元測(cè)試代碼之后,還可以將新產(chǎn)生的基礎(chǔ)單元測(cè)試代碼保存在基礎(chǔ)單元測(cè)試庫(kù)中,以備后續(xù)調(diào)取使用。

      為了更加清楚地體現(xiàn)本發(fā)明實(shí)施例的方案,現(xiàn)以一個(gè)具體場(chǎng)景下的實(shí)施例對(duì)本發(fā)明進(jìn)行介紹。在該實(shí)施例中,以對(duì)軟件的網(wǎng)絡(luò)地址和端口測(cè)試的程序?yàn)榇郎y(cè)試的源程序?yàn)槔M(jìn)行說(shuō)明,其中,語(yǔ)法描述信息中包含“bind”,且代表軟件功能為網(wǎng)絡(luò)地址和端口。

      當(dāng)依據(jù)上文實(shí)例的方法構(gòu)建基礎(chǔ)單元測(cè)試庫(kù),以及構(gòu)建完成如圖5中所示語(yǔ)法描述文件之后,繼而依據(jù)語(yǔ)法描述文件構(gòu)建狀態(tài)機(jī)模型,并利用狀態(tài)機(jī)模型構(gòu)建出單元測(cè)試識(shí)別器,當(dāng)構(gòu)建出單元測(cè)試識(shí)別器之后,利用單元測(cè)試識(shí)別器對(duì)待測(cè)試的源程序進(jìn)行識(shí)別以得到識(shí)別結(jié)果,利用圖5所示的語(yǔ)法描述文件對(duì)待測(cè)試的源程序進(jìn)行識(shí)別后,得到的識(shí)別結(jié)果是如圖6所示語(yǔ)法樹中展示出來(lái)的內(nèi)容,從中整合出最終的語(yǔ)法特征為如下函數(shù)調(diào)用語(yǔ)句:return_val=bind(server_sockfd,server_sockaddr,sizeof_server_sockaddr);通過(guò)分析發(fā)現(xiàn),在該函數(shù)調(diào)用語(yǔ)句中包含有“bind”,由于在語(yǔ)法描述信息中“bind”代表軟件功能為網(wǎng)絡(luò)地址和端口,因此,根據(jù)該識(shí)別的“bind”函數(shù),從基礎(chǔ)單元測(cè)試庫(kù)中調(diào)用與語(yǔ)法描述信息為“bind”函數(shù)相對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼,進(jìn)而依據(jù)該基礎(chǔ)單元測(cè)試代碼對(duì)待測(cè)試的源程序進(jìn)行測(cè)試,以得到測(cè)試結(jié)果。

      基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供了一種軟件測(cè)試系統(tǒng),圖7示出了根據(jù)本發(fā)明一實(shí)施例的軟件測(cè)試系統(tǒng)的結(jié)構(gòu)示意圖。參見圖7,軟件測(cè)試系統(tǒng)700至少可以包括獲取模塊710、構(gòu)建模塊720、分析模塊730、匹配模塊740以及測(cè)試模塊750。

      現(xiàn)介紹本發(fā)明實(shí)施例的軟件測(cè)試系統(tǒng)700的各組成或器件的功能以及各部分間的連接關(guān)系:

      獲取模塊710,適于獲取多組基礎(chǔ)單元測(cè)試代碼,其中,各組基礎(chǔ)單元測(cè)試代碼用于測(cè)試一個(gè)或多個(gè)軟件功能;

      構(gòu)建模塊720,與獲取模塊710相耦合,適于基于各組基礎(chǔ)單元測(cè)試代碼測(cè)試的一個(gè)或多個(gè)軟件功能,為各組基礎(chǔ)單元測(cè)試代碼構(gòu)建語(yǔ)法描述信息;

      分析模塊730,與構(gòu)建模塊720相耦合,適于當(dāng)存在待測(cè)試的源程序時(shí),獲取待測(cè)試的源程序并分析出待測(cè)試的源程序的語(yǔ)法特征;

      匹配模塊740,與分析模塊730相耦合,適于將語(yǔ)法特征與構(gòu)建的語(yǔ)法描述信息進(jìn)行匹配,得到與語(yǔ)法特征匹配的語(yǔ)法描述信息對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼;

      測(cè)試模塊750,與匹配模塊740相耦合,適于利用匹配的語(yǔ)法描述信息對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼對(duì)待測(cè)試的源程序進(jìn)行測(cè)試,得到測(cè)試結(jié)果。

      在本發(fā)明一實(shí)施例中,獲取模塊710還適于,從預(yù)先建立的基礎(chǔ)單元測(cè)試庫(kù)中獲取多組基礎(chǔ)單元測(cè)試代碼。

      本發(fā)明實(shí)施例還提供了一種軟件測(cè)試系統(tǒng),圖8示出了根據(jù)本發(fā)明另一實(shí)施例的軟件測(cè)試系統(tǒng)的結(jié)構(gòu)示意圖。參見圖8,軟件測(cè)試系統(tǒng)除800了包括上文實(shí)施例中的軟件測(cè)試系統(tǒng)700中提及的各個(gè)模塊之外,還可以包括建立模塊810和判斷模塊820。

      建立模塊810,與獲取模塊710相耦合,適于通過(guò)以下步驟建立基礎(chǔ)單元測(cè)試庫(kù):首先,獲取軟件相關(guān)文檔,并從中分析出各軟件功能以及各軟件功能之間的關(guān)系。然后,分析并量化各軟件功能的測(cè)試標(biāo)準(zhǔn),并依據(jù)各軟件功能的測(cè)試標(biāo)準(zhǔn)設(shè)計(jì)各個(gè)軟件功能對(duì)應(yīng)的單元測(cè)試代碼,其中,測(cè)試標(biāo)準(zhǔn)指的是各個(gè)軟件功能對(duì)其所在系統(tǒng)的系統(tǒng)資源的使用情況。最后,基于設(shè)計(jì)的各個(gè)軟件功能對(duì)應(yīng)的單元測(cè)試代碼建立基礎(chǔ)單元測(cè)試庫(kù)。

      判斷模塊820,與測(cè)試模塊750相耦合,適于在測(cè)試模塊中測(cè)試得到測(cè)試結(jié)果之后,對(duì)測(cè)試結(jié)果進(jìn)行分析,并依據(jù)分析結(jié)果判斷待測(cè)試的源程序中是否存在未被測(cè)試的程序部分,若是,則生成提示信息并輸出。

      在本發(fā)明一實(shí)施例中,建立模塊810還適于,對(duì)單元測(cè)試代碼進(jìn)行分類,并得到分類后的多組基礎(chǔ)單元測(cè)試代碼,其中,每類單元測(cè)試代碼對(duì)應(yīng)一組基礎(chǔ)單元測(cè)試代碼,并依據(jù)多組基礎(chǔ)單元測(cè)試代碼建立基礎(chǔ)單元測(cè)試庫(kù)。

      在本發(fā)明一實(shí)施例中,建立模塊810還適于,依據(jù)各軟件功能的預(yù)設(shè)的測(cè)試標(biāo)準(zhǔn)對(duì)單元測(cè)試代碼進(jìn)行分類。

      在本發(fā)明一實(shí)施例中,分析模塊730還適于,構(gòu)建單元測(cè)試識(shí)別器,并利用單元測(cè)試識(shí)別器分析識(shí)別出待測(cè)試的源程序的語(yǔ)法特征。

      在本發(fā)明一實(shí)施例中,待測(cè)試的源程序的語(yǔ)法特征包括以下至少之一,待測(cè)試的源程序中的變量、函數(shù)、流程控制結(jié)構(gòu)以及待測(cè)試的源程序所使用的系統(tǒng)資源。

      在本發(fā)明一實(shí)施例中,分析模塊730還適于,首先對(duì)各組基礎(chǔ)單元測(cè)試代碼對(duì)應(yīng)的語(yǔ)法描述信息進(jìn)行組合,以生成語(yǔ)法描述文件,然后,依據(jù)語(yǔ)法描述文件構(gòu)建狀態(tài)機(jī)模型,并利用狀態(tài)機(jī)模型構(gòu)建出單元測(cè)試識(shí)別器。

      根據(jù)上述任意一個(gè)優(yōu)選實(shí)施例或多個(gè)優(yōu)選實(shí)施例的組合,本發(fā)明實(shí)施例能夠達(dá)到如下有益效果:

      在本發(fā)明實(shí)施例中,首先獲取多組基礎(chǔ)單元測(cè)試代碼,然后基于各組基礎(chǔ)單元測(cè)試代碼測(cè)試的一個(gè)或多個(gè)軟件功能,為各組基礎(chǔ)單元測(cè)試代碼構(gòu)建語(yǔ)法描述信息。當(dāng)存在待測(cè)試的源程序時(shí),獲取待測(cè)試的源程序并分析出待測(cè)試的源程序的語(yǔ)法特征,并將語(yǔ)法特征與各組基礎(chǔ)單元測(cè)試代碼對(duì)應(yīng)的語(yǔ)法描述信息進(jìn)行匹配,從而匹配得到與語(yǔ)法特征一致的語(yǔ)法描述信息,進(jìn)而利用匹配得到的語(yǔ)法描述信息對(duì)應(yīng)的基礎(chǔ)單元測(cè)試代碼對(duì)待測(cè)試的源程序進(jìn)行測(cè)試,以得到測(cè)試結(jié)果。由此,在本發(fā)明實(shí)施例中,當(dāng)存在待測(cè)試的源程序時(shí),若待測(cè)試的源程序中存在與基礎(chǔ)單元測(cè)試代碼的語(yǔ)法描述信息相匹配的語(yǔ)法特征,則可以無(wú)需測(cè)試人員重新編寫測(cè)試程序,只需根據(jù)匹配結(jié)果,從已經(jīng)準(zhǔn)備好的多組基礎(chǔ)單元測(cè)試代碼中調(diào)取相應(yīng)的基礎(chǔ)單元測(cè)試代碼,從而可以利用該調(diào)用的基礎(chǔ)單元測(cè)試代碼對(duì)待測(cè)試的源程序進(jìn)行測(cè)試,進(jìn)而不僅提高了已編寫好的基礎(chǔ)單元測(cè)試代碼的使用率,還減少了測(cè)試人員重復(fù)編寫、修改單元測(cè)試代碼的步驟。

      進(jìn)一步地,由于可以通過(guò)匹配并直接利用已有的基礎(chǔ)單元測(cè)試代碼對(duì)待測(cè)試的源程序進(jìn)行測(cè)試,從而減少了測(cè)試人員編寫測(cè)試代碼的步驟,并提高了對(duì)待測(cè)試的源程序進(jìn)行測(cè)試的效率,進(jìn)而有助于提高軟件的開發(fā)效率。

      在此處所提供的說(shuō)明書中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書的理解。

      類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。

      本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來(lái)代替。

      此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。

      本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的軟件測(cè)試系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。

      應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。

      至此,本領(lǐng)域技術(shù)人員應(yīng)認(rèn)識(shí)到,雖然本文已詳盡示出和描述了本發(fā)明的多個(gè)示例性實(shí)施例,但是,在不脫離本發(fā)明精神和范圍的情況下,仍可根據(jù)本發(fā)明公開的內(nèi)容直接確定或推導(dǎo)出符合本發(fā)明原理的許多其他變型或修改。因此,本發(fā)明的范圍應(yīng)被理解和認(rèn)定為覆蓋了所有這些其他變型或修改。

      當(dāng)前第1頁(yè)1 2 3 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1