欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種源代碼的比對(duì)方法

文檔序號(hào):6523553閱讀:227來(lái)源:國(guó)知局
一種源代碼的比對(duì)方法
【專(zhuān)利摘要】本發(fā)明適用軟件領(lǐng)域,提供了一種代碼的比對(duì)方法,所述方法包括:獲取待比對(duì)的新舊源代碼文件,提取新舊源代碼文件的修改日期和文件大小;如日期和文件大小中有一個(gè)不相同,將舊源代碼文件讀入OldString,將新源代碼文件讀入NewString;如OldString與NewString不相同,解析出舊源代碼文件中的文件頭、類(lèi)聲明、屬性聲明和方法聲明,存入字符串組OldClass()中,解析出新源代碼文件中的文件頭、類(lèi)聲明、屬性聲明和方法聲明,存入字符串組NewClass()中;取OldClass()中的每個(gè)元素與NewString比對(duì);根據(jù)比對(duì)結(jié)果判斷是否記錄到變更清單。本發(fā)明提供的技術(shù)方案具有準(zhǔn)確定義源代碼修改的優(yōu)點(diǎn)。
【專(zhuān)利說(shuō)明】一種源代碼的比對(duì)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于軟件領(lǐng)域,尤其涉及一種源代碼的比對(duì)方法。
【背景技術(shù)】
[0002]黑盒測(cè)試是基于軟件產(chǎn)品需求和設(shè)計(jì)規(guī)格說(shuō)明的測(cè)試方法。著重于確認(rèn)和驗(yàn)證軟件產(chǎn)品是否滿(mǎn)足規(guī)格說(shuō)明。
[0003]黑盒測(cè)試方法的過(guò)程是圍繞需求文檔設(shè)計(jì)測(cè)試用例,使用方法包括等價(jià)類(lèi),因果圖,錯(cuò)誤推測(cè)等。評(píng)價(jià)測(cè)試用例設(shè)計(jì)的方法完全來(lái)自對(duì)需求文檔,業(yè)務(wù)知識(shí)和軟件設(shè)計(jì)說(shuō)明書(shū)的理解程度和使用上述黑盒測(cè)試方法設(shè)計(jì)測(cè)試用例的能力。
[0004]因?yàn)榇蟛糠趾诤袦y(cè)試人員很少懂編碼,因此開(kāi)發(fā)人員在實(shí)現(xiàn)開(kāi)發(fā)活動(dòng)過(guò)程中,很少與黑盒測(cè)試人員溝通業(yè)務(wù)邏輯和代碼邏輯,只是按照需求和設(shè)計(jì)說(shuō)明書(shū)編寫(xiě)代碼,由于理解錯(cuò)誤產(chǎn)生的問(wèn)題只能在源代碼做成安裝盤(pán)后由黑盒測(cè)試人員在測(cè)試時(shí)發(fā)現(xiàn)。
[0005]傳統(tǒng)的黑盒測(cè)試活動(dòng)都是按照測(cè)試計(jì)劃執(zhí)行的,一般開(kāi)發(fā)人員修改代碼后,很少會(huì)通知黑盒測(cè)試人員重點(diǎn)測(cè)試修改的地方,甚至修改者本人也不十分清楚自己修改的代碼會(huì)影響哪些業(yè)務(wù)邏輯?變更影響范圍有多大?此時(shí),黑盒測(cè)試人員的測(cè)試活動(dòng)具有很大盲目性?;ㄙM(fèi)大量精力進(jìn)行回歸測(cè)試也不一定能夠排除風(fēng)險(xiǎn),如果黑盒測(cè)試人員在測(cè)試產(chǎn)品前能夠獲得準(zhǔn)確信息,了解到本次開(kāi)發(fā)人員修改代碼涉及哪些業(yè)務(wù)邏輯和測(cè)試要點(diǎn),就可以據(jù)此更新測(cè)試用例,安排測(cè)試資源,有的放矢地解決問(wèn)題。讓黑盒測(cè)試人員從代碼變更中獲取上述情報(bào)就是本文的立足點(diǎn)和待解決問(wèn)題。
[0006]目前對(duì)于文件內(nèi)容的比較的研究相對(duì)較少,按照其目標(biāo)不同可以將文件監(jiān)控分為兩種:一種是定量的比較,既能判斷文件是否被改變,又能定位到不同之處,往往針對(duì)的是文本文件。另一種是定性比較,只能判斷文檔是否被改變,但不能直觀地知道文件的具體差異,這種比較對(duì)所有文件都適用,主要利用文件的特征值、簽名文件或者加密算法判斷。而對(duì)于二進(jìn)制文件一般采用指令相似性、結(jié)構(gòu)化比較、特征提取等來(lái)實(shí)現(xiàn)。
[0007]文件比較主要討論的是定量比較,目前已有的算法有兩種:一種是簡(jiǎn)易的文本內(nèi)容比較算法,另一種是基于圖的文本比算法。對(duì)于字?jǐn)?shù)比較少的文本文件可以采用前者,將源文件(被監(jiān)測(cè)文件)和目標(biāo)文件(監(jiān)測(cè)時(shí)用來(lái)與源文件內(nèi)容進(jìn)行比較的文件)的內(nèi)容從頭到尾一對(duì)一地進(jìn)行比較,如果發(fā)現(xiàn)內(nèi)容不相同,即為出現(xiàn)了異常,利用循環(huán)來(lái)判斷異常的位置。
[0008]當(dāng)文件中變化的內(nèi)容比較多時(shí),該方法速度會(huì)比較慢。而后者使用逆序循環(huán),需要緩存計(jì)算信息,因此增加了系統(tǒng)開(kāi)銷(xiāo),并且由于基于圖論,所以過(guò)程比較復(fù)雜。
[0009]在實(shí)現(xiàn)現(xiàn)有技術(shù)的技術(shù)方案中,發(fā)現(xiàn)現(xiàn)有技術(shù)存在如下問(wèn)題:
現(xiàn)有的源代碼的比對(duì)無(wú)法在黑盒測(cè)試時(shí)將源代碼的變更提交給黑盒測(cè)試員。
[0010]

