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

創(chuàng)建容錯和自適應圖形用戶接口測試自動化的方法和系統(tǒng)的制作方法

文檔序號:6609571閱讀:199來源:國知局
專利名稱:創(chuàng)建容錯和自適應圖形用戶接口測試自動化的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般地涉及計算機和包括硬件、軟件和處理的其他數(shù)據(jù)處理系統(tǒng)的領(lǐng)域。更具體地說,本發(fā)明涉及容錯和自適應圖形用戶接口(GUI)測試自動化。
背景技術(shù)
隨著軟件開發(fā)人員不斷引入新的和更復雜的應用,基礎程序代碼的復雜性也相應增加。這種復雜性通常擴展到應用的圖形用戶接口(GUI),導致在作為質(zhì)量保證(QA)過程的一部分開發(fā)有意義的軟件測試過程時出現(xiàn)額外且有時出乎意外之外的難題。應用的GUI的手動測試可以是勞動密集的、易出錯的和昂貴的,這導致開發(fā)自動化的GUI測試解決方案。雖然GUI測試自動化的目標是消除對手動測試的需要,但是它目前仍用作人工測試者的助手。
使GUI測試過程自動化的現(xiàn)有技術(shù)方法一般包括手動GUI測試交互的“記錄和重放”或為每個應用編寫自動化的測試過程。記錄和重放方法可能是不可靠的,因為很可能沒有捕獲和記錄所有可能的用戶手勢和GUI交互以便后來的重放。開發(fā)定制編寫的自動化的GUI測試帶來了其他難題,因為開發(fā)自動化的測試通常比手動測試GUI要花更長的時間。此外,GUI測試需要調(diào)試自身,并且不能保證定制編寫的自動化的GUI測試提供對所有可能測試用例的更好覆蓋。類似地,得到的測試自動化代碼可能易受被測試應用的后續(xù)更改的影響,這可能導致不可靠的測試和質(zhì)量保證結(jié)果。
其他現(xiàn)有技術(shù)方法包括使用GUI結(jié)構(gòu)的分層模型來創(chuàng)建測試用例。測試用例通常用作人工測試者的指示或指導。自動化的測試旨在自動定位和測試軟件應用的功能而無需人工協(xié)助。還存在使測試GUI軟件自動化的現(xiàn)有技術(shù)方法,該方法映射GUI窗口中的對象和按鈕并隨后隨機地單擊按鈕并輸入文本直至應用出現(xiàn)故障。這些方法記錄導致應用出現(xiàn)故障的操作,重新啟動應用并重復該過程,排除任何此前導致應用出現(xiàn)故障的操作。但是,這些方法通?;陔S機操作,并且可能不完全與典型的用戶行為相關(guān)。鑒于上述內(nèi)容,需要軟件應用GUI的改進的測試自動化。

發(fā)明內(nèi)容
本發(fā)明包括,但不限于,改進的自動化的測試軟件應用的圖形用戶接口(GUI)的方法、裝置和計算機可用介質(zhì)。在本發(fā)明的實施例中,實現(xiàn)記錄代理以捕獲一個或多個人工軟件測試者的GUI交互。所述測試者然后制定多個預定測試用例或過程,它們具有與先決條件相比的已知輸入和與得到的后置條件相比的預期輸出,以測試應用的GUI的預期操作。記錄每個測試會話的輸入、先決條件、交互、輸出和后置條件并將它們編輯成聚集測試過程的草案,然后對其分析以標識每個試運行的公共故障點和異常。
將得到的聚集測試過程草案進行手動修改并將其配置成糾正和/或協(xié)調(diào)標識的異常,以創(chuàng)建隨后在自動化測試環(huán)境中實現(xiàn)的最終測試過程。得到的自動化測試過程的可靠性隨執(zhí)行的試運行數(shù)的增加而增加,這對本領(lǐng)域的技術(shù)人員是顯而易見的。同樣顯而易見的是,本發(fā)明同時包含“記錄和重放”及定制編寫的自動化測試過程的優(yōu)點,同時減輕了它們相應的不足。
本發(fā)明的測試系統(tǒng)的各種實施例隨著人工測試者的數(shù)量和種類的增加會變得逐漸地容錯。此外,本發(fā)明無需開發(fā)定制的測試過程,也不依賴于GUI應用的隨機操作。相反,收集試運行期間在測試用例或過程之后來自用戶的數(shù)據(jù)并將它們相互關(guān)聯(lián),以生成可以以自適應和容錯的方式定位和測試軟件應用的GUI的自動化的測試過程。此外,得到的軟件GUI試運行是可靠的、可記錄的和可審計的,由此提供了一致性驗證通常所需的可檢驗的文檔編制。本發(fā)明的上述以及其他目的、特征和優(yōu)點將在以下詳細的書面說明中變得顯而易見。


