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

用于關(guān)聯(lián)被測系統(tǒng)的輸入消息與輸出消息的方法和設(shè)備的制作方法

文檔序號:6485707閱讀:82來源:國知局
用于關(guān)聯(lián)被測系統(tǒng)的輸入消息與輸出消息的方法和設(shè)備的制作方法
【專利摘要】本發(fā)明公開了一種用于關(guān)聯(lián)被測系統(tǒng)的輸入消息與輸出消息的方法和設(shè)備。被測系統(tǒng)中有預(yù)先設(shè)置的觀測點,并且在被測系統(tǒng)運行時通過被測系統(tǒng)中的觀測點對被測系統(tǒng)的運行進行檢測。該方法包括:響應(yīng)于檢測到被測系統(tǒng)中的一變量與輸入消息相關(guān),執(zhí)行以下操作:將該變量與該輸入消息的標簽關(guān)聯(lián),并且使該變量設(shè)置有觀測點;以及響應(yīng)于檢測到被測系統(tǒng)用于存儲輸出消息的變量,根據(jù)所述用于存儲輸出消息的變量關(guān)聯(lián)的標簽,確定該輸出消息和輸入消息的關(guān)聯(lián)性。根據(jù)本發(fā)明提供的技術(shù)方案,通過設(shè)置觀測點和進行標簽關(guān)聯(lián),可以在無需關(guān)注源代碼內(nèi)部具體運行的情況下跟蹤與輸入消息發(fā)生關(guān)系的變量以確定關(guān)聯(lián)性,并可以免去從語義層進行語義分析。
【專利說明】用于關(guān)聯(lián)被測系統(tǒng)的輸入消息與輸出消息的方法和設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,更具體地,涉及一種用于確定被測系統(tǒng)的輸入消息與輸出消息的關(guān)聯(lián)性的方法和設(shè)備。
【背景技術(shù)】
[0002]物聯(lián)網(wǎng)被認為是新一代信息技術(shù)的重要組成部分,其定義為通過例如射頻識別(RFID)、紅外感應(yīng)器、全球定位系統(tǒng)、激光掃描器等信息傳感設(shè)備,按約定的協(xié)議,把任何物品與互聯(lián)網(wǎng)相連接,進行信息交換和通信,以實現(xiàn)對物品的智能化識別、定位、跟蹤、監(jiān)控和管理的一種網(wǎng)絡(luò)。
[0003]在諸如物聯(lián)網(wǎng)之類的分布式網(wǎng)絡(luò)中,功能測試是系統(tǒng)開發(fā)和故障檢測中的一個重要環(huán)節(jié)。例如,在一個收集溫度信息進行報警的系統(tǒng)中,分布在不同地點的溫度傳感器感測溫度,并將收集到的溫度信息發(fā)送給某節(jié)點,該節(jié)點根據(jù)收到的溫度信息確定是否發(fā)送報警信息來報警。在這樣一個物聯(lián)網(wǎng)中,設(shè)計出的該節(jié)點是否可以滿足設(shè)計要求,或者該節(jié)點的哪些輸入事件將導(dǎo)致輸出事件的發(fā)生,都可以通過功能測試來實現(xiàn)。
[0004]當設(shè)計出一個系統(tǒng)(該系統(tǒng)可以是網(wǎng)絡(luò)中的一個節(jié)點或其一部分,也可以是網(wǎng)絡(luò)中的多個節(jié)點構(gòu)成的整體)時,需要對該系統(tǒng)進行功能測試,以確定該系統(tǒng)是否滿足設(shè)計要求。當一個系統(tǒng)出現(xiàn)故障時,也可以對該系統(tǒng)進行功能測試,以對故障進行定位。由于一個系統(tǒng)可以接收大量的輸入消息并發(fā)出大量的輸出消息,因此如何方便地確定輸入消息和輸出消息之間的關(guān)聯(lián)性來幫助進行功能測試,成為一大需求。
[0005]近年來,出現(xiàn)了多種測試網(wǎng)絡(luò)中輸入消息和輸出消息的關(guān)聯(lián)性的方法。在這些方法中,通過從語義層分析輸入消息和輸出消息來確定它們之間的關(guān)聯(lián)性,也就是說需要通過分析輸入消息和輸出消息所包含數(shù)據(jù)的具體含義來分析關(guān)聯(lián)性。這要不需要大量的人工參與,要不需要通過大量的統(tǒng)計進行數(shù)據(jù)建模來分析,復(fù)雜度高。
[0006]目前,還存在多種代碼分析工具。例如,Wisconsi工具通過靜態(tài)分析源代碼,在代碼不執(zhí)行的情況下從代碼中找到相關(guān)聯(lián)的變量和/或函數(shù)。JSlice工具通過代碼的運行而記錄下代碼執(zhí)行路徑,通過代碼執(zhí)行路徑來尋找相關(guān)聯(lián)的變量和/或函數(shù)。SPYDER工具通過提前將用于觀測的探針植入到可執(zhí)行的機器代碼中,通過探針記錄下代碼關(guān)聯(lián)樹,從而根據(jù)代碼關(guān)聯(lián)樹尋找相關(guān)聯(lián)的變量和/或函數(shù),其中在代碼運行過程當中不能對探針進行改變。上述工具需要關(guān)注代碼內(nèi)部的具體執(zhí)行情況,實現(xiàn)復(fù)雜,不能準確方便地找到輸入消息和輸出消息之間的關(guān)聯(lián)性。

【發(fā)明內(nèi)容】

[0007]本發(fā)明提供了一種確定被測系統(tǒng)的輸入消息與輸出消息的關(guān)聯(lián)性的方法和設(shè)備,能夠通過利用觀測點和標簽來簡便地確定被測系統(tǒng)的輸入消息和輸出消息的關(guān)聯(lián)性,而無需對消息進行語義層分析,也無需關(guān)注源代碼內(nèi)部的具體運行。
[0008]根據(jù)本發(fā)明的一個方面,提供了 一種用于確定被測系統(tǒng)的輸入消息與輸出消息的關(guān)聯(lián)性的方法,其中,被測系統(tǒng)中有預(yù)先設(shè)置的觀測點,在被測系統(tǒng)運行時通過被測系統(tǒng)中的觀測點對被測系統(tǒng)的運行進行檢測,該方法包含:響應(yīng)于檢測到被測系統(tǒng)中的一變量與輸入消息相關(guān),執(zhí)行以下操作:將該變量與該輸入消息的標簽關(guān)聯(lián),并且使該變量設(shè)置有觀測點;以及響應(yīng)于檢測到被測系統(tǒng)用于存儲輸出消息的變量,根據(jù)所述用于存儲輸出消息的變量關(guān)聯(lián)的標簽,確定該輸出消息和輸入消息的關(guān)聯(lián)性。
[0009]根據(jù)本發(fā)明的另一個方面,提供了一種用于確定被測系統(tǒng)的輸入消息與輸出消息的關(guān)聯(lián)性的設(shè)備,其中,被測系統(tǒng)中有預(yù)先設(shè)置的觀測點,在被測系統(tǒng)運行時通過被測系統(tǒng)中的觀測點對被測系統(tǒng)的運行進行檢測,該設(shè)備包含:處理模塊,用于響應(yīng)于檢測到被測系統(tǒng)中的一變量與輸入消息相關(guān),執(zhí)行以下操作:將該變量與該輸入消息的標簽關(guān)聯(lián),并且使該變量設(shè)置有觀測點;以及關(guān)聯(lián)性確定模塊,用于響應(yīng)于檢測到被測系統(tǒng)用于存儲輸出消息的變量,根據(jù)所述用于存儲輸出消息的變量關(guān)聯(lián)的標簽,確定該輸出消息和輸入消息的關(guān)聯(lián)性。
[0010]根據(jù)本發(fā)明提供的技術(shù)方案,通過設(shè)置觀測點,可以在無需關(guān)注源代碼內(nèi)部具體運行的情況下跟蹤與輸入消息發(fā)生關(guān)系的變量,并且通過關(guān)聯(lián)標簽,可以使受同一輸入消息影響的不同變量與相同的標簽關(guān)聯(lián)。這樣,可以簡便地利用觀測點和標簽確定輸入消息與輸出消息的關(guān)聯(lián)性,并可以免去從語義層進行語義分析。
【專利附圖】

