[發(fā)明專利]單元測(cè)試方法及系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201410087921.6 | 申請(qǐng)日: | 2014-03-11 |
| 公開(公告)號(hào): | CN104915287B | 公開(公告)日: | 2018-07-06 |
| 發(fā)明(設(shè)計(jì))人: | 姜智華;李皞;賈鵬 | 申請(qǐng)(專利權(quán))人: | 富士施樂實(shí)業(yè)發(fā)展(中國(guó))有限公司 |
| 主分類號(hào): | G06F11/36 | 分類號(hào): | G06F11/36 |
| 代理公司: | 上海專利商標(biāo)事務(wù)所有限公司 31100 | 代理人: | 徐偉 |
| 地址: | 200131 上海市浦*** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 控制邏輯 被測(cè)單元 被測(cè)文件 測(cè)試邏輯 單元測(cè)試 控制代碼 驗(yàn)證 注冊(cè)表 讀取 測(cè)試 調(diào)用單元 邏輯執(zhí)行 | ||
本發(fā)明提供了一種用于單元測(cè)試的方法,包括:向被測(cè)文件中的每個(gè)單元注入用于測(cè)試目的的控制代碼;定義測(cè)試邏輯,測(cè)試邏輯包括控制邏輯和驗(yàn)證邏輯,其中控制邏輯被登記在注冊(cè)表中;執(zhí)行被測(cè)文件測(cè)試,執(zhí)行包括執(zhí)行被測(cè)單元的原始邏輯和被測(cè)單元的所調(diào)用單元的控制邏輯,其中,控制邏輯由控制代碼從注冊(cè)表中讀取和實(shí)現(xiàn);以及基于驗(yàn)證邏輯執(zhí)行對(duì)被測(cè)單元的預(yù)期邏輯的驗(yàn)證。
技術(shù)領(lǐng)域
本發(fā)明涉及軟件測(cè)試,尤其涉及一種單元測(cè)試方法及系統(tǒng)。
背景技術(shù)
單元測(cè)試是指對(duì)軟件程序中的最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證,以檢驗(yàn)程序邏輯的正確性,由此確保所編寫程序的代碼的行為是否與編程者期望的一致。單元測(cè)試是在軟件開發(fā)過程中要進(jìn)行的最低級(jí)別的測(cè)試活動(dòng),軟件的一獨(dú)立單元將在與程序的其他部分相隔離的情況下進(jìn)行測(cè)試。
對(duì)于面向?qū)ο蟮木幊陶Z言(例如,C++)來說,因?yàn)槠渌峁┑某橄蠊δ芟鄬?duì)比較具體,可以比較簡(jiǎn)單地通過一定的替換技術(shù),將被測(cè)單元和其他目標(biāo)隔離開來,即除了被測(cè)單元本身的邏輯保持不變,其他對(duì)象均可以是出于測(cè)試目的而構(gòu)造的偽對(duì)象,從而達(dá)到解除被測(cè)單元和其他對(duì)象之間耦合的目的,例如JMock。
但是,對(duì)于許多較為底層的面向過程的編程語言(例如,C語言),或者一些基于解釋器解釋執(zhí)行的腳本語言(例如,Bash Script),在對(duì)它們所需要實(shí)現(xiàn)的邏輯功能編寫單元測(cè)試用例的時(shí)候,缺乏簡(jiǎn)單有效的方法來解除被測(cè)單元與其它部分之間的耦合,使得編寫單元測(cè)試用例的人員無法專注于被測(cè)邏輯的驗(yàn)證,而在解除耦合的方法上花費(fèi)了大量不必要的精力。
現(xiàn)有技術(shù)的解決方案主要有以下特點(diǎn)和缺陷。
現(xiàn)有技術(shù)多采用二進(jìn)制插樁的方式進(jìn)行測(cè)試控制代碼的植入,或者依賴于對(duì)于編譯后的二進(jìn)制文件的分析,例如,CN200510126499.1、CN200710117969.7、CN200710121236.0、CN200710129959.5、CN201110380418.6;或者依賴特定編程語言的特定技術(shù)來實(shí)現(xiàn)其核心功能,例如CN02146712.9、CN200510040422.2。
此類測(cè)試方案的問題在于僅能針對(duì)特定的CPU體系結(jié)構(gòu)來實(shí)現(xiàn),具有一定的局限性,針對(duì)不同CPU體系結(jié)構(gòu),實(shí)現(xiàn)難度大,并且繁瑣;又或者僅能針對(duì)某一特定的編程語言、或者具有類似特性的語言來實(shí)現(xiàn),如果程序語言不具備類似特性,那么就很難實(shí)現(xiàn)。而且,對(duì)于解釋器解釋執(zhí)行的腳本語言,如果解釋器的技術(shù)沒有公開,此類測(cè)試技術(shù)也會(huì)變得一籌莫展。
現(xiàn)有技術(shù)常通過分析源代碼、自動(dòng)插入代碼修改其分支路徑的執(zhí)行,以覆蓋所有程序的執(zhí)行分支。為了控制程序的分支執(zhí)行,代碼的自動(dòng)插入修改了被測(cè)單元的原有分支執(zhí)行邏輯。例如,CN02146712.9、CN200510126499.1、CN201110338915.X、CN200710177534.1。
此類測(cè)試手段修改了被測(cè)函數(shù)的原有邏輯。具體而言,在被測(cè)單元原邏輯中的代碼插入,其邏輯一致性無法得到保證——即原函數(shù)邏輯和修改后的邏輯是否一致,已經(jīng)無從論證了。因此就算測(cè)試通過,只能說明被測(cè)程序單元中各條指令的可執(zhí)行性,但是其邏輯正確性,特別是在多線程、存在競(jìng)爭(zhēng)的環(huán)境中,無從驗(yàn)證。
現(xiàn)有技術(shù)多采用和被測(cè)文件不一樣的編程語言來定義測(cè)試腳本,例如,CN02146712.9、CN200510126499.1、CN200710176970.7。此類技術(shù)的問題在于開發(fā)人員的學(xué)習(xí)成本增加,無法利用現(xiàn)有編輯工具。
現(xiàn)有技術(shù)也不足以應(yīng)對(duì)大規(guī)模單元測(cè)試的需求。對(duì)于大規(guī)模的單元測(cè)試用例的撰寫,依然需要手工編寫大量樁函數(shù)來控制測(cè)試行為;或者因?yàn)榧夹g(shù)原因,就算編寫了樁函數(shù),在不修改代碼的情況下,也無法進(jìn)行插樁操作。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于富士施樂實(shí)業(yè)發(fā)展(中國(guó))有限公司,未經(jīng)富士施樂實(shí)業(yè)發(fā)展(中國(guó))有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410087921.6/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 資源文件測(cè)試系統(tǒng)及測(cè)試方法
- 模糊測(cè)試的方法、裝置和系統(tǒng)
- 一種Android平臺(tái)自動(dòng)化集成測(cè)試方法和裝置
- 一種錄制被測(cè)Android程序的用戶操作的方法及系統(tǒng)
- 軟件測(cè)試方法和系統(tǒng)及測(cè)試平臺(tái)
- 一種代碼覆蓋率的測(cè)試方法及裝置
- 一種用于多個(gè)被測(cè)對(duì)象的視覺檢測(cè)方法及其系統(tǒng)
- 網(wǎng)絡(luò)性能的測(cè)試方法和測(cè)試裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種存儲(chǔ)OSES系統(tǒng)穩(wěn)定性的測(cè)試系統(tǒng)和方法
- 音頻質(zhì)量檢測(cè)方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)