【發(fā)明內(nèi)容】
[0011]本發(fā)明實(shí)施例的目的在于提供一種源代碼的比對(duì)方法,其解決現(xiàn)有技術(shù)中源代碼的比對(duì)無(wú)法在黑盒測(cè)試時(shí)將源代碼的變更提交給黑盒測(cè)試員的問(wèn)題。
[0012]本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一方面,提供一種代碼的比對(duì)方法,所述方法包括: 獲取待比對(duì)的新舊源代碼文件,提取新舊源代碼文件的修改日期和文件大?。?br> 如日期和文件大小中有一個(gè)不相同,將舊源代碼文件讀入OldString,將新源代碼文件
讀入NewString ;所述OldString為舊源代碼文件的字符串變量,所述NewString為新源代碼文件的字符串變量;如OldString與NewString相同,則對(duì)比結(jié)束,認(rèn)為新舊源代碼文件一樣;
如OldString與NewString不相同,解析出舊源代碼文件中的文件頭、類(lèi)聲明、屬性聲明和方法聲明,存入字符串組OldClassO中,解析出新源代碼文件中的文件頭、類(lèi)聲明、屬性聲明和方法聲明,存入字符串組NewClassO中;
取OldClassO中的每個(gè)元素與NewString比對(duì);
如OldClass O中的元素包含于NewString中,取NewClass O中的每個(gè)元素與OldString 比對(duì),如 NewClass O 中的兀素包含于 NewString 中且 OldClass O 與 NewClass O中的元素的類(lèi)名稱(chēng)不同,則記變更,該OldClassO的元素被修改,將該元素中的分支和循環(huán)語(yǔ)句提取分支ID和注釋信息記錄到變更清單JnNewClassO中的元素不包含于NewString,則該元素為新增,將該元素中的分支和循環(huán)語(yǔ)句提取分支ID和注釋信息記錄到變更清單;
如OldClassO中的元素不包含于NewString中且類(lèi)名稱(chēng)不存在于NewString,則記錄變更,將該元素中的分支和循環(huán)語(yǔ)句提取分支ID和注釋信息記錄到變更清單;
將該變更清單發(fā)送給黑盒測(cè)試人員及相關(guān)功能開(kāi)發(fā)人員;
所述新源代碼文件和所述舊源代碼文件中的源代碼的每個(gè)分支和循環(huán)語(yǔ)句中均插入有分支ID以及注釋信息。
[0013]可選的,所述方法在將該變更清單發(fā)送給黑盒測(cè)試人員及相關(guān)功能開(kāi)發(fā)人員之前還包括:
如OldClass O中的元素不包含于NewString中且類(lèi)名稱(chēng)存在于NewString時(shí),則取OldClassO中該類(lèi)代碼與NewClassO中同名的類(lèi)元素對(duì)比,具體的比對(duì)方式為:
將OldClassO中該類(lèi)代碼的所有類(lèi)成員解析為OldMemberO ,將NewClassO中同名的類(lèi)元素的所有類(lèi)成員解析為NewMember O ;取OldMemberO中的每個(gè)元素與NewString對(duì)比,若OldMember O元素包含于NewString字符串中,則該元素存在且無(wú)變更;從NewString中刪除該元素;若發(fā)現(xiàn)OldMember O中某元素不在NewString中且該元素的名稱(chēng)包含在NewString中,那么認(rèn)為該元素被修改,取OldMember O中該元素代碼與NewMember O中同名的元素對(duì)比;若發(fā)現(xiàn)OldMemberO中某元素不在NewString中且該元素的名稱(chēng)不包含在NewString中則認(rèn)為該元素被刪除,分析元素的分支和循環(huán)語(yǔ)句提取分支ID和注釋信息記錄到變更清單。
[0014]可選的,所述將該變更清單發(fā)送給黑盒測(cè)試人員及相關(guān)功能開(kāi)發(fā)人員具體包括: 通過(guò)郵件發(fā)送該變更清單給黑盒測(cè)試人員及相關(guān)功能開(kāi)發(fā)人員。
[0015]在本發(fā)明實(shí)施例中,本發(fā)明提供的技術(shù)方案自動(dòng)搜集源代碼變更信息后提示給黑盒測(cè)試人員及相關(guān)功能開(kāi)發(fā)人員,大大降低了黑盒回歸測(cè)試的盲目性,提高了黑盒測(cè)試效率,增加了開(kāi)發(fā)人員與測(cè)試人員之間的信息溝通,對(duì)于控制研發(fā)過(guò)程中由于開(kāi)發(fā)人員和測(cè)試人員信息不對(duì)稱(chēng)導(dǎo)致的開(kāi)發(fā)風(fēng)險(xiǎn)具有明顯的抑制作用,將開(kāi)發(fā)信息和測(cè)試信息以注釋形式與源代碼綁定在一起,保證了開(kāi)發(fā)人員之間和開(kāi)發(fā)人員與測(cè)試人員之間的知識(shí)轉(zhuǎn)移。[0016]
【專(zhuān)利附圖】