【附圖說明】
[0011]通過結(jié)合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號通常代表相同部件。
[0012]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算系統(tǒng)100的框圖。
[0013]圖2示出了根據(jù)本發(fā)明實施例的確定輸入消息和輸出消息的關(guān)聯(lián)性的方法200的流程圖。
[0014]圖3不出了用于確定輸入消息和輸出消息的關(guān)聯(lián)性的實施系統(tǒng)300的例子。
[0015]圖4示出了根據(jù)本發(fā)明實施例的確定輸入消息和輸出消息的關(guān)聯(lián)性的另一方法400的流程圖。
[0016]圖5不出了根據(jù)本發(fā)明實施例的確定輸入消息和輸出消息的關(guān)聯(lián)性的再一方法500的流程圖。
[0017]圖6示出了用于解釋根據(jù)本發(fā)明實施例的方法的具體實現(xiàn)的一個例子。
[0018]圖7示出了根據(jù)本發(fā)明實施例的用于確定輸入消息和輸出消息的關(guān)聯(lián)性的設(shè)備700的結(jié)構(gòu)框圖。
[0019]圖8示出了根據(jù)本發(fā)明實施例的用于確定輸入消息和輸出消息的關(guān)聯(lián)性的另一設(shè)備800的結(jié)構(gòu)框圖。
【具體實施方式】
[0020]下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
[0021]圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算系統(tǒng)100的框圖。如圖1所示,計算機系統(tǒng)100可以包括:CPU (中央處理單元)10URAM (隨機存取存儲器)102,ROM(只讀存儲器)103、系統(tǒng)總線104、硬盤控制器105、鍵盤控制器106、串行接口控制器107、并行接口控制器108、顯示控制器109、硬盤110、鍵盤111、串行外部設(shè)備112、并行外部設(shè)備113和顯示器114。在這些設(shè)備中,與系統(tǒng)總線104耦合的有CPU IOU RAM 102、ROM 103、硬盤控制器105、鍵盤控制器106、串行控制器107、并行控制器108和顯示控制器109。硬盤110與硬盤控制器105耦合,鍵盤111與鍵盤控制器106耦合,串行外部設(shè)備112與串行接口控制器107耦合,并行外部設(shè)備113與并行接口控制器108耦合,以及顯示器114與顯示控制器109耦合。應(yīng)當理解,圖1所述的結(jié)構(gòu)框圖僅僅是為了示例的目的,而不是對本發(fā)明范圍的限制。在某些情況下,可以根據(jù)具體情況增加或減少某些設(shè)備。
[0022]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可讀的程序代碼。
[0023]可以采用一個或多個計算機可讀的介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0024]計算機可讀的信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質(zhì)還可以是計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0025]計算機可讀介質(zhì)上包含的程序代碼可以用任何適當?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、電線、光纜、RF等等,或者上述的任意合適的組合。
[0026]可以以一種或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設(shè)計語言一諸如”C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務(wù)器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。[0027]下面將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,這些計算機程序指令通過計算機或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。
[0028]也可以把這些計算機程序指令存儲在能使得計算機或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機可讀介質(zhì)中,這樣,存儲在計算機可讀介質(zhì)中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。
[0029]也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。
[0030]現(xiàn)在參看圖2描述根據(jù)本發(fā)明實施例的確定輸入消息和輸出消息的關(guān)聯(lián)性的方法200。這里,根據(jù)本發(fā)明的實施例,輸入消息和輸出消息是指針對被測系統(tǒng)(SUT,systemunder test)的輸入消息和輸出消息;通過將被測系統(tǒng)裝載到測試平臺運行以對被測系統(tǒng)進行測試。測試平臺可以包括測試運行期環(huán)境,例如JVM (Java Virtual Machine, Jave虛擬機)、JVMTI (Java Virtual Machine Tool Interface, Jave 虛擬機工具接口)、GDB (GNUProject Debugger, GNU 工程調(diào)試器)等。
[0031]方法200包括:在步驟S210中,響應(yīng)于檢測到被測系統(tǒng)中的一變量與輸入消息相關(guān),執(zhí)行以下操作:將該變量與該輸入消息的標簽關(guān)聯(lián),并且使該變量設(shè)置有觀測點;在步驟S220中,響應(yīng)于檢測到被測系統(tǒng)用于存儲輸出消息的變量,根據(jù)所述用于存儲輸出消息的變量關(guān)聯(lián)的標簽,確定該輸出消息和輸入消息的關(guān)聯(lián)性。
[0032]在方法200中,隨著被測系統(tǒng)在測試平臺上的運行,通過為被測系統(tǒng)設(shè)置觀測點,并將與某輸入消息相關(guān)的變量都關(guān)聯(lián)上與該輸入消息對應(yīng)的標簽,可以根據(jù)標簽確定輸入消息和輸出消息之間的關(guān)聯(lián)性。與某輸入消息相關(guān)的變量是指與該輸入消息直接相關(guān)或間接相關(guān)的變量,即輸入消息對于該變量直接或間接的產(chǎn)生影響。所產(chǎn)生的影響可以包括對數(shù)據(jù)取值的影響,還可以包括對變量控制的影響。例如,輸入消息中的A信息直接改變了變量X的取值,或通過中間變量而間接改變了變量X的取值,那么變量X與該輸入消息相關(guān)。再例如,輸入消息中的A信息由于滿足一定條件致使變量X產(chǎn)生或變量X的取值改變,那么變量X也與該輸入消息相關(guān)。
[0033]此外,在步驟S210中,當根據(jù)已設(shè)置的觀測點確定一變量與輸入消息相關(guān)時,將該變量與輸入消息對應(yīng)的標簽(在下文中也可被稱為輸入消息的標簽)關(guān)聯(lián),并在該變量沒有設(shè)置有觀測點的情況下為該變量設(shè)置觀測點,在該變量設(shè)置有觀測點的情況下保持該變量的觀測點。已設(shè)置的觀測點可以是預(yù)先在被測系統(tǒng)中設(shè)置的觀測點,以及隨著步驟S210的執(zhí)行而新設(shè)置的觀測點。前者進一步可以是在被測系統(tǒng)被裝載到測試平臺之后、運行之前的觀測點,也可以是在被測系統(tǒng)被裝載到測試平臺之前預(yù)先嵌入被測系統(tǒng)的觀測點。
[0034]根據(jù)本發(fā)明的一個實施例,可以預(yù)先為接收輸入消息的輸入函數(shù)設(shè)置觀測點。這樣,當根據(jù)該觀測點確定調(diào)用輸入函數(shù)接收輸入消息時,可以檢測到用于存儲輸入消息的變量。
[0035]根據(jù)本發(fā)明的一個實施例,可以預(yù)先為發(fā)送輸出消息的輸出函數(shù)設(shè)置觀測點。這樣,當根據(jù)該觀測點確定調(diào)用輸出函數(shù)發(fā)送輸出消息時,根據(jù)輸出函數(shù)可以確定在函數(shù)的哪個輸入變量中存儲有輸出消息,從而根據(jù)存儲該輸出消息的變量關(guān)聯(lián)的標簽來確定關(guān)聯(lián)性。
[0036]通常,被測系統(tǒng)的網(wǎng)絡(luò)接口通過庫函數(shù)的調(diào)用進行網(wǎng)絡(luò)輸入輸出,不同的網(wǎng)絡(luò)接口在支持相同網(wǎng)絡(luò)協(xié)議并采用相同編程語言和操作系統(tǒng)的情況下可以具有相同的庫函數(shù)形式,通過調(diào)用輸入函數(shù)(例如receive ()函數(shù))接收輸入消息,通過調(diào)用輸出函數(shù)(例如send())發(fā)送輸出消息。當需要確定被測系統(tǒng)的輸入消息和輸出消息的關(guān)聯(lián)性時,可以提前在被測系統(tǒng)中找到輸入函數(shù)和輸出函數(shù),為其分別設(shè)置觀測點,以在被測系統(tǒng)運行到輸入函數(shù)和輸出函數(shù)時,由于遇到觀測點而觸發(fā)方法200中步驟的執(zhí)行。在本文中,輸入函數(shù)和輸出函數(shù)在某些編程語言(例如C++)下也可以被稱為輸入方法和輸出方法,其具體稱呼不對本發(fā)明構(gòu)成任何限制。
[0037]由于不同的被測系統(tǒng)可以支持不同的網(wǎng)絡(luò)協(xié)議并采用不同的編程語言和操作系統(tǒng),因此可以首先獲取被測系統(tǒng)的測試規(guī)范,并根據(jù)該測試規(guī)范,確定需要設(shè)置觀測點的輸入函數(shù)和輸出函數(shù)。這樣,對于不同的被測系統(tǒng),都可以正確找到輸入函數(shù)和輸出函數(shù)進行觀測點設(shè)置。測試規(guī)范可以包括當前需要測試的被測系統(tǒng)所支持的網(wǎng)絡(luò)協(xié)議以及被測系統(tǒng)的編程語言和操作系統(tǒng)。當然,本領(lǐng)域技術(shù)人員還可以想到其他形式的測試規(guī)范,通過指定測試規(guī)范,可以確定被測系統(tǒng)的輸入函數(shù)和輸出函數(shù)。
[0038]例如,為了通過測試規(guī)范確定輸入函數(shù)和輸出函數(shù),可以預(yù)先定義代碼模式(codepattern),通過測試規(guī)范確定代碼模式,再由代碼模式確定輸入函數(shù)和輸出函數(shù)。代碼模式可以以具有如下字段的表格的形式表示出來:封裝有網(wǎng)絡(luò)輸入輸出(I/O)功能的庫或包,在面向過程的編程語言下實施網(wǎng)絡(luò)I/O的函數(shù),在面向?qū)ο蟮木幊陶Z言下實施網(wǎng)絡(luò)I/O的類和方法,對于網(wǎng)絡(luò)輸入操作(即被測系統(tǒng)接收到輸入消息)被接收的消息以何種形式返回的指示符(例如,作為函數(shù)/方法的返回值,或者存儲在函數(shù)/方法的參數(shù)中),以及對于網(wǎng)絡(luò)輸出操作(即被測系統(tǒng)發(fā)送輸出消息)被發(fā)送的消息以何種形式傳遞的指示符(例如,存儲在函數(shù)/方法的某個參數(shù)中)。當確定出代碼模式之后,不僅可以知道輸入函數(shù)和輸出函數(shù)的函數(shù)名以便設(shè)置觀測點,還可以知道用于存儲輸入消息和輸出消息的變量在什么位置。例如,當調(diào)用輸入函數(shù)時,為存儲輸入消息的變量設(shè)置觀測點,當調(diào)用輸出函數(shù)時,知道哪個變量存儲有輸出消息。。
[0039]為輸入函數(shù)和輸出函數(shù)設(shè)置好觀測點后,被測系統(tǒng)可以在測試平臺上運行。當根據(jù)已設(shè)置的觀測點確定調(diào)用輸入函數(shù)接收輸入消息時,為用于存儲該輸入消息的變量設(shè)置觀測點。
[0040]例如,由于對輸入函數(shù)設(shè)置了觀測點,因此可以監(jiān)視到調(diào)用輸入函數(shù)接收了輸入消息,那么用于存儲輸入消息的變量與輸入消息發(fā)生關(guān)系,需要為其設(shè)置另一觀測點,以對該變量進行監(jiān)視。并且,需要為該變量分配該輸入消息對應(yīng)的標簽,以指示該變量與哪個輸入消息相關(guān)。輸入消息對應(yīng)的標簽可以是輸入消息的消息號,也可以是輸入消息的字符串,還可以是本領(lǐng)域技術(shù)人員可以想到的其他形式,通過該標簽可以找到相應(yīng)的輸入消息。另夕卜,本領(lǐng)域技術(shù)人員可以理解,用于存儲輸入消息的變量可以是表示輸入消息所存放的地址空間的變量,也可以是指向該地址空間的變量。
[0041]此外,當根據(jù)已設(shè)置的觀測點確定調(diào)用輸出函數(shù)發(fā)送輸出消息時,根據(jù)與用于存儲該輸出消息的變量關(guān)聯(lián)的標簽,確定該輸出消息和輸入消息的關(guān)聯(lián)性。
[0042]例如,由于對輸出函數(shù)設(shè)置了觀測點,因此可以監(jiān)視到調(diào)用輸出函數(shù)發(fā)送了輸出消息。通過查看與用于存儲輸出消息的變量關(guān)聯(lián)的標簽,可以找到與這些標簽所對應(yīng)的輸入消息,從而確定該輸出消息與哪些輸入消息具有關(guān)聯(lián)性。
[0043]根據(jù)本發(fā)明的實施例,與用于存儲輸出消息的變量關(guān)聯(lián)的標簽可以包括用于存儲該輸出消息的變量直接關(guān)聯(lián)的標簽,也可以包括用于存儲該輸出消息的變量通過所在線程對應(yīng)的堆棧中包含的分支標識所關(guān)聯(lián)的標簽,還可以包括這兩者。如下文中具體描述,通過設(shè)置的觀測點變量列表,可以確定變量在該列表中直接關(guān)聯(lián)的標簽;此外,由于輸出函數(shù)的調(diào)用可能發(fā)生在條件判斷語句之后的條件分支中,因此通過壓入堆棧的分支標識可以確定該條件分支中的變量間接關(guān)聯(lián)的標簽,即該變量所在條件分支的分支標識直接關(guān)聯(lián)的標簽。分支標識直接關(guān)聯(lián)的標簽可以是如下所述的在將分支標識壓入堆棧時分支標識所關(guān)聯(lián)上的標簽。同樣,本領(lǐng)域技術(shù)人員可以理解,用于存儲輸出消息的變量可以是表示輸出消息所存放的地址空間的變量,也可以是指向該地址空間的變量。
[0044]在步驟S210的執(zhí)行過程中,可以有新的變量被設(shè)置有新的觀測點。由于新的觀測點的存在,步驟S210反復(fù)執(zhí)行,使得被測系統(tǒng)中添加的觀測點可以得到更新,以能夠跟蹤并監(jiān)視與輸入消息發(fā)生關(guān)系的所有變量。當變量與輸入消息相關(guān)時,通過為該變量分配與該輸入消息對應(yīng)的標簽,來通過標簽將變量與輸入消息關(guān)聯(lián)。這樣,與同一輸入消息相關(guān)的變量可以關(guān)聯(lián)有相同的標簽,同一變量由于受到多個輸入消息的影響可以關(guān)聯(lián)有多個標簽。在步驟S220中,輸出消息在被測系統(tǒng)中會由某變量表示,通過該變量直接關(guān)聯(lián)的標簽和/或該變量通過所在線程的堆棧中仍然存在的分支標識所間接關(guān)聯(lián)的標簽,可以通過標簽來將該輸出消息與相關(guān)的輸入消息關(guān)聯(lián)起來,從而確定關(guān)聯(lián)性。
[0045]根據(jù)本發(fā)明實施例提供的確定輸入消息和輸出消息的關(guān)聯(lián)性的方法,通過設(shè)置觀測點,可以在無需關(guān)注源代碼內(nèi)部具體運行的情況下跟蹤與輸入消息發(fā)生關(guān)系的變量,并且通過關(guān)聯(lián)標簽,可以使受同一輸入消息影響的不同變量與相同的標簽關(guān)聯(lián)。這樣,可以簡便地利用觀測點和標簽確定輸入消息與輸出消息的關(guān)聯(lián)性,并可以免去從語義層進行語義分析。
[0046]接下來,描述圖3所示的用于確定輸入消息和輸出消息的關(guān)聯(lián)性的實施系統(tǒng)300的例子。并在圖3所示的實施系統(tǒng)300的情況下,結(jié)合圖4和圖5更詳細地描述確定輸入消息和輸出消息的關(guān)聯(lián)性的方法400和500。
[0047]在圖3中,用于確定輸入消息和輸出消息的關(guān)聯(lián)性的實施系統(tǒng)300包括用于實施方法200的系統(tǒng)310和用于裝載被測系統(tǒng)SUT 370的測試平臺360。SUT370在測試平臺360的測試運行期環(huán)境中運行。雖然在圖3中將系統(tǒng)310和測試平臺360分開示出,但是本領(lǐng)域技術(shù)人員可以理解,系統(tǒng)310的部分或全部也可以集成到測試平臺360中,成為測試運行期環(huán)境的一個組成部分。
[0048]例如,當一個設(shè)計開發(fā)完成之后,需要測試人員對開發(fā)出的產(chǎn)品進行功能測試以確定該產(chǎn)品是否滿足設(shè)計要求,那么此時需要測試的產(chǎn)品為圖3中的SUT 370。[0049]測試人員將他感興趣的SUT 370支持的網(wǎng)絡(luò)協(xié)議(例如TCP (TransmissionControl Protocol,傳輸控制協(xié)議)或 UDP (User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議)等)、SUT 370的編程語言(例如C++或Java等)以及SUT 370目標操作系統(tǒng)(例如Linux或Unix等)作為測試規(guī)范305輸入到代碼模式生成器320。代碼模式生成器320根據(jù)接收到的測試規(guī)范檢索預(yù)先定義的代碼模式庫305,在代碼模式庫305中找到與測試規(guī)范相適應(yīng)的代碼模式325,代碼模式325也可被稱為網(wǎng)絡(luò)1/0模式。通過代碼模式,可以確定相應(yīng)測試規(guī)范下SUT370用于接收輸入消息的輸入函數(shù)和用于發(fā)送輸出消息的輸出函數(shù)。
[0050]代碼模式生成器320將根據(jù)測試規(guī)范確定的代碼模式325發(fā)送給觀測點編輯器330。觀測點編輯器330根據(jù)代碼模式325確定需要設(shè)置觀測點的輸入函數(shù)和輸出函數(shù),并將需要設(shè)置觀測點的輸入函數(shù)和輸出函數(shù)通知給測試平臺360,以使測試平臺360在裝載SUT 370之后為SUT 370的輸入函數(shù)和輸出函數(shù)設(shè)置觀測點。
[0051]觀測點編輯器330除了根據(jù)代碼模式325為輸入函數(shù)和輸出函數(shù)設(shè)置觀測點之夕卜,還需要根據(jù)1/0監(jiān)視分析器350反饋的信息設(shè)置新的觀測點或刪除已設(shè)置的觀測點,這將在下文中進行詳細描述。當觀測點編輯器330需要設(shè)置觀測點時,觀測點編輯器330向測試平臺360發(fā)送觀測點添加命令,通過觀測點添加命令指示測試平臺360為SUT 370的相應(yīng)位置添加觀測點。當觀測點編輯器330需要刪除已設(shè)置的觀測點時,觀測點編輯器330向測試平臺360發(fā)送觀測點刪除命令,通過觀測點刪除命令指示測試平臺360刪除相應(yīng)位置上的觀測點。
[0052]所謂“觀測點”是指在SUT 370中即SUT 370的代碼中需要監(jiān)視的位置。當運行到SUT 370的觀測點處時,觸發(fā)測試平臺360向系統(tǒng)310發(fā)送通知,以使1/0監(jiān)視分析器350進行相關(guān)操作。當1/0監(jiān)視分析器350根據(jù)接收的通知確定需要添加或刪除觀測點時,1/0監(jiān)視分析器350向觀測點編輯器330發(fā)送信息,以使觀測點編輯器330通過發(fā)送觀測點添加命令或觀測點刪除命令進行觀測點的設(shè)置或刪除。
[0053]由于觀測點編輯器330生成的觀測點添加命令或觀測點刪除命令可能不被測試平臺360識別,因此在該情況下,需要提供適配器340,以使這些命令可被轉(zhuǎn)換為測試平臺360可識別的命令。同樣,由于測試平臺360基于設(shè)置在SUT 370中的觀測點向系統(tǒng)310發(fā)送的通知可能不被1/0監(jiān)視分析器350識別,因此在該情況下,也需要適配器340來將測試平臺360發(fā)送的通知轉(zhuǎn)換為1/0監(jiān)視分析器350可識別的通知。當然,本領(lǐng)域技術(shù)人員可以理解,當系統(tǒng)310與測試平臺360之間通信的信息可相互識別時,也可以不需要適配器340。
[0054]在1/0監(jiān)視分析器350中可以在邏輯上設(shè)置兩個列表,一個是用于記錄分配給輸入消息的標簽(例如消息號,也可以是其它與輸入消息對應(yīng)的消息標識)的輸入消息列表,另一個是用于記錄設(shè)置有觀測點的變量與標簽(例如消息號)的關(guān)聯(lián)關(guān)系的觀測點變量列表。例如,當一個觀測點對應(yīng)的變量受到消息號為e的輸入消息的直接影響或間接影響時,為該變量分配標簽e,以使該變量與消息號為e的輸入消息關(guān)聯(lián)。設(shè)置有觀測點的變量在下文中也將被稱為觀測點變量。觀測點變量是被監(jiān)視的變量,當對該變量進行操作時,測試平臺360將向系統(tǒng)310發(fā)送相應(yīng)通知。
[0055]1/0監(jiān)視分析器350接收測試平臺360基于觀測點發(fā)送的通知并進行相應(yīng)處理。
[0056]當1/0監(jiān)視分析器350接收到測試平臺360基于設(shè)置在輸入函數(shù)處的觀測點發(fā)送的指示調(diào)用輸入函數(shù)接收到輸入消息的通知時,I/o監(jiān)視分析器350為該輸入消息分配消息號(在該例子中,用消息號e表示),并通知觀測點編輯器330為用于存儲該輸入消息的變量設(shè)置觀測點,并在觀測點變量列表中為該變量分配消息號e的標簽。
[0057]當I/O監(jiān)視分析器350接收到測試平臺360基于設(shè)置在某變量p的觀測點發(fā)送的指示在條件判斷語句對該變量P進行讀取操作的通知時,I/O監(jiān)視分析器350檢查條件判斷后所執(zhí)行的條件分支中所有進行寫入操作的變量,如果進行寫入操作的變量還未被設(shè)置觀測點,則需要指示觀測點編輯器330為其進行設(shè)置,并將其添加到觀測點變量列表中,而如果已設(shè)置有觀測點,則保持其觀測點。此外,I/O監(jiān)視分析器350還可以為將執(zhí)行的條件分支分配分支號,將分支號與變量P關(guān)聯(lián)的標簽相關(guān)聯(lián),并將分支號壓入當前線程對應(yīng)的堆棧中??梢圆捎萌缦路绞接涗浄种柵c變量P關(guān)聯(lián)的標簽之間的關(guān)聯(lián)關(guān)系,例如,可以在觀測點變量列表中將分支號與變量P關(guān)聯(lián)的標簽對應(yīng)記錄下來,也可以在其他存儲空間進行記錄,還可以將分支號與關(guān)聯(lián)的標簽作為一個整體一起壓入堆棧中。此處的“堆?!敝傅氖窃O(shè)置在I/O監(jiān)視分析器350中的堆棧,每個線程有它自己的堆棧,具有一一對應(yīng)關(guān)系。在該情況下,I/O監(jiān)視分析器350通知觀測點編輯器330為分支出口設(shè)置觀測點。
[0058]當I/O監(jiān)視分析器350接收到測試平臺360基于設(shè)置在分支出口處的觀測點發(fā)送的指示到達該分支出口的通知時,I/O監(jiān)視分析器350從當前線程的堆棧中彈出壓入的分支號。此外,I/O監(jiān)視分析器350還可以通知觀測點編輯器330刪除設(shè)置在該出口處的觀測點,并清除該分支部分的分支號及其標簽的對應(yīng)關(guān)系。
[0059]當I/O監(jiān)視分析器350接收到測試平臺360基于設(shè)置在某變量p的觀測點發(fā)送的指示在非條件判斷語句對該變量P進行讀取操作的通知時,假設(shè)將變量P讀入變量q,則I/0監(jiān)視分析器350將變量q添加到觀測點變量列表中,并為變量q分配與變量P相同的標簽,此外還需要向觀測點編輯器330發(fā)送信息以使觀測點編輯器330為變量q設(shè)置觀測點。
[0060]當I/O監(jiān)視分析器350接收到測試平臺360基于設(shè)置在某變量p的觀測點發(fā)送的指示對變量P進行寫入操作的通知時,清除在觀測點變量列表中變量P所關(guān)聯(lián)的標簽,如果寫入變量P的其它變量存在于觀測點變量列表中并關(guān)聯(lián)有標簽,則將這些標簽分配給變量P,并保持變量P處的觀測點,并且在變量P所在線程的堆棧中包含有分支標識(例如分支號)的情況下,將分支標識關(guān)聯(lián)的標簽也分配給變量P。如果寫入變量P的其它變量都不存在于觀測點變量列表中、但是變量P所在線程的堆棧中包含有分支標識,那么將分支標識關(guān)聯(lián)的標簽分配給變量P,并保持變量P處的觀測點。如果寫入變量P的其它變量都不存在于觀測點變量列表中、并且變量P所在線程的堆棧中不包含分支標識,那么變量P關(guān)聯(lián)的標簽為空,可以將P從觀測點變量列表中去除,此時可以通知觀測點編輯器330發(fā)送觀測點刪除命令來刪除在SUT 370中設(shè)置在變量p處的觀測點。
[0061]當I/O監(jiān)視分析器350接收到測試平臺360基于設(shè)置在輸出函數(shù)處的觀測點發(fā)送的指示調(diào)用輸出函數(shù)發(fā)送輸出消息的通知時,I/O監(jiān)視分析器350通過查看用于存儲輸出消息的變量在觀測點變量列表中直接關(guān)聯(lián)的標簽和/或該變量所在線程的堆棧中仍保持的分支號所關(guān)聯(lián)的標簽,可以確定輸出消息和輸入消息的對應(yīng)關(guān)系,將輸出消息和輸入消息的對應(yīng)關(guān)系作為I/O事件關(guān)聯(lián)性映射335輸出給測試人員。在I/O事件關(guān)聯(lián)性映射335中,可以記錄有與輸出消息對應(yīng)的標簽,測試人員通過查看在其它日志或表格中記錄的標簽與輸入消息的對應(yīng)關(guān)系,來確定輸出消息與輸入消息的對應(yīng)關(guān)系。在I/O事件關(guān)聯(lián)性映射335中,也可以直接記錄有輸出消息與哪些輸入消息對應(yīng),此時可由I/O監(jiān)視分析器350根據(jù)輸入消息列表將標簽轉(zhuǎn)化為對應(yīng)的輸入消息之后再輸出對應(yīng)結(jié)果。當然,由于已通過標簽將輸入消息和輸出消息關(guān)聯(lián)了起來,本領(lǐng)域技術(shù)人員可以很容易地想到其它方式來輸出結(jié)果,以使測試人員確定輸出消息和輸入消息之間的對應(yīng)關(guān)系。
[0062]下面,結(jié)合圖4和圖5來描述實施系統(tǒng)300具體操作的流程。
[0063]在圖4中,在步驟S410中,假設(shè)SUT 370的編程語言和操作系統(tǒng)固定,測試人員指定感興趣的網(wǎng)絡(luò)I/O類型(例如UDP、TCP、HTTP (Hypertext Transfer Protocol,超文本傳輸協(xié)議)等),向代碼模式生成器320輸入測試規(guī)范。
[0064]在步驟S420中,代碼模式生成器320根據(jù)測試規(guī)范通過檢索代碼模式庫315而生成代碼模式325。
[0065]在步驟S430中,SUT 370被裝載到測試平臺360。這里具體是指將SUT 370的包(package)或代碼裝載到測試平臺360的測試運行期環(huán)境。
[0066]在步驟S440中,觀測點編輯器330根據(jù)代碼模式生成器320發(fā)送的代碼模式330得到初始的觀測點(如輸入函數(shù)和輸出函數(shù))。例如,可以預(yù)先設(shè)置靜態(tài)規(guī)則,在該規(guī)則中網(wǎng)絡(luò)輸入和輸出分別是特定類下的某方法,那么可以將該特定類下的這些方法作為初始的觀測點。然后,觀測點編輯器330經(jīng)由適配器340通過向測試平臺360發(fā)送觀測點添加命令,為SUT 370的輸入函數(shù)和輸出函數(shù)設(shè)置觀測點。
[0067]在步驟S450中,測試平臺360啟動SUT 370的運行。
[0068]在步驟S460中,I/O監(jiān)視分析器350連續(xù)收集由觀測點觸發(fā)的通知,更新觀測點變量列表中的變量和所關(guān)聯(lián)的與輸入消息對應(yīng)的標簽,并指示觀測點編輯器330更新觀測點,當?shù)玫捷敵鱿⒑洼斎胂⒌膶?yīng)關(guān)系時將結(jié)果335輸出給測試人員。
[0069]雖然在圖4所示的方法中步驟S430在步驟S410和步驟S420之后執(zhí)行,但是步驟S430也可以在步驟S410和/或步驟S420之前執(zhí)行,還可以在步驟S410和步驟S420之間執(zhí)行,其執(zhí)行時間與步驟S410和步驟S420無關(guān),只需在步驟S440執(zhí)行之前執(zhí)行即可。
[0070]在圖5中,針對I/O監(jiān)視分析器350收到的不同通知所進行的處理進行描述。
[0071]在步驟S510中,觀測點編輯器330獲取網(wǎng)絡(luò)I/O的代碼模式325。
[0072]在步驟S515中,觀測點編輯器330為感興趣的網(wǎng)絡(luò)I/O操作(例如UDP協(xié)議下的輸入函數(shù)和輸出函數(shù))添加觀測點。
[0073]在步驟S520中,測試平臺360啟動SUT 370的運行。
[0074]在步驟S530中,I/O監(jiān)視分析器350監(jiān)聽從測試平臺360基于觀測點發(fā)送的通知。
[0075]在步驟S540中,I/O監(jiān)視分析器350確定通知是否指示網(wǎng)絡(luò)輸入即接收到輸入消息。如果確定通知指示網(wǎng)絡(luò)輸入,則進入步驟S542,否則進入步驟S550。
[0076]在步驟S542中,I/O監(jiān)視分析器350用消息號(例如“e”)記錄所接收的輸入消息。
[0077]在步驟S544中,I/O監(jiān)視分析器350指示觀測點編輯器330為直接存儲該消息的變量(例如“r”)設(shè)置觀測點。
[0078]在步驟S546中,如果在觀測點變量列表中變量“r”已存在標簽,則清除已存在的標簽,并將標簽“e”分配給變量“r”。
[0079]在步驟S550中,I/O監(jiān)視分析器350確定通知是否指示對設(shè)置有觀測點的觀測點變量(例如“v”)進行讀取操作。如果是,則進入步驟S552,否則進入步驟S560。[0080]在步驟S552中,I/O監(jiān)視分析器350判斷該讀取操作是否發(fā)生在條件判斷語句中。如果該讀取操作發(fā)生在條件判斷語句中,則進入步驟S558,否則進入步驟S554。
[0081]在步驟S554中,獲取讀取操作讀取的值所寫入的變量(例如“W”)。
[0082]在步驟S556中,I/O監(jiān)視分析器350指示觀測點編輯器330為變量“w”設(shè)置觀測點,并將變量“W”添加到觀測點變量列表中,且為變量“W”分配與變量“V”相同的標簽。如果當前線程對應(yīng)的堆棧中保存有分支標識,則將該分支標識關(guān)聯(lián)的標簽也分配給變量“W”。
[0083]在步驟S558中,I/O監(jiān)視分析器350獲取該讀取操作的當前線程號,找到該線程對應(yīng)的堆棧,將經(jīng)過條件判斷之后執(zhí)行的條件分支的分支標識(例如“P”)與變量“v”的標簽進行關(guān)聯(lián),并將分支標識“P ”壓入該線程對應(yīng)的堆棧中。
[0084]在步驟S559中,I/O監(jiān)視分析器350確定該條件分支的出口位置,并指示觀測點編輯器330為該出口位置設(shè)置觀測點。此外,I/O監(jiān)視分析器350可以指示觀測點編輯器330為在該分支中被寫入的所有變量中未設(shè)置有觀測點的變量設(shè)置觀測點,以使該分支中所有被寫入的變量都設(shè)置有觀測點。
[0085]在步驟S560中,I/O監(jiān)視分析器350確定通知是否指示到達條件分支的出口位置。如果是,則進入步驟S562,否則進入步驟S570。
[0086]在步驟S562中,I/O監(jiān)視分析器350獲取當前線程號,找到該線程對應(yīng)的堆棧,并從該堆棧中彈出頂部元素。
[0087]在步驟S570中,I/O監(jiān)視分析器350確定通知是否指示對設(shè)置有觀測點的觀測點變量(例如“u”)進行寫入操作。如果是,則進入步驟S572,否則進入步驟S580。
[0088]在步驟S572中,I/O監(jiān)視分析器350在觀測點變量列表中清除與變量“u”關(guān)聯(lián)的所有標簽,如果有的話。
[0089]在步驟S574中,I/O監(jiān)視分析器350確定該寫入操作的源變量,即寫入到變量“u”的變量,并將這些變量的標簽作為變量“u”的標簽。
[0090]在步驟S576中,I/O監(jiān)視分析器350從當前線程的堆棧中找到保留在其中的分支標識,將這些分支標識所關(guān)聯(lián)的標簽也作為變量“u”的標簽。
[0091]在步驟S578中,I/O監(jiān)視分析器350確定變量“u”的標簽是否為空。如果是,則進入步驟S579,否則返回到步驟S530。
[0092]在步驟S579中,I/O監(jiān)視分析器350指示觀測點編輯器330刪除為變量“u”設(shè)置的觀測點。并且,I/O監(jiān)視分析器350還可以從觀測點變量列表中刪除變量“U”。
[0093]在步驟S580中,I/O監(jiān)視分析器350確定通知是否指示網(wǎng)絡(luò)輸出即發(fā)送輸出消息。如果通知指示網(wǎng)絡(luò)輸出,則進入步驟S582,否則返回到步驟S530。
[0094]在步驟S582中,I/O監(jiān)視分析器350確定如下兩類輸入消息與輸出消息存在關(guān)聯(lián)性:一是在當前線程的堆棧中仍然存在的分支標識所關(guān)聯(lián)的標簽對應(yīng)的所有輸入消息,二是將輸出數(shù)據(jù)交付給當前網(wǎng)絡(luò)輸出操作的變量直接關(guān)聯(lián)的標簽對應(yīng)的所有輸入消息。
[0095]在步驟S584中,記錄輸入消息和輸出消息之間的關(guān)聯(lián)性,并輸出給測試人員。
[0096]下面,通過一個簡化的代碼來描述如何設(shè)置觀測點和進行標簽分配的例子。
[0097]在圖6中,預(yù)先為DatagramSocket的receive ()和send()設(shè)置觀測點。當通過在接收線程中調(diào)用ch.receive ()接收到輸入消息時,為該輸入消息分配消息號el,并記錄在輸入消息列表中。由于輸入消息存儲在變量P中,所以為變量P設(shè)置觀測點,并將變量P添加到觀測點變量列表中且與標簽el關(guān)聯(lián)。當將變量p添加到buffer中時,由于buffer的buffer [buffer, sized空間與輸入消息相關(guān),所以為該空間設(shè)置觀測點,并將其添加到觀測點變量列表中且與標簽el關(guān)聯(lián)。
[0098]在發(fā)送線程中,當從buffer中讀出該輸入消息并賦給變量t時,由于這樣操作之后變量t與輸入消息相關(guān),所以為變量t設(shè)置觀測點,并將變量t添加到觀測點變量列表中且與標簽el關(guān)聯(lián)。
[0099]在該例子中,在條件判斷語句對變量t操作以控制是否執(zhí)行相應(yīng)條件分支,所以記錄線程號,將條件分支的分支標識Cl (也可以理解成該條件判斷語句對應(yīng)的標識Cl)與標簽el關(guān)聯(lián)并壓入線程對應(yīng)的堆棧中,此外,在條件分支的出口處設(shè)置觀測點。如果sock.send()與條件判斷在同一線程中并在該分支標識內(nèi),那么輸出消息msg與標簽el相關(guān)。當?shù)竭_條件分支的出口時,從堆棧中彈出c I。
[0100]確定輸入消息和輸出消息的關(guān)聯(lián)性的上述方法可以利用到分布式系統(tǒng)中,例如對物聯(lián)網(wǎng)系統(tǒng)中各節(jié)點的功能進行測試。上述方法也可以利用到其他網(wǎng)絡(luò)中,對網(wǎng)絡(luò)中不同轉(zhuǎn)發(fā)設(shè)備或不同轉(zhuǎn)發(fā)設(shè)備構(gòu)成的子系統(tǒng)等進行功能測試。當然,本領(lǐng)域技術(shù)人員還可以想到利用上述方法的其他場景,通過上述方法可以在無需對輸入消息和輸出消息進行語義層分析的情況下確定關(guān)聯(lián)性。
[0101]通過從上述對確定輸入消息和輸出消息的關(guān)聯(lián)性的方法的詳細描述可以看到,在該過程中具有非常少的人工參與,通過適配器的使用可以對不同的編程語言和測試平臺具有擴展性,并且由于只需要在最初根據(jù)代碼模式設(shè)置好初始的觀測點,就可以在被測系統(tǒng)的運行過程中根據(jù)測試平臺基于觀測點返回的通知來自動進行觀測點的更新,使得不需要知道源代碼的具體形式就可以確定輸入和輸出消息之間的對應(yīng)關(guān)系,實現(xiàn)簡便。
[0102]接下來,參考圖7和圖8描述根據(jù)本發(fā)明實施例的用于確定被測系統(tǒng)的輸入消息和輸出消息的關(guān)聯(lián)性的設(shè)備700和800的結(jié)構(gòu)框圖。其中,被測系統(tǒng)中有預(yù)先設(shè)置的觀測點,在被測系統(tǒng)運行時通過被測系統(tǒng)中的觀測點對被測系統(tǒng)的運行進行檢測。
[0103]如圖7所示,設(shè)備700包括處理模塊740和關(guān)聯(lián)性確定模塊750。處理模塊740可用于當根據(jù)已設(shè)置的觀測點確定一變量與輸入消息相關(guān)時,將該變量與該輸入消息對應(yīng)的標簽關(guān)聯(lián),使該變量設(shè)置有觀測點。關(guān)聯(lián)性確定模塊750可用于根據(jù)與用于存儲輸出消息的變量關(guān)聯(lián)的標簽,確定該輸出消息和輸入消息的關(guān)聯(lián)性。
[0104]處理模塊740和關(guān)聯(lián)性確定模塊750的上述和其他操作和/或功能可以參考上述針對方法200、400和500以及圖3的實施系統(tǒng)300進行的詳細描述,為了避免重復(fù),在此不
再贅述。
[0105]根據(jù)本發(fā)明實施例提供的用于確定輸入消息和輸出消息的關(guān)聯(lián)性的設(shè)備,通過設(shè)置觀測點,可以在無需關(guān)注源代碼內(nèi)部具體運行的情況下跟蹤與輸入消息發(fā)生關(guān)系的所有變量,并且通過關(guān)聯(lián)標簽,可以使受同一輸入消息影響的不同變量與相同的標簽關(guān)聯(lián)。這樣,可以簡便地利用觀測點和標簽確定輸入消息與輸出消息的關(guān)聯(lián)性,并可以免去從語義層進行語義分析。
[0106]在圖8中,設(shè)備800包括的處理模塊840和關(guān)聯(lián)性確定模塊850與設(shè)備700包括的處理模塊740和關(guān)聯(lián)性確定模塊750基本相同。
[0107]根據(jù)本發(fā)明的一個實施例,設(shè)備800還可以包括第一設(shè)置模塊830。第一設(shè)置模塊830可用于預(yù)先為接收輸入消息的輸入函數(shù)設(shè)置觀測點。在該情況下,與輸入消息相關(guān)的變量是用于存儲輸入消息的變量,其是根據(jù)已設(shè)置的觀測點確定調(diào)用輸入函數(shù)接收輸入消息時檢測到的變量。
[0108]根據(jù)本發(fā)明的一個實施例,設(shè)備800還可以包括第二設(shè)置模塊835。第二設(shè)置模塊835可用于預(yù)先為發(fā)送輸出消息的輸出函數(shù)設(shè)置觀測點。其中,所述用于存儲輸出消息的變量是根據(jù)已設(shè)置的觀測點確定調(diào)用輸出函數(shù)發(fā)送輸出消息時檢測到的變量。
[0109]在預(yù)先為輸入函數(shù)和輸出函數(shù)設(shè)置觀測點的情況下,處理模塊840可以用于當根據(jù)已設(shè)置的觀測點確定調(diào)用輸入函數(shù)接收輸入消息時,將用于存儲該輸入消息的變量與該輸入消息對應(yīng)的標簽關(guān)聯(lián),為該變量設(shè)置觀測點,以及關(guān)聯(lián)性確定模塊850還可用于當根據(jù)已設(shè)置的觀測點確定調(diào)用輸出函數(shù)發(fā)送輸出消息時,根據(jù)與用于存儲該輸出消息的變量關(guān)聯(lián)的標簽,確定該輸出消息和輸入消息的關(guān)聯(lián)性。根據(jù)本發(fā)明的一個實施例,設(shè)備800還可以包括獲取模塊810、第一確定模塊820和第二確定模塊825。獲取模塊810可用于在第一設(shè)置模塊830和第二設(shè)置模塊835預(yù)先為接收輸入消息的輸入函數(shù)和發(fā)送輸出消息的輸出函數(shù)設(shè)置觀測點之前,獲取被測系統(tǒng)的測試規(guī)范。第一確定模塊820可用于根據(jù)測試規(guī)范,確定代碼模式。第二確定模塊825可用于根據(jù)代碼模式,確定需要設(shè)置觀測點的輸入函數(shù)和輸出函數(shù)。這樣,當?shù)诙_定模塊825確定了輸入函數(shù)和輸出函數(shù)之后,設(shè)置模塊830才對輸入函數(shù)和輸出函數(shù)進行觀測點的設(shè)置。
[0110]根據(jù)本發(fā)明的一個實施例,處理模塊840可以包括第一處理單元842。第一處理單元842可用于當根據(jù)已設(shè)置的觀測點確定對與該已設(shè)置的觀測點對應(yīng)的變量進行讀取操作時,在該讀取操作不發(fā)生在條件判斷語句的情況下,為被所述與該已設(shè)置的觀測點對應(yīng)的變量所寫入的另一變量設(shè)置觀測點,并將該另一變量與所述與該已設(shè)置的觀測點對應(yīng)的變量關(guān)聯(lián)的標簽關(guān)聯(lián)。
[0111]根據(jù)本發(fā)明的一個實施例,處理模塊840可以包括第二處理單元844。第二處理單元844可用于當根據(jù)已設(shè)置的觀測點確定對與該已設(shè)置的觀測點對應(yīng)的變量進行讀取操作時,在該讀取操作發(fā)生在條件判斷語句的情況下,使執(zhí)行的條件分支中進行寫入操作的變量設(shè)置有觀測點,并且,在該條件分支的出口處設(shè)置觀測點,將該條件分支的分支標識壓入該條件分支所在線程對應(yīng)的堆棧,并將所述分支標識與所述與該已設(shè)置的觀測點對應(yīng)的變量關(guān)聯(lián)的標簽關(guān)聯(lián)。
[0112]根據(jù)本發(fā)明的一個實施例,當處理模塊840包括第二處理單元844時,處理模塊840還可以包括第三處理單元846。第三處理單元846可用于當根據(jù)在所述出口處設(shè)置的觀測點確定離開該條件分支時,從所述堆棧彈出所述分支標識。
[0113]根據(jù)本發(fā)明的一個實施例,設(shè)備800還可以包括發(fā)送模塊860和第一轉(zhuǎn)換模塊870。第一轉(zhuǎn)換模塊870可用于將觀測點添加命令轉(zhuǎn)換為裝載有被測系統(tǒng)的測試平臺可識別的命令,以使所述測試平臺向所述被測系統(tǒng)添加觀測點。發(fā)送模塊860可用于向所述測試平臺發(fā)送所述觀測點添加命令來設(shè)置觀測點。這樣,當需要向輸入函數(shù)、輸出函數(shù)、變量或條件分支的出口設(shè)置觀測點時,通過發(fā)送模塊860發(fā)送觀測點添加命令來實現(xiàn)。
[0114]根據(jù)本發(fā)明的一個實施例,處理模塊840可以包括第四處理單元848。第四處理單元848可用于當根據(jù)已設(shè)置的觀測點確定對與該已設(shè)置的觀測點對應(yīng)的變量進行寫入操作時,在所述與該已設(shè)置的觀測點對應(yīng)的變量經(jīng)過所述寫入操作仍與輸入消息相關(guān)的情況下,保持為所述與該已設(shè)置的觀測點對應(yīng)的變量設(shè)置的觀測點,將該變量與相關(guān)的輸入消息對應(yīng)的標簽關(guān)聯(lián),并且在該變量所在線程的堆棧中包含有分支標識的情況下,將該變量與該分支標識關(guān)聯(lián)的標簽關(guān)聯(lián);以及在所述與該已設(shè)置的觀測點對應(yīng)的變量經(jīng)過所述寫入操作不再與輸入消息相關(guān)的情況下,刪除該變量對應(yīng)的觀測點。例如,第四處理單元848可以通過將變量關(guān)聯(lián)的標簽改變?yōu)閷懭氩僮鞯脑醋兞筷P(guān)聯(lián)的標簽,來將該變量與相關(guān)的輸入消息對應(yīng)的標簽關(guān)聯(lián)。
[0115]根據(jù)本發(fā)明的一個實施例,設(shè)備800可以包括第二轉(zhuǎn)換模塊890。第二轉(zhuǎn)換模塊890可用于將觀測點刪除命令轉(zhuǎn)換為裝載有被測系統(tǒng)的測試平臺可識別的命令,以使所述測試平臺從所述被測系統(tǒng)刪除觀測點。在該情況下,第四處理單元848具體可用于通過向所述測試平臺發(fā)送所述觀測點刪除命令,刪除該變量對應(yīng)的觀測點。
[0116]根據(jù)本發(fā)明的一個實施例,與用于存儲輸出消息的變量關(guān)聯(lián)的標簽可以包括如下至少一個:與用于存儲該輸出消息的變量直接關(guān)聯(lián)的標簽;以及用于存儲該輸出消息的變量通過所在線程對應(yīng)的堆棧中包含的分支標識所關(guān)聯(lián)的標簽。
[0117]各模塊和單元的上述和其他操作和/或功能可以參考上述針對方法200、400、500和圖3的實施系統(tǒng)300進行的描述,為了避免重復(fù),在此不再贅述。例如,獲取模塊810、第一確定模塊820和第二確定模塊825可以由代碼模式生成器320實現(xiàn),第一設(shè)置模塊830、第二設(shè)置模塊835、處理模塊840、關(guān)聯(lián)性確定模塊850和發(fā)送模塊860可以由觀測點編輯器330和I/O監(jiān)視分析器350實現(xiàn),以及第一轉(zhuǎn)換模塊870和第二轉(zhuǎn)換模塊890可以由適配器340實現(xiàn)。此外,處理模塊840可以包括各處理單元的全部,也可以包括處理單元中的一部分。
[0118]在利用根據(jù)本發(fā)明實施例的設(shè)備800來確定輸入消息和輸出消息的關(guān)聯(lián)性的過程中,具有非常少的人工參與,通過第一轉(zhuǎn)換模塊和第二轉(zhuǎn)換模塊的使用可以對不同的編程語言和測試平臺具有擴展性,并且由于只需要在最初根據(jù)代碼模式設(shè)置好初始的觀測點,就可以在被測系統(tǒng)的運行過程中根據(jù)測試平臺基于觀測點返回的通知來自動進行觀測點的更新,使得不需要知道源代碼的具體形式就可以確定輸入和輸出消息之間的對應(yīng)關(guān)系,實現(xiàn)簡便。
[0119]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
[0120]以上已經(jīng)描述了本發(fā)明的各實施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語的選擇,旨在最好地解釋各實施例的原理、實際應(yīng)用或?qū)κ袌鲋械募夹g(shù)的技術(shù)改進,或者使本【技術(shù)領(lǐng)域】的其它普通技術(shù)人員能理解本文披露的各實施例。
【權(quán)利要求】
1.一種用于確定被測系統(tǒng)的輸入消息與輸出消息的關(guān)聯(lián)性的方法,其中,被測系統(tǒng)中有預(yù)先設(shè)置的觀測點,在被測系統(tǒng)運行時通過被測系統(tǒng)中的觀測點對被測系統(tǒng)的運行進行檢測,該方法包含: 響應(yīng)于檢測到被測系統(tǒng)中的一變量與輸入消息相關(guān),執(zhí)行以下操作: 將該變量與該輸入消息的標簽關(guān)聯(lián),并且 使該變量設(shè)置有觀測點;以及 響應(yīng)于檢測到被測系統(tǒng)用于存儲輸出消息的變量,根據(jù)所述用于存儲輸出消息的變量關(guān)聯(lián)的標簽,確定該輸出消息和輸入消息的關(guān)聯(lián)性。
2.根據(jù)權(quán)利要求1所述的方法,還包含: 預(yù)先為接收輸入消息的輸入函數(shù)設(shè)置觀測點, 其中,與輸入消息相關(guān)的變量是用于存儲輸入消息的變量,其是根據(jù)已設(shè)置的觀測點確定調(diào)用輸入函數(shù)接收輸入消息時檢測到的變量。
3.根據(jù)權(quán)利要 求1所述的方法,還包含: 預(yù)先為發(fā)送輸出消息的輸出函數(shù)設(shè)置觀測點, 其中,所述用于存儲輸出消息的變量是根據(jù)已設(shè)置的觀測點確定調(diào)用輸出函數(shù)發(fā)送輸出消息時檢測到的變量。
4.根據(jù)權(quán)利要求1所述的方法,所述響應(yīng)于檢測到被測系統(tǒng)中的一變量與輸入消息相關(guān)、執(zhí)行以下操作:將該變量與該輸入消息的標簽關(guān)聯(lián)、并且使該變量設(shè)置有觀測點,包含: 當根據(jù)已設(shè)置的觀測點確定對與該已設(shè)置的觀測點對應(yīng)的變量進行讀取操作時, 在該讀取操作不發(fā)生在條件判斷語句的情況下,為被所述與該已設(shè)置的觀測點對應(yīng)的變量所寫入的另一變量設(shè)置觀測點,并將該另一變量與所述與該已設(shè)置的觀測點對應(yīng)的變量關(guān)聯(lián)的標簽關(guān)聯(lián);以及 在該讀取操作發(fā)生在條件判斷語句的情況下,使執(zhí)行的條件分支中進行寫入操作的變量設(shè)置有觀測點,并且,在該條件分支的出口處設(shè)置觀測點,將該條件分支的分支標識壓入該條件分支所在線程對應(yīng)的堆棧,并將所述分支標識與所述與該已設(shè)置的觀測點對應(yīng)的變量關(guān)聯(lián)的標簽關(guān)聯(lián)。
5.根據(jù)權(quán)利要求4所述的方法,所述在該條件分支的出口處設(shè)置觀測點之后,還包含: 當根據(jù)在所述出口處設(shè)置的觀測點確定離開該條件分支時,從所述堆棧彈出所述分支標識。
6.根據(jù)權(quán)利要求2至4中任一項所述的方法,所述設(shè)置觀測點包含: 將觀測點添加命令轉(zhuǎn)換為裝載有被測系統(tǒng)的測試平臺可識別的命令,以使所述測試平臺向所述被測系統(tǒng)添加觀測點;以及 通過向所述測試平臺發(fā)送所述觀測點添加命令,設(shè)置觀測點。
7.根據(jù)權(quán)利要求1所述的方法,所述響應(yīng)于檢測到被測系統(tǒng)中的一變量與輸入消息相關(guān)、執(zhí)行以下操作:將該變量與該輸入消息的標簽關(guān)聯(lián)、并且使該變量設(shè)置有觀測點,包含: 當根據(jù)已設(shè)置的觀測點確定對與該已設(shè)置的觀測點對應(yīng)的變量進行寫入操作時, 在所述與該已設(shè)置的觀測點對應(yīng)的變量經(jīng)過所述寫入操作仍與輸入消息相關(guān)的情況下,保持為所述與該已設(shè)置的觀測點對應(yīng)的變量設(shè)置的觀測點,將該變量與相關(guān)的輸入消息對應(yīng)的標簽關(guān)聯(lián),并且在該變量所在線程的堆棧中包含有分支標識的情況下,將該變量與該分支標識關(guān)聯(lián)的標簽關(guān)聯(lián);以及 在所述與該已設(shè)置的觀測點對應(yīng)的變量經(jīng)過所述寫入操作不再與輸入消息相關(guān)的情況下,刪除該變量對應(yīng)的觀測點。
8.根據(jù)權(quán)利要7所述的方法,所述將該變量與相關(guān)的輸入消息對應(yīng)的標簽關(guān)聯(lián)包含: 將該變量關(guān)聯(lián)的標簽改變?yōu)樗鰧懭氩僮鞯脑醋兞筷P(guān)聯(lián)的標簽。
9.根據(jù)權(quán)利要求7所述的方法,所述刪除該變量對應(yīng)的觀測點包含: 將觀測點刪除命令轉(zhuǎn)換為裝載有被測系統(tǒng)的測試平臺可識別的命令,以使所述測試平臺從所述被測系統(tǒng)刪除觀測點;以及 通過向所述測試平臺發(fā)送所述觀測點刪除命令,刪除該變量對應(yīng)的觀測點。
10.根據(jù)權(quán)利要求1所述的方法,所述用于存儲輸出消息的變量關(guān)聯(lián)的標簽包含如下至少一個: 與用于存儲該輸出消息的變量直接關(guān)聯(lián)的標簽; 用于存儲該輸出消息的 變量通過所在線程對應(yīng)的堆棧中包含的分支標識所關(guān)聯(lián)的標簽。
11.一種用于確定被測系統(tǒng)的輸入消息與輸出消息的關(guān)聯(lián)性的設(shè)備,其中,被測系統(tǒng)中有預(yù)先設(shè)置的觀測點,在被測系統(tǒng)運行時通過被測系統(tǒng)中的觀測點對被測系統(tǒng)的運行進行檢測,該設(shè)備包含: 處理模塊,用于響應(yīng)于檢測到被測系統(tǒng)中的一變量與輸入消息相關(guān),執(zhí)行以下操作: 將該變量與該輸入消息的標簽關(guān)聯(lián),并且 使該變量設(shè)置有觀測點;以及 關(guān)聯(lián)性確定模塊,用于響應(yīng)于檢測到被測系統(tǒng)用于存儲輸出消息的變量,根據(jù)所述用于存儲輸出消息的變量關(guān)聯(lián)的標簽,確定該輸出消息和輸入消息的關(guān)聯(lián)性。
12.根據(jù)權(quán)利要求11所述的設(shè)備,還包含: 第一設(shè)置模塊,用于預(yù)先為接收輸入消息的輸入函數(shù)設(shè)置觀測點, 其中,與輸入消息相關(guān)的變量是用于存儲輸入消息的變量,其是根據(jù)已設(shè)置的觀測點確定調(diào)用輸入函數(shù)接收輸入消息時檢測到的變量。
13.根據(jù)權(quán)利要求11所述的設(shè)備,還包含: 第二設(shè)置模塊,用于預(yù)先為發(fā)送輸出消息的輸出函數(shù)設(shè)置觀測點, 其中,所述用于存儲輸出消息的變量是根據(jù)已設(shè)置的觀測點確定調(diào)用輸出函數(shù)發(fā)送輸出消息時檢測到的變量。
14.根據(jù)權(quán)利要求11所述的設(shè)備,所述處理模塊包含: 第一處理單元,用于當根據(jù)已設(shè)置的觀測點確定對與該已設(shè)置的觀測點對應(yīng)的變量進行讀取操作時,在該讀取操作不發(fā)生在條件判斷語句的情況下,為被所述與該已設(shè)置的觀測點對應(yīng)的變量所寫入的另一變量設(shè)置觀測點,并將該另一變量與所述與該已設(shè)置的觀測點對應(yīng)的變量關(guān)聯(lián)的標簽關(guān)聯(lián);以及 第二處理單元,用于當根據(jù)已設(shè)置的觀測點確定對與該已設(shè)置的觀測點對應(yīng)的變量進行讀取操作時,在該讀取操作發(fā)生在條件判斷語句的情況下,使執(zhí)行的條件分支中進行寫入操作的變量設(shè)置有觀測點,并且,在該條件分支的出口處設(shè)置觀測點,將該條件分支的分支標識壓入該條件分支所在線程對應(yīng)的堆棧,并將所述分支標識與所述與該已設(shè)置的觀測點對應(yīng)的變量關(guān)聯(lián)的標簽關(guān)聯(lián)。
15.根據(jù)權(quán)利要求14所述的設(shè)備,所述處理模塊還包含第三處理單元,用于當根據(jù)在所述出口處設(shè)置的觀測點確定離開該條件分支時,從所述堆棧彈出所述分支標識。
16.根據(jù)權(quán)利要求12至14中任一項所述的設(shè)備,還包含: 第一轉(zhuǎn)換模塊,用于將觀測點添加命令轉(zhuǎn)換為裝載有被測系統(tǒng)的測試平臺可識別的命令,以使所述測試平臺向所述被測系統(tǒng)添加觀測點;以及 發(fā)送模塊,用于向所述測試平臺發(fā)送所述觀測點添加命令來設(shè)置觀測點。
17.根據(jù)權(quán)利要求11所述的設(shè)備,所述處理模塊包含第四處理單元,用于當根據(jù)已設(shè)置的觀測點確定對與該已設(shè)置的觀測點對應(yīng)的變量進行寫入操作時,在所述與該已設(shè)置的觀測點對應(yīng)的變量經(jīng)過所述寫入操作仍與輸入消息相關(guān)的情況下,保持為所述與該已設(shè)置的觀測點對應(yīng)的變量設(shè)置的觀測點,將該變量與相關(guān)的輸入消息對應(yīng)的標簽關(guān)聯(lián),并且在該變量所在線程的 堆棧中包含有分支標識的情況下,將該變量與該分支標識關(guān)聯(lián)的標簽關(guān)聯(lián);以及在所述與該已設(shè)置的觀測點對應(yīng)的變量經(jīng)過所述寫入操作不再與輸入消息相關(guān)的情況下,刪除該變量對應(yīng)的觀測點。
18.根據(jù)權(quán)利要求17所述的設(shè)備,所述第四處理單元具體用于將該變量關(guān)聯(lián)的標簽改變?yōu)樗鰧懭氩僮鞯脑醋兞筷P(guān)聯(lián)的標簽。
19.根據(jù)權(quán)利要求17所述的設(shè)備,還包含: 第二轉(zhuǎn)換模塊,用于將觀測點刪除命令轉(zhuǎn)換為裝載有被測系統(tǒng)的測試平臺可識別的命令,以使所述測試平臺從所述被測系統(tǒng)刪除觀測點,以及 其中,所述第四處理單元具體用于通過向所述測試平臺發(fā)送所述觀測點刪除命令,刪除該變量對應(yīng)的觀測點。
20.根據(jù)權(quán)利要求11所述的設(shè)備,所述用于存儲輸出消息的變量關(guān)聯(lián)的標簽包含如下至少一個: 與用于存儲該輸出消息的變量直接關(guān)聯(lián)的標簽; 用于存儲該輸出消息的變量通過所在線程對應(yīng)的堆棧中包含的分支標識所關(guān)聯(lián)的標簽。
【文檔編號】G06F9/44GK103455313SQ201210177617
【公開日】2013年12月18日 申請日期:2012年5月31日 優(yōu)先權(quán)日:2012年5月31日
【發(fā)明者】胡國強, 談華芳, 梅立軍, 楊博, 袁昱 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
定日县| 章丘市| 临猗县| 武山县| 潼关县| 沙雅县| 永川市| 偏关县| 景宁| 万荣县| 盈江县| 渭南市| 陇南市| 崇礼县| 大厂| 西充县| 福清市| 朝阳县| 博湖县| 石阡县| 浮梁县| 镇沅| 崇文区| 留坝县| 定襄县| 临城县| 望城县| 普宁市| 郧西县| 陆河县| 保山市| 资阳市| 招远市| 滨海县| 盐山县| 洛隆县| 沛县| 观塘区| 嘉峪关市| 若尔盖县| 垫江县|