創建容錯和自適應圖形用戶接口測試自動化的方法和系統的製作方法
2023-04-26 13:27:16 1
專利名稱:創建容錯和自適應圖形用戶接口測試自動化的方法和系統的製作方法
技術領域:
本發明一般地涉及計算機和包括硬體、軟體和處理的其他數據處理系統的領域。更具體地說,本發明涉及容錯和自適應圖形用戶接口(GUI)測試自動化。
背景技術:
隨著軟體開發人員不斷引入新的和更複雜的應用,基礎程序代碼的複雜性也相應增加。這種複雜性通常擴展到應用的圖形用戶接口(GUI),導致在作為質量保證(QA)過程的一部分開發有意義的軟體測試過程時出現額外且有時出乎意外之外的難題。應用的GUI的手動測試可以是勞動密集的、易出錯的和昂貴的,這導致開發自動化的GUI測試解決方案。雖然GUI測試自動化的目標是消除對手動測試的需要,但是它目前仍用作人工測試者的助手。
使GUI測試過程自動化的現有技術方法一般包括手動GUI測試交互的「記錄和重放」或為每個應用編寫自動化的測試過程。記錄和重放方法可能是不可靠的,因為很可能沒有捕獲和記錄所有可能的用戶手勢和GUI交互以便後來的重放。開發定製編寫的自動化的GUI測試帶來了其他難題,因為開發自動化的測試通常比手動測試GUI要花更長的時間。此外,GUI測試需要調試自身,並且不能保證定製編寫的自動化的GUI測試提供對所有可能測試用例的更好覆蓋。類似地,得到的測試自動化代碼可能易受被測試應用的後續更改的影響,這可能導致不可靠的測試和質量保證結果。
其他現有技術方法包括使用GUI結構的分層模型來創建測試用例。測試用例通常用作人工測試者的指示或指導。自動化的測試旨在自動定位和測試軟體應用的功能而無需人工協助。還存在使測試GUI軟體自動化的現有技術方法,該方法映射GUI窗口中的對象和按鈕並隨後隨機地單擊按鈕並輸入文本直至應用出現故障。這些方法記錄導致應用出現故障的操作,重新啟動應用並重複該過程,排除任何此前導致應用出現故障的操作。但是,這些方法通常基於隨機操作,並且可能不完全與典型的用戶行為相關。鑑於上述內容,需要軟體應用GUI的改進的測試自動化。
發明內容
本發明包括,但不限於,改進的自動化的測試軟體應用的圖形用戶接口(GUI)的方法、裝置和計算機可用介質。在本發明的實施例中,實現記錄代理以捕獲一個或多個人工軟體測試者的GUI交互。所述測試者然後制定多個預定測試用例或過程,它們具有與先決條件相比的已知輸入和與得到的後置條件相比的預期輸出,以測試應用的GUI的預期操作。記錄每個測試會話的輸入、先決條件、交互、輸出和後置條件並將它們編輯成聚集測試過程的草案,然後對其分析以標識每個試運行的公共故障點和異常。
將得到的聚集測試過程草案進行手動修改並將其配置成糾正和/或協調標識的異常,以創建隨後在自動化測試環境中實現的最終測試過程。得到的自動化測試過程的可靠性隨執行的試運行數的增加而增加,這對本領域的技術人員是顯而易見的。同樣顯而易見的是,本發明同時包含「記錄和重放」及定製編寫的自動化測試過程的優點,同時減輕了它們相應的不足。
本發明的測試系統的各種實施例隨著人工測試者的數量和種類的增加會變得逐漸地容錯。此外,本發明無需開發定製的測試過程,也不依賴於GUI應用的隨機操作。相反,收集試運行期間在測試用例或過程之後來自用戶的數據並將它們相互關聯,以生成可以以自適應和容錯的方式定位和測試軟體應用的GUI的自動化的測試過程。此外,得到的軟體GUI試運行是可靠的、可記錄的和可審計的,由此提供了一致性驗證通常所需的可檢驗的文檔編制。本發明的上述以及其他目的、特徵和優點將在以下詳細的書面說明中變得顯而易見。
在所附權利要求中說明了被認為是本發明特性的新穎特徵。但是,當結合附圖閱讀時,通過參考以下對示例性實施例的詳細說明,可以最佳地理解發明本身及其優選使用方式、進一步的目的和優點,這些附圖是圖1示出了其中可以實現本發明的示例性客戶機;圖2示出了為了圖4中示出的客戶機的用戶的利益而可以從其部署和/或實現用於執行本發明的軟體的示例性伺服器;圖3是根據本發明的實施例實現的容錯和自適應的自動化圖形用戶接口(GUI)測試系統的通用流程圖;圖4是根據本發明的實施例實現的容錯和自適應的自動化GUI測試系統的通用方塊圖;圖5是根據本發明的實施例實現的修改後的聚集測試過程的概括圖示;圖6a-b示出了部署能夠執行圖3中示出和說明的步驟的軟體而採取的步驟的流程圖;圖7a-c示出了在虛擬專用網絡(VPN)中部署能夠執行在圖3中示出和說明的步驟的軟體而採取的步驟的流程圖;圖8a-b是示出了將能夠執行在圖3中示出和說明的步驟的軟體集成到計算機系統中而採取的步驟的流程圖;以及圖9a-b是示出了使用按需服務提供商執行圖3中示出和說明的步驟而採取的步驟的流程圖。
具體實施例方式
現在參考附圖,具體地說參考圖3,其中示出了通過實現記錄代理來進行改進的和自動的測試軟體應用的圖形用戶接口(GUI)的方法、裝置和計算機可用介質,該代理允許捕獲一個或多個人工軟體測試者的圖形用戶接口交互並將其結合到自動化的圖形用戶接口測試系統中。
現在參考圖1,圖1示出了其中可以使用本發明的示例性客戶機102的方塊圖。客戶機102包括連接到系統總線106的處理器單元104。驅動/支持顯示器110的視頻適配器108也連接到系統總線106。系統總線106通過總線橋112連接到輸入/輸出(I/O)總線114。I/O接口116連接到I/O總線114。I/O接口116提供與各種I/O設備(包括鍵盤118、滑鼠120、光碟-只讀存儲器(CD-ROM)驅動器122、軟盤驅動器124和快閃記憶體126)的通信。連接到I/O接口416的埠的格式可以是計算機體系結構領域中的技術人員公知的任何格式,包括但不限於通用串行總線(USB)埠。
客戶機102可以使用網絡接口130(其連接到系統總線106)通過網絡128與服務提供商伺服器202通信。網絡128可以是外部網絡,例如網際網路,或內部網絡,例如乙太網或虛擬專用網絡(VPN)。通過使用網絡128,客戶機102可以使用本發明來訪問服務提供商伺服器202。
硬碟驅動器接口132也連接到系統總線106。硬碟驅動器接口132和硬碟驅動器134連接。在優選實施例中,硬碟驅動器134填充也連接到系統總線106的系統存儲器136。填充系統存儲器136的數據包括客戶機102的作業系統(OS)138和應用程式144。
作業系統138包括外殼(shell)140,用於提供對資源(例如,應用程式144)的透明的用戶訪問。一般地說,外殼140是提供解釋器和用戶與作業系統之間的接口的程序。更具體地說,外殼140執行輸入命令行用戶接口或來自文件的命令。因此,外殼140(在UNIX中的名稱),在Windows中也稱為命令處理器,通常是作業系統軟體分層結構的最高級別並充當命令解釋器。外殼提供系統提示,解釋由鍵盤、滑鼠或其他用戶輸入介質輸入的命令,並將一個或多個解釋後的命令發送到作業系統的適當較低級別(例如,內核142)以供處理。注意,雖然外殼140是基於文本的面向行的用戶接口,但是本發明將同樣地支持其他用戶接口模式,例如,圖形、語音、手勢等。
如圖所示,作業系統138還包括內核142,後者包括作業系統138的較低級別的功能,其中包括提供作業系統138的其他部分和應用程式144所需的基本服務,包括存儲器管理、進程和任務管理、盤管理,以及滑鼠和鍵盤管理。
應用程式144包括瀏覽器146。瀏覽器146包括使得全球資訊網(WWW)客戶端(即,客戶機102)能夠使用超文本傳輸協議(HTTP)消息傳送來向網際網路發送和從網際網路接收消息的程序模塊和指令,由此使能與服務提供商伺服器202的通信。
客戶機102的系統存儲器中的應用程式144還包括自動化的圖形用戶接口(GUI)測試系統148。自動化的GUI測試系統148包括用於實現圖3中說明的過程的代碼。在一個實施例中,客戶機102可以從服務提供商伺服器202下載自動化的GUI測試系統148。
客戶機102中示出的硬體元件並非旨在是窮舉的,而是代表本發明所需的重要基本組件。例如,客戶機102可以包括備選存儲設備,例如,磁帶、數字多功能盤(DVD)、Bernoulli盒式磁帶等。這些和其他變型都旨在處於本發明的精神和範圍之內。
如上所述,可以從服務提供商伺服器202將自動化的GUI測試系統148下載到客戶機102,如圖2中的示例性形式所示。服務提供商伺服器202包括連接到系統總線206的處理器單元204。視頻適配器208也連接到系統總線206。視頻適配器208驅動/支持顯示器210。系統總線206通過總線橋212連接到輸入/輸出(I/O)總線214。I/O接口216連接到I/O總線214。I/O接口216提供與各種I/O設備(包括鍵盤218、滑鼠220、光碟-只讀存儲器(CD-ROM)驅動器222、軟盤驅動器224和快閃記憶體226)的通信。連接到I/O接口216的埠的格式可以是計算機體系結構領域中的技術人員公知的任何格式,包括但不限於通用串行總線(USB)埠。
服務提供商伺服器202可以使用網絡接口230(其連接到系統總線206)通過網絡128與客戶機102通信。對網絡128的訪問允許服務提供商伺服器202執行和/或下載自動化的GUI測試系統148到客戶機102。
系統總線206還連接到硬碟驅動器接口232,後者和硬碟驅動器234相連。在優選實施例中,硬碟驅動器234填充系統存儲器236,後者也連接到系統總線206。填充系統存儲器236的數據包括服務提供商伺服器202的作業系統238,後者包括外殼240和內核242。外殼240結合到較高級別的作業系統層中並用於提供對資源(例如,包括瀏覽器246的應用程式244和上述可以部署到客戶機102的自動化GUI測試系統148的副本)的透明的用戶訪問。
服務提供商伺服器202中示出的硬體元件並非旨在是窮舉的,而是代表本發明所需的重要基本組件。例如,服務提供商伺服器202可以包括備選存儲設備,例如閃速驅動器、磁帶、數字多功能盤(DVD)、Bernoulli盒式磁帶等。這些和其他變型都在本發明的精神和範圍內。
還要注意的是,在本發明的優選實施例中,服務提供商伺服器202執行所有與本發明關聯的功能(包括執行自動化的GUI測試系統148),由此使得客戶機102免於使用其資源。
應當理解,本發明的至少某些方面可以備選地以包含程序產品的計算機可用介質來實現。定義本發明的功能的程序可以通過各種信號承載介質被傳送到數據存儲系統或計算機系統,所述信號承載介質包括但不限於,不可寫存儲介質(例如,CD-ROM),可寫存儲介質(例如,硬碟驅動器、讀/寫CD ROM、光介質),系統存儲器(諸如但不限於隨機存取存儲器(RAM))以及通信介質,如包括乙太網、網際網路、無線網絡和類似網絡系統的計算機和電話網絡。因此應當理解,當承載或編碼有管理本發明中的方法功能的計算機可讀指令時,此類信號承載介質代表本發明的備選實施例。另外,可以理解,本發明可以由具有形式為硬體、軟體或如此處描述的軟體和硬體的組合或其等效物的裝置的系統來實現。
圖3是根據本發明的實施例實現的容錯和自適應的自動化圖形用戶接口(GUI)測試系統148的通用流程圖。在步驟302,測試軟體應用的GUI開始。在步驟304,選擇由人工測試者要在測試期間實現的預定測試用例和過程。在步驟306,選擇人工測試者來實施測試,並在其計算機上實現記錄代理。
由制定預定測試用例或過程的測試者在步驟308實施試運行,在此期間,將已知輸入與先決條件相比較,將預期輸出與得到的後置條件相比較,以測試主體應用的GUI的預期操作。一旦GUI測試在步驟308失敗或完成,則將試運行的記錄的輸入、先決條件、交互、輸出和後置條件添加到步驟312中的先前試運行的結果,然後使用試運行結果的得到的匯集在步驟310創建聚集的測試過程的草案。然後分析該聚集的測試過程草案以標識兩個或更多試運行共同的故障點以及個別試運行的操作異常和不一致,然後在步驟314對它們進行手動修改、協調和/或配置。
例如,在本發明的實施例中,將單個試運行解構為各個級別的粒度(例如,測試中的步驟、步驟中的任務、任務中的命令等)並比較在試運行期間出現的共同的操作、差異、意外操作或異常。在本發明的另一個實施例中,使用基於規則的決策引擎產生操作的一組草案,其中規則考慮包括,但不限於,人工測試者的相應特性(例如,初學者、專家等),以及試運行中任務的頻率和共性。在本發明的再一個實施例中,在「diff」實用程序中顯示不具有共性的分析的結果,以便測試管理員可以手動選擇聚集的測試過程草案的個別元素的適當操作(例如,添加、刪除、修改、配置等)。同樣,雖然試運行結果之間的共性通常可以被信任為是可靠的並且無需管理員注意,但是仍保留對聚集的測試過程草案進行修改的能力。可以類似地檢查、編輯和/或結合不同試運行中的備選測試路徑和個別測試者對異常的反應,以便用作備選測試操作。
然後在步驟316,從在步驟314中創建的修改、協調和配置後的測試過程草案來創建自動化的測試過程,以便在自動化的測試環境中實現。在步驟318,在步驟316創建的自動化測試過程的自動化重放實施在步驟308手動實施的同一預定測試用例或過程,在此期間,將已知輸入與先決條件相比較,將預期輸出與得到的後置條件相比較,以測試主體應用的GUI的預期操作。一旦GUI測試在步驟318失敗或完成,則將試運行的記錄的輸入、先決條件、交互、輸出和後置條件添加到步驟312中的先前試運行的結果。
如果在步驟320決定執行其他試運行,則在步驟322決定是否修改當前的測試用例和/或過程。如果在步驟322決定修改當前的測試用例和/或過程,則在步驟324對它們進行修改並在步驟326決定是否由不同的人工測試者來運行測試。如果在步驟326決定由不同的人工測試者來運行測試,則在步驟306選擇人工測試者,並且試運行如上文更詳細描述的那樣繼續。否則,當前的人工測試者在步驟308實施預定的測試用例或過程,並如上文更詳細描述的那樣繼續試運行。如果在步驟322決定使用當前的測試用例和/或過程繼續,則在步驟326決定是否由不同的人工測試者運行測試。如果在步驟326決定由不同的人工測試者運行測試,則在步驟306選擇人工測試者,並且試運行如上文更詳細描述的那樣繼續。否則,當前的人工測試者在步驟308實施預定的測試用例或過程,並且試運行如上文更詳細描述的那樣繼續。
如果在步驟320決定不執行其他試運行,則在步驟328報告軟體錯誤列表和其他問題並且GUI測試在步驟330結束。對本領域的技術人員將顯而易見的是,本發明的不同實施例隨著人工測試者的數量和種類的增加會變得逐漸地容錯和自適應。此外,本發明無需開發定製的測試過程,也不依賴於GUI應用的隨機操縱。相反,收集試運行期間在測試用例或過程之後來自用戶的數據並將它們相互關聯,以生成可以以容錯和自適應的方式定位和測試軟體應用的GUI的自動化的測試過程。此外,得到的軟體GUI試運行是可靠的、可記錄的和可審計的,由此提供了一致性驗證通常所需的可檢驗的文檔編制。
圖4是根據本發明的實施例實現的容錯和自適應的自動化GUI測試系統148的通用方塊圖。容錯和自適應的自動化GUI測試系統148包括人工測試者「A」402、「B」406和「C」410的測試計算機、測試伺服器414、聚集的試運行結果418、分析和修改的聚集測試過程444、自動化的測試過程446,以及自動化的試運行結果448。測試伺服器414包括要測試的主體軟體應用GUI 416,聚集的試運行結果418包括複合試運行「1」結果420、複合試運行「2」結果428,以及複合試運行「3」結果436。複合試運行「1」結果420包括來自測試者「A」的試運行「1」結果422、來自測試者「B」的試運行「1」結果424,以及來自測試者「C」的試運行「1」結果426。複合試運行「2」結果428包括來自測試者「A」的試運行「2」結果4 30、來自測試者「B」的試運行「2」結果4 32,以及來自測試者「C」的試運行「2」結果434。複合試運行「3」結果436包括來自測試者「A」的試運行「3」結果438、來自測試者「B」的試運行「3」結果440,以及來自測試者「C」的試運行「3」結果442。
在本發明的其他實施例中,分別在人工測試者「A」402、「B」406和「C」410的測試計算機上實現記錄代理404、408、412,並且啟動測試軟體應用的GUI 416,包括測試伺服器414。由人工測試者「A」402、「B」406、「C」410選擇並實施預定測試用例和過程,在此期間,將已知輸入與先決條件相比較,將預期輸出與得到的後置條件相比較,以測試在試運行期間主體軟體應用的GUI 416(包括測試伺服器414)的預期操作。一旦每個測試者對軟體應用的GUI 416的測試在試運行中出現故障或完成,則將由記錄代理404、408、412捕獲的相應試運行的輸入、先決條件、交互、輸出和後置條件添加到包括聚集試運行結果418的先前試運行的結果中。
分析聚集試運行結果418以標識兩個或更多試運行共同的故障點以及個別試運行的操作異常和不一致,然後如上文更詳細說明的那樣對它們進行手動修改、協調和/或配置,以創建分析和修改後的聚集測試過程444。從分析和修改後的聚集測試過程444創建自動化的測試過程446並在測試伺服器414上實現測試過程446,以自動化地測試主體軟體應用的GUI 416,生成自動化的試運行結果448。
在本發明的實施例中,將來自測試者「A」422、測試者「B」424和測試者「C」426的第一試運行的相應結果組合成複合試運行「1」420,然後對其進行分析以標識每個測試者的個別測試結果共同的故障點,以及其個別操作異常和不一致,然後如上文更詳細說明的那樣對它們進行手動修改、協調和/或配置,以創建分析和修改後的聚集測試過程444。從分析和修改後的聚集測試過程444創建自動化的測試過程446,並在測試伺服器414上實現測試過程446,以自動化地測試主體軟體應用的GUI 416,生成自動化的試運行結果448,所述結果用作輸入以對主體軟體應用的GUI 416做出更改。
進行第二試運行,其中將測試者「A」430、測試者「B」432和測試者「C」434的相應結果組合成複合試運行「2」428,然後如上文更詳細說明的那樣對其進行分析和/或修改,以創建分析和修改後的聚集測試過程444。創建和實現第二容錯、自適應的自動化的測試過程446,以自動化地測試主體軟體應用的GUI 416,生成自動化的試運行結果448,所述結果用作輸入以對主體軟體應用的GUI 416做出後續更改。
然後進行第三試運行,其中將測試者「A」438、測試者「B」440和測試者「C」442的相應結果組合成複合試運行「2」436,然後如上文更詳細說明的那樣對其進行分析和/或修改,以創建分析和修改後的聚集測試過程444。創建和實現第三自動化的測試過程446,以自動化地測試主體軟體應用的GUI 416,生成自動化的試運行結果448。對本領域的技術人員顯而易見的是,每個實現自動化的測試過程446的相繼試運行通過結合先前試運行的結果而逐漸地變得更加容錯。
圖5是根據本發明的實施例實現的修改後的聚集測試過程444的概括圖示。修改後的聚集測試過程444包括複合試運行「1」結果418、複合試運行「2」結果426,以及複合試運行「3」結果434。複合試運行「1」結果418包括由試運行「1」組成的測試步驟、來自試運行「2」的其他測試步驟504,以及來自試運行「3」的其他測試步驟506。複合試運行「2」結果426包括由試運行「2」組成的測試步驟、來自試運行「1」的其他測試步驟502,以及來自試運行「3」的其他測試步驟506。複合試運行「3」結果434包括由試運行「3」組成的測試步驟和來自試運行「2」的其他測試步驟504。
如上文更詳細說明的那樣,分析和修改後的聚集測試過程444是以下操作的結果標識兩個或更多試運行共同的故障點以及個別試運行的操作異常和不一致,然後對它們進行手動修改、協調和/或配置,然後用於創建容錯、自適應的自動化測試過程446,測試過程446在測試伺服器414上實現,以自動化地測試主體軟體應用的GUI 416,生成自動化的試運行結果448。
因此,可以將本文所述並具體在圖3中示出和說明的方法部署為從服務提供商伺服器202到客戶機102的處理軟體。
現在參考圖6,步驟600開始部署所述處理軟體。首先判定在執行所述處理軟體時是否有任何程序駐留在一個或多個伺服器上(查詢塊602)。如果是,則標識將包含可執行程序的伺服器(塊604)。將所述一個或多個伺服器的處理軟體通過文件傳輸協議(FTP)或某種其他協議或通過使用共享文件系統複製來直接傳輸到伺服器的存儲裝置(塊606)。然後將處理軟體安裝在伺服器上(塊608)。
接著,判定是否通過使用戶訪問一個或多個伺服器上的處理軟體來部署處理軟體(查詢塊610)。如果用戶要訪問伺服器上的處理軟體,則標識存儲所述處理軟體的伺服器地址(塊612)。
判定是否構建代理伺服器(查詢塊614)來存儲所述處理軟體。代理伺服器是位於客戶端應用(例如,Web瀏覽器)與真實伺服器之間的伺服器。它攔截所有對真實伺服器的請求以查看它自身是否可以滿足所述請求。如果不能,它就將所述請求轉發到真實伺服器。代理伺服器的兩個主要益處是改進性能和過濾請求。如果需要代理伺服器,將安裝代理伺服器(塊616)。通過諸如FTP的協議將處理軟體發送到伺服器,或通過文件共享直接將其從源文件複製到伺服器文件(塊618)。其他實施例將向包含處理軟體的伺服器發送事務並使伺服器處理事務,然後接收所述處理軟體並將其複製到伺服器的文件系統。一旦將所述處理軟體存儲到伺服器,用戶就可以通過他們的客戶機訪問伺服器上的處理軟體並將其複製到他們的客戶機文件系統(塊620)。其他實施例是使伺服器自動將所述處理軟體複製到每個客戶機,然後在每個客戶機處運行所述處理軟體的安裝程序。用戶執行將所述處理軟體安裝到其客戶機的程序(塊622),然後退出過程(終止塊624)。
在查詢步驟626,判定是否通過將處理軟體通過電子郵件發送到用戶來部署所述處理軟體。標識將所述處理軟體部署到該處的用戶集以及用戶客戶機的地址(塊628)。通過電子郵件將所述處理軟體發送到每個用戶的客戶機(塊630)。然後,用戶接收電子郵件(塊632)並將所述處理軟體從電子郵件分離到他們的客戶機上的目錄(塊634)。用戶執行將所述處理軟體安裝到其客戶機的程序(塊622),然後退出過程(終止塊624)。
最後,判定是否將所述處理軟體直接發送到他們的客戶機上的用戶目錄(查詢塊636)。如果是,則標識用戶目錄(塊638)。將所述處理軟體直接傳輸到用戶的客戶機目錄(塊640)。這可以通過若干種方式完成,例如,但不限於,共享文件系統目錄並從發送方的文件系統複製到接收用戶的文件系統或備選地使用諸如文件傳輸協議(FTP)之類的傳輸協議。用戶訪問他們的客戶機文件系統上的目錄以準備安裝所述處理軟體(塊642)。用戶執行將所述處理軟體安裝到他的客戶機的程序(塊622),然後退出過程(終止塊624)。
可以將本軟體作為服務的一部分部署到第三方,其中作為安全部署工具來提供第三方VPN服務或其中按照特定部署的需要來按需建立VPN。
虛擬專用網絡(VPN)是可用於通過否則不安全或不被信任的網絡來保護連接的技術的任何組合。VPN提高了安全性並降低了運行成本。VPN利用公共網絡(通常是網際網路)將遠程站點或用戶連接到一起。VPN不使用專用的真實連接(例如,租用線路),而是使用通過網際網路從公司的專用網絡路由到遠程站點或僱員的「虛擬」連接。通過為了傳送或執行處理軟體(即,軟體位於其他位置)的目的而特別構建VPN,可以作為服務來提供通過VPN訪問軟體,其中根據支付的金額,VPN的使用期限限於給定的時間周期或給定次數的部署。
可以通過遠程訪問或站點到站點VPN來部署、訪問和執行處理軟體。當使用遠程訪問VPN時,經由公司專用網絡與遠程用戶之間的安全和加密的連接並通過第三方服務提供商來部署、訪問和執行處理軟體。企業服務提供商(ESP)設置網絡訪問伺服器(NAS)並向遠程用戶的計算機提供桌面客戶端軟體。然後,遠程工作者可以撥打免費號碼或通過電纜或DSL數據機直接連接以到達NAS並使用他們的VPN客戶端軟體來訪問公司網絡以及訪問、下載和執行處理軟體。
當使用站點到站點VPN時,通過使用用於在公共網絡(例如,網際網路)上連接公司的多個固定站點的專用設備和大規模加密來部署、訪問和執行處理軟體。
所述處理軟體在VPN上通過隧道傳輸,其是將整個分組置於其他分組內並將其在網絡上發送的過程。網絡和兩個點(稱為隧道接口,分組從該處進入和離開網絡)理解外部分組的協議。
圖7中說明了這種VPN部署的過程。起始塊702開始虛擬專用網絡(VPN)過程。判定是否需要用於遠程訪問的VPN(查詢塊704)。如果不需要,則前進到查詢塊706。如果需要,則判定是否存在遠程訪問VPN(查詢塊708)。
如果確實存在VPN,則前進到塊710。否則,標識將提供公司的專用網絡與公司的遠程用戶之間的安全、加密連接的第三方提供商(塊712)。標識公司的遠程用戶(塊714)。然後,第三方提供商建立網絡訪問伺服器(NAS)(塊716),其允許遠程用戶撥打免費號碼或通過寬帶數據機直接連接以訪問、下載和安裝遠程訪問VPN的桌面客戶端軟體(塊718)。
在建立了遠程訪問VPN之後或如果先前安裝了VPN,則遠程用戶可以通過撥入NAS或通過電纜或DSL數據機直接連接到NAS來訪問所述處理軟體(塊710)。這允許進入從該處可以訪問處理軟體的公司網絡(塊720)。通過隧道在網絡上將所述處理軟體傳輸到遠程用戶的桌面。也就是說,將所述處理軟體分為分組,並將每個包括數據和協議的分組置於其他分組中(塊722)。當所述處理軟體到達遠程用戶的桌面時,將其從分組中取出、重構,然後在遠程用戶的桌面上執行(塊724)。
然後判定是否需要站點到站點訪問的VPN(查詢塊706)。如果不需要,則前進以退出過程(終止塊726)。否則,判定是否存在站點到站點VPN(查詢塊728)。如果確實不存在,則前進到塊730。否則,安裝建立站點到站點VPN所需的專用設備(塊738)。然後,將大規模加密構建到VPN中(塊740)。
在建立了站點到站點VPN之後或如果先前建立了VPN,則用戶通過VPN來訪問所述處理軟體(塊730)。在網絡上通過隧道將所述處理軟體傳輸到站點用戶(塊732)。也就是說,將處理軟體分為多個分組,並將每個包括數據和協議的分組置於其他分組中(塊734)。當所述處理軟體到達遠程用戶的桌面時,將其從分組中取出、重建,然後在站點用戶的桌面上執行(塊736)。然後,過程在終止塊726結束。
通過規定包括用於實現本文所說明過程的代碼的處理軟體與應用、作業系統和網絡作業系統軟體共存,然後將處理軟體安裝在環境(所述處理軟體在其中工作)中的客戶機和伺服器上,可以將所述處理軟體集成到客戶機、伺服器和網絡環境中。
第一步是標識客戶機和伺服器上的任何軟體,包括處理軟體所需的或與處理軟體協同工作的網絡作業系統(將在該處部署處理軟體)。這包括是通過添加聯網功能來增強基本作業系統的軟體的網絡作業系統。
接著,標識軟體應用和版本號並將其與已測試為可與所述處理軟體一起運行的軟體應用和版本號的列表相比較。將使用正確的版本號來升級那些丟失的或不匹配正確版本的軟體應用。檢查將參數從所述處理軟體傳遞到軟體應用的程序指令以確保參數列表與所述處理軟體所需的參數列表匹配。相反地,檢查由軟體應用傳遞到處理軟體的參數以確保所述參數與所述處理軟體所需的參數匹配。標識包括網絡作業系統的客戶機和伺服器作業系統並將其與已測試為可與所述處理軟體一起運行的作業系統、版本號和網絡軟體的列表相比較。在客戶機和伺服器上將與已測試的作業系統和版本號的列表不匹配的那些作業系統、版本號和網絡軟體升級到所需級別。
在確保軟體(要將處理軟體部署到該處)處於已測試為可與所述處理軟體一起運行的正確版本級別之後,通過將所述處理軟體安裝到客戶機和伺服器上來完成集成。
對於此過程的高級描述,現在參考圖8。起始塊802開始處理軟體的集成。首先判定是否存在任何將在一個或多個伺服器上執行的處理軟體程序(塊804)。如果否,則集成前進到查詢塊806。如果是,則標識伺服器地址(塊808)。檢查伺服器以查看它們是否包含包括作業系統(OS)、應用和網絡作業系統(NOS)連同它們的版本號(已與所述處理軟體一起測試)的軟體(塊810)。還檢查伺服器以判定在塊810中,是否缺失任何處理軟體所需的軟體。
判定版本號是否和已與所述處理軟體一起測試的作業系統、應用和網絡作業系統的版本號相匹配(塊812)。如果所有版本都匹配並且沒有缺失任何所需的軟體,則集成在查詢塊806繼續。
如果一個或多個版本號不匹配,則使用正確的版本在一個或多個伺服器上更新不匹配的版本(塊814)。此外,如果缺失所需的軟體,則在塊814示出的步驟中在一個或多個伺服器上更新該軟體。通過安裝所述處理軟體來完成伺服器集成(塊816)。
在查詢塊806中示出的步驟(其在塊804、812或816中示出的步驟之後)判定是否存在任何將在客戶機上執行的處理軟體的程序。如果沒有處理軟體程序在客戶機上執行,則集成前進到終止塊818並退出。如果不是這種情況,則如塊820中所示的那樣標識客戶機地址。
檢查客戶機以查看它們是否包含包括作業系統(OS)、應用和網絡作業系統(NOS)連同它們的版本號(已與所述處理軟體一起測試)的軟體(塊822)。還檢查客戶機以判定在塊822描述的步驟中,是否缺失任何處理軟體所需的軟體。
判定版本號是否和已與所述處理軟體一起測試的作業系統、應用和網絡作業系統的版本號相匹配(查詢塊824)。如果所有版本都匹配並且沒有缺失任何所需的軟體,則集成前進到終止塊818並退出。
如果一個或多個版本號不匹配,則使用正確的版本在客戶機上更新不匹配的版本(塊826)。此外,如果缺失所需的軟體,則在客戶機上更新該軟體(也在塊826)。通過在客戶機上安裝所述處理軟體來完成客戶機集成(塊828)。集成前進到終止塊818並退出。
共享所述處理軟體,其以靈活和自動化的方式同時為多個客戶服務。它是標準化的,幾乎不需要定製,並且它是可伸縮的,以現買現付模式按需提供容量。
可以將處理軟體存儲在可從一個或多個伺服器訪問的共享文件系統上。通過事務來執行處理軟體,所述事務包含數據和使用被訪問伺服器上的CPU單位的伺服器處理請求。CPU單位是伺服器的中央處理器上的諸如分、秒、小時之類的時間單位。此外,被訪問的伺服器可以做出對其他需要CPU單位的伺服器的請求。CPU單位只是代表一個使用度量的實例。其他使用度量包括但不限於網絡帶寬、存儲器使用率、存儲裝置使用率、分組傳輸、完整的事務等。
當多個客戶使用同一處理軟體應用時,通過包括在事務中的標識唯一客戶及該客戶的服務類型的參數來區分他們的事務。記錄每個客戶的服務使用的CPU單位和其他使用度量。當針對任何一個伺服器的事務數達到開始影響該伺服器的性能的數量時,訪問其他伺服器以增加容量並共享工作負荷。同樣,當其他使用度量(例如,網絡帶寬、存儲器使用率、存儲裝置使用率等)接近可以影響性能的容量時,將添加額外的網絡帶寬、存儲器、存儲裝置等以共享工作負荷。
將用於每個服務和客戶的使用度量發送到收集伺服器,收集伺服器將在伺服器網絡(提供處理軟體的共享執行)中的任何位置處理的每個服務的每個客戶的使用度量相加。將相加的使用度量單位定期乘以單位成本,並備選地將得到的總處理軟體應用服務成本發送到客戶和/或在由客戶訪問的Web站點上指示,然後客戶向服務提供商付費。
在另一個實施例中,服務提供商從銀行或金融機構處的客戶帳戶直接請求支付。在再一個實施例中,如果服務提供商也是使用處理軟體應用的客戶的客戶,則將欠服務提供商的款項與服務提供商的欠款相協調以最小化支付傳輸。
現在參考圖9,起始塊902開始按需過程。創建包含唯一客戶標識、請求的服務類型和任何進一步指定服務類型的服務參數的事務(塊904)。然後,將事務發送到主伺服器(塊906)。在按需環境下,主伺服器可以最初是唯一的伺服器,然後隨著容量的消耗,可以將其他伺服器添加到所述按需環境。
查詢按需環境中的伺服器中央處理單元(CPU)容量(塊908)。估計事務的CPU需求,然後將按需環境中的伺服器可用CPU容量與事務CPU需求相比較,以查看任何伺服器中是否有足夠的CPU可用容量來處理事務(查詢塊910)。如果沒有足夠的伺服器CPU可用容量,則分配額外的伺服器CPU容量來處理事務(塊912)。如果已存在足夠的可用CPU容量,則將事務發送到選定的伺服器(塊914)。
在執行事務之前,檢查其餘按需環境以判定所述環境是否具有足夠的可用容量以便處理事務。此環境容量包括但不限於網絡帶寬、處理器存儲器、存儲裝置等(塊916)。如果沒有足夠的可用容量,則將容量添加到按需環境(塊918)。接著,訪問處理事務所需的軟體,將其加載到存儲器中,然後執行事務(塊920)。
記錄使用率度量(塊922)。使用率度量包括按需環境中用於處理事務的那些功能的部分。記錄了此類功能的使用率,包括但不限於網絡帶寬、處理器存儲器、存儲裝置和CPU周期。將使用率度量相加,乘以單位成本,然後記錄為對發出請求的客戶的收費(塊924)。
如果客戶請求將按需費用發布到Web站點(查詢塊926),則將其發布(塊928)。如果客戶請求將按需費用通過電子郵件發送到客戶地址(查詢塊930),則將這些費用發送到客戶(塊932)。如果客戶請求直接從客戶帳戶支付按需費用(查詢塊934),則直接從客戶帳戶接收付款(塊936)。然後在終止塊938退出按需過程。
雖然參考優選實施例具體示出和描述了本發明,但是本領域的技術人員將理解,可以在不偏離本發明的精神和範圍的情況下對其做出形式和細節上的各種更改。此外,如說明書和所附權利要求中使用的,術語「計算機」或「系統」或「計算機系統」或「計算設備」包括任何數據處理系統,包括但不限於,個人計算機、伺服器、工作站、網絡計算機、大型機、路由器、交換機、個人數字助理(PDA)、電話,以及任何其他能夠處理、傳輸、接收、捕獲和/或存儲數據的系統。
權利要求
1.一種可計算機實現的方法,所述方法包括捕獲與在第一測試過程期間和圖形用戶接口進行的多個用戶交互對應的數據;生成與所述第一測試過程期間的所述用戶交互對應的複合數據;處理所述複合數據並從其生成第二測試過程;捕獲與在所述第二測試過程期間和所述圖形用戶接口進行的多個用戶交互對應的數據;使用來自所述第二測試過程的所述捕獲的數據來生成自適應過程以便進一步測試所述圖形用戶接口。
2.如權利要求1中所述的方法,還包括使用記錄代理來捕獲與所述第一和第二測試過程期間的所述多個用戶交互對應的所述數據。
3.如權利要求2中所述的方法,其中所述第一測試過程包括第一組與先決條件相比的已知輸入和與後置條件相比的相應預期輸出。
4.如權利要求3中所述的方法,其中所述第一測試過程的所述第一組已知輸入、先決條件、輸出和後置條件由所述記錄代理記錄並分析以生成所述第二測試過程。
5.如權利要求4中所述的方法,其中所述第二測試過程包括第二組與先決條件相比的已知輸入和與後置條件相比的相應預期輸出。
6.如權利要求5中所述的方法,還包括執行所述第二測試過程;使用所述記錄代理來捕獲與所述第二組已知輸入、先決條件、輸出和後置條件對應的數據;以及使用來自所述第二測試過程的所述捕獲的數據來生成所述圖形用戶接口的後續測試過程。
7.一種系統,所述系統包括處理器;連接到所述處理器的數據總線;以及包含電腦程式代碼的計算機可用介質,所述計算機可用介質連接到所述數據總線,所述電腦程式代碼包括可由所述處理器執行的指令,所述指令配置為執行以下操作捕獲與在第一測試過程期間和圖形用戶接口進行的多個用戶交互對應的數據;生成與所述第一測試過程期間的所述用戶交互對應的複合數據;處理所述複合數據並從其生成第二測試過程;捕獲與在所述第二測試過程期間和所述圖形用戶接口進行的多個用戶交互對應的數據;使用來自所述第二測試過程的所述捕獲的數據來生成自適應過程以便進一步測試所述圖形用戶接口。
8.如權利要求7中所述的系統,其中所述指令還配置為執行以下操作使用記錄代理來捕獲與所述第一和第二測試過程期間的所述多個用戶交互對應的所述數據。
9.如權利要求8中所述的系統,其中所述第一測試過程包括第一組與先決條件相比的已知輸入和與後置條件相比的相應預期輸出。
10.如權利要求9中所述的系統,其中所述第一測試過程的所述第一組已知輸入、先決條件、輸出和後置條件由所述記錄代理記錄並分析以生成所述第二測試過程。
11.如權利要求10中所述的系統,其中所述第二測試過程包括第二組與先決條件相比的已知輸入和與後置條件相比的相應預期輸出。
12.如權利要求11中所述的系統,其中所述指令還配置為執行以下操作執行所述第二測試過程;使用所述記錄代理來捕獲與所述第二組已知輸入、先決條件、輸出和後置條件對應的數據;以及使用來自所述第二測試過程的所述捕獲的數據來生成所述圖形用戶接口的後續測試過程。
全文摘要
一種通過實現記錄代理來進行改進的和自動的測試軟體應用的圖形用戶接口的方法、裝置和計算機可用介質,該代理允許捕獲一個或多個人工軟體測試者的圖形用戶接口交互並將其結合到容錯和自適應的自動化圖形用戶接口測試系統中。實現記錄代理以捕獲一個或多個人工軟體測試者的圖形用戶接口交互。測試者制定多個預定測試用例或過程,其具有與先決條件相比的已知輸入和與得到的後置條件相比的預期輸出,它們被記錄並編輯到聚集測試過程中。修改得到的聚集測試過程並將其配置為糾正和/或協調識別的異常,以創建在自動化的測試環境中實現的最終測試過程。將每個試運行的結果隨後合併到自動化測試過程中,使其隨試運行數的增加變得更加容錯和自適應。
文檔編號G06F11/36GK101089826SQ20071010899
公開日2007年12月19日 申請日期2007年6月11日 優先權日2006年6月12日
發明者J·D·吉洛尼, H·S·克洛維茨, W·D·哈於廷, S·A·施瓦茨曼 申請人:國際商業機器公司