[發(fā)明專利]應用符號分析的軟件測試方法有效
| 申請?zhí)枺?/td> | 201010185904.8 | 申請日: | 2010-05-28 |
| 公開(公告)號: | CN101840372A | 公開(公告)日: | 2010-09-22 |
| 發(fā)明(設計)人: | 宮云戰(zhàn);肖慶;楊朝紅;金大海;黃俊飛;王雅文;趙云山;宋穎 | 申請(專利權)人: | 北京郵電大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京匯澤知識產權代理有限公司 11228 | 代理人: | 程殿軍 |
| 地址: | 100088 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 應用 符號 分析 軟件 測試 方法 | ||
技術領域
本發(fā)明涉及靜態(tài)軟件測試技術,尤其涉及一種應用符號分析的軟件測試方法。
背景技術
軟件測試是在軟件投入運行前,對軟件需求分析、設計規(guī)格說明和編碼實現(xiàn)的最終審查,是軟件質量保證的關鍵步驟。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,在一個可控的軟件測試環(huán)境中分析或執(zhí)行程序,其根本目的是以盡可能少的時間和人力發(fā)現(xiàn)并改正軟件中潛在的各種故障及缺陷,提高軟件的質量。
從測試過程是否需要運行被測軟件的角度,可將軟件測試方法分為兩大類:動態(tài)測試法和靜態(tài)測試法。所謂動態(tài)測試,就是通過運行軟件來檢驗軟件的動態(tài)行為和運行結果的正確性。而靜態(tài)測試的基本特征是在對軟件進行分析、檢查和測試時不實際運行被測試的程序。動態(tài)測試和靜態(tài)測試各有其優(yōu)缺點:動態(tài)測試的優(yōu)點是發(fā)現(xiàn)的軟件錯誤非常直觀,缺點是對測試用例的設計要求高,不同的測試用例集合發(fā)現(xiàn)錯誤的能力差別很大,另外,由于動態(tài)測試法需要實際運行被測程序也是一個限制。而動態(tài)測試的缺點恰恰是靜態(tài)測試優(yōu)點,靜態(tài)測試不需要實際運行被測程序,不需要設計相關的測試用例,容易自動化,靜態(tài)測試的缺點是:發(fā)現(xiàn)的問題往往不能完全自動確定為真正的錯誤,需要人工確認,所以靜態(tài)測試又被稱作靜態(tài)分析。
從可計算性理論的角度來看,靜態(tài)分析是一個不可判定問題。提高精度是靜態(tài)測試的核心問題,提高精度通常包括兩個方面:減少誤報(false?positive)和減少漏報(false?negative)。由于大量的誤報會使人對測試失去信心,而漏報則會造成程序具有較高質量的假象。靜態(tài)測試過程中,造成靜態(tài)分析不精確的本質在于缺少程序動態(tài)執(zhí)行信息,因此,怎樣更好地近似表示和計算程序動態(tài)執(zhí)行信息是提高精度的關鍵。
發(fā)明內容
有鑒于此,本發(fā)明的主要目的在于提供一種應用符號分析的軟件測試方法,結合程序中變量關聯(lián)的程序動態(tài)執(zhí)行信息和計算方法,用以解決程序動態(tài)執(zhí)行信息的表示和處理程序中變量關聯(lián)關系的技術問題,從而提高靜態(tài)測試的精度。
為達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的:
一種應用符號分析的軟件測試方法,該方法包括:
A、給出一個符號運算系統(tǒng),包括符號表達式的表示、化簡、運算和計算符號表達式的取值區(qū)間;
B、給出將程序中各變量間的具體運算映射為符號運算的步驟;
C、給出程序分支語句對符號取值限定區(qū)間的計算步驟;
D、給出符號分析在程序控制流圖上的計算步驟;
其中,所述步驟A進一步包括:
A1、符號表達式的表示方式為:每一個符號表達式由一個或多個項通過加減運算結合而成,每一個項由一個或多個因子通過乘除運算結合而成,每一個因子由一個或多個原子通過冪運算結合而成,每一個原子對應一個當前取值區(qū)間;
A2、符號表達式的化簡方式為:首先將每一個因子化為最簡,然后將每一個項化為最簡,最后將整個表達式化為最簡;
A3、符號表達式的運算包括符號表達式之間加、減、乘、除運算;所述符號表達式運算的輸入和輸出均為化簡后的表達式;
A4、根據(jù)符號表達式中各符號的當前取值區(qū)間,通過區(qū)間運算求得符號表達式的取值區(qū)間。
所述步驟A2進一步包括:
A21、將符號表達式中的項進行排序;
A22、依次取項,并將當前項化為最簡;
A23、判斷當前項是否為該表達式中的第一項,如果是,則執(zhí)行步驟A26,否則執(zhí)行步驟A24;
A24、判斷當前項和上一項是否僅在于系數(shù)差別,如果是,則執(zhí)行步驟A25,否則執(zhí)行步驟A26;
A25、合并當前項和所述上一項,將兩項的系數(shù)根據(jù)當前項對應的運算符進行加減,剩余部分保持不變;
A26、判斷當前項是否為表達式的最后一項,如果是,則結束,否則執(zhí)行步驟A22。
所述步驟A22進一步包括:
A221、將項中的因子進行排序;
A222、依次取因子,并將當前因子化為最簡;
A223、判斷當前因子是否為項中的第一個因子,如果是,則執(zhí)行步驟A226,否則執(zhí)行步驟A224;
A224、判斷當前因子和上一因子是否只在于指數(shù)差別,如果是,則執(zhí)行步驟A225,否則執(zhí)行步驟A226;
A225、合并當前因子和上一個因子;
A226、判斷當前因子是否為項中的最后一個因子,如果是,則結束對該項的化簡過程,否則執(zhí)行步驟A222。
所述步驟A222進一步包括:
A2221、從因子的最外層冪開始依次取當前冪;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京郵電大學,未經北京郵電大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010185904.8/2.html,轉載請聲明來源鉆瓜專利網(wǎng)。





