專利名稱:用于軟件測試的測試代碼生成系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)軟件的測試技術(shù),尤其涉及一種用于軟件測試的測試代碼生成 系統(tǒng)。
背景技術(shù):
軟件測試的目的是為了保證軟件產(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)告。測試是為了證明程序有錯(cuò),而不能保證程序沒有錯(cuò)誤。軟件測試就是在受控制的條件下對系統(tǒng)或應(yīng)用程序進(jìn)行操作并評價(jià)操作結(jié)果的 過程,所謂控制條件應(yīng)包括正常條件與非正常條件。軟件測試過程中應(yīng)該故意地去促使錯(cuò)誤的發(fā)生,也就是事情在不該出現(xiàn)的時(shí)候出 現(xiàn)或者在應(yīng)該出現(xiàn)的時(shí)候沒有出現(xiàn)。從本質(zhì)上說,軟件測試是“探測”,在“探測”中發(fā)現(xiàn)軟 件的毛病。軟件測試貫穿于軟件定義與開發(fā)的整個(gè)周期,軟件的需求規(guī)格說明書,結(jié)構(gòu)設(shè)計(jì) 及程序編碼,都屬于軟件測試的對象。軟件測試包含白盒測試與黑盒測試,白盒測試是針對程序代碼進(jìn)行正確性檢驗(yàn)的 測試工作,黑盒測試獨(dú)立于程序代碼,從用戶的角度,通過一定的測試步驟與測試案例,驗(yàn) 證軟件功能、性能等指標(biāo)能否滿足實(shí)際應(yīng)用需求的測試工作。黑盒測試也稱功能測試,它是通過測試來檢測每個(gè)功能是否都能正常使用。在測 試中,把程序看作一個(gè)不能打開的黑盒子,在完全不考慮程序內(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)行測試。黑盒測試的優(yōu)點(diǎn)包括(1)比較簡單,不需要了解程序內(nèi)部的代碼及實(shí)現(xiàn);(2)與軟件的內(nèi)部實(shí)現(xiàn)無關(guān);(3)從用戶角度出發(fā),能很容易的知道用戶會(huì)用到哪些功能,會(huì)遇到哪些問題;(4)基于軟件開發(fā)文檔,所以也能知道軟件實(shí)現(xiàn)了文檔中的哪些功能;(5)在做軟件自動(dòng)化測試時(shí)較為方便。黑盒測試的缺點(diǎn)包括(1)不可能覆蓋所有的代碼,覆蓋率較低,大概只能達(dá)到總代碼量的30% ;(2)自動(dòng)化測試的復(fù)用性較低。白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動(dòng)測試,它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通 過測試來檢測產(chǎn)品內(nèi)部動(dòng)作是否按照設(shè)計(jì)規(guī)格說明書的規(guī)定正常進(jìn)行,檢驗(yàn)程序中的每條 通路是否都能按預(yù)定要求正確工作。
這一方法是把測試對象看作一個(gè)打開的盒子,測試人員依據(jù)程序內(nèi)部邏輯結(jié)構(gòu)相 關(guān)信息,設(shè)計(jì)或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試,通過在不同點(diǎn)檢查程序的狀 態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。白盒測試的測試方法有代碼檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋 法、基本路徑測試法、域測試、符號(hào)測試、Z路徑覆蓋、程序變異。白盒測試法的覆蓋標(biāo)準(zhǔn)有邏輯覆蓋、循環(huán)覆蓋和基本路徑測試。其中邏輯覆蓋包 括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。白盒測試的優(yōu)點(diǎn)包括(1)迫使測試人員去仔細(xì)思考軟件的實(shí)現(xiàn);(2)可以檢測代碼中的每條分支和路徑;(3)揭示隱藏在代碼中的錯(cuò)誤;(4)對代碼的測試比較徹底;(5)最優(yōu)化。白盒測試的缺點(diǎn)包括(1)昂貴;(2)無法檢測代碼中遺漏的路徑和數(shù)據(jù)敏感性錯(cuò)誤;(3)不驗(yàn)證規(guī)格的正確性。
發(fā)明內(nèi)容
本發(fā)明旨在提出一種供白盒測試或者黑盒測試使用的測試代碼生成系統(tǒng)。根據(jù)本發(fā)明,提出一種用于軟件測試的測試代碼生成系統(tǒng),包括功能測試代碼生成裝置,根據(jù)待測試軟件的設(shè)計(jì)功能,針對每一功能產(chǎn)生功能測 試代碼;冗余代碼消除裝置,耦合到功能測試代碼生成裝置,比對針對每一功能所產(chǎn)生的 功能測試代碼,消除其中的冗余部分;特定代碼生成裝置,針對待測試軟件的應(yīng)用領(lǐng)域生成特性測試代碼,測試軟件在 該應(yīng)用領(lǐng)域中的特性性能;重點(diǎn)代碼生成裝置,針對待測試軟件的高頻率應(yīng)用生成重點(diǎn)測試代碼,測試軟件 針對高頻率應(yīng)用的性能;測試優(yōu)先級(jí)確定裝置,耦合到冗余代碼消除裝置、特定代碼生成裝置、重點(diǎn)代碼生 成裝置,將功能測試代碼、特性測試代碼和重點(diǎn)測試代碼按照優(yōu)先級(jí)排序,生成最終的測試 代碼。該用于軟件測試的測試代碼生成系統(tǒng)還包括測試覆蓋率評估裝置,獲取最終的測 試代碼,并將該測試代碼提供給與待測試軟件相關(guān)的軟件測試系統(tǒng)進(jìn)行測試,根據(jù)測試的 結(jié)果生成對于測試代碼的測試覆蓋率評估。采用本發(fā)明的技術(shù)方案,能夠自動(dòng)生成適合于對軟件進(jìn)行白盒測試或者黑盒測試 的軟件測試代碼,大大提高了軟件測試的效率以及自動(dòng)化程度。
圖1揭示了根據(jù)本發(fā)明的用于軟件測試的測試代碼生成系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式如果把軟件的測試活動(dòng)比作軟件生命周期,測試需求就相當(dāng)于軟件的需求規(guī)格, 測試策略相當(dāng)于軟件的架構(gòu)設(shè)計(jì),測試用例相當(dāng)于軟件的詳細(xì)設(shè)計(jì),測試執(zhí)行相當(dāng)于軟件 的編碼過程。軟件測試需求需要考慮幾個(gè)層面的因素第一層測試階段。系統(tǒng)測試階段,需求分析更注重于技術(shù)層面,即軟件是否實(shí)現(xiàn) 了具備的功能。如果某一種流程或者某一角色能夠執(zhí)行一項(xiàng)功能,那么我們相信具備相同 特征的業(yè)務(wù)或角色都能夠執(zhí)行該功能。為了避免測試執(zhí)行的冗余,可不再重復(fù)測試。而在 驗(yàn)收測試階段,更注重于不同角色在同一功能上能否走通要求的業(yè)務(wù)流程。因此需要根據(jù) 不同的業(yè)務(wù)需要而測試相同的功能,以確保系統(tǒng)上線后不會(huì)有意外發(fā)生。目前,大多數(shù)的測 試都會(huì)在系統(tǒng)測試中完成,驗(yàn)收測試只是對于系統(tǒng)測試的回歸。此種情況也是合理的,關(guān)鍵 看測試周期與資源是否允許,以及各測試階段的任務(wù)劃分。第二層待測軟件的特性。不同的軟件業(yè)務(wù)背景不同,所要求的特性也不相同,測 試的側(cè)重點(diǎn)自然也不相同。除了需要確保要求實(shí)現(xiàn)的功能正確,銀行、財(cái)務(wù)軟件更強(qiáng)調(diào)數(shù)據(jù) 的精確性,網(wǎng)站強(qiáng)調(diào)服務(wù)器所能承受的壓力,ERP強(qiáng)調(diào)業(yè)務(wù)流程,驅(qū)動(dòng)程序強(qiáng)調(diào)軟硬件的兼 容性。在做測試分析時(shí)需要根據(jù)軟件的特性來選取測試類型,并將其列入測試需求當(dāng)中。第三層測試的焦點(diǎn)。測試的焦點(diǎn)是指根據(jù)所測的功能點(diǎn)進(jìn)行分析、分解,從而得 出的著重于某一方面的測試,如界面、業(yè)務(wù)流、模塊化、數(shù)據(jù)、輸入域等。第四層測試的優(yōu)先級(jí)。優(yōu)先級(jí)的確定,利于測試工作有的放矢的展開,有利于了 解核心的功能、特性與流程有哪些,客戶最為關(guān)注的是什么,由此可確定測試的工作重點(diǎn)在 何處,更方便處理測試進(jìn)度發(fā)生問題時(shí),實(shí)現(xiàn)不同優(yōu)先級(jí)別的功能、模塊、系統(tǒng)等迭代遞交 或取舍,從而緩和測試風(fēng)險(xiǎn)。還有一個(gè)需要考慮的問題是測試需求的覆蓋率與覆蓋程度。測試需求的覆蓋率通 常是由與軟件需求所建立的對應(yīng)關(guān)系來確定的。如果一個(gè)軟件的需求已經(jīng)跟測試需求存在 了一對一或一對多的對應(yīng)關(guān)系,可以說測試需求已經(jīng)覆蓋了該功能點(diǎn),以此類推,如果確定 了所有的軟件需求都建立了對應(yīng)的測試需求,那么測試需求的覆蓋率便是測試需求覆蓋點(diǎn) /軟件需求功能點(diǎn)=100%,但并不意味著測試需求的覆蓋程度高。因?yàn)闇y試需求的覆蓋率 只計(jì)算了顯性的(即被明確規(guī)定的功能與特性)因素,而隱性的(即沒有被明確規(guī)定但是 有可能或不應(yīng)該擁有的功能與特性)因素并未計(jì)算在內(nèi)。因此根據(jù)不斷的完善或?qū)嶋H測試 中發(fā)生的缺陷,可以對測試需求進(jìn)行補(bǔ)充或優(yōu)化,并更新進(jìn)測試用例中,以此來提高測試需 求的覆蓋程度?;谏鲜龅脑?,本發(fā)明提出一種用于軟件測試的測試代碼生成系統(tǒng),參考圖1 所示,該用于軟件測試的測試代碼生成系統(tǒng)10包括功能測試代碼生成裝置11、冗余代碼 消除裝置12、特定代碼生成裝置13、重點(diǎn)代碼生成裝置14、測試優(yōu)先級(jí)確定裝置15。功能測試代碼生成裝置11根據(jù)待測試軟件的設(shè)計(jì)功能,針對每一功能產(chǎn)生功能 測試代碼。
冗余代碼消除裝置12耦合到功能測試代碼生成裝置11,比對針對每一功能所產(chǎn) 生的功能測試代碼,消除其中的冗余部分。功能測試代碼生成裝置11和冗余代碼消除裝置 12重點(diǎn)關(guān)注上述第一層的問題。特定代碼生成裝置13針對待測試軟件的應(yīng)用領(lǐng)域生成特性測試代碼,測試軟件 在該應(yīng)用領(lǐng)域中的特性性能。特定代碼生成裝置13重點(diǎn)關(guān)注上述第二層的問題。重點(diǎn)代碼生成裝置14針對待測試軟件的高頻率應(yīng)用生成重點(diǎn)測試代碼,測試軟 件針對高頻率應(yīng)用的性能。重點(diǎn)代碼生成裝置14重點(diǎn)關(guān)注上述第三層的問題。測試優(yōu)先級(jí)確定裝置15耦合到冗余代碼消除裝置12、特定代碼生成裝置13、重點(diǎn) 代碼生成裝置14,將功能測試代碼、特性測試代碼和重點(diǎn)測試代碼按照優(yōu)先級(jí)排序,生成最 終的測試代碼。測試優(yōu)先級(jí)確定裝置15重點(diǎn)關(guān)注上述第四層的問題。參考圖1所示,該用于軟件測試的測試代碼生成系統(tǒng)10還包括測試覆蓋率評估裝 置16,測試覆蓋率評估裝置16獲取最終的測試代碼,并將該測試代碼提供給與待測試軟件 相關(guān)的軟件測試系統(tǒng)進(jìn)行測試,根據(jù)測試的結(jié)果生成對于測試代碼的測試覆蓋率評估。測 試覆蓋率評估裝置16重點(diǎn)關(guān)注測試需求的覆蓋率與覆蓋程度。采用本發(fā)明的技術(shù)方案,能夠自動(dòng)生成適合于對軟件進(jìn)行白盒測試或者黑盒測試 的軟件測試代碼,大大提高了軟件測試的效率以及自動(dòng)化程度。
權(quán)利要求
一種用于軟件測試的測試代碼生成系統(tǒng),其特征在于,包括功能測試代碼生成裝置,根據(jù)待測試軟件的設(shè)計(jì)功能,針對每一功能產(chǎn)生功能測試代碼;冗余代碼消除裝置,耦合到所述功能測試代碼生成裝置,比對針對每一功能所產(chǎn)生的功能測試代碼,消除其中的冗余部分;特定代碼生成裝置,針對待測試軟件的應(yīng)用領(lǐng)域生成特性測試代碼,測試軟件在該應(yīng)用領(lǐng)域中的特性性能;重點(diǎn)代碼生成裝置,針對待測試軟件的高頻率應(yīng)用生成重點(diǎn)測試代碼,測試軟件針對高頻率應(yīng)用的性能;測試優(yōu)先級(jí)確定裝置,耦合到所述冗余代碼消除裝置、特定代碼生成裝置、重點(diǎn)代碼生成裝置,將功能測試代碼、特性測試代碼和重點(diǎn)測試代碼按照優(yōu)先級(jí)排序,生成最終的測試代碼。
2.如權(quán)利要求1所述的用于軟件測試的測試代碼生成系統(tǒng),其特征在于,還包括測試覆蓋率評估裝置,獲取所述最終的測試代碼,并將該測試代碼提供給與待測試軟 件相關(guān)的軟件測試系統(tǒng)進(jìn)行測試,根據(jù)測試的結(jié)果生成對于測試代碼的測試覆蓋率評估。
全文摘要
本發(fā)明揭示了一種用于軟件測試的測試代碼生成系統(tǒng),包括功能測試代碼生成裝置,根據(jù)待測試軟件的設(shè)計(jì)功能,針對每一功能產(chǎn)生功能測試代碼;冗余代碼消除裝置,耦合到功能測試代碼生成裝置,比對針對每一功能所產(chǎn)生的功能測試代碼,消除其中的冗余部分;特定代碼生成裝置,針對待測試軟件的應(yīng)用領(lǐng)域生成特性測試代碼,測試軟件在該應(yīng)用領(lǐng)域中的特性性能;重點(diǎn)代碼生成裝置,針對待測試軟件的高頻率應(yīng)用生成重點(diǎn)測試代碼,測試軟件針對高頻率應(yīng)用的性能;測試優(yōu)先級(jí)確定裝置,耦合到冗余代碼消除裝置、特定代碼生成裝置、重點(diǎn)代碼生成裝置,將功能測試代碼、特性測試代碼和重點(diǎn)測試代碼按照優(yōu)先級(jí)排序,生成最終的測試代碼。
文檔編號(hào)G06F9/44GK101996069SQ200910056409
公開日2011年3月30日 申請日期2009年8月13日 優(yōu)先權(quán)日2009年8月13日
發(fā)明者劉在英, 楊曉麗, 趙春燕 申請人:上海杉達(dá)學(xué)院