[發明專利]一種基于四值邏輯的位運算測試用例生成方法在審
| 申請號: | 201510416680.X | 申請日: | 2015-07-15 |
| 公開(公告)號: | CN105005530A | 公開(公告)日: | 2015-10-28 |
| 發明(設計)人: | 金大海;李峰;宮云戰;王雅文;黃俊飛 | 申請(專利權)人: | 北京郵電大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京永創新實專利事務所 11121 | 代理人: | 趙文利 |
| 地址: | 100876 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 邏輯 運算 測試 生成 方法 | ||
技術領域
本發明涉及軟件測試中測試用例生成技術領域,尤其是位運算的處理,具體涉及一種基于四值邏輯的位運算測試用例生成方法。
背景技術
位運算是指對整數二進制形式的每一位進行邏輯運算;邏輯運算又稱布爾運算,以假或真為單位進行運算;0表示假,1表示真。
C語言的數值運算共有11個,分為三類:①以四則運算為基礎:包括加、減、乘、除、取模;對應的運算符號分別為:+、-、*、/、%;②以邏輯運算為基礎:包括按位與、按位或、按位異或、按位取反;對應的運算符號分別為:&、|、^、~;③移位:包括右移、左移,對應的符號分別為:<<、>>,移位并不基于邏輯運算。
位運算以邏輯運算為基礎,對16個C工程近15萬行代碼進行統計,如圖1所示,位運算在工程中出現的比例為:
測試用例(Test?Case)是為某個特殊目標而編制的一組數值,自動生成測試輸入,以便測試某個程序路徑或核實是否滿足某個特定需求。
在使用搜索技術進行測試用例生成時,變量的值域越大,搜索空間就越大。為了減小搜索空間,需要計算變量的值域;現有技術中,對于四則運算,使用區間運算來計算變量的值域。但是,對于位運算,因為傳統的區間運算都是基于四則運算,位運算基于邏輯運算,所以,無法使用區間運算來計算變量的值域,位運算的測試用例的搜索效率很低。
發明內容
本發明的目的是為了解決位運算的測試用例生成效率不高的問題,提供了一種基于四值邏輯的位運算測試用例生成方法。
具體實施步驟如下:
步驟一、分別設定四值邏輯運算的方法和四值邏輯運算的逆運算方法;
四值邏輯運算定義:將邏輯變量的值域抽象成四種取值,分別表示為:⊥,0,1,T;其中0={0}、1={1}、T={0,1};
邏輯運算的逆運算定義:已知邏輯運算xRy=z,通過y和z求x的運算稱為R的逆運算,記為x=zR-1y;R是位運算符,R∈{&、|、^}。
基于四值邏輯的運算式包括:x與y,x或y,x異或y和x按位取反;分別用符號表示:x&y,x|y,x^y和~x;
四值邏輯的逆運算式包括:x與y的逆運算,x或y的逆運算,x異或y的逆運算和x按位取反的逆運算;分別用符號表示:z&-1y,z|-1y,z^-1y和~z-1;
步驟二、將位運算約束分解為邏輯運算約束;
位運算約束的形式有兩種:①一元約束:~x=y;②二元約束:xRy=z;其中,x、y、z是整數;將位運算約束中的整型變量表示成二進制形式,則二進制形式中的每一位對應一個邏輯運算約束,符號化描述如下:
~x=y→~x1x2...xi...xn=y1y2...yi...yn→~x1=y1^~x2=y2...^~xi=yi...^~xn=yn,其中
xi,yi∈{0,1};n為整數,表示二進制形式下的位數。
xRy=z→x1x2...xi...xnRy1y2...yi...yn=z1z2...zi...zn→
x1Ry1=z1^x2Ry2=z2^...xiRyi=zi...^xnRyn=zn
其中,xi,yi,zi∈{0,1}
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京郵電大學,未經北京郵電大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510416680.X/2.html,轉載請聲明來源鉆瓜專利網。





