專利名稱:用于實現(xiàn)遠(yuǎn)程計算機(jī)控制的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及聯(lián)網(wǎng)計算機(jī),且特別地涉及用于在聯(lián)網(wǎng)計算機(jī)環(huán)境中實現(xiàn) 遠(yuǎn)程計算機(jī)控制的系統(tǒng)和方法。該系統(tǒng)更特別地涉及在一個或多個遠(yuǎn)程計
遠(yuǎn)程計算機(jī)上該程序的性能時可使用的方法。
背景技術(shù):
在聯(lián)網(wǎng)架構(gòu)內(nèi)已知單獨(dú)計算機(jī)可以使用不同網(wǎng)絡(luò)協(xié)議如TCP/IP ^M目
互通信。使用這些協(xié)議就有可能在第一計算機(jī)上運(yùn)行軟件應(yīng)用以利用在諸 如文件服務(wù)器等的另 一計算機(jī)上存儲的數(shù)據(jù)。
在本領(lǐng)域中也已知提供以下軟件應(yīng)用,這些軟件應(yīng)用使遠(yuǎn)程用戶能夠 有效控制另一計算機(jī)以^f更從他們自己的本地計算M行在遠(yuǎn)程計算機(jī)上
駐留的計算機(jī)應(yīng)用。這樣的應(yīng)用包括Microsoft tm在其Remote Desktop 名下提供的應(yīng)用和稱為VNC (Virtual Network Computing,虛擬網(wǎng)絡(luò)4 算)的開放源軟件應(yīng)用。這些應(yīng)用使得有可能從因特網(wǎng)上任何地方的任何 其它計算機(jī)或移動設(shè)備查看一個計算機(jī)并且與之完全交互。VNC軟件是 一種跨平臺應(yīng)用,該應(yīng)用的優(yōu)點(diǎn)在于它允許在不同類型計算機(jī)之間的遠(yuǎn)程
控制但是具有終端用戶 一次只能控制一個遠(yuǎn)程機(jī)器的約束;對于各終端用 戶而言它是一種一對一布置。
AnyplaceControlTM是一種允許用戶同時連接到多個機(jī)器的產(chǎn)品。然 而,雖然用戶可以連接到多個機(jī)器,但是他受到的約束在于他一次可以控 制一個機(jī)器但是不能通過將同 一動作同時傳遞到許多機(jī)器來控制多個機(jī) 器。因此,雖然它與VNC不同在于它實現(xiàn)一對多連接,但是它并不允許 一對多控制。
對這些遠(yuǎn)程桌面軟件應(yīng)用的使用包括系統(tǒng)管理、IT支持和幫助臺應(yīng) 用,其中技術(shù)支持提供商可以登錄到造成困難的計算機(jī)并且詢問它而無需 物理地存在于該計算機(jī)處。這些系統(tǒng)允許到同一桌面的數(shù)個連接,由此實 現(xiàn)協(xié)作或共享式工作,但是一次僅有一個計算機(jī)充當(dāng)控制器。遠(yuǎn)程桌面應(yīng)用還可用于訓(xùn)練目的,由此教員可以查看單個學(xué)員的機(jī)器或數(shù)個學(xué)員的機(jī) 器,然而教師對多個機(jī)器的同時控制迄今為止尚不可能。
本地計算^M"遠(yuǎn)程計算機(jī)的該控制可以使用于軟件測試領(lǐng)域中。軟件 測試涉及到系統(tǒng)或應(yīng)用在受控條件之下的IMt和對結(jié)果的評估。受控M 應(yīng)當(dāng)包括正常和異常M。測試應(yīng)當(dāng)有目的地嘗試使事物出錯以確定事物 是否在它們應(yīng)當(dāng)發(fā)生時發(fā)生以及更重要地是事物是否在它們不應(yīng)發(fā)生時 發(fā)生。對于良好軟件測試的要求被合理地定義好以保證它是以下質(zhì)量控制 過程,該質(zhì)量控制過程使用 一組定義好的方法和評價標(biāo)準(zhǔn)及其使用指南以 保i^件產(chǎn)品或模塊有充分高的質(zhì)量.良好軟件測試所需要的測試必須嚴(yán) 格,這樣顯然它會增加開發(fā)成本。它可以應(yīng)用于以下活動中的所有或一些
活動
魯棒性、可靠性和安全性測試
保證軟件在具^件和軟件環(huán)境之下提供無故障服務(wù) Logo順應(yīng)性和鑒定測試
保證被測試應(yīng)用滿足標(biāo)準(zhǔn)以符合比如Sun " Java Verified"或 Microsoft "Designed for Windows"這樣的標(biāo)準(zhǔn)
兼容性測試
針對新版本的平臺和系統(tǒng)軟件的應(yīng)用和硬件兼容性測試 互操作性/集成性測試
保證系統(tǒng)的各個組件在選定場景下一起良好地工作 全球化沐地化
用以保證產(chǎn)品滿足定義好的全球化標(biāo)準(zhǔn)的測試。
由于軟件測試應(yīng)用遍布于計算M件架構(gòu)內(nèi),因此如果測試策略的某 些部分可以自動化則是有利的。盡管在成本和時間上受益,但是自動化測 試至今仍不理想。在使用以下行為中一個或多個行為的稱為用戶界面自動 化測試的測試中已經(jīng)運(yùn)用一些例子
捕獲控制,
操控控制,
獲取來自控制的數(shù)據(jù)。
在捕獲控制中有必要知道在尋找什么。例如在Windows TM環(huán)境中有三類控制
1. 標(biāo)準(zhǔn)Windows TM控制-按鈕、文字框、定制控制,
2. 定制所有者描繪(owner drawn)控制是具有標(biāo)準(zhǔn)控制的功能也 具有由開發(fā)者添加的定制功能的控制。Windows通過允許開發(fā)者不考慮 基本菜單或?qū)υ捒蝾愔械姆椒ú⑶覍嵤┛刂苹虿藛蔚男峦庥^和行為來提 供對"所有者描繪"控制和菜單的支持。
3. 繪制(painted)控制-具有標(biāo)準(zhǔn)控制的功能也具有由開發(fā)者添加的 功能的控制。除了"定制所有者描繪控制"之外,繪制控制負(fù)責(zé)處理窗口消 息如WM一PAINT本身。
當(dāng)前的自動化測試工具有各具有不同工作模式的三個主要類別,即
筒單捕獲-記錄和回放,
面向?qū)ο蟮淖詣踊?br>
基于圖像的部件發(fā)現(xiàn)。
不言而喻這些技術(shù)各具有不同架構(gòu)和不同特征。簡單捕獲記錄/回放 具有簡單的優(yōu)點(diǎn)而它又受困于對圖形用戶界面變化敏感、對屏幕上的應(yīng)用
位置敏感和具有回放同步問題這些缺點(diǎn)。該有計劃的方式可以比之前的方 式更容易地適應(yīng)于應(yīng)用用戶界面的變化并且可以更好地處理回放同步問 題。然而有測試者也必須是開發(fā)者的技能問題,測試范例腳本開發(fā)的問題 隨之帶來版本控制和變化管理,這與軟件開發(fā)過程非常相像。第三方式利 用了在運(yùn)行被測試程序的過程中生成和利用的圖像。在某一鼠標(biāo)交互之時 獲得鼠標(biāo)周圍區(qū)域的圖像。然后存儲這一圖像。存儲的圖^^L以后某一時 間用來標(biāo)識在測試腳本回放過程中應(yīng)當(dāng)在何處獲取鼠標(biāo)動作或在某一其 它系統(tǒng)上應(yīng)當(dāng)在何處獲取該動作。
在自動化測試背景下利用基于圖像的部件發(fā)現(xiàn)的可用產(chǎn)品例子是 Redstone ,在其Eggplant 名下提供的產(chǎn)品。Eggplant 是一種利用(上 文討論的)VNC的軟件測試工具,該工具具體地涉及測試人在使用軟件 應(yīng)用時將具有的體驗。Eggplant 軟件通過將找到興趣區(qū)和查找將要施加 用戶輸入的區(qū)域這些問題進(jìn)行分離來工作。
另外,Eggplant并不識別針對面向?qū)ο蟮淖詣踊瘻y試而描述的意義 上的對象。Eggplant"對象"是標(biāo)識特征的屏幕截圖,它們在具有限定數(shù)據(jù) 和行為的窗口小部件這一意義上并不是對象。用戶使用對興趣區(qū)進(jìn)行限定的可移動和可調(diào)整大小的窗口來限定Eggplant"對象"。
因此需要提供一種通過第一計算設(shè)備的桌面來實現(xiàn)對多個計算設(shè)備 進(jìn)行控制的系統(tǒng)和方法,其中受控設(shè)備的桌面顯示于與第一設(shè)備關(guān)聯(lián)的顯 示器上。還需要一種可以在多個計算機(jī)上容易地滾出(roll out)并且提供 魯棒且安全的測試架構(gòu)的基于圖像的發(fā)現(xiàn)測試應(yīng)用。
發(fā)明內(nèi)容
這些和其它需要通過根據(jù)本發(fā)明用于在聯(lián)網(wǎng)環(huán)境內(nèi)提供計算機(jī)測試 或遠(yuǎn)程管理自動化的系統(tǒng)和方法來解決。根據(jù)本發(fā)明的網(wǎng)絡(luò)架構(gòu)實現(xiàn)在第 一計算設(shè)備與多個其它計算設(shè)備之間的一對多連接和控制。該架構(gòu)通過提 供客戶機(jī)目標(biāo)模塊、客戶機(jī)查看器模塊和稱為服務(wù)器設(shè)備的調(diào)彭良務(wù)器模 塊來實現(xiàn)此一對多連接,其中客戶機(jī)目標(biāo)模塊可在各自被限定為目標(biāo)設(shè)備 的一個或多個被測試系統(tǒng)上執(zhí)行,客戶機(jī)查看器模塊可在本地計算機(jī)上執(zhí) 行并且允許用戶在本地桌面上查看和控制各被測試系統(tǒng),而調(diào)度服務(wù)器模 塊提供在各客戶機(jī)查看器模塊與客戶機(jī)目標(biāo)模塊之間的接口 。調(diào)JU3艮務(wù)器 模塊是在計算機(jī)上可執(zhí)行并且配置用以對在用戶與各被測試系統(tǒng)之間的 所有交互起居中作用的服務(wù)器應(yīng)用??梢蕴峁┡c調(diào)JLI良務(wù)器模塊可接口的 解釋服務(wù)器模塊,該解釋服務(wù)器模塊可被配置用以實現(xiàn)多個可能任務(wù)中的 一個或多個,這些任務(wù)例如包括圖像處理、圖像分割、圖像解釋、數(shù)據(jù)庫 查找和生成通用信息,比如對所詢問的圖像的XML描述。
使用根據(jù)本發(fā)明的網(wǎng)絡(luò)架構(gòu)使用戶能夠?qū)σ粋€或多個遠(yuǎn)程計算機(jī)同 時執(zhí)行自動化測試或遠(yuǎn)程管理;在用戶和被測試系統(tǒng)之間提供的接口使得 可同時連接到以及控制被測試系統(tǒng)的每一個。將認(rèn)識到字眼"計算機(jī),,廣義 地用來涵蓋運(yùn)行操作系統(tǒng)的任何計算設(shè)備或電子設(shè)備并且旨在于在本發(fā) 明內(nèi)涵蓋諸如個人數(shù)字助理(PDA )、移動電話等任何設(shè)備以及常規(guī)個人 計算機(jī)或膝上型計算機(jī)。
因而本發(fā)明提供了如權(quán)利要求1詳述的系統(tǒng),有利實施例提供在從屬 權(quán)利要求中。本發(fā)明還提供了根據(jù)權(quán)利要求23的方法。
參照附圖將更好地理解這些和其它特征。
圖1以示意形式示出了根據(jù)本發(fā)明教導(dǎo)的網(wǎng)絡(luò)架構(gòu)。
圖2示出了在才艮據(jù)本發(fā)明的網(wǎng)絡(luò)架構(gòu)上實施的處理的例子。
圖3示出了包括附加客戶機(jī)查看器設(shè)備的對圖1架構(gòu)的修改。
圖4a至4c圖示了在本發(fā)明的部件之間的套接口 (socket)通信。
圖5示出了來自客戶機(jī)設(shè)備的示出根據(jù)本發(fā)明教導(dǎo)的系統(tǒng)的操作的 屏幕截圖,其中兩個機(jī)器連接。
具體實施例方式
現(xiàn)在將參照以下術(shù)語來描述根據(jù)本發(fā)明教導(dǎo)的系統(tǒng),提供該術(shù)語是為 了便于說明而不從所用命名規(guī)則得出推論。如圖1中所示,根據(jù)本發(fā)明教 導(dǎo)的系統(tǒng)100具有數(shù)個部件
一個或多個影像(shadow)客戶機(jī)目標(biāo)(Shadow Client Target, SCT) 105
耦合到數(shù)據(jù)存儲設(shè)備110A的影像調(diào)^良務(wù)器(Shadow Dispatch Server, SDS ) 110
影^^戶機(jī)查看器(Shadow client viewer, SCV) 115
耦合到數(shù)據(jù)存儲設(shè)備120A的影像解釋服務(wù)器(Shadow Interpretation Server, SIS) 120
SIS可以視為該架構(gòu)的可選特征,因為它使得在一對多連接內(nèi)能夠?qū)?現(xiàn)更多處理例程和功能。
在以下部分中將分別描述各單獨(dú)部件。 影4j^l戶機(jī)目標(biāo)(SCT) 105
SCT是在被測試系統(tǒng)或用戶希望遠(yuǎn)程控制的機(jī)器上可操作的軟件模 塊。它被提供為在被測試系統(tǒng)上運(yùn)行的多線程軟件并且執(zhí)行以下功能步
SCT開啟監(jiān)聽端口
SCT創(chuàng)建用于數(shù)據(jù)轉(zhuǎn)移的套接口 .SCT積極嘗試與影^象調(diào)度服務(wù)器(SDS)連接??梢栽趦蓚€模式之一下運(yùn)行或執(zhí)行SCT。 SCT可以作為正常的可執(zhí) 行文件^M:行??商娲?,其可以在操作系統(tǒng)上被安裝為只要SCT機(jī)器 重啟就自動啟動的服務(wù)。
如果SCT作為正常可執(zhí)行文件來運(yùn)行,則SCT向用戶呈現(xiàn)提示用戶 從可能SDS列表中指定SDS的對話框??商娲兀绻鸖CT作為操作系 統(tǒng)服務(wù)來運(yùn)行,則SCT將使用配置數(shù)據(jù)以便確定將連接到哪個SDS。例 如通過用戶可編輯的初始化文件即"INI"文件來設(shè)置可配置數(shù)據(jù)。
在本發(fā)明系統(tǒng)的操作過程中,SCT從SDS接收包含以下數(shù)據(jù)的SDS 分組,該數(shù)據(jù)指定了命令輸入如鼠標(biāo)和鍵擊信息。SCT生成和發(fā)送圖形 文件如位圖的序列到SDS ,這些圖形文件《二機(jī)器在其當(dāng)前狀態(tài)下的屏** 圖。SCT執(zhí)行從命令輸入得到的動作、然后除了正常提供的圖形序列之 外提供示出了命令輸入的結(jié)果作為該動作的結(jié)果的證據(jù)的圖形文件。以這 一方式將理解SCT發(fā)送的是在該SCT的當(dāng)前顯示器的周期性定期屏^ 圖以及當(dāng)該顯示由于某一命令而改變時顯示如何改變的進(jìn)一步的附加更 新。
應(yīng)理解可以跨多個不同機(jī)器和操作系統(tǒng)來部署根據(jù)本發(fā)明的系統(tǒng),而 在任一特定實例中僅利用一個機(jī)器子集。SCT可連接到作為可用SDS集 中成員的單個SDS。 SCT可在活躍模式下僅連接到一個SDC,也可并行 連接到多個SDS。
在系統(tǒng)的操作過程中,SCT通過數(shù)據(jù)套接口從SDS接收輸入數(shù)據(jù)。 將理解在系統(tǒng)的單獨(dú)部件之間的通信是通過網(wǎng)絡(luò)協(xié)議如TCP/IP進(jìn)行的。 這些數(shù)據(jù)可包括(但不限于)以下數(shù)據(jù)中的一個或多個數(shù)據(jù)
勉輸入和支持?jǐn)?shù)據(jù)
鼠標(biāo)/指示器輸入和支持?jǐn)?shù)據(jù)
對關(guān)于SCT硬件設(shè)置的信息的請求
對獲取屏幕截圖的請求
對取回剪貼板內(nèi)容的請求
對插入數(shù)據(jù)到剪貼板中的請求
鍵盤或鼠標(biāo)動作被發(fā)送到操作系統(tǒng)隊列。如果該輸入也包括獲取屏幕 截圖的請求,也就是說如果SCV在記泉漠式下,則SCT在其獲取屏^ 圖之前等待^Mt系統(tǒng)處理輸入。圖2示出了這樣的屏幕截圖請求的例子。在步驟1中在SCV 115生成請求。在識別適當(dāng)SCT的SDS接收這一請求 (步驟2 )。該請求然后被轉(zhuǎn)送到適當(dāng)?shù)腟CT (步驟3 ),其中在該請求被 接收之后被處理并獲糾目關(guān)的屏幕截圖(圖4 )。其在SCT本地壓縮并且 轉(zhuǎn)送回SDS (步驟5 )。在被接收時,其仍然以壓縮格式被轉(zhuǎn)送到SCV (步 驟6 )。在SCV處接收到時其被解壓并顯示在SCV的顯示器上用于該SCT 的相關(guān)窗口中(步驟7)。
SIS包含窗口小部件查找功能。如果用戶輸入請求附帶的支持信息表 明應(yīng)當(dāng)使用窗口小部件查找例程,則SIS將執(zhí)行窗口小部件查找例程并且 經(jīng)由SDS將必要信息傳遞到SCT,該SDS然后會在適當(dāng)處施加用戶輸入。
如果修改SCT剪貼板內(nèi)容,則將代表這一事件的消息發(fā)送到SDS。 該消息還包含剪貼板內(nèi)容和任何必要的支持信息。
將理解起初在該架構(gòu)中其它地方實現(xiàn)的任務(wù)的執(zhí)行僅僅是一對多連 接的一部分,這些任務(wù)的確認(rèn)也有必要返回到控制設(shè)備即SCV。因此要 求SCT輸出與在SCT設(shè)備上本地執(zhí)行的活動對應(yīng)的一系列數(shù)據(jù)輸出。 SCT通過獲取一個或多個屏幕截圖來實現(xiàn)這一點(diǎn),這些屏幕截圖然后可 以使用諸如ZLIB等已知的壓縮庫來壓縮。壓縮文件通過數(shù)據(jù)套接口發(fā)送 到SDS。終端用戶即控制SCV的個人可以配置幀速率即每秒所獲取的屏 幕截圖的數(shù)目,該幀速率可以被設(shè)置為例如5個/秒的默認(rèn)速率。
SCT基于接收的對處理用戶輸入的請求來發(fā)回響應(yīng)。這些響應(yīng)可以 包括支持信息,比如動作施加處的鼠標(biāo)位置,另夕卜,此數(shù)據(jù)可以包括表示 繼SCT施加動作之后的屏幕狀態(tài)的壓縮屏幕截圖。
如果SIS窗口小部件查找例程找到多個潛在結(jié)果,則SIS將發(fā)回指示 需要進(jìn)一步的支持信息的請求。
SCT還可以發(fā)回包含關(guān)于其硬件設(shè)置和/或其剪貼板內(nèi)容的信息的消息。
影像調(diào)JU3艮務(wù)器(SDS ) 110
影像調(diào)^l良務(wù)器是在一個或多個SCT與SCV之間提供接口的多線程 軟件并且執(zhí)行以下功能步驟
,在扭^行時等待來自SCT和SCV的連接。
SDS例示用于各SCT的套接口和線程。
SDS例示用于各SCV的套接口和線程。
SDS例示用于內(nèi)部任務(wù)的其它線程。
SDS連接到可以是許多但至少是一個的可用機(jī)器的子集。如上文提到 的,就SCT而言,本發(fā)明系統(tǒng)的一些部署可以涉及到在多個機(jī)器和操作 系統(tǒng)上的安裝,而在任一操作實例中可以存在連接到任何SDS的一些機(jī)
SDS使用網(wǎng)絡(luò)協(xié)議如TCP/IP進(jìn)行數(shù)據(jù)轉(zhuǎn)移,與SCV和SCT具有輸 入和輸出通信.實質(zhì)上它提供在SCV與SCT之間的接口。盡管有可能 SDS連接許多SCV,但情況是SCV中的僅一個SCV完全控制任一特定 SCT。經(jīng)由SDS連接到這一 SCT的其它SCV只能觀察和獲取來自SDS 的屏幕截圖僅用于顯示目的。
專用于單個SCT的各SDS線程進(jìn)行
支持到SCT的連接。SCT事實上連接到SDS。
.接收來自SCV的請求。
基于SCV請求消息內(nèi)容,SDS可以判決將這一請求發(fā)送到SIS進(jìn) 行處理。如果情況是這樣,則當(dāng)前線程將在處理與這一線程關(guān)聯(lián)的SCV 的任何其它請求之前等待來自SIS的響應(yīng)。
.請求被轉(zhuǎn)發(fā)到適當(dāng)目標(biāo)。應(yīng)注意來自SCV的同一個請求可以發(fā)送到 許多SCT。該一對多場景在SCV處于控制器模式并且在同時控制許多機(jī) 器時出現(xiàn)。
接收來自SCT的響應(yīng)
基于來自SCT的響應(yīng),SDS可以將響應(yīng)轉(zhuǎn)發(fā)到SIS進(jìn)行進(jìn)一步處理。
如果SCV處于記^式,則SDS將響應(yīng)保存到其數(shù)據(jù)存儲設(shè)備。 數(shù)據(jù)以如下方式用電子格式存儲使得它可易于取回并且可以在以后階段 用于回放目的。
SDS可以判決將SCT響應(yīng)轉(zhuǎn)發(fā)到適當(dāng)SCV。
接收來自SCV的數(shù)據(jù)-以描述鼠標(biāo)和鍵盤活動的XML形式。
將XML數(shù)據(jù)轉(zhuǎn)送到SCT。
將壓縮的屏幕截圖數(shù)據(jù)轉(zhuǎn)送到SCV。作為接口模塊,應(yīng)理解SDS接收和發(fā)送來自SCT和SCV的多個輸 入和輸出。
以下是對SDS典型的輸入的類型的列表
SCV對獲^目關(guān)聯(lián)的SCT的屏幕截圖的請求。
SCV對SCT硬件和軟件信息的請求。
SCV對處理用戶輸入和支持信息的請求。
指示當(dāng)前遠(yuǎn)程機(jī)器現(xiàn)在是控制器的SCV消息。
指示當(dāng)前遠(yuǎn)程機(jī)器的記錄狀態(tài)已經(jīng)改變的SCV消息。
指示當(dāng)前遠(yuǎn)程機(jī)器的回放狀態(tài)已經(jīng)改變的SCV消息。
SCV對返回所有連接的SCT的列表的請求。
SCV對關(guān)閉該連接的請求。
指示這一 SCV的剪貼板內(nèi)容已經(jīng)改變及剪貼板信息的SCV消息。
SCV對獲取人工屏幕截圖的請求。
SIS響應(yīng)。
SCT壓縮屏幕截圖和支持信息。 'SCT硬件和軟件信息。
指示這一 SCT的剪貼板內(nèi)容已經(jīng)改變及剪貼板信息的SCT消息。
SCT用戶輸入響應(yīng)和支持信息。
SCT人工屏幕截圖響應(yīng)。
SCT對關(guān)閉這一連接的請求。
就輸出而言,SDS將記錄的數(shù)據(jù)保存到其數(shù)據(jù)源,由此提供高速緩沖 功能。此數(shù)據(jù)以電子形式存儲并且可以在以后階段用于回放目的。來自 SDS的典型泰:據(jù)輸出包括
去往SCT的對獲取關(guān)聯(lián)SCT的屏^ft圖的請求。
去往SCT的對于SCT硬件和軟件信息的請求。
去往SCT的對處理用戶輸入及支持信息的請求。
去往SCT的指示這一 SCV的剪貼板內(nèi)容已經(jīng)改變及剪貼拓 ft息的 消息。 去往SCT的對獲取人工屏幕截圖的請求。
去往SIS的對分析數(shù)據(jù)的請求。
SCT壓縮屏幕截圖和支持信息。 ,SCT硬件和軟件信息。
指示這一 SCT的剪貼板內(nèi)容已經(jīng)改變及剪貼板信息的SCT消息。
SCT用戶輸入響應(yīng)和支持信息。 .SCT人工屏幕截圖響應(yīng)。
SCT對關(guān)閉這一連接的請求。
影傳客戶機(jī)查看器(SCV) 115
SCV也是多線程應(yīng)用。SCV連接到單個SDS,且可以以查看能力或 活躍能力連接。SCV可以連接到許多SDS,不過僅一個處于活躍模式下。 在活躍能力下,SCV控制SCT的^Mt。在查看能力方面,SCV簡單地接 收來自各連接的SCT的顯示信息并且顯示各SCT-查看SCV不向M SCT發(fā)送用戶輸入。圖1示出了一組配置的例子,其中一個SCV 115連 接到一個SDS 110。 SCT 105都在SCV的控制之下而SCV在這一配置中 處于活躍模式。在圖3的兩組例子中,兩個SCV115A、 115B連接到一個 SDS 110。在這一配置中SCV之一如SCV 115A控制它的組中的所有機(jī)器。 在組1中,與這一配置關(guān)聯(lián)的SCV控制組1中的所有機(jī)器。存在是兩個 組的成員的三個SCT。在這一例子中,與組2關(guān)聯(lián)的SCV即SCV 115B 只能查看而不控制組1中的SCT但是完全控制組2中的其它SCT。
出于本發(fā)明的目的,在連接到SCV這一背景下的"相關(guān)SCT"是以下 SCT: SCV在活躍方式下具有對該SCT的控制。
圖4示出了用于去往和來自SCV和SDS的數(shù)據(jù)的通信套接口。圖4 還示出了在SDS與各單獨(dú)SCT之間的通信套接口 。 SCV具有到與SCT 對應(yīng)的SDS的各套接口連接的單個線程。SCV正是通過這些套接口來經(jīng) 由SDS與各SCT通信。圖4A示出了存在的通信套接口,而圖4B示出 了當(dāng)?shù)谝?SCT即SCT—1是控制器而第二 SCT即SCT_2在直接通過SCV 而不是通過控制器來£互時套接口的數(shù)據(jù)流。圖4C示出了當(dāng)SCT—1是 控制器時套接口的數(shù)據(jù)流。為了有效控制各SCT,重要的是用戶知道各目標(biāo)機(jī)器上的活動。本 發(fā)明的系統(tǒng)通過在SCV上提供它所連接到的各SCT的窗口顯示來實現(xiàn)這 一點(diǎn)。在圖5的屏幕截圖中示出了一個例子,其中可見SCV具有用于已 經(jīng)被選的各SCT505、 510的窗口。還有可能提供第二窗口 505A、 510A、 即用于各SCT的放大窗口,其中各SCT上的活動區(qū)被放大。使用用于這 些事件類型的標(biāo)準(zhǔn)事件監(jiān)聽器來收集各窗口的鼠標(biāo)和鍵盤信息。
在SCV內(nèi)可以使用菜單選項或快捷鍵來指定與特定SCT對應(yīng)的控制 器窗口。 SCV向SDS提供此信息。SCV中的這一控制器機(jī)器窗口通過數(shù) 據(jù)套接口將它的事件提供給SDS。 SDS將事件傳遞到與控制器窗口對應(yīng) 的SCT,而且還將同一事件傳遞到連接到其的各(非控制)SCT。 SDS 并不將所有事件傳遞到連接至它的所有SCT,因為其中一些可能與特定 SCV無關(guān),例如圖3中的SCV 115B無需查看與組1相關(guān)的活動.在這一 情形下用戶通過在SCV中僅在一個窗口上實現(xiàn)動作來同時對所有相關(guān) SCT (機(jī)器)進(jìn)行遠(yuǎn)程控制。
在設(shè)置有控制器窗口且用戶在SCV中將鼠標(biāo)移動到另一窗口的情況 下,涉及與上述不同的情形。在這一情況下事件^L據(jù)通過與SCT相關(guān)的 套接口傳遞到SDS并J^ SDS傳遞到SCT。然而在這一情況下SDS并 不將事件傳遞到連接到其的所有相關(guān)(在先前段落中描述的意義上)SCT。 以這一方式用戶具有對單個機(jī)器的遠(yuǎn)程控制,參見圖4B。
SDS就每一 (相關(guān))SCT而言具有兩個數(shù)據(jù)套接口。各數(shù)據(jù)套接口 是單向的并且用于不同目的。 一個套接口包含數(shù)據(jù)消息,比如對屏幕截圖 的請求、鼠標(biāo)和a數(shù)據(jù)、關(guān)閉消息和其它基于文本的數(shù)據(jù)。另一套接口 包含來自SCT的數(shù)據(jù),比如消息和壓縮屏幕截圖。
影像解釋服務(wù)器(SIS ) 120
如上文討論的,本發(fā)明的一些部署積3吏用SCV和SDS就足夠了,其 中SCV通過SDS與一個或多個SCT交互。當(dāng)在交互中需要附加功能時, 本發(fā)明提供解釋服務(wù)器即影像解釋服務(wù)器(SIS) 120。 SIS連接到SDS。 它是多線程應(yīng)用。SIS的目的在于執(zhí)行數(shù)字圖像處理和數(shù)據(jù)庫查找操作。
SIS的功能包括
使用數(shù)字圖像處理技術(shù)的圖像分割,這些技術(shù)比如是但不限于閾值 分割、基于邊緣的分割、區(qū)域生長、非線性比例空間鏈接和/或其它。圖^#:分割成的區(qū)域包含用戶點(diǎn)擊的特征?,F(xiàn)在具有可以從中提取其它信息 的特定尺寸和邊界的區(qū)域。
特征向量提取-使用圖像的指定區(qū)域,應(yīng)用比如灰度和色直方圖、n
階矩和/或小波這樣的技術(shù)來獲得對圖像區(qū)進(jìn)行描述的測量。這一測量可 以表示為向量使得可以對其使用數(shù)學(xué)技術(shù)。對于一些連續(xù)分段可能需要該 特征向量。
使用特征向量的對象識別。通過使用模糊邏輯、神經(jīng)網(wǎng)絡(luò)、支持向 量機(jī)和/或應(yīng)用到特征向量組的基于范例的推理來管理對象的標(biāo)識.可以 用數(shù)據(jù)庫格式存儲用來與未知特征作比較的參考對象。
SIS的功能之一是在給定圖像中的坐標(biāo)時找到與該點(diǎn)關(guān)聯(lián)的對象。 SIS以如下方式實現(xiàn)這一點(diǎn)
圖#^分割-使用數(shù)字圖像處理分割技術(shù)。
針對鼠標(biāo)周圍的分段(區(qū)域)4C取特征向量,比如但不限于直方圖 或矩測量。
這些特征向量限定圖像中據(jù)此指定坐標(biāo)的"對象"。
這些特征向量與參考特征向量做比較以便使用距離度量來評估相 似性,該距離度量比如是但不限于歐幾里德度量、manhattan度量或 Earthmover距離。
參考特征向量存儲于數(shù)據(jù)庫中。數(shù)據(jù)庫已經(jīng)被人工構(gòu)造為包含比如 在檢查屏M圖集時可能需要的數(shù)據(jù)。
使用SQL來取回參考特征向量。參考特征向量具有在檢查屏幕截 圖集時可能遇到的對象如"菜單"、"工具條"的識別。
通過提供具有以下特征向量的候選對象集來進(jìn)行對象的識別,這些 特征向量與從源圖像中4C取的那些特征向量最為近似(在上文限定的意義 上使用的相似性)。對于多數(shù)圖像而言這一候選對象標(biāo)識列表的長度將是 1。如果列表的長度大于1,則該過程尚未進(jìn)行唯一對象識別。為了使識 別唯一,將尋求用戶干預(yù)以判決哪個是正確的識別或增加所用特征向量的
數(shù)目并且重復(fù)該過程直至進(jìn)行了唯一的識別。 上述功能的原型如下
Object findWidget(point p) {return Object widget}SIS的另一功能是在給定對象時識別圖像上的點(diǎn)。該過程如下
通過查詢數(shù)據(jù)庫來查找希望找到的對象的特征向量-這將稱為查詢 特征。
分割圖像-使用數(shù)字圖像處理分割技術(shù)。
針對圖像中的所有分段(區(qū)域)提取特征向量,比如但不限于直方 圖或矩測量。這些特征向量描述了圖像在特定區(qū)域中的質(zhì)量。具有相似特 征向量的圖像區(qū)域有望相似并且具有相似內(nèi)容。
特征向量列表中的各元件與希望識別的對象的查詢特征向量做比 較。為了評估特征向量相對于查詢特征的相似性,有可能使用距離度量, 比如但不限于歐幾里德度量、Manhattan度量或Earthmover距離。
當(dāng)找到最接近的匹配特征時返回該分段的重心的坐標(biāo)。
上述功能的原型如下
point findCoordinates(Object widget) {return point p} 操作例子
通過實現(xiàn)一對多交互,本發(fā)明的系統(tǒng)可以以多個不同方式來部署.本 發(fā)明的方法在第一模式即模擬模式下的應(yīng)用例子如下。這一具體流程序列 說明了單個客戶機(jī)目標(biāo)的例子并且需要一個其上執(zhí)行客戶機(jī)目標(biāo)模塊的 被測試系統(tǒng)、 一個其上執(zhí)行客戶機(jī)查看器模塊的系統(tǒng)和一個其上執(zhí)#^度 模塊的服務(wù)器。各模塊設(shè)置于不同硬件機(jī)器上并且使用TCP/IP相互通信。
如圖5的屏幕截圖中所示,已經(jīng)實現(xiàn)上U本設(shè)置步驟的用戶可以本 地查看"被測試系統(tǒng)"也就是運(yùn)行客戶機(jī)目標(biāo)應(yīng)用的系統(tǒng)即SCV的桌面。 當(dāng)用戶施加鼠標(biāo)/指示器或鍵盤動作時,在查看器窗口上被測試系統(tǒng)即 SCT對輸入適當(dāng)做出反應(yīng)。在SCV內(nèi)用戶可以查看日志窗口 520和放大 窗口 505A、 510A這其它兩個窗口。日志窗口 520顯示從被測試系統(tǒng)的桌 面窗口中捕獲的信息,比如鼠標(biāo)位置坐標(biāo)、鼠標(biāo)動作(單擊、雙擊等)和 坐標(biāo)或M輸入。放大窗口顯示在被測試系統(tǒng)上鼠標(biāo)周圍可見的屏幕區(qū)并 且以刷新速率更新此信息。如果僅有一個SCT,則它默認(rèn)為"控制器", 于是用戶經(jīng)由SCV控制該系統(tǒng)-參見圖5。如果有多個SCT,則1個控制 器由用戶指定而正是這一控制器由用戶控制。其它SCT使用與控制器接 收的相同的用戶輸入,也就是鼠標(biāo)和鍵盤。放大窗口的尺寸由用戶限定。 放大窗口對于應(yīng)用的運(yùn)轉(zhuǎn)不是關(guān)鍵的且僅示出整個屏幕的子集,這酷似MS放大器,該子集示出了屏幕在鼠標(biāo)周圍的區(qū)域作為其可訪問性選項的 一部分。鼠標(biāo)位置即屏幕坐標(biāo)(x, y)和鼠標(biāo)動作即單擊或雙擊從SCV 傳遞到SDS。在相似方式下其它用戶動作如鍵盤動作從SCV傳遞到SDS。 SDS將信息傳遞到SCT,該SCT又將消息傳遞到其操作系統(tǒng)隊列。當(dāng)操 作系統(tǒng)隊列處理消息時,其將鼠標(biāo)發(fā)送到適當(dāng)坐標(biāo)并施加動作。刷新動作 與用戶交互并行地和獨(dú)立地進(jìn)行。然而在用戶交互所提示的時間獲取所存 儲的屏幕截圖。
盡管這對確定單個被測試系統(tǒng)如何操作是有用的,但是本發(fā)明可以擴(kuò) 展到同時應(yīng)用于多個被測試系統(tǒng)。在這一^Mt模式下,用戶可以查看"被 測試系統(tǒng)"也就是運(yùn)行SCT應(yīng)用的系統(tǒng)的桌面并且選擇它們中的任一個 作為"控制器"。至于一個機(jī)器為何較另一機(jī)器更優(yōu)選沒有理由。事實上作 為設(shè)置要求的一部分,能夠用作為SUT的各機(jī)器通常應(yīng)當(dāng)在硬件和軟件 設(shè)置上相同。然而將認(rèn)識到SDS和SCV無需是與彼此或與SCT即被測 試系統(tǒng)相同的M.通過指派SCT之一作為控制器,其余SCT采取作為 "跟隨器"的默認(rèn)配置,這準(zhǔn)確地^仿在控制器窗口中所發(fā)生的。用戶可 以在SCV內(nèi)的分離窗口中查看測試系統(tǒng)的各桌面。當(dāng)用戶移動鼠標(biāo)并且 施加單擊或雙擊或用戶在"控制器"查看器窗口上^/v文字時,所有被測試 系統(tǒng)對輸入適當(dāng)做出反應(yīng)。顯示"跟隨器"系統(tǒng)的桌面的各窗口準(zhǔn)確g仿 向控制器窗口施加的動作。
用戶可以隨時選擇將被測試系統(tǒng)從控制器系統(tǒng)去耦合。用戶可以通過 選捧菜單項"不設(shè)置控制器"來執(zhí)行這一去輛合。各窗口變成可單獨(dú)用于用
戶交互。事實上即使當(dāng)設(shè)置有控制器時,用戶仍可通過選擇SCV中的適
當(dāng)窗口并且與之直接交互來^Mt各單獨(dú)機(jī)器。
在scv內(nèi)用戶可以查看用于各桌面窗口的其它兩個窗口,它們是曰
志窗口和放大窗口 。日志窗口顯示從被測試系統(tǒng)的桌面窗口中捕獲的信
息,比如鼠標(biāo)位置坐標(biāo)、鼠標(biāo)動作(單擊、雙擊)和坐標(biāo)或^tit輸入。放
大窗口顯示在被測試系統(tǒng)上鼠標(biāo)周圍可見的屏幕區(qū)并且以刷新速率更新 此信息。有兩個選項用以應(yīng)對桌面上的擁擠,第一選項涉及到縮放顯示被 測試系統(tǒng)的窗口以及依賴用于相應(yīng)機(jī)器的放大圖像來測試系統(tǒng)。第二解決
方案是在運(yùn)行客戶機(jī)查看器軟件的機(jī)器上使用將桌面空間增加至2、 4、 8 個監(jiān)視器的多監(jiān)視器視頻卡。雙監(jiān)視器卡是常用的,例如ATI和nVidia 提供這些卡,Matrox提供四圖形卡,而Xentera GT8 PCI 8提供在一個 計算機(jī)上支持8個監(jiān)視器的卡。盡管與許多遠(yuǎn)程計算機(jī)同時交互并且監(jiān)視一個計算機(jī)上的動作如何 轉(zhuǎn)變成該計算機(jī)或其它計算機(jī)上的活動以便保證相同的行為響應(yīng)是有利 的,但是也有可能使用本發(fā)明的技術(shù)來提供腳本記錄。這一記錄因諸多原
因而有利,這些原因包括以下情形例如希望在第一時刻執(zhí)行某一活動而 在以后時間段在同 一或不同計算機(jī)上重新執(zhí)行該相同活動以便保證相同 的行為??梢杂涗浤_本的其它原因包括出于訓(xùn)練和展示目的(產(chǎn)品走查 (walkthrough ))或出于獲取用于幫助系統(tǒng)或文檔的改變的UI的屏M 圖。
按照針對模仿一對多(其中系統(tǒng)的數(shù)目可以大于或等于1)的上述設(shè) 置來選#"控制器,,系統(tǒng)。
為了開始記錄,用戶選#^錄菜單選項。用戶然后遵循測試范例步驟 而在完成時選擇"停止記錄"菜單項。這在許多方面類似于記錄Visual Basic等的宏。記錄的腳本的格式是XML而它默認(rèn)地保存于SDS上。將 為各SCT記錄一個腳本。這樣做的原因在于SCT可以運(yùn)行不同平臺而記 錄的腳本可以略有不同。另夕卜,用戶在記錄過程中的某一點(diǎn)可能希望僅向 一些被測試機(jī)器施加某一特定輸入。
腳本項記錄可如下
<Snapshot>
<MouseButton>
<Acton>MOVE</Action>
<XPos>7488<"P0S>
<VP0S>21333</YP0S>
<EvemTimeSeconds>0</EventTimeSea>nds>
<EventTimeft^HiSeconds>l5<€ventTimeMilliSeconds>
<PlaybackMode>1 </PiaybackMocfe>
<.WouseBcittori>
</Snapshot>
上例示出了對鼠標(biāo)到屏幕上由坐標(biāo)《y>:<7488,21333>所示位置的移動 的捕獲??梢圆东@和沒置^t輸入為<Keyboard>《詢麵3^>標(biāo)記。
盡管實現(xiàn)腳本的記錄是有用的,但是主要的益處ii^現(xiàn)在想要在以后 的時間點(diǎn)重放所記錄的腳本時。這在想要自動化某些任務(wù)時特別地有用, 其中通過一次記錄腳本、然后隨需多次運(yùn)行它來實現(xiàn)自動化。在回放模式 下逐行解析測試腳本的各行、然后將該動作發(fā)送到適當(dāng)SCT以執(zhí)行.控制器腳本可以用兩種方式之一在控制器機(jī)器上回放作為許多SCT的控 制器來回放或自身作為獨(dú)立SCT來回放。在記錄過程中設(shè)置控制器而各 單獨(dú)SCT"跟隨"它。為控制器和各SCT記錄腳本。這些腳本存儲于SDS 上??刂破髂_本包含以下信息它^l:控制器并且有其它SCT。當(dāng)在控制 器上回放控制器腳本時,它將使作為其從屬的SCT的開啟窗口與腳本記 錄相關(guān)聯(lián)??赏瑫r在多個單獨(dú)的SCT實現(xiàn)回放。還有可能在單獨(dú)客戶機(jī) 目標(biāo)上回放單獨(dú)SCT的腳本。
當(dāng)記錄一對多腳本時這意味著
為控制器機(jī)器記錄腳本。
為各客戶機(jī)目標(biāo)記錄單獨(dú)的腳本。
腳本可以在任何機(jī)器上回放。用什么將腳本不可分地鏈接到機(jī)器則無 特別之處。如果系統(tǒng)部署于模仿模式一對多而腳本在控制器上回放,則所 有其它SCT將跟隨它。在一個SCT上記錄的腳本將在第二 SCT上^f放。 它在第二 SCT上是否播放成功依賴于用戶界面對于兩個SCT而言均相 同.
將認(rèn)識到至今已經(jīng)關(guān)于以下實施來描述本發(fā)明的系統(tǒng),在該實施中聯(lián) 網(wǎng)架構(gòu)中的各單獨(dú)計算;tM^設(shè)置為模仿彼此的行為。通過對各系統(tǒng)的反應(yīng) 進(jìn)行比較的操作者視覺檢查,有可能確定各系統(tǒng)是否在正確地執(zhí)行。本發(fā) 明也可以在準(zhǔn)確匹配模式的另一配置下操作。
在準(zhǔn)確匹配模式下,系統(tǒng)的一對一使用類似于一對一;^仿模式,另外 每當(dāng)發(fā)生用戶交互時獲取鼠標(biāo)周圍區(qū)域的屏幕截圖。使用'nxm,個像素 的以鼠標(biāo)為中心的區(qū)域作為允許對發(fā)生用戶交互之處進(jìn)行識別的特征。在 模仿模式下,鼠標(biāo)的準(zhǔn)確坐標(biāo)和光標(biāo)的位置經(jīng)由調(diào)度服務(wù)器傳遞到客戶機(jī) 貝標(biāo)。在影像模式下用調(diào)^艮務(wù)器上存儲的圖形即查詢圖像來補(bǔ)充此信 息。圖形中的信息在實況一對多使用過程中并不使用但是在實況一對多影 像使用過程中使用并且也在記錄的腳本的回放過程中使用。如果系統(tǒng)在這 一模式下執(zhí)行,則每當(dāng)用戶與被測試系統(tǒng)交互時生成圖形并將該圖形存儲 在調(diào)度服務(wù)器上。
與各控制序列相關(guān)聯(lián)的單獨(dú)圖形的這一存儲的益處在回放配置下并 且特別是在以下系統(tǒng)上回放所記錄的腳本的回放配置下是明顯的,該系統(tǒng) 在物理上不同于(物理上的不同可以包括但不限于用戶界面布局變化和屏 幕分辨率變化)但是應(yīng)當(dāng)在配置上等同于用于記錄的原系統(tǒng)。準(zhǔn)確匹配模式可以視為影像模式的恰當(dāng)子集。
當(dāng)用戶向影傳模式下的控制sct發(fā)送輸入時的事件序列如下 用戶向控制SCT施加輸入。
scv為這一輸入生成查詢圖像信息.
用戶輸入和查詢圖像信息由scv發(fā)送到sds。
SDS針對各非控制SCT請求屏幕截圖。
非控制SCT返回屏幕截圖給SDS。
SDS將SCT屏幕截圖隨查詢圖像和支持信息一起發(fā)送到SIS。
SIS嘗試基于SIS從SDS接收的輸入來查找用戶輸入屏幕坐標(biāo)。這 可以是準(zhǔn)確匹配或可接受匹配。
如果SIS找到唯一坐標(biāo),則SIS將找到的坐標(biāo)發(fā)送到SDS而SDS 又發(fā)送這些坐標(biāo)到SCT。 SIS也可以返回窗口小部件文字到SDS。
sct將坐標(biāo)和命4HT息;^v操作系統(tǒng)消息隊列中,從而可以在正確
位置發(fā)生用戶交互。
如果沒有找到唯一坐標(biāo),則SIS向SDS請求更多支持信息。SDS 向SCV請求SCV所返回的更多支持信息。SDS發(fā)送此新的支持信息到 sis且查找過程重復(fù)。scv也可以發(fā)回響應(yīng)以取消這一輸入。
來自控制SCT的用戶輸入以與在模仿模式下完全相同的方式發(fā)送 到SCT。
在回放過程中,客戶機(jī)查看器進(jìn)行以下步驟
讀^P本項。
針對動作來解析腳本項。
針對查詢圖像圖形名稱和支持信息來解析腳本項。支持信息可以包 括在窗口小部件上出現(xiàn)的文字。
SDS對翻if^存儲器數(shù)據(jù)庫執(zhí)行查找以查看是否有用于窗口小部件文 本的翻譯。
通過SDS向SCT要求屏幕截圖.
SCT返回屏幕截圖給SDS SDS將屏幕截圖隨查詢圖像和支持信息一起返回到SIS。
SIS嘗試查找屏幕截圖是否包含針對查詢圖像圖形的可接受匹配.
如果找到可接受匹配,則SIS將找到的坐標(biāo)發(fā)送到SDS而SDS又 發(fā)送這些坐標(biāo)到SCT。
SCT將此信息;^操作系統(tǒng)消息隊列中,從而可以在正確位置發(fā)生 用戶交互。
如果沒有找到可接受匹配,則SCV將完成以下之一(i)停止回 放、將錯誤標(biāo)志放入日志中;(ii)自動嘗試供應(yīng)更多支持信息;或(iii) 向用戶請求支持信息。
目前僅對SCT進(jìn)行分析并且該分析將A^釋服務(wù)器的功能。這一準(zhǔn) 確匹配模式對于自動化測試是有用的,而在準(zhǔn)確匹配模式優(yōu)于模仿模式的 原因之中包括
應(yīng)用或窗口小部件每當(dāng)它們被例示時可以出現(xiàn)在不同位置。模仿模 式腳本不能適應(yīng)以下情形應(yīng)用正確地工作,但是特征的位置不在期望之處。
易于使比如眾多多媒體應(yīng)用這樣占用整個屏幕的應(yīng)用每當(dāng)被例示 時都位于同一位置。并不容易使同時在許多機(jī)器上運(yùn)行的所有其它應(yīng)用類 型每當(dāng)被使用時都位于同 一位置。模仿模式預(yù)期應(yīng)用每當(dāng)在不同系統(tǒng)上運(yùn) 行時都不可變。準(zhǔn)確匹配模式可以適應(yīng)跨系統(tǒng)的差異并且在這一方面更勝 一籌。
由于詢問用戶界面以求準(zhǔn)確匹配,所以在回放模式下的同步問題出 現(xiàn)的可能性較小。
故障以與模仿模式相似的方式在準(zhǔn)確匹配模式下出現(xiàn)并且包括比如 以下原因
操作系統(tǒng)故障
應(yīng)用故障
腳本同步故障
當(dāng)客戶機(jī)目標(biāo)在屏幕上不能找到向其施加動作的感興趣窗口小部件 時,出現(xiàn)腳本同步故障,這可以歸因于
1.窗口小部件非唯一-有許多準(zhǔn)確匹配位置。2.窗口小部件不存在-沒有準(zhǔn)確匹配位置。
在窗口小部件非唯一的情況1下,這可以歸因于缺陷或它可能是合法 的事件。在任一情況下用戶將被標(biāo)記為已經(jīng)出現(xiàn)問題。用戶將被要求進(jìn)行 干預(yù)并且指定足以使窗口小部件唯一的某信息(屏幕區(qū))或指定這確實是 M。腳本將在前一情況下繼續(xù)或在后一情況下記錄故障。
在窗口小部件不存在的情況2下將自動記錄故障。
"及時方式"通過根據(jù)系統(tǒng)處理器速度、存儲器和關(guān)于任務(wù)在另 一 系統(tǒng) 上完成需要多久(也就是當(dāng)記錄腳本時)的補(bǔ)充信息來計量的啟發(fā)式法被 解釋為客觀時間標(biāo)度。當(dāng)正在記錄腳本時沒有計時問題,因為用戶具有所 需的所有視覺提示而>(^被應(yīng)用提示這樣做時才提供輸入。
至此已經(jīng)參照模仿和準(zhǔn)確匹配這兩種示例應(yīng)用模式描述了本發(fā)明?,F(xiàn) 在將參照影像模式這一優(yōu)選操作模式來描述本發(fā)明。在這一操作模式下, 在圖1中概括的系統(tǒng)的操作被擴(kuò)展為包括SIS即解釋服務(wù)器模塊,該模塊 與調(diào)度服務(wù)器模塊接口并JLiE使用TCP/IP協(xié)議在網(wǎng)絡(luò)環(huán)境內(nèi)通信。解釋 服務(wù)器模塊通過獲取所記錄的測試范例腳本并且以自動方式逐個記錄地 遍歷它來進(jìn)行操作。它針對各記錄來解析屏幕截圖的名稱和用戶交互發(fā)生 之處的坐標(biāo)。解釋服務(wù)器模塊然后開啟所討論的屏幕截圖并且應(yīng)用各種圖 像處理技術(shù)將圖像分割成區(qū)域。在SIS從各區(qū)域提取特征向量、然后使用 這些特征向量從數(shù)據(jù)庫中識別對象。將認(rèn)識到數(shù)據(jù)庫先前由用戶填充,因 為用戶將必需針對能夠用范本來識別的各類窗口小部件來填充數(shù)據(jù)庫。使 用從被測試操作系統(tǒng)獲取的人工提供的范本來填充數(shù)據(jù)庫。執(zhí)行獲取屏幕 截圖并且將圖像人工分割成對象這一人工過程。例如使用BLOB即二進(jìn) 制大型對象數(shù)據(jù)庫技術(shù)以這些對象填充數(shù)據(jù)庫。圖像的對象級描述、模糊 邏輯和對象的幾何形狀以及XML框架可以用來描述圖像。具體而言,圖 像的對象級描述允許識別在測試范例記錄中的坐標(biāo)處出現(xiàn)的窗口小部件。 4吏用來自測試范例腳本的信息,可獲得以下信息
用戶動作。
屏^圖中交互出現(xiàn)之處的坐標(biāo)。
用戶動作的背景。
用戶點(diǎn)擊過什么窗口小部件(對象)尚不得知。使用由解釋服務(wù)器模 塊提供的對圖像的對象級描述、用戶動作和在給定坐標(biāo)處的對象的身份提 供了用以回放腳本的所需背景。對通過使用解釋服務(wù)器模塊而可用的功能進(jìn)行使用的另 一應(yīng)用是通過解釋服務(wù)器將記錄的動作轉(zhuǎn)換成測試腳本的 "英文,,版本的能力。這常常是分發(fā)到測試組織在現(xiàn)測試組以外的其它成員 所需要的。
對于回放模式有可能提出相反問題"圖像中的給定窗口小部件在何 處?"有可能根據(jù)回放和用戶交互發(fā)生之處的坐標(biāo)來獲取圖像并且識別窗 口小部件的位置。如何查找窗口小部件將依賴于用戶的工作模式、即準(zhǔn)確 匹配模式或影^^式。
在更數(shù)學(xué)性的語言下解釋服務(wù)器模塊執(zhí)行以下兩個功能
1. 首先識別在坐標(biāo)為(x, y)的位置處的窗口小部件;以及
2. 其次查找給定窗口小部件的(x, y)坐標(biāo)。 這可以表示為
1. Object findWidget(point p) {return Object widget}
2. point findCoordinates(Object widget) {return point p}
使用本發(fā)明的架構(gòu)有可能使單個測試者能夠同時測試多個機(jī)器。由于 通過將接收的命令翻譯成在被測試系統(tǒng)中實施所必需的語法和格式的調(diào) ;tJ艮務(wù)器即SDS來實現(xiàn)在運(yùn)行SCV的控制機(jī)器與被測試系統(tǒng)即SCT之 間的所有通信,所以有可能同時與許多不同操作系統(tǒng)的系統(tǒng)接口。當(dāng)在模 仿模式或準(zhǔn)確匹配模式或影傳模式下運(yùn)行時,用戶實質(zhì)上能夠(擬)同時 將鍵盤和鼠標(biāo)動作傳遞到所有目標(biāo)機(jī)器。
根據(jù)本發(fā)明教導(dǎo)的系統(tǒng)使得能夠獲得以串行方式進(jìn)行的反復(fù)任務(wù)并 且使其并行。這一創(chuàng)新在質(zhì)量保證(QA)方面以及屏幕截圖和生產(chǎn)后一 些方面以及DTP(桌面發(fā)布-包括用于手冊等的圖形)方面具有直接益處。
通過同時與多個SCT接口并使該多個SCT的性能可見,即使當(dāng)被測 試用戶界面沒有圖像解釋時仍有可能明顯加速人工測試。
應(yīng)理解,已經(jīng)參照對于理解本發(fā)明有用的網(wǎng)絡(luò)架構(gòu)的示例部件描述了 本發(fā)明。這些示例性實施例不應(yīng)被視為是限制性的,提供這些示例性實施 例是為了說明本發(fā)明的操作且僅按照所附權(quán)利要求的限定來理解本發(fā)明 的范圍。在網(wǎng)絡(luò)內(nèi)的不同和分離的計算機(jī)上提供客戶機(jī)查看器模塊SCV 和客戶機(jī)目標(biāo)模塊SCT的每一個。雖然優(yōu)選地在不同機(jī)器上提供調(diào)JU!良 務(wù)器模塊SDS和解釋服務(wù)器模塊SIS,從而它們可以享有它們自己的專用 處理器的益處,但是可以運(yùn)用以下某些應(yīng)用,其中服務(wù)器模塊和客戶機(jī)查看器模塊中的一個或多個共同駐留于單個機(jī)器上。期望使用TCP/IP協(xié)議 來實現(xiàn)在各模塊之間的通信。當(dāng)提及計算機(jī)/機(jī)器時,也有一種允許一個 機(jī)器(主機(jī)計算機(jī))同時運(yùn)行多個操作系統(tǒng)(客戶操作系統(tǒng))的附帶技術(shù) VMWare。這些操作系統(tǒng)將在網(wǎng)絡(luò)上表現(xiàn)為分離的計算機(jī),這有時也稱為 計算機(jī)虛擬化。
客戶機(jī)查看器被配置成實現(xiàn)對運(yùn)行客戶機(jī)目標(biāo)模塊的系統(tǒng)的桌面的 顯示。如果有多個被測試系統(tǒng),則將在客戶機(jī)查看器中為各機(jī)器設(shè)置一個 窗口 ??蛻魴C(jī)目標(biāo)的整個桌面的屏幕截圖在SDT上被壓縮并經(jīng)由TCP/IP 發(fā)送到調(diào)度服務(wù)器。調(diào)彭艮務(wù)器在保持副本的同時將壓縮的屏幕截圖發(fā)送 到客戶機(jī)查看器??蛻魴C(jī)查看器解壓縮并顯示屏幕截圖。刷新率,即客戶 機(jī)目標(biāo)(經(jīng)由調(diào)^l艮務(wù)器)向客戶機(jī)查看器發(fā)送的屏幕截圖的數(shù)目默認(rèn)為 約5幀/秒并且可由用戶改變。刷新率僅與發(fā)送到客戶機(jī)查看器的屏M 圖有關(guān)。存在在不同時間獲取的并且由用戶交互來提示的分離的屏幕截圖 流。一5^器被連接,用戶僅與客戶機(jī)查看器交互,該客戶機(jī)查看器然后 經(jīng)由調(diào)m艮務(wù)器將在客戶機(jī)查看器處鍵入的指令傳達(dá)到客戶機(jī)目標(biāo)。在這 一方式下使在對話過程中的通信業(yè)務(wù)最小化為針對各交互而進(jìn)行的具體 鍵擊/鼠標(biāo)動作。由于業(yè)務(wù)少得多,所以使帶寬使用最小化而數(shù)據(jù)傳送的 速度也增加,從而在客戶機(jī)查看器上在第一時刻采取的動作在客戶機(jī)目標(biāo) 上擬實時地生效。
另夕卜,使用才Nt本發(fā)明教導(dǎo)的系統(tǒng),操作具有英文界面的系統(tǒng)的用戶 有可能測試在不同語言的界面中操作的其它系統(tǒng)。對使用不同語言的系統(tǒng) 的這一同時控制具有明顯的本地化益處。為了提供這樣的功能,系統(tǒng)在先 前提到的"影像模式"下操作。 一些窗口小部件的特征正是其主要識別特征 是文本。在以下情形中也是這種情況為了在本地化^作系統(tǒng)上查找與帶 有英文文字的窗口小部件等同的窗口小部件,有必要在該系統(tǒng)中具有某一 翻譯機(jī)制。針對系統(tǒng)所要使用的各語言來用翻譯存儲器的內(nèi)容填充SIS 120上的數(shù)據(jù)庫120A。當(dāng)在腳本回放過程中或在實況模式下獲取控制器 SCT的屏幕截圖時,將其發(fā)送到SIS以進(jìn)行處理。識別窗口小部件的SIS (如前文所述)也可以使用OCR來識別與其相關(guān)聯(lián)的文本。
SIS向SDS供應(yīng)所找到的窗口小部件信息。SDS在翻^f存儲器教:據(jù) 庫中查詢窗口小部件文本的翻譯。翻譯存儲器返回所翻譯的文字。SDS 向本地化SCT請求屏^圖。本地化SCT將屏幕截形返回到SDS。 SDS向SIS供應(yīng)將要在目標(biāo)圖4象中查找的本地化屏幕截形和^^化窗口小部件文本信息。sis嘗試返回對之采取用戶動作的適當(dāng)本地化窗口
小部件的坐標(biāo)。
OCR的加入補(bǔ)充了 SDS的功能。必須在軟件串?dāng)?shù)據(jù)庫中查找在窗口 小部件上找到的文本以找到其在本地化系統(tǒng)中的相對物。SDS完成這一查 找。窗口小部件文本和翻譯用XML腳本存儲為支持信息。在回放或?qū)崨r 模式下向SIS供應(yīng)將要在SIS上查找的本地化圖形和本地化文本,而SIS 返回匹配的位置。
應(yīng)注意本發(fā)明系統(tǒng)實用性的這一具體例子在本地化—即《吏得產(chǎn)品或 服務(wù)適應(yīng)于特定語言、文化和所需本地"感官"這一過程中具有顯著應(yīng)用。 理想地開發(fā)產(chǎn)品或服務(wù)使得本地化相對地易于實現(xiàn),也就是產(chǎn)品"能夠本 地化"-例如通過用軟件創(chuàng)建資源使得文本可容易地變成另一語言并且出 于這一 目的而允許一定擴(kuò)展空間。翻譯存儲器是在本地化產(chǎn)業(yè)中使用的技 術(shù)。它是一種除了等效翻譯之外還提供所有待翻譯文本的列表的數(shù)據(jù)結(jié) 構(gòu)。它提供一種可以機(jī)器翻譯文本的方法。起初數(shù)據(jù)結(jié)構(gòu)必須由對翻譯存 儲器的每個元素提供翻譯的翻譯器填充。當(dāng)在以后的某一時間用另外的新 內(nèi)容更新文本時,可以機(jī)械恢復(fù)和重用早先提供的翻譯。這樣的翻譯數(shù)據(jù) 結(jié)構(gòu)可以導(dǎo)入SIS中并且在本發(fā)明的背景下加以利用。
盡管已經(jīng)參照具體實施例和應(yīng)用描述了本發(fā)明,但是將認(rèn)識到提供這 些作為本發(fā)明系統(tǒng)的操作例子而本意不在于將本發(fā)明限制于任一例子集。
也將理解在參照一個示例^Mt模式來描述部件和特征時,這樣的部件和特
征可以容易地與其它示例操作模式相接口和一起使用。因此,已經(jīng)描述的
^Mt例子不應(yīng)視為單獨(dú)例子,因為本發(fā)明系統(tǒng)的部署或利用可以涉及到 來自這里沒有明示描述的架構(gòu)中不同例子的特征或部件。
字眼"包括,,在本說明書中使用時用以說明存在所聲明的特征、整數(shù)、 步驟或部件,但是并不排除存在或添加一個或多個其它特征、整數(shù)、步驟、 部件或其組合。
權(quán)利要求
1.一種網(wǎng)絡(luò)系統(tǒng),被配置成實現(xiàn)從單個查看器計算設(shè)備同時控制多個目標(biāo)計算設(shè)備,所述系統(tǒng)包括具有顯示器的查看器設(shè)備,所述查看器設(shè)備被配置成在所述顯示器上生成多個圖形窗口并被配置成與服務(wù)器設(shè)備直接通信,服務(wù)器設(shè)備,被配置成與多個客戶機(jī)目標(biāo)設(shè)備中的各客戶機(jī)目標(biāo)設(shè)備直接通信,多個客戶機(jī)目標(biāo)設(shè)備,所述多個客戶機(jī)目標(biāo)設(shè)備的每一個被配置成接收來自所述服務(wù)器設(shè)備的輸入命令并被配置成生成用于向所述服務(wù)器設(shè)備轉(zhuǎn)發(fā)的顯示信息,以及其中所述服務(wù)器設(shè)備被配置成接收在所述查看器設(shè)備的所述窗口之一中實現(xiàn)的輸入并且復(fù)制該輸入以便向所述目標(biāo)設(shè)備的每一個提供輸入命令,并且還被配置成從所述目標(biāo)設(shè)備接收根據(jù)所述輸入命令得到的所述顯示信息并且將各目標(biāo)設(shè)備的該信息轉(zhuǎn)送到所述查看器設(shè)備以便作為單獨(dú)的窗口在所述查看器設(shè)備上顯示。
2. 如權(quán)利要求l所述的系統(tǒng),其中在所述服務(wù)器設(shè)備與每一個所述 目標(biāo)設(shè)備之間的通信是通過專用數(shù)據(jù)套接口的。
3. 如權(quán)利要求2所述的系統(tǒng),其中所^i良務(wù)器i殳備具有用于各目標(biāo) 設(shè)備的兩個數(shù)據(jù)套接口 ; 一個套接口被配置成與所述目標(biāo)設(shè)備通信, 一個 套接口被配置成與所述查看器i殳備通信。
4. 如權(quán)利要求3所述的系統(tǒng),其中各數(shù)據(jù)套接口是雙向的。
5. 如任一前述權(quán)利要求所述的系統(tǒng),其中所述服務(wù)器設(shè)備向所述目 標(biāo)設(shè)備的每一個轉(zhuǎn)送的命令包括以下各項中的至少 一項鍵盤輸入和支持?jǐn)?shù)據(jù),鼠標(biāo)/指示器輸入和支持?jǐn)?shù)據(jù),對關(guān)于SCT硬件設(shè)置的信息的請求,對獲取屏幕截圖的請求,對取回剪貼板內(nèi)容的請求,對插入數(shù)據(jù)到剪貼板中的請求。
6. 如任一前述權(quán)利要求所述的系統(tǒng),其中在所述設(shè)備之間的通信通 過套接口連接來實現(xiàn)。
7. 如權(quán)利要求6所述的系統(tǒng),其中每一個所述設(shè)備具有在其上運(yùn)行 的多線程軟件應(yīng)用.
8. 如權(quán)利要求7所述的系統(tǒng),其中所述多線程軟件應(yīng)用為與具體目 標(biāo)設(shè)備相對應(yīng)的所述查看器設(shè)備和所述服務(wù)器設(shè)備之間的各套接口連接 提供單個線程。
9. 如權(quán)利要求7所述的系統(tǒng),其中所述多線程軟件應(yīng)用為在各目標(biāo) 設(shè)備與所述服務(wù)器設(shè)備之間的各套接口連接提供單個線程。
10. 如任一前g利要求所述的系統(tǒng),還包括解^i殳備,所述解#^ 備耦合到具有存儲于其中的多個用戶預(yù)定義記錄的數(shù)據(jù)庫,所述解釋服務(wù) 器被配置成與所述服務(wù)器設(shè)備通信并被配置成接收從所述查看器設(shè)備轉(zhuǎn)便解釋這些命令以供在每一個所述目標(biāo)設(shè)備上后續(xù)執(zhí)行。
11. 如權(quán)利要求10所述的系統(tǒng),其中所述解#^殳4"被配置成執(zhí)行從 所述查看器設(shè)備接收的圖像分割和圖4象處理命令。
12. 如權(quán)利要求11所述的系統(tǒng),其中所述解釋設(shè)^^被配置成提供對 從所述查看器設(shè)備接收的命令的光學(xué)字符識別以便限定根據(jù)從所述查看 器設(shè)備接收的圖像得到的識別的字符。
13. 如權(quán)利要求12所述的系統(tǒng),其中所述查看器設(shè)備和至少一個所 ii^戶機(jī)目標(biāo)設(shè)備提供不同語言的顯示,所述服務(wù)器設(shè)備被配置成實現(xiàn)將 來自所述查看器設(shè)備的所述識別的字符翻譯成適合于所述目標(biāo)設(shè)備的語 言,所述翻譯的字符用來在所述目標(biāo)設(shè)備上實現(xiàn)相對應(yīng)的命令。
14. 如任一前述權(quán)利要求所述的系統(tǒng),被配置成在模仿模式下操作, 所述模仿模式的操作使在所述客戶機(jī)設(shè)備的用戶能夠選擇在所^戶機(jī) 設(shè)備處的所述顯示的窗口中的一個顯示的窗口作為控制器窗口 ,在該窗口 中實現(xiàn)的命令在每一個所述目標(biāo)設(shè)備上被復(fù)制,且這些命令在每一個所述 目標(biāo)設(shè)備的結(jié)果被顯示于所述客戶機(jī)設(shè)備上的所述顯示的窗口中的其它 具體顯示窗口中,所述顯示的窗口中的每一個所述其它具體顯示窗口與具 體目標(biāo)設(shè)備唯一地關(guān)聯(lián)。
15. 如權(quán)利要求14所述的系統(tǒng),其中提供多個命令,所述命令以腳 本形式來提供,所*本在第一時刻被記錄JL^以后的用戶限定的時刻可回放。
16. 如權(quán)利要求14所述的系統(tǒng),還被配置成當(dāng)在所述控制器中執(zhí)行 命令時實現(xiàn)記錄該命令周圍區(qū)域的圖形的步驟,對于在所述用戶和所述控 制器窗口之間的每次交互生成和存儲所述圖形并可將該圖形存儲于所述 服務(wù)器設(shè)備。
17. 如權(quán)利要求15所述的系統(tǒng),還被配置成當(dāng)在所述控制器中執(zhí)行 命令時實現(xiàn)記錄該命令周圍區(qū)域的圖形的步驟,對于在所述用戶和所述控 制器窗口之間的每次交互生成和存儲所述圖形,且將該圖形存儲于所述服 務(wù)器設(shè)備,其中所述系統(tǒng)還包括解釋服務(wù)器,所述解釋服務(wù)器被配置成在 所述腳本的回放過程中將根據(jù)在每一個所述目標(biāo)設(shè)備處執(zhí)行所述命令而 得到的圖像與根據(jù)所一本的原始記錄而得到的圖像做比較。
18. 如權(quán)利要求17所述的系統(tǒng),其中所述解釋服務(wù)器被配置成在確 定在根據(jù)所述腳本的原始記錄而得到的圖像與根據(jù)所述腳本的執(zhí)行而得 到的圖像之間存在匹配時實現(xiàn)所逸卿本的成功執(zhí)行在所il^戶機(jī)設(shè)備的 顯示。
19. 如權(quán)利要求16所述的系統(tǒng),還包括解釋服務(wù)器,所述解釋服務(wù) 器被配置成使用根據(jù)在所述控制設(shè)備處執(zhí)行命令而得到的圖像來確定用 戶輸入在所述目標(biāo)設(shè)備上的屏幕坐標(biāo)。
20. 如權(quán)利要求14所述的系統(tǒng),還被配置成當(dāng)在所述控制器中執(zhí)行 命令時實現(xiàn)記錄該命令周圍區(qū)域的圖形的步驟,對于在所述用戶和所述控 制器窗口之間的每次交互生成和存儲所述圖形,所述系統(tǒng)還包括解釋服務(wù) 器,所述解釋服務(wù)器被配置成提供對與在所述控制器窗口上執(zhí)行的各命令 關(guān)聯(lián)的圖形的分析并且確定用于在每一個所述目標(biāo)設(shè)備上執(zhí)行的適當(dāng)命 令。
21. 如權(quán)利要求20所述的系統(tǒng),其中對適當(dāng)命令的確定包括以下步 驟確定與用于施加在所述控制器窗口中執(zhí)行的所述命令的各測試設(shè)備相 關(guān)聯(lián)的所述窗口中的等同區(qū)域。
22. 如權(quán)利要求21所述的系統(tǒng),其中通過在所述測試設(shè)備的窗口上 執(zhí)行光學(xué)字符識別功能來實現(xiàn)對等同區(qū)域的確定。
23. —種計算機(jī)實施的方法,用于實現(xiàn)從單個查看器計算設(shè)備同時控 制多個目標(biāo)計算設(shè)備,所述方法包括以下步驟提供第一軟件模塊,所述第一軟件模塊在具有顯示器的查看器設(shè)備上可執(zhí)行,所述第一軟件模塊被配置成在所述顯示器上生成多個圖形窗口 ,提供第二軟件模塊,所述第二軟件模塊在服務(wù)器設(shè)備上可執(zhí)行并且提 供在所述查看器設(shè)備與多個客戶機(jī)目標(biāo)設(shè)備之間的通信接口 ,提供第三軟件模塊,所述第三軟件模塊在所述多個客戶機(jī)目標(biāo)設(shè)備中的一個或多個客戶機(jī)目標(biāo)設(shè)備上可執(zhí)行,所述第二目標(biāo)模塊被配置成使得 該第二目標(biāo)模塊在其上執(zhí)行的所述多個客戶機(jī)目標(biāo)設(shè)備的每一個能夠接收來自所述服務(wù)器設(shè)備的輸入命令并生成用于向所述服務(wù)器設(shè)備轉(zhuǎn)發(fā)的顯示信息,以及其中所述三個軟件模塊中的每一個軟件模塊的執(zhí)行和在所述三個軟 件模塊之間的接口提供了通過所述服務(wù)器設(shè)備來發(fā)送在所述查看器設(shè)備 的所述窗口之一中實現(xiàn)的命令,以使在每個所述目標(biāo)設(shè)備復(fù)制并從所述目 標(biāo)設(shè)備生成根據(jù)所述命令得到的顯示信息,以及經(jīng)由所述服務(wù)器設(shè)備將各 目標(biāo)設(shè)備的該信息轉(zhuǎn)送到所述查看器設(shè)備,以便作為單獨(dú)的窗口在所述查 看器i殳備上顯示以確i人所述命令的復(fù)制。
24. —種具有多個單獨(dú)模塊的計算機(jī)程序,所^塊在運(yùn)行于一個或 多個計算設(shè)備上時被配置成實施如權(quán)利要求23所述的方法步驟。
全文摘要
本發(fā)明描述一種用于從一個控制設(shè)備同時控制多個設(shè)備的系統(tǒng)和方法。控制設(shè)備設(shè)置有具有多個窗口的顯示器,各窗口具有與多個設(shè)備的活動有關(guān)的視覺表示。通過經(jīng)由中間服務(wù)器來轉(zhuǎn)送在控制設(shè)備處實現(xiàn)的命令,有可能在多個設(shè)備中的各設(shè)備同時實現(xiàn)相同命令的對應(yīng)處理。在實現(xiàn)命令時多個設(shè)備通過服務(wù)器將表示該命令的處理結(jié)果的圖像轉(zhuǎn)送回到控制設(shè)備以進(jìn)行顯示。
文檔編號G06F11/36GK101595454SQ200780006649
公開日2009年12月2日 申請日期2007年1月23日 優(yōu)先權(quán)日2006年1月25日
發(fā)明者基蘭·亞瑟, 德莫特·漢南, 馬克·沃德 申請人:布蘭特技術(shù)有限公司