專利名稱:軟件缺陷植入方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件測試技術(shù),尤其涉及通過植入缺陷測試軟件的技術(shù)。
背景技術(shù):
隨著電子設(shè)備(如計算機等)的應用范圍變得日益廣泛,電子設(shè)備硬件平臺上的軟件也變得越來越復雜。在電子設(shè)備的使用中,造成這些軟件出錯的原因大部分來自于軟件自身。因此業(yè)界一般都會對軟件進行可靠性測試,這種可靠性測試的方法之一是缺陷植入技術(shù)。常規(guī)的軟件植入專注于制造精確的比特極錯誤且依賴于強大的硬件平臺。受到經(jīng)濟性的制約,硬件平臺本身無法確保不產(chǎn)生錯誤而軟件設(shè)計及缺陷測試中也只是假設(shè)硬件不出錯??偠灾R?guī)缺陷植入技術(shù)過份依賴硬件平臺,而硬件平臺具有實現(xiàn)成本過高等缺陷。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種向軟件植入缺陷的方法,以有效解決以上及其它問題。該軟件缺陷植入方法包括設(shè)置與已有函數(shù)集相對應的測試函數(shù)集,所述測試函數(shù)集中的函數(shù)與已有函數(shù)集中的函數(shù)一一對應;生成用于指示向所述軟件載入所述已有函數(shù)集中的函數(shù)還是所述測試函數(shù)集中的函數(shù)的控制位圖,所述控制位圖包括與已有函數(shù)集中的函數(shù)數(shù)量相當?shù)目刂莆唬宜隹刂莆慌c所述已有函數(shù)集中的函數(shù)一一對應;以及根據(jù)所述控制位圖中控制位的每個位的值向所述軟件載入已有函數(shù)集或測試函數(shù)集的函數(shù)。優(yōu)選地,本發(fā)明所述的軟件缺陷植入方法還包括檢測控制位圖中控制位的第i個位的值,判斷所述第i個位的值是第一值還是第二值,在判斷所述第i個位的值是第一值的情況下,將所述已有函數(shù)集中與所述第i個位對應的函數(shù)載入所述軟件,在判斷所述第i個位的值是第二值的情況下,將與所述已有函數(shù)集中與所述第i個位對應的函數(shù)相對應的測試函數(shù)集中的函數(shù)載入所述軟件,其中,i為整數(shù),優(yōu)選> O的整數(shù)。優(yōu)選地,所述控制位的每一位由一個bit構(gòu)成;且優(yōu)選所述第一值為I而所述第二值為0,作為替代,也可以是所述第一值為O而所述第二值為I??蛇x地,所述控制位的每一位由若干bit構(gòu)成。本發(fā)明還提供一種軟件缺陷率獲得方法,該方法包括預先按照上述方法向軟件植入缺陷,發(fā)現(xiàn)軟件中的缺陷,以及將所發(fā)現(xiàn)的軟件中的缺陷的數(shù)量與通過所述控制位圖的控制位所獲得的載入所述軟件的測試函數(shù)集中的測試函數(shù)的數(shù)量相比較。本發(fā)明還提供一種軟件缺陷植入系統(tǒng),該系統(tǒng)包括測試函數(shù)集生成模塊,用以生成與已有函數(shù)集相對應的測試函數(shù)集,所述測試函數(shù)集中的函數(shù)與已有函數(shù)集中的函數(shù)一一對應;控制位圖生成模塊,用以生成指示向所述軟件載入所述已有函數(shù)集中的函數(shù)還是所述測試函數(shù)集中的函數(shù)的控制位圖,所述控制位圖包括與已有函數(shù)集中的函數(shù)數(shù)量相當?shù)目刂莆?,且所述控制位與所述已有函數(shù)集中的函數(shù)一一對應;以及載入模塊,用以根據(jù)所述控制位圖中控制位的每個位的值向所述軟件載入已有函數(shù)集或測試函數(shù)集的函數(shù)。
優(yōu)選地,本發(fā)明所述的系統(tǒng)還包括用于檢測控制位圖中控制位的第i個位的值并判斷所述第i個位的值是第一值還是第二值的判斷模塊,其中,所述判斷模塊將判斷結(jié)果傳送給所述載入模塊,所述載入模塊在所述第i個位的值是第一值的情況下,將所述已有函數(shù)集中與所述第i個位對應的函數(shù)載入所述軟件,在判斷所述第i個位的值是第二值的情況下,將與所述已有函數(shù)集中與所述第i個位對應的函數(shù)相對應的測試函數(shù)集中的函數(shù)載入所述軟件;其中i為自然數(shù)。優(yōu)選地,所述控制位圖生成模塊生成的控制位圖中,每一個控制位由一個bit構(gòu)成;更優(yōu)選地,所述第一值為I而所述第二值為0,作為替代,也可以是所述第一值為O而所述第二值為I。可替代地,所述控制位的每一位由若干bit構(gòu)成。本發(fā)明還提供一種軟件缺陷率獲得系統(tǒng),所述系統(tǒng)包括如上所述的軟件缺陷植入系統(tǒng),用于發(fā)現(xiàn)所述軟件中的缺陷的測試模塊,以及用于將測試模塊所發(fā)現(xiàn)的軟件中缺陷的數(shù)量與通過控制位圖的控制位所獲得的載入所述軟件的測試函數(shù)集中的測試函數(shù)的數(shù)量相比較的計算單元。本發(fā)明所述的軟件缺陷植入方法及系統(tǒng)應用靈活,且可方便地獲得缺陷發(fā)現(xiàn)率。
圖1是本發(fā)明所述的軟件缺陷植入方法的流程圖。圖2示意出了控制位圖的一個示例。圖3是根據(jù)本發(fā)明所述的軟件缺陷植入系統(tǒng)。圖4是利用本發(fā)明所述的缺陷植入系統(tǒng)執(zhí)行本發(fā)明所述的缺陷植入方法的一個具體示例。圖5是圖4所示的具體示例中控制位圖的示意圖。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點更加明顯易懂,以下結(jié)合附圖和具體實施方式
,進一步詳細說明本發(fā)明。圖1是本發(fā)明所述的軟件缺陷植入方法的流程圖。如圖所示,在步驟10,設(shè)置與已有函數(shù)集相對應的測試函數(shù)集,測試函數(shù)集中的函數(shù)與已有函數(shù)集中的函數(shù)一一對應。在步驟12,生成控制位圖,該控制位圖指示向軟件載入已有函數(shù)集中的函數(shù)還是測試函數(shù)集中的函數(shù),控制位圖包括與已有函數(shù)集中的函數(shù)數(shù)量相當?shù)目刂莆唬铱刂莆慌c已有函數(shù)集中的函數(shù)一一對應。在步驟13,根據(jù)所述控制位圖中控制位的每個位的值向所述軟件載入已有函數(shù)集中的函數(shù)或測試函數(shù)集中的函數(shù)。已有函數(shù)集可以是函數(shù)庫,在該函數(shù)庫中包括若干個該軟件可用的函數(shù)。在步驟10中所設(shè)置的測試函數(shù),也可以是一個函數(shù)庫,而該函數(shù)庫中的函數(shù)同樣可以由該軟件所用。根據(jù)本發(fā)明,測試函數(shù)集中的函數(shù)的數(shù)目與已有函數(shù)集中函數(shù)的數(shù)據(jù)相同,且測試函數(shù)集的每一個函數(shù)都與已有函數(shù)集中的一個函數(shù)相對應。作為示例,測試函數(shù)集中的函數(shù)是以已有函數(shù)集中的函數(shù)作為基礎(chǔ)所做的變型,測試函數(shù)集中的函數(shù)與相對應的已有函數(shù)集中的函數(shù)具有同樣的函數(shù)名和形參。控制位圖是動態(tài)生成的,也就是說,控制位圖是可變的。作為示例,控制位圖中的每一控制位的值都是隨機生成的??刂莆粓D中控制位的數(shù)量與已有函數(shù)集中的函數(shù)的數(shù)量相當,也就與測試函數(shù)集中的函數(shù)的數(shù)量相當;同樣,控制位圖中控制位與已有函數(shù)集中的函數(shù)一一對應,也就與測試函數(shù)集中的函數(shù)一一對應??刂莆粓D中控制位的每個位的值指示出要向軟件植入已有函數(shù)集中的函數(shù)還是植入測試函數(shù)集中的函數(shù)。作為示例,控制位圖中每個控制位的值可以是第一值或第二值,其中第一值表明向所述軟件載入已有函數(shù)集中的函數(shù),第二值表明向所述軟件載入測試函數(shù)集中的函數(shù)。圖2示意出了控制位圖的一個示例。在圖2的示例中,控制位圖包括與函數(shù)集中函數(shù)數(shù)目相當?shù)腘個控制位。在該例中,每一個控制位為一個bit,且第一值為I,第二值為
O。該控制位圖是隨機生成的。圖中,第一位20為I表明已有函數(shù)集中與該位對應的函數(shù)將被載入軟件,第二位21為O表明已有函數(shù)集中與該位對應的函數(shù)不載入軟件,而是載入測試函數(shù)集中與該位對應的測試函數(shù)(如上文所述,因控制位圖中的控制位與已有函數(shù)集
中的函數(shù)--對應,因此也與測試函數(shù)集中的函數(shù)--對應)。作為通用的示例,控制位中
第i位23為1,則表明已有函數(shù)集中與該位對應的函數(shù)將被載入軟件,為O則表明測試函數(shù)集中與該位對應的測試函數(shù)將被載入軟件。如此,便將有缺陷的測試函數(shù)隨機地載入到軟件中。需要說明的是,圖2的示例僅是控制位圖一種形式的示例,控制位圖也可被實現(xiàn)為其它的形式,例如:控制位圖中每個控制位由2個bit構(gòu)成,在第一值為I而第二值為O的情況下,如果要實現(xiàn)和圖2所示意的控制位圖同樣的控制方式,則控制位圖包括2N個bit,且對應第一位20的兩個bit值應為01,而對應第二位21的兩個bit的值為00,依次類推。此外,第一值和第二值也可被設(shè)定為其它值,并不以I和O為限制,例如可令第一值為O而第二值為I等。在根據(jù)上述的 軟件缺陷植入方法將測試函數(shù)(帶有缺陷)植入到軟件之后,便可對該軟件進行測試。對該軟件的測試可以使用常規(guī)的測試技術(shù),只需要可以測試出軟件中的缺陷即可;如本領(lǐng)域技術(shù)人員所了解的,對軟件的測試指的是對軟件功能的測試,也稱作黑盒測試或數(shù)據(jù)驅(qū)動測試,這類測試只需要考慮軟件的各個功能而不需要考慮軟件的內(nèi)部結(jié)構(gòu)及代碼。軟件測試本身并不是本發(fā)明的重點所在,在此就不對其進行描述。對該軟件進行測試之后,便可發(fā)現(xiàn)軟件中的缺陷,將所發(fā)現(xiàn)的缺陷的數(shù)量與植入的缺陷的數(shù)量進行比較,便可獲得軟件缺陷發(fā)現(xiàn)率,從而評估測試的品質(zhì)。植入的缺陷的數(shù)量可通過控制位圖中指示植入測試函數(shù)集中函數(shù)的控制位的數(shù)量來確定。圖3是根據(jù)本發(fā)明所述的軟件缺陷植入系統(tǒng)。該系統(tǒng)包括測試函數(shù)集生成模塊30,控制位圖生成模塊32,和載入模塊34。測試函數(shù)集生成模塊30生成與已有函集對應的測試函數(shù)集。實際應用中,測試函數(shù)集和已有函數(shù)集都可以實現(xiàn)為包括多個函數(shù)的數(shù)據(jù)庫(圖中未示意)。測試函數(shù)集中的函數(shù)與已有函數(shù)集中的函數(shù)一一對應??刂莆粓D生成模塊32生成用于指示向軟件載入已有函數(shù)集中的函數(shù)還是測試函數(shù)集中的函數(shù)的控制位圖,控
制位圖包括與已有函數(shù)集中的函數(shù)數(shù)量相當?shù)目刂莆?,控制位與已有函數(shù)集中的函數(shù)--
對應。載入模塊34根據(jù)控制位圖中控制位的每個位的值向軟件載入已有函數(shù)集中的函數(shù)或測試函數(shù)集中的函數(shù)。根據(jù)本發(fā)明,測試函數(shù)集生成模塊30所生成的測試函數(shù)集中的函數(shù)的數(shù)量與已有函數(shù)集中函數(shù)的數(shù)量相同,且如上所述的那樣,測試函數(shù)集函數(shù)與已有函數(shù)集中函數(shù)一一對應。作為示例,測試函數(shù)集中的函數(shù)是已有函數(shù)集中的函數(shù)的變型,或者可以理解為是設(shè)置了缺陷的已有函數(shù)集中的函數(shù),一般而言,測試函數(shù)集中的函數(shù)與相對應的已有函數(shù)集中的函數(shù)具有同樣的函數(shù)名和形參。控制位圖生成模塊32動態(tài)生成控制位圖。作為示例,控制位圖中的每一控制位的值都是隨機生成的。控制位圖中控制位的數(shù)量與已有函數(shù)集中的函數(shù)的數(shù)量相當,也就與測試函數(shù)集中的函數(shù)的數(shù)量相當;本領(lǐng)域技術(shù)人員易于理解到控制位圖中控制位與已有函數(shù)集中的函數(shù)一一對應,也就與測試函數(shù)集中的函數(shù)一一對應。控制位圖中控制位的每個位的值指示出要向軟件植入已有函數(shù)集中的函數(shù)還是植入測試函數(shù)集中的函數(shù)。作為示例,控制位圖中每個控制位的值可以是第一值或第二值,其中第一值表明向所述軟件載入已有函數(shù)集中的函數(shù),第二值表明向所述軟件載入測試函數(shù)集中的函數(shù)。載入模塊34根據(jù)控制位圖生成模塊32所生成的控制位圖,將已有函數(shù)集中的函數(shù)或者測試函數(shù)集中的函數(shù)載入軟件。載入模塊34根據(jù)控制位圖中每個位的值,選擇載入已有函數(shù)還是測試函數(shù)集中的函數(shù)。作為示例,在相對應的控制位的值的情況下,載入已有函數(shù)集中的函數(shù),第二值的情況下則載入測試函數(shù)集中的函數(shù)。以圖2所示示意的控制位圖為例,控制位中第i位23為1,則將已有函數(shù)集中與第i位對應的函數(shù)載入軟件,控制位中第i位為O,則將測試函數(shù)集中與該位對應的測試函數(shù)將被載入軟件。軟件缺陷植入系統(tǒng)還包括判斷模塊33。判斷模塊33檢測控制位圖中控制位的第i個位的值并判斷該第i個位的值是第一值還是第二值。判斷模塊33將判斷結(jié)果傳送給載入模塊34,由載入模塊根據(jù)判斷結(jié)果將第i給位對應的函數(shù)自如軟件。圖4是利用本發(fā)明所述的缺陷植入系統(tǒng)執(zhí)行本發(fā)明所述的缺陷植入方法的一個具體示例。需要說明的是,該示例只是示意性說明,并不用于限定本發(fā)明所述的方法必需結(jié)合到本發(fā)明所述的系統(tǒng)使用,也不限定本發(fā)明所述的系統(tǒng)必需與本發(fā)明所述的方法相結(jié)合。在本示例中,已有函數(shù)庫包括8個函數(shù)。在步驟41,測試函數(shù)模塊生成生成包括8個函數(shù)的測試函數(shù)集,所生成的測試函數(shù)集中的8個函數(shù)分別與已有函數(shù)庫中的8個函數(shù)對應,具體地,測試函數(shù)中的每個函數(shù)與已有函數(shù)集中相應的函數(shù)具有相同的函數(shù)名和形參,只是具有一定的缺陷。在步驟43,控制位圖生成模塊生成包括8個bit的控制位圖,控制位圖中的每一位對應已有函數(shù)集中的一個函數(shù),同樣地,也對應測試函數(shù)集中與該測試函數(shù)集中的函數(shù)相對應的函數(shù)。該例中,控制位圖如圖5所示,其值為11100010。在步驟44,判斷模塊判斷控制位圖的第i為是否為1,如果是,則進入步驟45,由載入模塊將已有函數(shù)集中與第i位對應的函數(shù)載入軟件,反之進入步驟46,由載入模塊將測試函數(shù)集中與第i位對應的函數(shù)載入軟件。本發(fā)明所述的軟件缺陷率獲得系統(tǒng),包括根據(jù)本發(fā)明所述的缺陷植入系統(tǒng),該系統(tǒng)例如為圖3所示意的系統(tǒng)。該軟件缺陷率獲得系統(tǒng)還可包括記錄模塊,以對每次載入的函數(shù)進行記錄(參見步驟47),記錄的信息例如包括載入的是已有函數(shù)集中的函數(shù)還是測試函數(shù),記錄載入時間;可包括測試模塊,以對軟件進行測試,發(fā)現(xiàn)軟件中的缺陷;還可包括計算模塊計算缺陷率,亦即由所發(fā)現(xiàn)的缺陷與已植入的測試函數(shù)集中的函數(shù)的比來獲得缺陷率,即測試的缺陷覆蓋率。
在具體的實現(xiàn)中,假設(shè)已有函數(shù)為funl到fun8,而該8個函數(shù)被編譯為動態(tài)文件,且放在lib/correct/目錄下,即為lib/correct/funl.so^fun8.so ;以這8個函數(shù)為基礎(chǔ),生成8個測試函數(shù),這8個測試函數(shù)可以是對funl到fun8進行少量修該,使得該8個函數(shù)為缺陷函數(shù)。將該8個函數(shù)編譯為動態(tài)文件,將該動態(tài)文件放到lib/error/目錄下,即為lib/error/fun’ 1.scTfun’ 8.so。在該具體的實現(xiàn)中,測試函數(shù)集被放在lib/error/目錄下,而已有函數(shù)集被放在lib/correct/目錄下??刂莆粓D的位51 58分別對應funl
fun8,在funl fun8與fun’ I fun’ 8--對應的情況下,控制位圖的位51 58也分
別對應fun’ I fun’ 8。判斷模塊首先判斷控制位圖的第I位,即51位,該位為1,則載入模塊自目錄lib/correct/funl.scTfun8.so將已有函數(shù)集中的funl載入軟件;接著,判斷模塊判斷控制位圖的第2位,即52位,該位為1,則載入模塊自目錄lib/correct/funl.scTfun8.so將已有函數(shù)集中的fun2載入軟件;判斷模塊判斷控制位圖的第3位,即53位,該位為I,則載入模塊自目錄lib/correct/funl.scTfun8.so將已有函數(shù)集中的fun3載入軟件;判斷模塊判斷控制位圖的第4位,即54位,該位為0,則載入模塊自目錄lib/eiror/fun’ 1.scTfun’ 8.so將測試函數(shù)集中的fun’ 4載入軟件;判斷模塊判斷控制位圖的第5位,即55位,該位為O,則載入模塊自目錄lib/error/fun’1.scTfun’8.so將測試函數(shù)集中的fun’5載入軟件;判斷模塊判斷控制位圖的第6位,即56位,該位為0,則載入模塊自目錄lib/error/fun’ 1.scTfun’ 8.so將測試函數(shù)集中的fun’ 6載入軟件;判斷模塊判斷控制位圖的第7位,即57位,該位為1,則載入模塊自目錄lib/correct/funl.scTfun8.so將已有函數(shù)集中的fun7載入軟件;判斷模塊判斷控制位圖的第8位,即58位,該位為0,則載入模塊自目錄lib/error/fun’ 1.scT fun’8.so將測試函數(shù)集中的fun’ 8載入軟件。在這個具體的示例中,植入的測試函數(shù)中的函數(shù)為4個,如果對軟件的測試中,發(fā)現(xiàn)了 3個缺陷,則缺陷獲得率(即缺陷發(fā)現(xiàn)率)為3/4,即75%。根據(jù)本發(fā)明,借由控制位圖,可以靈活地植入缺陷,而且可以根據(jù)植入的測試函數(shù)的個數(shù)亦即軟件測試后發(fā)現(xiàn)的缺陷的個數(shù)方便且容易地獲得缺陷發(fā)現(xiàn)率。還可依據(jù)所獲得的缺陷發(fā)現(xiàn)率,來評估軟件測試質(zhì)量和能力。此外,根據(jù)本發(fā)明,本發(fā)明所述的方法還可工作在不同的模式下,例如將控制位圖的位全部設(shè)置為0,則為教學模式,可以使得使用者觀察到缺陷的原理,而通過使位圖的位動態(tài)隨機生成,便可使測試者獲得測試質(zhì)量與能力。在以上的說明中,控制位圖中的位為O便載入測試函數(shù)集中的函數(shù),控制位圖中的位為I則載入已有函數(shù)集中的函數(shù),僅是示意性的。實際應用中,也可以在控制位圖中的位為I的情況下載入已有函數(shù)集中的函數(shù)而在控制位圖中的位為O的情況下載入測試函數(shù)集中的函數(shù)。以上結(jié)合示例闡述了本發(fā)明所述的方法和系統(tǒng),本領(lǐng)域技術(shù)人員可以理解到,所有的例子可以相互結(jié)合,也可單獨實施。應當說明的是,以上具體實施方式
只是本發(fā)明的示意性而非限制性地說明。盡管已參照上述具體實施方式
對本發(fā)明進行了詳細描述,但本領(lǐng)域的普通技術(shù)人員應當理解,依然可對本發(fā)明的具體實施方式
進行修改或?qū)Σ糠旨夹g(shù)特征進行等同替換,而這些修改或等同替換均應涵蓋在本發(fā)明請求保護的范圍內(nèi)。
權(quán)利要求
1.一種軟件缺陷植入方法,其特征在于,所述方法包括: 設(shè)置與已有函數(shù)集相對應的測試函數(shù)集,所述測試函數(shù)集中的函數(shù)與已有函數(shù)集中的函數(shù)——對應; 生成用于指示向所述軟件載入所述已有函數(shù)集中的函數(shù)還是所述測試函數(shù)集中的函數(shù)的控制位圖,所述控制位圖包括與已有函數(shù)集中的函數(shù)數(shù)量相當?shù)目刂莆?,且所述控制位與所述已有函數(shù)集中的函數(shù)一一對應;以及 根據(jù)所述控制位圖中控制位的每個位的值向所述軟件載入已有函數(shù)集或測試函數(shù)集的函數(shù)。
2.根據(jù)權(quán)利要求1所述的軟件缺陷植入方法,其特征在于,所述方法還包括: 檢測控制位圖中控制位的第i個位的值, 判斷所述第i個位的值是第一值還是第二值, 在判斷所述第i個位的值是第一值的情況下,將所述已有函數(shù)集中與所述第i個位對應的函數(shù)載入所述軟件,在判斷所述第i個位的值是第二值的情況下,將與所述已有函數(shù)集中與所述第i個位對應的函數(shù)相對應的測試函數(shù)集中的函數(shù)載入所述軟件。
3.根據(jù)權(quán)利要求2所述的軟件缺陷植入方法,其特征在于,所述控制位的每一位由一個bit構(gòu)成。
4.根據(jù)權(quán)利要求3所述的軟件缺陷植入方法,其特征在于所述第一值為I而所述第二值為O,或者所述第一值為O而第二值為I。
5.根據(jù)權(quán) 利要求2所述的軟件缺陷植入方法,其特征在于,所述控制位的每一位由若干bit構(gòu)成。
6.一種軟件缺陷率獲得方法,其特征在于,所述方法包括: 預先按照如權(quán)利要求1到4中任意一個所述的方法向所述軟件植入缺陷; 發(fā)現(xiàn)所述軟件中的缺陷;以及 將所發(fā)現(xiàn)的軟件中的缺陷的數(shù)量與通過所述控制位圖的控制位所獲得的載入所述軟件的測試函數(shù)集中的測試函數(shù)的數(shù)量相比較。
7.一種軟件缺陷植入系統(tǒng),其特征在于,所述系統(tǒng)包括: 測試函數(shù)集生成模塊,用以生成與已有函數(shù)集相對應的測試函數(shù)集,所述測試函數(shù)集中的函數(shù)與已有函數(shù)集中的函數(shù)一一對應; 控制位圖生成模塊,用以生成指示向所述軟件載入所述已有函數(shù)集中的函數(shù)還是所述測試函數(shù)集中的函數(shù)的控制位圖,所述控制位圖包括與已有函數(shù)集中的函數(shù)數(shù)量相當?shù)目刂莆唬宜隹刂莆慌c所述已有函數(shù)集中的函數(shù)一一對應;以及 載入模塊,用以根據(jù)所述控制位圖中控制位的每個位的值向所述軟件載入已有函數(shù)集或測試函數(shù)集的函數(shù)。
8.根據(jù)權(quán)利要求7所述的軟件缺陷植入系統(tǒng),其特征在于,所述系統(tǒng)還包括用于檢測控制位圖中控制位的第i個位的值并判斷所述第i個位的值是第一值還是第二值的判斷模塊,其中,所述判斷模塊將判斷結(jié)果傳送給所述載入模塊,所述載入模塊在所述第i個位的值是第一值的情況下,將所述已有函數(shù)集中與所述第i個位對應的函數(shù)載入所述軟件,在判斷所述第i個位的值是第二值的情況下,將與所述已有函數(shù)集中與所述第i個位對應的函數(shù)相對應的測試函數(shù)集中的函數(shù)載入所述軟件;其中i為自然數(shù)。
9.根據(jù)權(quán)利要求8所述的軟件缺陷植入系統(tǒng),其特征在于,所述控制位圖生成模塊生成的控制位圖中,每一個控制位由一個bit構(gòu)成。
10.根據(jù)權(quán)利要求9所述的軟件缺陷植入系統(tǒng),其特征在于,所述第一值為I而所述第二值為0,或者所述第一值為O而所述第二值為I。
11.根據(jù)權(quán)利要求8所述的軟件缺陷植入系統(tǒng),其特征在于,所述控制位的每一位由若干bit構(gòu)成。
12.—種軟件缺陷率獲得系統(tǒng),其特征在于,所述系統(tǒng)包括如權(quán)利要求7到11中任意一個所述的軟件缺陷植入系統(tǒng),用于發(fā)現(xiàn)所述軟件中的缺陷的測試模塊,以及用于將測試模塊所發(fā)現(xiàn)的軟件中缺陷的數(shù)量與通過控制位圖的控制位所獲得的載入所述軟件的測試函數(shù)集中的測試函數(shù) 的數(shù)量相比較的計算單元。
全文摘要
一種軟件植入缺陷的方法,包括設(shè)置與已有函數(shù)集相對應的測試函數(shù)集,測試函數(shù)集中的函數(shù)與已有函數(shù)集中的函數(shù)一一對應;生成用于指示向軟件載入已有函數(shù)集中的函數(shù)還是測試函數(shù)集中的函數(shù)的控制位圖,控制位圖包括與已有函數(shù)集中的函數(shù)數(shù)量相當?shù)目刂莆?,且控制位與所述已有函數(shù)集中的函數(shù)一一對應;以及根據(jù)控制位圖中控制位的每個位的值向軟件載入已有函數(shù)集或測試函數(shù)集的函數(shù)。本發(fā)明還提供相應的系統(tǒng)。根據(jù)本發(fā)明的系統(tǒng)和方法應用靈活,可方便地獲得缺陷發(fā)現(xiàn)率。
文檔編號G06F11/36GK103164329SQ20111041727
公開日2013年6月19日 申請日期2011年12月14日 優(yōu)先權(quán)日2011年12月14日
發(fā)明者呂蘇, 吳金壇, 陸輝 申請人:中國銀聯(lián)股份有限公司