用于軟件測試的測試代碼生成系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)軟件的測試技術(shù),尤其涉及一種用于軟件測試的測試代碼生成系統(tǒng)。
【背景技術(shù)】
[0002]軟件測試的目的是為了保證軟件產(chǎn)品的最終質(zhì)量,在軟件開發(fā)的過程中,對軟件產(chǎn)品進(jìn)行質(zhì)量控制。一般來說軟件測試應(yīng)由獨(dú)立的產(chǎn)品評測中心負(fù)責(zé),嚴(yán)格按照軟件測試流程,制定測試計(jì)劃、測試方案、測試規(guī)范,實(shí)施測試,對測試記錄進(jìn)行分析,并根據(jù)回歸測試情況撰寫測試報(bào)告。測試是為了證明程序有錯,而不能保證程序沒有錯誤。
[0003]軟件測試就是在受控制的條件下對系統(tǒng)或應(yīng)用程序進(jìn)行操作并評價(jià)操作結(jié)果的過程,所謂控制條件應(yīng)包括正常條件與非正常條件。
[0004]軟件測試過程中應(yīng)該故意地去促使錯誤的發(fā)生,也就是事情在不該出現(xiàn)的時候出現(xiàn)或者在應(yīng)該出現(xiàn)的時候沒有出現(xiàn)。從本質(zhì)上說,軟件測試是“探測”,在“探測”中發(fā)現(xiàn)軟件的毛病。
[0005]軟件測試貫穿于軟件定義與開發(fā)的整個周期,軟件的需求規(guī)格說明書,結(jié)構(gòu)設(shè)計(jì)及程序編碼,都屬于軟件測試的對象。
[0006]軟件測試包含白盒測試與黑盒測試,白盒測試是針對程序代碼進(jìn)行正確性檢驗(yàn)的測試工作,黑盒測試獨(dú)立于程序代碼,從用戶的角度,通過一定的測試步驟與測試案例,驗(yàn)證軟件功能、性能等指標(biāo)能否滿足實(shí)際應(yīng)用需求的測試工作。
[0007]黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進(jìn)行測試。
[0008]黑盒測試的優(yōu)點(diǎn)包括:
[0009](I)比較簡單,不需要了解程序內(nèi)部的代碼及實(shí)現(xiàn);
[0010](2)與軟件的內(nèi)部實(shí)現(xiàn)無關(guān);
[0011](3)從用戶角度出發(fā),能很容易的知道用戶會用到哪些功能,會遇到哪些問題;
[0012](4)基于軟件開發(fā)文檔,所以也能知道軟件實(shí)現(xiàn)了文檔中的哪些功能;
[0013](5)在做軟件自動化測試時較為方便。
[0014]黑盒測試的缺點(diǎn)包括:
[0015](I)不可能覆蓋所有的代碼,覆蓋率較低,大概只能達(dá)到總代碼量的30% ;
[0016](2)自動化測試的復(fù)用性較低。
[0017]白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設(shè)計(jì)規(guī)格說明書的規(guī)定正常進(jìn)行,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作。
[0018]這一方法是把測試對象看作一個打開的盒子,測試人員依據(jù)程序內(nèi)部邏輯結(jié)構(gòu)相關(guān)信息,設(shè)計(jì)或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試,通過在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。
[0019]白盒測試的測試方法有代碼檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、Z路徑覆蓋、程序變異。
[0020]白盒測試法的覆蓋標(biāo)準(zhǔn)有邏輯覆蓋、循環(huán)覆蓋和基本路徑測試。其中邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。
[0021]白盒測試的優(yōu)點(diǎn)包括:
[0022](I)迫使測試人員去仔細(xì)思考軟件的實(shí)現(xiàn);
[0023](2)可以檢測代碼中的每條分支和路徑;
[0024](3)揭示隱藏在代碼中的錯誤;
[0025](4)對代碼的測試比較徹底;
[0026](5)最優(yōu)化。
[0027]白盒測試的缺點(diǎn)包括:
[0028](I)昂貴;
[0029](2)無法檢測代碼中遺漏的路徑和數(shù)據(jù)敏感性錯誤;
[0030](3)不驗(yàn)證規(guī)格的正確性。
【發(fā)明內(nèi)容】
[0031]本發(fā)明旨在提出一種供白盒測試或者黑盒測試使用的測試代碼生成系統(tǒng)。
[0032]根據(jù)本發(fā)明,提出一種用于軟件測試的測試代碼生成系統(tǒng),包括:
[0033]功能測試代碼生成裝置,根據(jù)待測試軟件的設(shè)計(jì)功能,針對每一功能產(chǎn)生功能測試代碼;
[0034]冗余代碼消除裝置,耦合到功能測試代碼生成裝置,比對針對每一功能所產(chǎn)生的功能測試代碼,消除其中的冗余部分;
[0035]特定代碼生成裝置,針對待測試軟件的應(yīng)用領(lǐng)域生成特性測試代碼,測試軟件在該應(yīng)用領(lǐng)域中的特性性能;
[0036]重點(diǎn)代碼生成裝置,針對待測試軟件的高頻率應(yīng)用生成重點(diǎn)測試代碼,測試軟件針對高頻率應(yīng)用的性能;
[0037]測試優(yōu)先級確定裝置,耦合到冗余代碼消除裝置、特定代碼生成裝置、重點(diǎn)代碼生成裝置,將功能測試代碼、特性測試代碼和重點(diǎn)測試代碼按照優(yōu)先級排序,生成最終的測試代碼。
[0038]該用于軟件測試的測試代碼生成系統(tǒng)還包括測試覆蓋率評估裝置,獲取最終的測試代碼,并將該測試代碼提供給與待測試軟件相關(guān)的軟件測試系統(tǒng)進(jìn)行測試,根據(jù)測試的結(jié)果生成對于測試代碼的測試覆蓋率評估。
[0039]采用本發(fā)明的技術(shù)方案,能夠自動生成適合于對軟件進(jìn)行白盒測試或者黑盒測試的軟件測試代碼,大大提高了軟件測試的效率以及自動化程度。
【附圖說明】
[0040]圖1揭示了根據(jù)本發(fā)明的用于軟件測試的測試代碼生成系統(tǒng)的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0041]如果把軟件的測試活動比作軟件生命周期,測試需求就相當(dāng)于軟件的需求規(guī)格,測試策略相當(dāng)于軟件的架構(gòu)設(shè)計(jì),測試用例相當(dāng)于軟件的詳細(xì)設(shè)計(jì),測試執(zhí)行相當(dāng)于軟件的編碼過程。
[0042]軟件測試需求需要考慮幾個層面的因素:
[0043]第一層:測試階段。系統(tǒng)測試階段,需求分析更注重于技術(shù)層面,即軟件是否實(shí)現(xiàn)了具備的功能。如果某一種流程或者某一角色能夠執(zhí)行一項(xiàng)功能,那么我們相信具備相同特征的業(yè)務(wù)或角色都能