【附圖說(shuō)明】
[0017]圖1是本發(fā)明提供的一種代碼的比對(duì)方法的流程圖。
[0018]
【具體實(shí)施方式】
[0019]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0020]本發(fā)明最核心區(qū)別是,通過(guò)提取源代碼中的分支ID和注釋實(shí)現(xiàn)通過(guò)對(duì)比代碼邏輯變更,過(guò)濾源代碼中用自然語(yǔ)言描述的注釋信息,據(jù)此識(shí)別出軟件業(yè)務(wù)邏輯的變更,而不僅僅象其他對(duì)比工具一樣,只對(duì)比類(lèi),成員和代碼行。本發(fā)明在實(shí)現(xiàn)之前,需要配置標(biāo)記分支工具,標(biāo)記分支工具可以參見(jiàn)其他文件的描述。
[0021]本發(fā)明【具體實(shí)施方式】提供一種代碼的比對(duì)方法,該方法如圖1所示,包括:
101、獲取待比對(duì)的新舊源代碼文件,提取新舊源代碼文件的修改日期和文件大小,如日期和文件大小都相同,則比對(duì)結(jié)束,認(rèn)為新舊源代碼文件一樣;如日期和文件大小中有一個(gè)不相同,則執(zhí)行102以及102的后續(xù)步驟;
102、將舊源代碼文件讀入OldString,將新源代碼文件讀入NewString;該OldString為舊源代碼文件的字符串變量,該NewString為新源代碼文件的字符串變量JBOldString與NewString相同,則對(duì)比結(jié)束,認(rèn)為新舊源代碼文件一樣;如不相同,執(zhí)行103及其后續(xù)步驟;
103、解析出舊源代碼文件中的文件頭、類(lèi)聲明、屬性聲明和方法聲明,存入字符串組OldClassO中,解析出新源代碼文件中的文件頭、類(lèi)聲明、屬性聲明和方法聲明,存入字符串組 NewClass O 中;
104、取OldClassO中的每個(gè)元素與NewString比對(duì),如OldClass O中的元素包含于NewString中,執(zhí)行105 ;如OldClassO中的元素不包含于NewString中且類(lèi)名稱(chēng)不存在于NewString,則記錄變更,將該元素中的分支和循環(huán)語(yǔ)句提取分支ID和注釋信息記錄到
變更清單;
105、取NewClassO中的每個(gè)元素與OldString比對(duì),如NewClass O中的元素包含于NewString中且OldClass O與NewClass O中的元素的類(lèi)名稱(chēng)不同,則記變更,該OldClassO的元素被修改,將該元素中的分支和循環(huán)語(yǔ)句提取分支ID和注釋信息記錄到變更清單jBNewClassO中的元素不包含于NewString,則該元素為新增,將該元素中的分支和循環(huán)語(yǔ)句提取分支ID和注釋信息記錄到變更清單。
[0022]106、將該變更清單發(fā)送給黑盒測(cè)試人員及相關(guān)功能開(kāi)發(fā)人員。
[0023]需要說(shuō)明的是,上述新源代碼文件和舊源代碼文件中的源代碼的每個(gè)分支和循環(huán)語(yǔ)句中均插入有分支ID以及注釋信息。
[0024]上述發(fā)送方式可以為多種形式,例如郵件等形式發(fā)送。
[0025]可選的,上述方法還包括:
如OldClass O中的元素不包含于NewString中且類(lèi)名稱(chēng)存在于NewString,則取OldClassO中該類(lèi)代碼與NewClassO中同名的類(lèi)元素對(duì)比,具體的比對(duì)方式可以為:
201、將OldClassO中該類(lèi)代碼的所有類(lèi)成員解析為OldMember O ,將NewClass O中同名的類(lèi)元素的所有類(lèi)成員解析為NewMember O ;
202、取OldMemberO中的每個(gè)兀素與NewString對(duì)比,若OldMember O兀素包含于NewString字符串中,則該元素存在且無(wú)變更;從NewString中刪除該元素;若發(fā)現(xiàn)OldMember O中某元素不在NewString中且該元素的名稱(chēng)包含在NewString中,那么認(rèn)為該元素被修改,取OldMemberO中該元素代碼與NewMemberO中同名的元素對(duì)比;若發(fā)現(xiàn)OldMember O中某元素不在NewString中且該元素的名稱(chēng)不包含在NewString中則認(rèn)為該元素被刪除,分析元素的分支和循環(huán)語(yǔ)句提取分支ID和注釋信息記錄到變更清單。本發(fā)明提供的技術(shù)方案具有準(zhǔn)確定義源代碼修改的優(yōu)點(diǎn)。
[0026]本發(fā)明的技術(shù)方案在自動(dòng)搜集源代碼變更信息后提示給黑盒測(cè)試人員及相關(guān)功能開(kāi)發(fā)人員。首先,大大降低了黑盒回歸測(cè)試的盲目性,提高了黑盒測(cè)試效率。其次,增加了開(kāi)發(fā)人員與測(cè)試人員之間的信息溝通,對(duì)于控制研發(fā)過(guò)程中由于開(kāi)發(fā)人員和測(cè)試人員信息不對(duì)稱(chēng)導(dǎo)致的開(kāi)發(fā)風(fēng)險(xiǎn)具有明顯的抑制作用。第三,將開(kāi)發(fā)信息和測(cè)試信息以注釋形式與源代碼綁定在一起,保證了開(kāi)發(fā)人員之間和開(kāi)發(fā)人員與測(cè)試人員之間的知識(shí)轉(zhuǎn)移。
[0027]值得注意的是,上述實(shí)施例中,所包括的各個(gè)單元只是按照功能邏輯進(jìn)行劃分的,但并不局限于上述的劃分,只要能夠?qū)崿F(xiàn)相應(yīng)的功能即可;另外,各功能單元的具體名稱(chēng)也只是為了便于相互區(qū)分,并不用于限制本發(fā)明的保護(hù)范圍。
[0028]另外,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述各實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,相應(yīng)的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),如R0M/RAM、磁盤(pán)或光盤(pán)等。
[0029]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種代碼的比對(duì)方法,其特征在于,所述方法包括: 獲取待比對(duì)的新舊源代碼文件,提取新舊源代碼文件的修改日期和文件大?。? 如日期和文件大小中有一個(gè)不相同,將舊源代碼文件讀入OldString,將新源代碼文件讀入NewString ;所述OldString為舊源代碼文件的字符串變量,所述NewString為新源代碼文件的字符串變量;如OldString與NewString相同,則對(duì)比結(jié)束,認(rèn)為新舊源代碼文件一樣; 如OldString與NewString不相同,解析出舊源代碼文件中的文件頭、類(lèi)聲明、屬性聲明和方法聲明,存入字符串組OldClassO中,解析出新源代碼文件中的文件頭、類(lèi)聲明、屬性聲明和方法聲明,存入字符串組NewClassO中; 取OldClass O中的每個(gè)元素與NewString比對(duì); 如OldClass O中的元素包含于NewString中,取NewClass O中的每個(gè)元素與OldString 比對(duì),如 NewClass O 中的兀素包含于 NewString 中且 OldClass O 與 NewClass O中的元素的類(lèi)名稱(chēng)不同,則記變更,該OldClassO的元素被修改,將該元素中的分支和循環(huán)語(yǔ)句提取分支ID和注釋信息記錄到變更清單JnNewClassO中的元素不包含于NewString,則該元素為新增,將該元素中的分支和循環(huán)語(yǔ)句提取分支ID和注釋信息記錄到變更清單; 如OldClassO中的元素不包含于NewString中且類(lèi)名稱(chēng)不存在于NewString,則記錄變更,將該元素中的分支和循環(huán)語(yǔ)句提取分支ID和注釋信息記錄到變更清單; 將該變更清單發(fā)送給黑盒測(cè)試人員及相關(guān)功能開(kāi)發(fā)人員; 所述新源代碼文件和所述舊源代碼文件中的源代碼的每個(gè)分支和循環(huán)語(yǔ)句中均插入有分支ID以及注釋信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法在將該變更清單發(fā)送給黑盒測(cè)試人員及相關(guān)功能開(kāi)發(fā)人員之前還包括: 如OldClass O中的元素不包含于NewString中且類(lèi)名稱(chēng)存在于NewString時(shí),則取OldClassO中該類(lèi)代碼與NewClassO中同名的類(lèi)元素對(duì)比,具體的比對(duì)方式為: 將OldClassO中該類(lèi)代碼的所有類(lèi)成員解析為OldMemberO ,將NewClassO中同名的類(lèi)元素的所有類(lèi)成員解析為NewMember O ;取OldMemberO中的每個(gè)元素與NewString對(duì)比,若OldMember O元素包含于NewString字符串中,則該元素存在且無(wú)變更;從NewString中刪除該元素;若發(fā)現(xiàn)OldMember O中某元素不在NewString中且該元素的名稱(chēng)包含在NewString中,那么認(rèn)為該元素被修改,取OldMember O中該元素代碼與NewMember O中同名的元素對(duì)比;若發(fā)現(xiàn)OldMemberO中某元素不在NewString中且該元素的名稱(chēng)不包含在NewString中則認(rèn)為該元素被刪除,分析元素的分支和循環(huán)語(yǔ)句提取分支ID和注釋信息記錄到變更清單。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述將該變更清單發(fā)送給黑盒測(cè)試人員及相關(guān)功能開(kāi)發(fā)人員具體包括: 通過(guò)郵件發(fā)送該變更清單給黑盒測(cè)試人員及相關(guān)功能開(kāi)發(fā)人員。
【文檔編號(hào)】G06F11/36GK103617122SQ201310682487
【公開(kāi)日】2014年3月5日 申請(qǐng)日期:2013年12月12日 優(yōu)先權(quán)日:2013年12月12日
【發(fā)明者】曹峰 申請(qǐng)人:用友軟件股份有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
龙山县| 昆明市| 渭源县| 金溪县| 石河子市| 宁阳县| 元谋县| 健康| 凤台县| 台东县| 海淀区| 双柏县| 辉县市| 喜德县| 太和县| 集安市| 瓦房店市| 平陆县| 常州市| 辛集市| 海林市| 迁西县| 蒙城县| 竹山县| 马边| 临城县| 山阳县| 彩票| 长阳| 柘荣县| 上犹县| 峡江县| 社会| 夏河县| 南阳市| 宁远县| 眉山市| 台北县| 陵川县| 扎鲁特旗| 南乐县|