在所附權(quán)利要求中說明了被認為是本發(fā)明特性的新穎特征。但是,當結(jié)合附圖閱讀時,通過參考以下對示例性實施例的詳細說明,可以最佳地理解發(fā)明本身及其優(yōu)選使用方式、進一步的目的和優(yōu)點,這些附圖是圖1示出了其中可以實現(xiàn)本發(fā)明的示例性客戶機;圖2示出了為了圖4中示出的客戶機的用戶的利益而可以從其部署和/或?qū)崿F(xiàn)用于執(zhí)行本發(fā)明的軟件的示例性服務器;圖3是根據(jù)本發(fā)明的實施例實現(xiàn)的容錯和自適應的自動化圖形用戶接口(GUI)測試系統(tǒng)的通用流程圖;圖4是根據(jù)本發(fā)明的實施例實現(xiàn)的容錯和自適應的自動化GUI測試系統(tǒng)的通用方塊圖;圖5是根據(jù)本發(fā)明的實施例實現(xiàn)的修改后的聚集測試過程的概括圖示;圖6a-b示出了部署能夠執(zhí)行圖3中示出和說明的步驟的軟件而采取的步驟的流程圖;圖7a-c示出了在虛擬專用網(wǎng)絡(VPN)中部署能夠執(zhí)行在圖3中示出和說明的步驟的軟件而采取的步驟的流程圖;圖8a-b是示出了將能夠執(zhí)行在圖3中示出和說明的步驟的軟件集成到計算機系統(tǒng)中而采取的步驟的流程圖;以及圖9a-b是示出了使用按需服務提供商執(zhí)行圖3中示出和說明的步驟而采取的步驟的流程圖。
具體實施例方式
現(xiàn)在參考附圖,具體地說參考圖3,其中示出了通過實現(xiàn)記錄代理來進行改進的和自動的測試軟件應用的圖形用戶接口(GUI)的方法、裝置和計算機可用介質(zhì),該代理允許捕獲一個或多個人工軟件測試者的圖形用戶接口交互并將其結(jié)合到自動化的圖形用戶接口測試系統(tǒng)中。
現(xiàn)在參考圖1,圖1示出了其中可以使用本發(fā)明的示例性客戶機102的方塊圖。客戶機102包括連接到系統(tǒng)總線106的處理器單元104。驅(qū)動/支持顯示器110的視頻適配器108也連接到系統(tǒng)總線106。系統(tǒng)總線106通過總線橋112連接到輸入/輸出(I/O)總線114。I/O接口116連接到I/O總線114。I/O接口116提供與各種I/O設備(包括鍵盤118、鼠標120、光盤-只讀存儲器(CD-ROM)驅(qū)動器122、軟盤驅(qū)動器124和閃存126)的通信。連接到I/O接口416的端口的格式可以是計算機體系結(jié)構(gòu)領(lǐng)域中的技術(shù)人員公知的任何格式,包括但不限于通用串行總線(USB)端口。
客戶機102可以使用網(wǎng)絡接口130(其連接到系統(tǒng)總線106)通過網(wǎng)絡128與服務提供商服務器202通信。網(wǎng)絡128可以是外部網(wǎng)絡,例如因特網(wǎng),或內(nèi)部網(wǎng)絡,例如以太網(wǎng)或虛擬專用網(wǎng)絡(VPN)。通過使用網(wǎng)絡128,客戶機102可以使用本發(fā)明來訪問服務提供商服務器202。
硬盤驅(qū)動器接口132也連接到系統(tǒng)總線106。硬盤驅(qū)動器接口132和硬盤驅(qū)動器134連接。在優(yōu)選實施例中,硬盤驅(qū)動器134填充也連接到系統(tǒng)總線106的系統(tǒng)存儲器136。填充系統(tǒng)存儲器136的數(shù)據(jù)包括客戶機102的操作系統(tǒng)(OS)138和應用程序144。
操作系統(tǒng)138包括外殼(shell)140,用于提供對資源(例如,應用程序144)的透明的用戶訪問。一般地說,外殼140是提供解釋器和用戶與操作系統(tǒng)之間的接口的程序。更具體地說,外殼140執(zhí)行輸入命令行用戶接口或來自文件的命令。因此,外殼140(在UNIX中的名稱),在Windows中也稱為命令處理器,通常是操作系統(tǒng)軟件分層結(jié)構(gòu)的最高級別并充當命令解釋器。外殼提供系統(tǒng)提示,解釋由鍵盤、鼠標或其他用戶輸入介質(zhì)輸入的命令,并將一個或多個解釋后的命令發(fā)送到操作系統(tǒng)的適當較低級別(例如,內(nèi)核142)以供處理。注意,雖然外殼140是基于文本的面向行的用戶接口,但是本發(fā)明將同樣地支持其他用戶接口模式,例如,圖形、語音、手勢等。
如圖所示,操作系統(tǒng)138還包括內(nèi)核142,后者包括操作系統(tǒng)138的較低級別的功能,其中包括提供操作系統(tǒng)138的其他部分和應用程序144所需的基本服務,包括存儲器管理、進程和任務管理、盤管理,以及鼠標和鍵盤管理。
應用程序144包括瀏覽器146。瀏覽器146包括使得萬維網(wǎng)(WWW)客戶端(即,客戶機102)能夠使用超文本傳輸協(xié)議(HTTP)消息傳送來向因特網(wǎng)發(fā)送和從因特網(wǎng)接收消息的程序模塊和指令,由此使能與服務提供商服務器202的通信。
客戶機102的系統(tǒng)存儲器中的應用程序144還包括自動化的圖形用戶接口(GUI)測試系統(tǒng)148。自動化的GUI測試系統(tǒng)148包括用于實現(xiàn)圖3中說明的過程的代碼。在一個實施例中,客戶機102可以從服務提供商服務器202下載自動化的GUI測試系統(tǒng)148。
客戶機102中示出的硬件元件并非旨在是窮舉的,而是代表本發(fā)明所需的重要基本組件。例如,客戶機102可以包括備選存儲設備,例如,磁帶、數(shù)字多功能盤(DVD)、Bernoulli盒式磁帶等。這些和其他變型都旨在處于本發(fā)明的精神和范圍之內(nèi)。
如上所述,可以從服務提供商服務器202將自動化的GUI測試系統(tǒng)148下載到客戶機102,如圖2中的示例性形式所示。服務提供商服務器202包括連接到系統(tǒng)總線206的處理器單元204。視頻適配器208也連接到系統(tǒng)總線206。視頻適配器208驅(qū)動/支持顯示器210。系統(tǒng)總線206通過總線橋212連接到輸入/輸出(I/O)總線214。I/O接口216連接到I/O總線214。I/O接口216提供與各種I/O設備(包括鍵盤218、鼠標220、光盤-只讀存儲器(CD-ROM)驅(qū)動器222、軟盤驅(qū)動器224和閃存226)的通信。連接到I/O接口216的端口的格式可以是計算機體系結(jié)構(gòu)領(lǐng)域中的技術(shù)人員公知的任何格式,包括但不限于通用串行總線(USB)端口。
服務提供商服務器202可以使用網(wǎng)絡接口230(其連接到系統(tǒng)總線206)通過網(wǎng)絡128與客戶機102通信。對網(wǎng)絡128的訪問允許服務提供商服務器202執(zhí)行和/或下載自動化的GUI測試系統(tǒng)148到客戶機102。
系統(tǒng)總線206還連接到硬盤驅(qū)動器接口232,后者和硬盤驅(qū)動器234相連。在優(yōu)選實施例中,硬盤驅(qū)動器234填充系統(tǒng)存儲器236,后者也連接到系統(tǒng)總線206。填充系統(tǒng)存儲器236的數(shù)據(jù)包括服務提供商服務器202的操作系統(tǒng)238,后者包括外殼240和內(nèi)核242。外殼240結(jié)合到較高級別的操作系統(tǒng)層中并用于提供對資源(例如,包括瀏覽器246的應用程序244和上述可以部署到客戶機102的自動化GUI測試系統(tǒng)148的副本)的透明的用戶訪問。
服務提供商服務器202中示出的硬件元件并非旨在是窮舉的,而是代表本發(fā)明所需的重要基本組件。例如,服務提供商服務器202可以包括備選存儲設備,例如閃速驅(qū)動器、磁帶、數(shù)字多功能盤(DVD)、Bernoulli盒式磁帶等。這些和其他變型都在本發(fā)明的精神和范圍內(nèi)。
還要注意的是,在本發(fā)明的優(yōu)選實施例中,服務提供商服務器202執(zhí)行所有與本發(fā)明關(guān)聯(lián)的功能(包括執(zhí)行自動化的GUI測試系統(tǒng)148),由此使得客戶機102免于使用其資源。
應當理解,本發(fā)明的至少某些方面可以備選地以包含程序產(chǎn)品的計算機可用介質(zhì)來實現(xiàn)。定義本發(fā)明的功能的程序可以通過各種信號承載介質(zhì)被傳送到數(shù)據(jù)存儲系統(tǒng)或計算機系統(tǒng),所述信號承載介質(zhì)包括但不限于,不可寫存儲介質(zhì)(例如,CD-ROM),可寫存儲介質(zhì)(例如,硬盤驅(qū)動器、讀/寫CD ROM、光介質(zhì)),系統(tǒng)存儲器(諸如但不限于隨機存取存儲器(RAM))以及通信介質(zhì),如包括以太網(wǎng)、因特網(wǎng)、無線網(wǎng)絡和類似網(wǎng)絡系統(tǒng)的計算機和電話網(wǎng)絡。因此應當理解,當承載或編碼有管理本發(fā)明中的方法功能的計算機可讀指令時,此類信號承載介質(zhì)代表本發(fā)明的備選實施例。另外,可以理解,本發(fā)明可以由具有形式為硬件、軟件或如此處描述的軟件和硬件的組合或其等效物的裝置的系統(tǒng)來實現(xiàn)。
圖3是根據(jù)本發(fā)明的實施例實現(xiàn)的容錯和自適應的自動化圖形用戶接口(GUI)測試系統(tǒng)148的通用流程圖。在步驟302,測試軟件應用的GUI開始。在步驟304,選擇由人工測試者要在測試期間實現(xiàn)的預定測試用例和過程。在步驟306,選擇人工測試者來實施測試,并在其計算機上實現(xiàn)記錄代理。
由制定預定測試用例或過程的測試者在步驟308實施試運行,在此期間,將已知輸入與先決條件相比較,將預期輸出與得到的后置條件相比較,以測試主體應用的GUI的預期操作。一旦GUI測試在步驟308失敗或完成,則將試運行的記錄的輸入、先決條件、交互、輸出和后置條件添加到步驟312中的先前試運行的結(jié)果,然后使用試運行結(jié)果的得到的匯集在步驟310創(chuàng)建聚集的測試過程的草案。然后分析該聚集的測試過程草案以標識兩個或更多試運行共同的故障點以及個別試運行的操作異常和不一致,然后在步驟314對它們進行手動修改、協(xié)調(diào)和/或配置。
例如,在本發(fā)明的實施例中,將單個試運行解構(gòu)為各個級別的粒度(例如,測試中的步驟、步驟中的任務、任務中的命令等)并比較在試運行期間出現(xiàn)的共同的操作、差異、意外操作或異常。在本發(fā)明的另一個實施例中,使用基于規(guī)則的決策引擎產(chǎn)生操作的一組草案,其中規(guī)則考慮包括,但不限于,人工測試者的相應特性(例如,初學者、專家等),以及試運行中任務的頻率和共性。在本發(fā)明的再一個實施例中,在“diff”實用程序中顯示不具有共性的分析的結(jié)果,以便測試管理員可以手動選擇聚集的測試過程草案的個別元素的適當操作(例如,添加、刪除、修改、配置等)。同樣,雖然試運行結(jié)果之間的共性通??梢员恍湃螢槭强煽康牟⑶覠o需管理員注意,但是仍保留對聚集的測試過程草案進行修改的能力??梢灶愃频貦z查、編輯和/或結(jié)合不同試運行中的備選測試路徑和個別測試者對異常的反應,以便用作備選測試操作。
然后在步驟316,從在步驟314中創(chuàng)建的修改、協(xié)調(diào)和配置后的測試過程草案來創(chuàng)建自動化的測試過程,以便在自動化的測試環(huán)境中實現(xiàn)。在步驟318,在步驟316創(chuàng)建的自動化測試過程的自動化重放實施在步驟308手動實施的同一預定測試用例或過程,在此期間,將已知輸入與先決條件相比較,將預期輸出與得到的后置條件相比較,以測試主體應用的GUI的預期操作。一旦GUI測試在步驟318失敗或完成,則將試運行的記錄的輸入、先決條件、交互、輸出和后置條件添加到步驟312中的先前試運行的結(jié)果。
如果在步驟320決定執(zhí)行其他試運行,則在步驟322決定是否修改當前的測試用例和/或過程。如果在步驟322決定修改當前的測試用例和/或過程,則在步驟324對它們進行修改并在步驟326決定是否由不同的人工測試者來運行測試。如果在步驟326決定由不同的人工測試者來運行測試,則在步驟306選擇人工測試者,并且試運行如上文更詳細描述的那樣繼續(xù)。否則,當前的人工測試者在步驟308實施預定的測試用例或過程,并如上文更詳細描述的那樣繼續(xù)試運行。如果在步驟322決定使用當前的測試用例和/或過程繼續(xù),則在步驟326決定是否由不同的人工測試者運行測試。如果在步驟326決定由不同的人工測試者運行測試,則在步驟306選擇人工測試者,并且試運行如上文更詳細描述的那樣繼續(xù)。否則,當前的人工測試者在步驟308實施預定的測試用例或過程,并且試運行如上文更詳細描述的那樣繼續(xù)。
如果在步驟320決定不執(zhí)行其他試運行,則在步驟328報告軟件錯誤列表和其他問題并且GUI測試在步驟330結(jié)束。對本領(lǐng)域的技術(shù)人員將顯而易見的是,本發(fā)明的不同實施例隨著人工測試者的數(shù)量和種類的增加會變得逐漸地容錯和自適應。此外,本發(fā)明無需開發(fā)定制的測試過程,也不依賴于GUI應用的隨機操縱。相反,收集試運行期間在測試用例或過程之后來自用戶的數(shù)據(jù)并將它們相互關(guān)聯(lián),以生成可以以容錯和自適應的方式定位和測試軟件應用的GUI的自動化的測試過程。此外,得到的軟件GUI試運行是可靠的、可記錄的和可審計的,由此提供了一致性驗證通常所需的可檢驗的文檔編制。
圖4是根據(jù)本發(fā)明的實施例實現(xiàn)的容錯和自適應的自動化GUI測試系統(tǒng)148的通用方塊圖。容錯和自適應的自動化GUI測試系統(tǒng)148包括人工測試者“A”402、“B”406和“C”410的測試計算機、測試服務器414、聚集的試運行結(jié)果418、分析和修改的聚集測試過程444、自動化的測試過程446,以及自動化的試運行結(jié)果448。測試服務器414包括要測試的主體軟件應用GUI 416,聚集的試運行結(jié)果418包括復合試運行“1”結(jié)果420、復合試運行“2”結(jié)果428,以及復合試運行“3”結(jié)果436。復合試運行“1”結(jié)果420包括來自測試者“A”的試運行“1”結(jié)果422、來自測試者“B”的試運行“1”結(jié)果424,以及來自測試者“C”的試運行“1”結(jié)果426。復合試運行“2”結(jié)果428包括來自測試者“A”的試運行“2”結(jié)果4 30、來自測試者“B”的試運行“2”結(jié)果4 32,以及來自測試者“C”的試運行“2”結(jié)果434。復合試運行“3”結(jié)果436包括來自測試者“A”的試運行“3”結(jié)果438、來自測試者“B”的試運行“3”結(jié)果440,以及來自測試者“C”的試運行“3”結(jié)果442。
在本發(fā)明的其他實施例中,分別在人工測試者“A”402、“B”406和“C”410的測試計算機上實現(xiàn)記錄代理404、408、412,并且啟動測試軟件應用的GUI 416,包括測試服務器414。由人工測試者“A”402、“B”406、“C”410選擇并實施預定測試用例和過程,在此期間,將已知輸入與先決條件相比較,將預期輸出與得到的后置條件相比較,以測試在試運行期間主體軟件應用的GUI 416(包括測試服務器414)的預期操作。一旦每個測試者對軟件應用的GUI 416的測試在試運行中出現(xiàn)故障或完成,則將由記錄代理404、408、412捕獲的相應試運行的輸入、先決條件、交互、輸出和后置條件添加到包括聚集試運行結(jié)果418的先前試運行的結(jié)果中。
分析聚集試運行結(jié)果418以標識兩個或更多試運行共同的故障點以及個別試運行的操作異常和不一致,然后如上文更詳細說明的那樣對它們進行手動修改、協(xié)調(diào)和/或配置,以創(chuàng)建分析和修改后的聚集測試過程444。從分析和修改后的聚集測試過程444創(chuàng)建自動化的測試過程446并在測試服務器414上實現(xiàn)測試過程446,以自動化地測試主體軟件應用的GUI 416,生成自動化的試運行結(jié)果448。
在本發(fā)明的實施例中,將來自測試者“A”422、測試者“B”424和測試者“C”426的第一試運行的相應結(jié)果組合成復合試運行“1”420,然后對其進行分析以標識每個測試者的個別測試結(jié)果共同的故障點,以及其個別操作異常和不一致,然后如上文更詳細說明的那樣對它們進行手動修改、協(xié)調(diào)和/或配置,以創(chuàng)建分析和修改后的聚集測試過程444。從分析和修改后的聚集測試過程444創(chuàng)建自動化的測試過程446,并在測試服務器414上實現(xiàn)測試過程446,以自動化地測試主體軟件應用的GUI 416,生成自動化的試運行結(jié)果448,所述結(jié)果用作輸入以對主體軟件應用的GUI 416做出更改。
進行第二試運行,其中將測試者“A”430、測試者“B”432和測試者“C”434的相應結(jié)果組合成復合試運行“2”428,然后如上文更詳細說明的那樣對其進行分析和/或修改,以創(chuàng)建分析和修改后的聚集測試過程444。創(chuàng)建和實現(xiàn)第二容錯、自適應的自動化的測試過程446,以自動化地測試主體軟件應用的GUI 416,生成自動化的試運行結(jié)果448,所述結(jié)果用作輸入以對主體軟件應用的GUI 416做出后續(xù)更改。
然后進行第三試運行,其中將測試者“A”438、測試者“B”440和測試者“C”442的相應結(jié)果組合成復合試運行“2”436,然后如上文更詳細說明的那樣對其進行分析和/或修改,以創(chuàng)建分析和修改后的聚集測試過程444。創(chuàng)建和實現(xiàn)第三自動化的測試過程446,以自動化地測試主體軟件應用的GUI 416,生成自動化的試運行結(jié)果448。對本領(lǐng)域的技術(shù)人員顯而易見的是,每個實現(xiàn)自動化的測試過程446的相繼試運行通過結(jié)合先前試運行的結(jié)果而逐漸地變得更加容錯。
圖5是根據(jù)本發(fā)明的實施例實現(xiàn)的修改后的聚集測試過程444的概括圖示。修改后的聚集測試過程444包括復合試運行“1”結(jié)果418、復合試運行“2”結(jié)果426,以及復合試運行“3”結(jié)果434。復合試運行“1”結(jié)果418包括由試運行“1”組成的測試步驟、來自試運行“2”的其他測試步驟504,以及來自試運行“3”的其他測試步驟506。復合試運行“2”結(jié)果426包括由試運行“2”組成的測試步驟、來自試運行“1”的其他測試步驟502,以及來自試運行“3”的其他測試步驟506。復合試運行“3”結(jié)果434包括由試運行“3”組成的測試步驟和來自試運行“2”的其他測試步驟504。
如上文更詳細說明的那樣,分析和修改后的聚集測試過程444是以下操作的結(jié)果標識兩個或更多試運行共同的故障點以及個別試運行的操作異常和不一致,然后對它們進行手動修改、協(xié)調(diào)和/或配置,然后用于創(chuàng)建容錯、自適應的自動化測試過程446,測試過程446在測試服務器414上實現(xiàn),以自動化地測試主體軟件應用的GUI 416,生成自動化的試運行結(jié)果448。
因此,可以將本文所述并具體在圖3中示出和說明的方法部署為從服務提供商服務器202到客戶機102的處理軟件。
現(xiàn)在參考圖6,步驟600開始部署所述處理軟件。首先判定在執(zhí)行所述處理軟件時是否有任何程序駐留在一個或多個服務器上(查詢塊602)。如果是,則標識將包含可執(zhí)行程序的服務器(塊604)。將所述一個或多個服務器的處理軟件通過文件傳輸協(xié)議(FTP)或某種其他協(xié)議或通過使用共享文件系統(tǒng)復制來直接傳輸?shù)椒掌鞯拇鎯ρb置(塊606)。然后將處理軟件安裝在服務器上(塊608)。
接著,判定是否通過使用戶訪問一個或多個服務器上的處理軟件來部署處理軟件(查詢塊610)。如果用戶要訪問服務器上的處理軟件,則標識存儲所述處理軟件的服務器地址(塊612)。
判定是否構(gòu)建代理服務器(查詢塊614)來存儲所述處理軟件。代理服務器是位于客戶端應用(例如,Web瀏覽器)與真實服務器之間的服務器。它攔截所有對真實服務器的請求以查看它自身是否可以滿足所述請求。如果不能,它就將所述請求轉(zhuǎn)發(fā)到真實服務器。代理服務器的兩個主要益處是改進性能和過濾請求。如果需要代理服務器,將安裝代理服務器(塊616)。通過諸如FTP的協(xié)議將處理軟件發(fā)送到服務器,或通過文件共享直接將其從源文件復制到服務器文件(塊618)。其他實施例將向包含處理軟件的服務器發(fā)送事務并使服務器處理事務,然后接收所述處理軟件并將其復制到服務器的文件系統(tǒng)。一旦將所述處理軟件存儲到服務器,用戶就可以通過他們的客戶機訪問服務器上的處理軟件并將其復制到他們的客戶機文件系統(tǒng)(塊620)。其他實施例是使服務器自動將所述處理軟件復制到每個客戶機,然后在每個客戶機處運行所述處理軟件的安裝程序。用戶執(zhí)行將所述處理軟件安裝到其客戶機的程序(塊622),然后退出過程(終止塊624)。
在查詢步驟626,判定是否通過將處理軟件通過電子郵件發(fā)送到用戶來部署所述處理軟件。標識將所述處理軟件部署到該處的用戶集以及用戶客戶機的地址(塊628)。通過電子郵件將所述處理軟件發(fā)送到每個用戶的客戶機(塊630)。然后,用戶接收電子郵件(塊632)并將所述處理軟件從電子郵件分離到他們的客戶機上的目錄(塊634)。用戶執(zhí)行將所述處理軟件安裝到其客戶機的程序(塊622),然后退出過程(終止塊624)。
最后,判定是否將所述處理軟件直接發(fā)送到他們的客戶機上的用戶目錄(查詢塊636)。如果是,則標識用戶目錄(塊638)。將所述處理軟件直接傳輸?shù)接脩舻目蛻魴C目錄(塊640)。這可以通過若干種方式完成,例如,但不限于,共享文件系統(tǒng)目錄并從發(fā)送方的文件系統(tǒng)復制到接收用戶的文件系統(tǒng)或備選地使用諸如文件傳輸協(xié)議(FTP)之類的傳輸協(xié)議。用戶訪問他們的客戶機文件系統(tǒng)上的目錄以準備安裝所述處理軟件(塊642)。用戶執(zhí)行將所述處理軟件安裝到他的客戶機的程序(塊622),然后退出過程(終止塊624)。
可以將本軟件作為服務的一部分部署到第三方,其中作為安全部署工具來提供第三方VPN服務或其中按照特定部署的需要來按需建立VPN。
虛擬專用網(wǎng)絡(VPN)是可用于通過否則不安全或不被信任的網(wǎng)絡來保護連接的技術(shù)的任何組合。VPN提高了安全性并降低了運行成本。VPN利用公共網(wǎng)絡(通常是因特網(wǎng))將遠程站點或用戶連接到一起。VPN不使用專用的真實連接(例如,租用線路),而是使用通過因特網(wǎng)從公司的專用網(wǎng)絡路由到遠程站點或雇員的“虛擬”連接。通過為了傳送或執(zhí)行處理軟件(即,軟件位于其他位置)的目的而特別構(gòu)建VPN,可以作為服務來提供通過VPN訪問軟件,其中根據(jù)支付的金額,VPN的使用期限限于給定的時間周期或給定次數(shù)的部署。
可以通過遠程訪問或站點到站點VPN來部署、訪問和執(zhí)行處理軟件。當使用遠程訪問VPN時,經(jīng)由公司專用網(wǎng)絡與遠程用戶之間的安全和加密的連接并通過第三方服務提供商來部署、訪問和執(zhí)行處理軟件。企業(yè)服務提供商(ESP)設置網(wǎng)絡訪問服務器(NAS)并向遠程用戶的計算機提供桌面客戶端軟件。然后,遠程工作者可以撥打免費號碼或通過電纜或DSL調(diào)制解調(diào)器直接連接以到達NAS并使用他們的VPN客戶端軟件來訪問公司網(wǎng)絡以及訪問、下載和執(zhí)行處理軟件。
當使用站點到站點VPN時,通過使用用于在公共網(wǎng)絡(例如,因特網(wǎng))上連接公司的多個固定站點的專用設備和大規(guī)模加密來部署、訪問和執(zhí)行處理軟件。
所述處理軟件在VPN上通過隧道傳輸,其是將整個分組置于其他分組內(nèi)并將其在網(wǎng)絡上發(fā)送的過程。網(wǎng)絡和兩個點(稱為隧道接口,分組從該處進入和離開網(wǎng)絡)理解外部分組的協(xié)議。
圖7中說明了這種VPN部署的過程。起始塊702開始虛擬專用網(wǎng)絡(VPN)過程。判定是否需要用于遠程訪問的VPN(查詢塊704)。如果不需要,則前進到查詢塊706。如果需要,則判定是否存在遠程訪問VPN(查詢塊708)。
如果確實存在VPN,則前進到塊710。否則,標識將提供公司的專用網(wǎng)絡與公司的遠程用戶之間的安全、加密連接的第三方提供商(塊712)。標識公司的遠程用戶(塊714)。然后,第三方提供商建立網(wǎng)絡訪問服務器(NAS)(塊716),其允許遠程用戶撥打免費號碼或通過寬帶調(diào)制解調(diào)器直接連接以訪問、下載和安裝遠程訪問VPN的桌面客戶端軟件(塊718)。
在建立了遠程訪問VPN之后或如果先前安裝了VPN,則遠程用戶可以通過撥入NAS或通過電纜或DSL調(diào)制解調(diào)器直接連接到NAS來訪問所述處理軟件(塊710)。這允許進入從該處可以訪問處理軟件的公司網(wǎng)絡(塊720)。通過隧道在網(wǎng)絡上將所述處理軟件傳輸?shù)竭h程用戶的桌面。也就是說,將所述處理軟件分為分組,并將每個包括數(shù)據(jù)和協(xié)議的分組置于其他分組中(塊722)。當所述處理軟件到達遠程用戶的桌面時,將其從分組中取出、重構(gòu),然后在遠程用戶的桌面上執(zhí)行(塊724)。
然后判定是否需要站點到站點訪問的VPN(查詢塊706)。如果不需要,則前進以退出過程(終止塊726)。否則,判定是否存在站點到站點VPN(查詢塊728)。如果確實不存在,則前進到塊730。否則,安裝建立站點到站點VPN所需的專用設備(塊738)。然后,將大規(guī)模加密構(gòu)建到VPN中(塊740)。
在建立了站點到站點VPN之后或如果先前建立了VPN,則用戶通過VPN來訪問所述處理軟件(塊730)。在網(wǎng)絡上通過隧道將所述處理軟件傳輸?shù)秸军c用戶(塊732)。也就是說,將處理軟件分為多個分組,并將每個包括數(shù)據(jù)和協(xié)議的分組置于其他分組中(塊734)。當所述處理軟件到達遠程用戶的桌面時,將其從分組中取出、重建,然后在站點用戶的桌面上執(zhí)行(塊736)。然后,過程在終止塊726結(jié)束。
通過規(guī)定包括用于實現(xiàn)本文所說明過程的代碼的處理軟件與應用、操作系統(tǒng)和網(wǎng)絡操作系統(tǒng)軟件共存,然后將處理軟件安裝在環(huán)境(所述處理軟件在其中工作)中的客戶機和服務器上,可以將所述處理軟件集成到客戶機、服務器和網(wǎng)絡環(huán)境中。
第一步是標識客戶機和服務器上的任何軟件,包括處理軟件所需的或與處理軟件協(xié)同工作的網(wǎng)絡操作系統(tǒng)(將在該處部署處理軟件)。這包括是通過添加聯(lián)網(wǎng)功能來增強基本操作系統(tǒng)的軟件的網(wǎng)絡操作系統(tǒng)。
接著,標識軟件應用和版本號并將其與已測試為可與所述處理軟件一起運行的軟件應用和版本號的列表相比較。將使用正確的版本號來升級那些丟失的或不匹配正確版本的軟件應用。檢查將參數(shù)從所述處理軟件傳遞到軟件應用的程序指令以確保參數(shù)列表與所述處理軟件所需的參數(shù)列表匹配。相反地,檢查由軟件應用傳遞到處理軟件的參數(shù)以確保所述參數(shù)與所述處理軟件所需的參數(shù)匹配。標識包括網(wǎng)絡操作系統(tǒng)的客戶機和服務器操作系統(tǒng)并將其與已測試為可與所述處理軟件一起運行的操作系統(tǒng)、版本號和網(wǎng)絡軟件的列表相比較。在客戶機和服務器上將與已測試的操作系統(tǒng)和版本號的列表不匹配的那些操作系統(tǒng)、版本號和網(wǎng)絡軟件升級到所需級別。
在確保軟件(要將處理軟件部署到該處)處于已測試為可與所述處理軟件一起運行的正確版本級別之后,通過將所述處理軟件安裝到客戶機和服務器上來完成集成。
對于此過程的高級描述,現(xiàn)在參考圖8。起始塊802開始處理軟件的集成。首先判定是否存在任何將在一個或多個服務器上執(zhí)行的處理軟件程序(塊804)。如果否,則集成前進到查詢塊806。如果是,則標識服務器地址(塊808)。檢查服務器以查看它們是否包含包括操作系統(tǒng)(OS)、應用和網(wǎng)絡操作系統(tǒng)(NOS)連同它們的版本號(已與所述處理軟件一起測試)的軟件(塊810)。還檢查服務器以判定在塊810中,是否缺失任何處理軟件所需的軟件。
判定版本號是否和已與所述處理軟件一起測試的操作系統(tǒng)、應用和網(wǎng)絡操作系統(tǒng)的版本號相匹配(塊812)。如果所有版本都匹配并且沒有缺失任何所需的軟件,則集成在查詢塊806繼續(xù)。
如果一個或多個版本號不匹配,則使用正確的版本在一個或多個服務器上更新不匹配的版本(塊814)。此外,如果缺失所需的軟件,則在塊814示出的步驟中在一個或多個服務器上更新該軟件。通過安裝所述處理軟件來完成服務器集成(塊816)。
在查詢塊806中示出的步驟(其在塊804、812或816中示出的步驟之后)判定是否存在任何將在客戶機上執(zhí)行的處理軟件的程序。如果沒有處理軟件程序在客戶機上執(zhí)行,則集成前進到終止塊818并退出。如果不是這種情況,則如塊820中所示的那樣標識客戶機地址。
檢查客戶機以查看它們是否包含包括操作系統(tǒng)(OS)、應用和網(wǎng)絡操作系統(tǒng)(NOS)連同它們的版本號(已與所述處理軟件一起測試)的軟件(塊822)。還檢查客戶機以判定在塊822描述的步驟中,是否缺失任何處理軟件所需的軟件。
判定版本號是否和已與所述處理軟件一起測試的操作系統(tǒng)、應用和網(wǎng)絡操作系統(tǒng)的版本號相匹配(查詢塊824)。如果所有版本都匹配并且沒有缺失任何所需的軟件,則集成前進到終止塊818并退出。
如果一個或多個版本號不匹配,則使用正確的版本在客戶機上更新不匹配的版本(塊826)。此外,如果缺失所需的軟件,則在客戶機上更新該軟件(也在塊826)。通過在客戶機上安裝所述處理軟件來完成客戶機集成(塊828)。集成前進到終止塊818并退出。
共享所述處理軟件,其以靈活和自動化的方式同時為多個客戶服務。它是標準化的,幾乎不需要定制,并且它是可伸縮的,以現(xiàn)買現(xiàn)付模式按需提供容量。
可以將處理軟件存儲在可從一個或多個服務器訪問的共享文件系統(tǒng)上。通過事務來執(zhí)行處理軟件,所述事務包含數(shù)據(jù)和使用被訪問服務器上的CPU單位的服務器處理請求。CPU單位是服務器的中央處理器上的諸如分、秒、小時之類的時間單位。此外,被訪問的服務器可以做出對其他需要CPU單位的服務器的請求。CPU單位只是代表一個使用度量的實例。其他使用度量包括但不限于網(wǎng)絡帶寬、存儲器使用率、存儲裝置使用率、分組傳輸、完整的事務等。
當多個客戶使用同一處理軟件應用時,通過包括在事務中的標識唯一客戶及該客戶的服務類型的參數(shù)來區(qū)分他們的事務。記錄每個客戶的服務使用的CPU單位和其他使用度量。當針對任何一個服務器的事務數(shù)達到開始影響該服務器的性能的數(shù)量時,訪問其他服務器以增加容量并共享工作負荷。同樣,當其他使用度量(例如,網(wǎng)絡帶寬、存儲器使用率、存儲裝置使用率等)接近可以影響性能的容量時,將添加額外的網(wǎng)絡帶寬、存儲器、存儲裝置等以共享工作負荷。
將用于每個服務和客戶的使用度量發(fā)送到收集服務器,收集服務器將在服務器網(wǎng)絡(提供處理軟件的共享執(zhí)行)中的任何位置處理的每個服務的每個客戶的使用度量相加。將相加的使用度量單位定期乘以單位成本,并備選地將得到的總處理軟件應用服務成本發(fā)送到客戶和/或在由客戶訪問的Web站點上指示,然后客戶向服務提供商付費。
在另一個實施例中,服務提供商從銀行或金融機構(gòu)處的客戶賬戶直接請求支付。在再一個實施例中,如果服務提供商也是使用處理軟件應用的客戶的客戶,則將欠服務提供商的款項與服務提供商的欠款相協(xié)調(diào)以最小化支付傳輸。
現(xiàn)在參考圖9,起始塊902開始按需過程。創(chuàng)建包含唯一客戶標識、請求的服務類型和任何進一步指定服務類型的服務參數(shù)的事務(塊904)。然后,將事務發(fā)送到主服務器(塊906)。在按需環(huán)境下,主服務器可以最初是唯一的服務器,然后隨著容量的消耗,可以將其他服務器添加到所述按需環(huán)境。
查詢按需環(huán)境中的服務器中央處理單元(CPU)容量(塊908)。估計事務的CPU需求,然后將按需環(huán)境中的服務器可用CPU容量與事務CPU需求相比較,以查看任何服務器中是否有足夠的CPU可用容量來處理事務(查詢塊910)。如果沒有足夠的服務器CPU可用容量,則分配額外的服務器CPU容量來處理事務(塊912)。如果已存在足夠的可用CPU容量,則將事務發(fā)送到選定的服務器(塊914)。
在執(zhí)行事務之前,檢查其余按需環(huán)境以判定所述環(huán)境是否具有足夠的可用容量以便處理事務。此環(huán)境容量包括但不限于網(wǎng)絡帶寬、處理器存儲器、存儲裝置等(塊916)。如果沒有足夠的可用容量,則將容量添加到按需環(huán)境(塊918)。接著,訪問處理事務所需的軟件,將其加載到存儲器中,然后執(zhí)行事務(塊920)。
記錄使用率度量(塊922)。使用率度量包括按需環(huán)境中用于處理事務的那些功能的部分。記錄了此類功能的使用率,包括但不限于網(wǎng)絡帶寬、處理器存儲器、存儲裝置和CPU周期。將使用率度量相加,乘以單位成本,然后記錄為對發(fā)出請求的客戶的收費(塊924)。
如果客戶請求將按需費用發(fā)布到Web站點(查詢塊926),則將其發(fā)布(塊928)。如果客戶請求將按需費用通過電子郵件發(fā)送到客戶地址(查詢塊930),則將這些費用發(fā)送到客戶(塊932)。如果客戶請求直接從客戶賬戶支付按需費用(查詢塊934),則直接從客戶賬戶接收付款(塊936)。然后在終止塊938退出按需過程。
雖然參考優(yōu)選實施例具體示出和描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將理解,可以在不偏離本發(fā)明的精神和范圍的情況下對其做出形式和細節(jié)上的各種更改。此外,如說明書和所附權(quán)利要求中使用的,術(shù)語“計算機”或“系統(tǒng)”或“計算機系統(tǒng)”或“計算設備”包括任何數(shù)據(jù)處理系統(tǒng),包括但不限于,個人計算機、服務器、工作站、網(wǎng)絡計算機、大型機、路由器、交換機、個人數(shù)字助理(PDA)、電話,以及任何其他能夠處理、傳輸、接收、捕獲和/或存儲數(shù)據(jù)的系統(tǒng)。
權(quán)利要求
1.一種可計算機實現(xiàn)的方法,所述方法包括捕獲與在第一測試過程期間和圖形用戶接口進行的多個用戶交互對應的數(shù)據(jù);生成與所述第一測試過程期間的所述用戶交互對應的復合數(shù)據(jù);處理所述復合數(shù)據(jù)并從其生成第二測試過程;捕獲與在所述第二測試過程期間和所述圖形用戶接口進行的多個用戶交互對應的數(shù)據(jù);使用來自所述第二測試過程的所述捕獲的數(shù)據(jù)來生成自適應過程以便進一步測試所述圖形用戶接口。
2.如權(quán)利要求1中所述的方法,還包括使用記錄代理來捕獲與所述第一和第二測試過程期間的所述多個用戶交互對應的所述數(shù)據(jù)。
3.如權(quán)利要求2中所述的方法,其中所述第一測試過程包括第一組與先決條件相比的已知輸入和與后置條件相比的相應預期輸出。
4.如權(quán)利要求3中所述的方法,其中所述第一測試過程的所述第一組已知輸入、先決條件、輸出和后置條件由所述記錄代理記錄并分析以生成所述第二測試過程。
5.如權(quán)利要求4中所述的方法,其中所述第二測試過程包括第二組與先決條件相比的已知輸入和與后置條件相比的相應預期輸出。
6.如權(quán)利要求5中所述的方法,還包括執(zhí)行所述第二測試過程;使用所述記錄代理來捕獲與所述第二組已知輸入、先決條件、輸出和后置條件對應的數(shù)據(jù);以及使用來自所述第二測試過程的所述捕獲的數(shù)據(jù)來生成所述圖形用戶接口的后續(xù)測試過程。
7.一種系統(tǒng),所述系統(tǒng)包括處理器;連接到所述處理器的數(shù)據(jù)總線;以及包含計算機程序代碼的計算機可用介質(zhì),所述計算機可用介質(zhì)連接到所述數(shù)據(jù)總線,所述計算機程序代碼包括可由所述處理器執(zhí)行的指令,所述指令配置為執(zhí)行以下操作捕獲與在第一測試過程期間和圖形用戶接口進行的多個用戶交互對應的數(shù)據(jù);生成與所述第一測試過程期間的所述用戶交互對應的復合數(shù)據(jù);處理所述復合數(shù)據(jù)并從其生成第二測試過程;捕獲與在所述第二測試過程期間和所述圖形用戶接口進行的多個用戶交互對應的數(shù)據(jù);使用來自所述第二測試過程的所述捕獲的數(shù)據(jù)來生成自適應過程以便進一步測試所述圖形用戶接口。
8.如權(quán)利要求7中所述的系統(tǒng),其中所述指令還配置為執(zhí)行以下操作使用記錄代理來捕獲與所述第一和第二測試過程期間的所述多個用戶交互對應的所述數(shù)據(jù)。
9.如權(quán)利要求8中所述的系統(tǒng),其中所述第一測試過程包括第一組與先決條件相比的已知輸入和與后置條件相比的相應預期輸出。
10.如權(quán)利要求9中所述的系統(tǒng),其中所述第一測試過程的所述第一組已知輸入、先決條件、輸出和后置條件由所述記錄代理記錄并分析以生成所述第二測試過程。
11.如權(quán)利要求10中所述的系統(tǒng),其中所述第二測試過程包括第二組與先決條件相比的已知輸入和與后置條件相比的相應預期輸出。
12.如權(quán)利要求11中所述的系統(tǒng),其中所述指令還配置為執(zhí)行以下操作執(zhí)行所述第二測試過程;使用所述記錄代理來捕獲與所述第二組已知輸入、先決條件、輸出和后置條件對應的數(shù)據(jù);以及使用來自所述第二測試過程的所述捕獲的數(shù)據(jù)來生成所述圖形用戶接口的后續(xù)測試過程。
全文摘要
一種通過實現(xiàn)記錄代理來進行改進的和自動的測試軟件應用的圖形用戶接口的方法、裝置和計算機可用介質(zhì),該代理允許捕獲一個或多個人工軟件測試者的圖形用戶接口交互并將其結(jié)合到容錯和自適應的自動化圖形用戶接口測試系統(tǒng)中。實現(xiàn)記錄代理以捕獲一個或多個人工軟件測試者的圖形用戶接口交互。測試者制定多個預定測試用例或過程,其具有與先決條件相比的已知輸入和與得到的后置條件相比的預期輸出,它們被記錄并編輯到聚集測試過程中。修改得到的聚集測試過程并將其配置為糾正和/或協(xié)調(diào)識別的異常,以創(chuàng)建在自動化的測試環(huán)境中實現(xiàn)的最終測試過程。將每個試運行的結(jié)果隨后合并到自動化測試過程中,使其隨試運行數(shù)的增加變得更加容錯和自適應。
文檔編號G06F11/36GK101089826SQ20071010899
公開日2007年12月19日 申請日期2007年6月11日 優(yōu)先權(quán)日2006年6月12日
發(fā)明者J·D·吉洛尼, H·S·克洛維茨, W·D·哈于廷, S·A·施瓦茨曼 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
渝中区| 江陵县| 东城区| 呼和浩特市| 华安县| 渭源县| 临江市| 邵东县| 广西| 马尔康县| 常州市| 牙克石市| 昌乐县| 改则县| 和顺县| 慈溪市| 扬州市| 响水县| 平陆县| 登封市| 天祝| 泸州市| 大同市| 高唐县| 和林格尔县| 鄂托克前旗| 南丹县| 长子县| 大田县| 时尚| 无为县| 泸州市| 柳林县| 遵义市| 巴林右旗| 昔阳县| 中宁县| 安平县| 伊宁县| 河间市| 丽江市|