專利名稱:用戶界面清單的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及計(jì)算機(jī)領(lǐng)域中的用戶界面清單。
背景技術(shù):
軟件測(cè)試可以被看作是驗(yàn)證和校驗(yàn)軟件程序、應(yīng)用程序、或產(chǎn)品達(dá)到其商業(yè)和技術(shù)要求,如預(yù)期執(zhí)行,以及能夠被實(shí)現(xiàn)的過程。不同的軟件開發(fā)模型關(guān)注開發(fā)過程中不同點(diǎn)處的測(cè)試嘗試??梢允褂冒ùa覆蓋、手動(dòng)和自動(dòng)測(cè)試、以及場(chǎng)景和特征測(cè)試在內(nèi)的眾多不同方法來測(cè)試軟件。測(cè)試用戶界面尤其困難。測(cè)試用戶界面尤其困難的原因是每一用戶界面元素的潛在使用范圍,以及安排順序的必須性。即便是諸如Microsoft @寫字板的小程序也至少具有325個(gè)可能的用戶界面操作。在大的程序中,要測(cè)試的操作的數(shù)目可以很容易地變得龐大。與測(cè)試用戶界面相關(guān)聯(lián)的另一個(gè)問題包括定序??赡苤挥型ㄟ^發(fā)起一個(gè)復(fù)雜序列的用戶界面事件才能調(diào)用系統(tǒng)的某些功能。例如,為了在Microsoft Word中打開文件, 用戶必須點(diǎn)擊文件菜單,選擇打開操作,使用對(duì)話框以指定文件名,并且然后在新打開的窗口處理應(yīng)用程序。顯然,可能操作數(shù)的增加指數(shù)地增加了定序問題。此外,豐富的用戶界面可以被重新排列成各種視圖或模式,這使得測(cè)試矩陣更為復(fù)雜。
發(fā)明內(nèi)容
可以將用戶界面編目到用戶界面清單數(shù)據(jù)庫中,在包含在目標(biāo)代碼庫內(nèi)的用戶界面上啟用收集、編目、測(cè)試和報(bào)告。通過使用用于每一用戶界面元素的全局標(biāo)識(shí)符以及將用戶界面元素與元數(shù)據(jù)相關(guān)聯(lián),可以確定開發(fā)者或開發(fā)者組所負(fù)責(zé)的用戶界面元素的數(shù)量。 可以量化、跟蹤、以及報(bào)告用戶界面元素的數(shù)量??梢源_定和量化在用戶界面元素或用戶界面元素組上執(zhí)行的測(cè)試的程度。所述用于每一用戶界面元素的全局標(biāo)識(shí)符可以是跨各個(gè)平臺(tái)、清單單元(SKUs)、體系結(jié)構(gòu)、里程碑、和語言一致的,以便于將來自于眾多不同計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的信息添加入用戶界面庫存數(shù)據(jù)庫。提供本發(fā)明內(nèi)容以便用一種簡(jiǎn)單的形式介紹將在以下具體實(shí)施方式
中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容不旨在確定所要求保護(hù)的主題的關(guān)鍵或必要特征,也不旨在用于限制所要求保護(hù)的主題的范圍。
在附圖中圖1示出依照此處所公開的主題的方面,用戶界面清單系統(tǒng)100的示例。圖2是依照此處所公開的主題的方面,用于建立和使用用戶界面系統(tǒng)的方法200 的示例的流程圖。圖3是示出其中可以實(shí)現(xiàn)所公開的主題的方面的計(jì)算環(huán)境示例的框圖。
圖4是依照此處所公開的主題的方面,集成開發(fā)環(huán)境示例的框圖。
具體實(shí)施例方式概況傳統(tǒng)的測(cè)試方法在跨復(fù)雜軟件的測(cè)試用戶界面的能力方面存在缺陷,復(fù)雜軟件諸如但不限于操作系統(tǒng)。軟件可以包括跨多個(gè)體系結(jié)構(gòu)、語言、庫存單元(SKUs)、平臺(tái)、以及里程碑的數(shù)以千計(jì)的用戶界面,還沒有用于量化已經(jīng)被測(cè)試的用戶界面數(shù)量乃至有多少用戶界面在系統(tǒng)中存在的已知方法。此處描述的主題針對(duì)產(chǎn)生可量化的結(jié)果以便于跟蹤計(jì)算機(jī)程序代碼的測(cè)試,以及便于所有者能夠?qū)ζ鋭?chuàng)建的軟件負(fù)責(zé)。用戶界面清單圖1示出用戶界面清單系統(tǒng)100的示例。系統(tǒng)100的全部或部分可以駐留在諸如以下依照?qǐng)D3描述的計(jì)算機(jī)的一個(gè)或多個(gè)計(jì)算機(jī)上。系統(tǒng)100的全部或部分可以駐留在諸如以下依照?qǐng)D4描述的計(jì)算機(jī)的一個(gè)或多個(gè)軟件開發(fā)計(jì)算機(jī)(例如計(jì)算機(jī)102)上。系統(tǒng) 100或其部分可以包括諸如以下依照?qǐng)D4描述和示出的集成開發(fā)環(huán)境(例如IDE 104)的一部分。系統(tǒng)100或其部分可以包括生產(chǎn)系統(tǒng)的一部分。系統(tǒng)100或其部分可以包括測(cè)試系統(tǒng)的一部分。可以提供系統(tǒng)100或其部分以作為獨(dú)立的系統(tǒng)或作為插件或加載項(xiàng)。系統(tǒng)100可以包括以下的一個(gè)或多個(gè)處理器(例如處理器142)、存儲(chǔ)器144、用戶界面清單數(shù)據(jù)庫或目錄106、能夠跟蹤用戶為完成任務(wù)進(jìn)行的事件的順序的場(chǎng)景收集器 108、能夠記錄用戶為完成任務(wù)進(jìn)行的事件并且回放該事件順序以用于測(cè)試的記錄和回放模塊110、能夠?yàn)楝F(xiàn)有的用戶界面元素上傳新用戶界面元素和/或元數(shù)據(jù)的用戶界面清單上傳器112、能夠報(bào)告量化的校驗(yàn)的報(bào)告生成器114、能夠校驗(yàn)和測(cè)試代碼的校驗(yàn)引擎116、 以及代碼庫118(該代碼庫為構(gòu)成用戶界面元素的代碼和支持用戶界面元素的功能的集合)。還可以包括其它本領(lǐng)域中所熟知的組件,但并沒有在這里示出。應(yīng)當(dāng)理解到實(shí)現(xiàn)場(chǎng)景收集器108、記錄和回放模塊110、用戶界面清單上傳器112、報(bào)告生成器114、以及校驗(yàn)引擎 116的一個(gè)或多個(gè)模塊可以被上傳到存儲(chǔ)器114中以使諸如處理器142的一個(gè)或多個(gè)處理器執(zhí)行屬于系統(tǒng)100的組件的動(dòng)作。系統(tǒng)100可以在圖1中由應(yīng)用程序122所表示的正在運(yùn)行(正在執(zhí)行)的應(yīng)用程序或操作系統(tǒng)上操作。用戶界面清單數(shù)據(jù)庫或目錄106可以包括在正在運(yùn)行的應(yīng)用程序122中涉及的用于每一用戶界面元素的信息。信息可以跨時(shí)間、跨多個(gè)計(jì)算機(jī)或計(jì)算系統(tǒng)上的多個(gè)正在執(zhí)行的應(yīng)用程序被收集,以增加存儲(chǔ)在用戶界面清單數(shù)據(jù)庫或目錄106中的信息。依照此處所公開的主題的若干方面,用戶界面清單數(shù)據(jù)庫或目錄106的關(guān)鍵為用于存儲(chǔ)在用戶界面清單數(shù)據(jù)庫或目錄106中的每一用戶界面元素的全局標(biāo)識(shí)符。該用于用戶界面元素的全局標(biāo)識(shí)符可以是跨系統(tǒng)相同的。更具體地,依照此處所公開的主題的若干方面的全局標(biāo)識(shí)符是跨整個(gè)用戶界面系統(tǒng)唯一的。即便是例如用單詞“好的”來相同地標(biāo)記的按鍵的元素也是基于諸如窗口、類名稱、控制類型、應(yīng)用程序、和自動(dòng)化ID的關(guān)鍵試探法被唯一標(biāo)識(shí)的。這些性質(zhì)中的一些是由被稱為UI自動(dòng)化(UI自動(dòng)化是Microsoft 的計(jì)算機(jī)可訪問性技術(shù)) 的編程式訪問界面提供的。用戶界面清單數(shù)據(jù)庫或目錄106中的信息可以包括在任何特定時(shí)間點(diǎn)處與用戶界面元素的狀態(tài)相關(guān)聯(lián)的信息,在場(chǎng)景內(nèi)任何特定時(shí)間點(diǎn)處與用戶界面元素的狀態(tài)相關(guān)聯(lián)的信息,一系列與用戶界面元素的連續(xù)進(jìn)展的用戶交互,用戶界面元素的
5全局標(biāo)識(shí)符,用于用戶界面元素的元數(shù)據(jù),與用戶元素中的變化相關(guān)聯(lián)的事件,等等。用于用戶界面元素的元數(shù)據(jù)可以包括關(guān)于用戶界面元素的信息,關(guān)于與用戶界面元素相關(guān)聯(lián)的測(cè)試的信息,以及由與包含用戶界面元素在內(nèi)的記錄的場(chǎng)景有關(guān)的場(chǎng)景收集器108收集的信息。用戶界面清單數(shù)據(jù)庫或目錄106還可以包括包含有由用戶跨時(shí)間接觸到的所有用戶界面元素(由全局用戶界面元素標(biāo)識(shí)符標(biāo)識(shí))的場(chǎng)景數(shù)據(jù)。場(chǎng)景數(shù)據(jù)還可以包括用于用戶界面元素的時(shí)間戳記的狀態(tài)信息,一系列與包含用戶界面元素在內(nèi)的用戶界面元素的連續(xù)進(jìn)展的用戶交互,相關(guān)聯(lián)的可訪問性事件、系統(tǒng)范圍的事件,等等。關(guān)于用戶界面元素的信息可以包括用戶界面元素的屬性,屬性的描述,屬性的一個(gè)值或?qū)傩缘囊涣斜砘蚍秶母髦?,必?非必須的指示符,對(duì)于誰來維護(hù)屬性的標(biāo)識(shí)(例如用戶、工具、或兩者兼有),以及優(yōu)先級(jí)評(píng)定。每一用戶界面元素可以被鏈接到校驗(yàn)以啟用解決核心問題的能力,該核心問題為量化哪些以及多少用戶界面元素被測(cè)試過。屬性包括,但是不局限于下列的優(yōu)先級(jí)(例如用于可訪問性、局部化、或)(DR)和其它用戶界面元素相比較該用戶界面元素有多重要查詢字符串在軟件中用戶界面元素的標(biāo)識(shí)到父記錄的鏈接到包含有當(dāng)前用戶界面元素的父元素的鏈接時(shí)間戳已上傳當(dāng)上傳用戶界面元素時(shí)時(shí)間戳已修改當(dāng)最后一次修改用戶界面元素時(shí)最后修改由最后一次修改用戶界面元素的人源元素是如何被上傳的類名稱從中創(chuàng)建用戶界面元素的類到框架的鏈接到創(chuàng)建控制的框架的具體鏈接進(jìn)程名用戶元素屬于的進(jìn)程模塊用戶界面元素屬于的模塊字符串資源位置持有字符串資源的位置比較(comp)中央路徑標(biāo)識(shí)用戶界面元素的擁有者的位置SKU 庫存單元標(biāo)識(shí)符圖像元素的圖像(例如可以被用于視覺分析和回放)。附加的屬性包括,但不限于下列的體系結(jié)構(gòu)例如32位體系結(jié)構(gòu)或64位體系結(jié)構(gòu)系統(tǒng)解析(syseParse)詳細(xì)的系統(tǒng)信息語言機(jī)器語言屏幕截圖到用戶界面元素表面的屏幕截圖的鏈接日志文件到創(chuàng)建條目的日志文件的鏈接場(chǎng)景屬性查看用戶界面元素的場(chǎng)景屬性的方法(可以是一對(duì)多的關(guān)系)MSAA性質(zhì)用于用戶界面元素的所有用戶界面自動(dòng)化數(shù)據(jù)UIA性質(zhì)用于用戶界面元素的所有用戶界面自動(dòng)化邊界矩形在用戶界面表面上定義用戶界面元素的位置的四個(gè)坐標(biāo)用戶界面表面區(qū)分用戶界面元素是否是頂層元素的屬性
主動(dòng)的描述用戶界面元素是否是傳送(shipping)元素私有的描述用戶界面元素是否是私有的以及不能被擁有讀取權(quán)限的用戶看見??梢栽谟脩艚缑媲鍐文夸浿谐尸F(xiàn)應(yīng)用于任何用戶界面元素的任何校驗(yàn)??梢酝ㄟ^各種工具和由其它工具上傳的用戶界面元素來確定校驗(yàn)屬性。因此,SKU和體系結(jié)構(gòu)需要元素特定的域。校驗(yàn)屬性可以包括,但不限于名稱校驗(yàn)的名稱結(jié)果校驗(yàn)的狀態(tài)(例如通過、失敗、被抑制、或被阻止)漏洞id 與校驗(yàn)相關(guān)聯(lián)的漏洞正式的/非正式的這一校驗(yàn)是否用于報(bào)告特征的正式狀態(tài)源校驗(yàn)的結(jié)果來自于的地方(例如來自于實(shí)驗(yàn)室、手冊(cè)、工具、場(chǎng)景)SKU 運(yùn)行校驗(yàn)的機(jī)器的SKU體系結(jié)構(gòu)例如運(yùn)行校驗(yàn)的32/64位機(jī)器其它建立、實(shí)驗(yàn)室等桌面主題在用戶桌面上運(yùn)行的當(dāng)前主題屏幕分辨率當(dāng)前運(yùn)行的屏幕分辨率DPI 桌面的每英寸點(diǎn)數(shù)系統(tǒng)解析(SyseParse)確定哪些是需要的。附加的校驗(yàn)屬性可以包括,但不限于語言運(yùn)行校驗(yàn)的機(jī)器語言屏幕截圖對(duì)于發(fā)生了什么校驗(yàn)工具和/或校驗(yàn)工具在哪里發(fā)生的屏幕截圖日志文件關(guān)于校驗(yàn)結(jié)果的額外信息測(cè)試組測(cè)試的一般分組(例如可訪問性、局部化、XDR等)測(cè)試作為那些測(cè)試組的子集的單獨(dú)測(cè)試優(yōu)先級(jí)單獨(dú)測(cè)試的優(yōu)先級(jí)鏈接獲得關(guān)于測(cè)試的更多信息的鏈接里程碑校驗(yàn)運(yùn)行的當(dāng)前里程碑原則由這一校驗(yàn)實(shí)現(xiàn)的原則退出準(zhǔn)則名由這一校驗(yàn)實(shí)現(xiàn)的退出準(zhǔn)則退出準(zhǔn)則描述每一退出準(zhǔn)則的描述退出準(zhǔn)則優(yōu)先級(jí)每一退出準(zhǔn)則的優(yōu)先級(jí)狀態(tài)為測(cè)試者提供添加例如公開漏洞等的信息的能力的注解部分,該注解部分幫助解釋場(chǎng)景的狀態(tài)最后修改由誰最后一次修改用戶界面元素。還可以將每一用戶界面元素鏈接到一個(gè)或多個(gè)場(chǎng)景。對(duì)應(yīng)用于用戶界面元素的每一個(gè)場(chǎng)景來說,下列的屬性可以存在于用戶界面清單數(shù)據(jù)庫或目錄106中核心(pillar)場(chǎng)景由原則定義的場(chǎng)景(例如通過鍵盤可導(dǎo)航的,事件是正確的)特征場(chǎng)景由特征團(tuán)隊(duì)定義的場(chǎng)景元素到被包括在場(chǎng)景中的用戶界面元素的鏈接
元素時(shí)間戳事件何時(shí)在場(chǎng)景中發(fā)生的時(shí)間戳事件發(fā)生的事件的類型事件信息每一事件的事件信息事件時(shí)間戳事件何時(shí)在場(chǎng)景中發(fā)生的時(shí)間戳事件信息這是與事件相關(guān)聯(lián)的數(shù)據(jù)(例如MouseButtonDown具有鼠標(biāo)下的什么按鍵)HWND 運(yùn)行時(shí)間窗口句柄元素ID =UI元素的唯一標(biāo)識(shí)符。場(chǎng)景收集器108可以被用于在諸如應(yīng)用程序122的正在運(yùn)行的(正在執(zhí)行的)應(yīng)用程序或操作系統(tǒng)上收集場(chǎng)景數(shù)據(jù)。場(chǎng)景收集器108可以在后臺(tái)運(yùn)行,可以響應(yīng)于對(duì)用戶界面元素的激活而收集與該用戶界面元素相關(guān)聯(lián)的信息,并且可以將所收集的場(chǎng)景數(shù)據(jù)存儲(chǔ)在日志文件120中。上傳模塊或上傳器112可以讀取日志文件120,并且將來自于日志文件120的信息存儲(chǔ)在用戶界面清單數(shù)據(jù)庫或目錄106中。校驗(yàn)引擎116等可以處理存儲(chǔ)在用戶界面清單數(shù)據(jù)庫或目錄106中的數(shù)據(jù),以提取和合并來自用戶界面清單數(shù)據(jù)庫或目錄 106的信息。報(bào)告生成器114可以接收來自校驗(yàn)引擎116的存儲(chǔ)在用戶界面清單數(shù)據(jù)庫或目錄106中的處理過的數(shù)據(jù),并且由此生成報(bào)告。報(bào)告生成器114可以報(bào)告用戶界面測(cè)試結(jié)果,該結(jié)果包括,但不限于用戶界面測(cè)試覆蓋(用戶界面覆蓋)以及完整性的程度。報(bào)告生成器可以報(bào)告的項(xiàng)目包括,但不限于在主體代碼庫(例如Microsoft Windows)中包含了多少用戶界面元素?每一用戶界面元素經(jīng)歷了什么測(cè)試需求?團(tuán)隊(duì)如何在其擁有的用戶界面元素上退出?在場(chǎng)景中包括了什么用戶界面元素?什么場(chǎng)景使用具體的用戶界面元素?使用用戶界面清單數(shù)據(jù)庫或目錄106中的信息,可以跟蹤和分析穿過用戶界面的路徑。這一數(shù)據(jù)可以被用于確定在一個(gè)或多個(gè)用戶界面元素上還需要什么其他數(shù)據(jù)以便于收集更多的用戶界面數(shù)據(jù)??梢允褂么鎯?chǔ)在用戶界面清單數(shù)據(jù)庫或目錄106中的數(shù)據(jù)來執(zhí)行路徑分析,該路徑分析例如,但不限于調(diào)用路徑分析或用戶UI (用戶界面)路徑分析。例如,如果從用戶界面元素1到用戶界面元素2有12條不同的路線,可以在用戶界面清單數(shù)據(jù)庫或目錄106中的數(shù)據(jù)上執(zhí)行路徑分析,以確定用戶從用戶界面元素1到達(dá)用戶界面元素2的χ條最常見的路線。記錄和回放模塊110可以表示允許用戶通過一系列用戶界面元素以運(yùn)行,停止和回放動(dòng)作的序列的工具。記錄和回放模塊110還可以使用存儲(chǔ)在用戶界面清單數(shù)據(jù)庫或目錄106和/或日志文件120中的信息,用來自用戶界面清單數(shù)據(jù)庫或目錄106的數(shù)據(jù)來覆蓋所收集的場(chǎng)景數(shù)據(jù)。通過記錄一系列動(dòng)作,以及通過用來自用戶界面清單數(shù)據(jù)庫或目錄 106的數(shù)據(jù)覆蓋所收集的信息來將所記錄的場(chǎng)景外插至多個(gè)不同的計(jì)算機(jī)系統(tǒng)設(shè)置,可以將記錄和回放模塊110應(yīng)用于測(cè)試。例如,記錄可以使用用戶界面清單數(shù)據(jù)庫或目錄106 以及日志文件120,并且回放該記錄,用不同的語言、不同的屏幕分辨率、不同的視覺樣式或主題等來覆蓋原始設(shè)置。圖2是依照此處所公開的主題的方面,用于生成和使用以上參考圖1描述的用戶界面清單系統(tǒng)的方法200的示例。應(yīng)當(dāng)理解到以下動(dòng)作中的一些是可選擇的,或者可以以不同于圖2所描繪的順序被執(zhí)行。在202處,可以使用諸如全局用戶界面標(biāo)識(shí)符這樣的信息預(yù)先填充用戶界面清單數(shù)據(jù)庫或目錄??梢酝ㄟ^對(duì)包含有窗口句柄(HWND)的焦點(diǎn)變化事件或任何其它可訪問性或系統(tǒng)事件的檢測(cè)來識(shí)別用戶界面元素的激活,包括但不限于鼠標(biāo)事件或其它輸入設(shè)備事件等。依照此處所公開的主題的若干方面,用戶界面元素可以展示可訪問性信息,用于用戶界面元素的全局標(biāo)識(shí)符來源于該可訪問性信息?;蛘撸梢酝ㄟ^獲取用于用戶界面元素的窗口以及遍歷父親鏈,在父親鏈和其中發(fā)生用于用戶界面元素的焦點(diǎn)變化事件或其它事件的應(yīng)用程序中收集用于每一父親的句柄,來得到用戶界面元素的全局標(biāo)識(shí)符。該收集到的信息可以在歷史(例如日志文件)中被收集??梢猿跏嫉貙⒂脩艚缑媲鍐螖?shù)據(jù)庫或目錄創(chuàng)建為一系列全局用戶界面元素標(biāo)識(shí)符,其它相關(guān)聯(lián)的信息片段隨后被添加入全局用戶界面元素標(biāo)識(shí)符。全局用戶界面元素標(biāo)識(shí)符對(duì)于跨任何應(yīng)用程序、系統(tǒng)或使用的用戶界面元素是不變的。應(yīng)用程序數(shù)據(jù)可以被用于確定用戶界面元素的所有權(quán)。在創(chuàng)建用戶界面清單數(shù)據(jù)庫或目錄之后,當(dāng)運(yùn)行應(yīng)用程序時(shí),在204處可以由場(chǎng)景收集器或其它數(shù)據(jù)聚集工具來收集數(shù)據(jù)。生成的用于被激活的用戶界面元素的全局標(biāo)識(shí)符可以被用于確定該被激活的用戶界面元素是新的用戶界面元素(將不在目錄中)還是已知的(編目的)用戶界面元素。可以在生產(chǎn)或測(cè)試環(huán)境中、在一個(gè)或多個(gè)系統(tǒng)上、在一個(gè)或多個(gè)日志文件中、跨一個(gè)或多個(gè)不同的時(shí)間段,來收集信息??梢杂煞答伖ぞ邅硎占畔ⅲ?該反饋工具包括但不限于收集來自于用戶的用戶數(shù)據(jù)的場(chǎng)景反饋工具,該用戶包括但不限于遠(yuǎn)程客戶,從而信息從客戶基地被收集并且被發(fā)送到一個(gè)或多個(gè)數(shù)據(jù)收集中心。在206 處,由諸如場(chǎng)景反饋收集器的工具收集并且被存儲(chǔ)在諸如場(chǎng)景日志文件的文件中的信息可以被用于更新用戶界面清單數(shù)據(jù)庫或目錄(例如由上傳器或上傳模塊)。在208處,校驗(yàn)?zāi)K可以如以上所述處理信息??梢栽谟脩艚缑媲鍐螖?shù)據(jù)庫或目錄中的數(shù)據(jù)上運(yùn)行多個(gè)校驗(yàn),該校驗(yàn)包括丟失了什么用于用戶界面元素的信息,用戶界面被激活了多少次,如何使用用戶界面元素,生成了什么事件,用于用戶界面元素的狀態(tài)變化等等??梢苑治鰣?chǎng)景數(shù)據(jù)以檢測(cè)為了完成任務(wù)最頻繁地使用了哪些用戶界面元素,或者為了完成具體的一個(gè)或多個(gè)任務(wù)最頻繁地使用了哪些用戶界面元素,使得系統(tǒng)能夠增加用戶界面元素的優(yōu)先級(jí)。在210處各種報(bào)告包括,但不限于,以上描述的可以被生成的報(bào)告。這些報(bào)告可以包括,但不限于關(guān)于最常用的用戶界面元素、不激發(fā)事件或激發(fā)具體事件的用戶界面元素、單獨(dú)用鍵盤操作的用戶界面元素、執(zhí)行任務(wù)的最小和最大時(shí)間、具體用戶界面元素在場(chǎng)景中出現(xiàn)的次數(shù)、用戶界面元素的故障百分比概率等的報(bào)告。應(yīng)當(dāng)理解到如以上描述采集和分析的信息可以被用于為軟件供應(yīng)商生成優(yōu)先級(jí)
故障修理報(bào)告。合適的計(jì)算環(huán)境的示例為了為此處所公開的主題的各方面提供上下文,圖3和以下描述旨在提供對(duì)于其中可以實(shí)現(xiàn)各實(shí)施例的合適計(jì)算環(huán)境510的簡(jiǎn)要一般的描述。盡管在諸如程序模塊的由一個(gè)或多個(gè)計(jì)算機(jī)或其它計(jì)算設(shè)備執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述此處所公開的主題,但是本領(lǐng)域的技術(shù)人員會(huì)意識(shí)到還可以與其它程序模塊和/或硬件和軟件的組合結(jié)合以實(shí)現(xiàn)此處所公開的主題的部分。一般地,程序模塊包括執(zhí)行具體任務(wù)或?qū)崿F(xiàn)具體數(shù)據(jù)類型的例程、程序、對(duì)象、物理工件、數(shù)據(jù)結(jié)構(gòu)等。一般地,可以按需要在各實(shí)施例中組合或分配程序模塊的功能。計(jì)算環(huán)境510僅是合適操作環(huán)境的一個(gè)示例,并且不旨在限制此處所公開的主題的使用或功能的范圍。參照?qǐng)D3,以計(jì)算機(jī)512的形式描述了用于線性堆棧上共同例程的有效恢復(fù)的計(jì)算設(shè)備。計(jì)算機(jī)512可以包括處理單元514、系統(tǒng)存儲(chǔ)器516、以及系統(tǒng)總線518。處理單元514可以是各可用處理器中的任何一個(gè)。雙微處理器和其它多處理器體系結(jié)構(gòu)也可以被使用作處理單元514。系統(tǒng)存儲(chǔ)器516可以包括易失性的存儲(chǔ)器520和非易失性的存儲(chǔ)器522。非易失性的存儲(chǔ)器522可以包括只讀存儲(chǔ)器(ROM)、可編程ROM(PROM)、電可編程 ROM(EPROM)、或快閃式存儲(chǔ)器。易失性的存儲(chǔ)器520可以包括充當(dāng)外部高速緩存的隨機(jī)存取存儲(chǔ)器(RAM)。系統(tǒng)總線518將包含系統(tǒng)存儲(chǔ)器516在內(nèi)的系統(tǒng)物理工件與處理單元514 相連接。系統(tǒng)總線518可以是包含存儲(chǔ)器總線、存儲(chǔ)器控制器、外設(shè)總線、外部總線、或本地總線在內(nèi)的若干類型中的任何一種,并且可以使用各可用的總線體系結(jié)構(gòu)中的任何一個(gè)。計(jì)算機(jī)512 —般包括諸如易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)的各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)可以以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)等信息的任何方法或技術(shù)來實(shí)現(xiàn)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、ROM、 EEPR0M、快閃式存儲(chǔ)器或其它存儲(chǔ)器技術(shù)、CDR0M、數(shù)字多功能盤(DVD)或其它光存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或者可用于存儲(chǔ)所需信息并且可由計(jì)算機(jī)512訪問的任何其它暫時(shí)性的或非暫時(shí)性的介質(zhì)。應(yīng)當(dāng)理解到圖3描述了可以充當(dāng)用戶和計(jì)算機(jī)資源之間的媒介的軟件。這一軟件可以包括可以被存儲(chǔ)在磁盤存儲(chǔ)5M上并且可以控制和分配計(jì)算機(jī)系統(tǒng)512的資源的操作系統(tǒng)528。磁盤存儲(chǔ)5 可以是通過諸如接口 5 的不可移動(dòng)存儲(chǔ)器接口被連接到系統(tǒng)總線518的硬盤驅(qū)動(dòng)器。系統(tǒng)應(yīng)用程序530利用由操作系統(tǒng)5 通過存儲(chǔ)在系統(tǒng)存儲(chǔ)器516 中或磁盤存儲(chǔ)5M上的程序模塊532和程序數(shù)據(jù)534進(jìn)行的對(duì)資源的管理。應(yīng)當(dāng)理解到可以用各種操作系統(tǒng)或操作系統(tǒng)的組合實(shí)現(xiàn)計(jì)算機(jī)。用戶可以通過輸入設(shè)備536將命令或信息輸入到計(jì)算機(jī)512。輸入設(shè)備536包括但不限于,諸如鼠標(biāo)、軌跡球、手寫筆、觸摸板、話筒等的指針式設(shè)備。這些以及其它的輸入設(shè)備通過接口端口 538經(jīng)由系統(tǒng)總線518連接到處理單元514。接口端口 538可以表示串行端口、并行端口、通用串行總線(USB)等。輸出設(shè)備540可以使用和輸入設(shè)備相同類型的端口。提供輸出適配器M2以示出有一些需要具體適配器的輸出設(shè)備M0,例如監(jiān)視器、揚(yáng)聲器和打印機(jī)。輸出適配器542包括但不限于,提供輸出設(shè)備540和系統(tǒng)總線518之間的連接的視頻卡和聲卡。諸如遠(yuǎn)程計(jì)算機(jī)544這樣的其它設(shè)備和/或系統(tǒng)或設(shè)備可以同時(shí)提供輸入和輸出的能力。計(jì)算機(jī)512可以在使用邏輯連接到諸如遠(yuǎn)程計(jì)算機(jī)544的一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的網(wǎng)絡(luò)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)544可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它常用網(wǎng)絡(luò)節(jié)點(diǎn),并且一般包括以上描述的與計(jì)算機(jī)512有關(guān)的眾多或全部的元素, 盡管在圖4中僅示出了存儲(chǔ)器存儲(chǔ)設(shè)備M6??梢酝ㄟ^通信連接550來邏輯連接遠(yuǎn)程計(jì)算機(jī)討4。網(wǎng)絡(luò)接口 548包括諸如局域網(wǎng)(LANs)和廣域網(wǎng)(WANs)的通信網(wǎng)絡(luò),但也可以包括其它網(wǎng)絡(luò)。通信連接550指的是將網(wǎng)絡(luò)接口 548與總線518連接所采用的硬件/軟件。 連接550可以是計(jì)算機(jī)512內(nèi)部的或外部的,并且包括諸如調(diào)制解調(diào)器(電話機(jī)、電纜、DSL和無線)和ISDN適配器、以太網(wǎng)卡等的內(nèi)部和外部技術(shù)。應(yīng)當(dāng)理解到所示網(wǎng)絡(luò)連接僅是示例,并且可以使用在計(jì)算機(jī)之間建立通信鏈路的其它方法。一名本領(lǐng)域的一般技術(shù)人員應(yīng)當(dāng)理解到可以部署計(jì)算機(jī)512或其它客戶設(shè)備以作為計(jì)算機(jī)網(wǎng)絡(luò)的部分。就這一點(diǎn)而言,此處所公開的主題可以針對(duì)具有任何數(shù)量的存儲(chǔ)器或存儲(chǔ)單元、以及具有跨任何數(shù)量的存儲(chǔ)單元或卷發(fā)生的任何數(shù)量的應(yīng)用程序和進(jìn)程的任何計(jì)算機(jī)系統(tǒng)。此處所公開的主題的方面可以應(yīng)用于在網(wǎng)絡(luò)環(huán)境中部署具有遠(yuǎn)程或本地存儲(chǔ)的服務(wù)器計(jì)算機(jī)和客戶計(jì)算機(jī)的環(huán)境。此處所公開的主題的方面還可以應(yīng)用于具有程序設(shè)計(jì)語言功能、解釋和執(zhí)行能力的獨(dú)立的計(jì)算設(shè)備。圖4示出集成開發(fā)環(huán)境(IDE) 600和公用語言運(yùn)行時(shí)環(huán)境602。IDE 600可以允許用戶(例如開發(fā)者、程序員、設(shè)計(jì)者、編碼員等)在計(jì)算機(jī)系統(tǒng)中設(shè)計(jì)、編碼、編譯、測(cè)試、運(yùn)行、編輯、調(diào)試或建立程序、程序集、網(wǎng)絡(luò)站點(diǎn)、網(wǎng)絡(luò)應(yīng)用、以及網(wǎng)絡(luò)服務(wù)。軟件程序可以包括由一種或多種源代碼語言(例如 Visual Basic,Visual J#、C++、C#、J#、Java Script、APL、 COBOL、Pascal、Eiffel、Haskell、ML、Oberon> Perl、Python、Scheme、Smalltalk 等)創(chuàng)建的源代碼(組件610)。IDE 600可以提供本地的代碼開發(fā)環(huán)境,或提供在虛擬機(jī)器上運(yùn)行的托管代碼開發(fā),或者提供兩者的組合。IDE 600可以提供使用.NET構(gòu)架的托管代碼開發(fā)環(huán)境。當(dāng)執(zhí)行應(yīng)用程序時(shí),可以使用語言特定的源編譯器620以通過源代碼組件610和本地代碼組件611來創(chuàng)建中間語言組件650,并且使用中間語言編譯器660(例如即時(shí)(JIT) 編譯器)以通過中間語言組件650來創(chuàng)建本地的代碼組件611(例如機(jī)器可執(zhí)行指令)。也就是說,當(dāng)執(zhí)行IL應(yīng)用程序時(shí),該IL應(yīng)用程序在被執(zhí)行到用于其執(zhí)行所在的平臺(tái)的適當(dāng)機(jī)器語言時(shí)被編譯。或者在其它實(shí)施例中,程序可以被編譯為適合其預(yù)期平臺(tái)的本地代碼機(jī)器語言(沒有示出)。根據(jù)通過IDE 600中的用戶界面640和源代碼編輯器651與具體源語言相關(guān)聯(lián)的已知軟件編程技術(shù)以及具體邏輯和句法規(guī)則,用戶可以創(chuàng)建和/或編輯源代碼組件。此后, 可以通過源編譯器620編譯源代碼組件610,據(jù)此可以創(chuàng)建諸如匯編630的程序的中間語言表示。匯編630可以包括中間語言組件650和元數(shù)據(jù)642。能夠在部署前驗(yàn)證應(yīng)用程序設(shè)計(jì)??梢越Y(jié)合硬件或軟件或者在適當(dāng)情況下兩者的組合來實(shí)現(xiàn)此處描述的各種技術(shù)。 因此,此處描述的方法和設(shè)備、或者其特定方面或部分可以采取在諸如軟磁盤、CD-ROMs、硬盤驅(qū)動(dòng)器、或任何其它機(jī)器可讀存儲(chǔ)介質(zhì)的實(shí)體介質(zhì)中包含的程序代碼(即指令)的形式, 其中,當(dāng)諸如計(jì)算機(jī)的機(jī)器載入并且執(zhí)行程序代碼時(shí),該機(jī)器成為用于實(shí)現(xiàn)此處所公開的主題的方面的設(shè)備。就可編程計(jì)算機(jī)上的程序代碼執(zhí)行而言,計(jì)算設(shè)備一般包括處理器、處理器可讀的存儲(chǔ)介質(zhì)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元素)、至少一個(gè)輸入設(shè)備、以及至少一個(gè)輸出設(shè)備??梢栽诟邔拥拿嫦蜻^程的或面向?qū)ο蟮某绦蛟O(shè)計(jì)語言中實(shí)現(xiàn)一個(gè)或多個(gè)程序以與計(jì)算機(jī)系統(tǒng)通信,例如通過使用數(shù)據(jù)處理API等以利用域特定的編程模塊方面的創(chuàng)建和/或?qū)崿F(xiàn)。但是如果需要,可以用匯編或機(jī)器語言實(shí)現(xiàn)程序。在任何情況下,語言可以是編譯或解釋的語言,并且與硬件實(shí)現(xiàn)結(jié)合。盡管結(jié)合附圖描述了此處所公開的主題,但是應(yīng)當(dāng)理解到可以做出修改以用不同的方法執(zhí)行同一功能。
權(quán)利要求
1.一種系統(tǒng)(100),包括處理器(142)和存儲(chǔ)器(144);以及模塊(106)被配置為使處理器(142)接收與由全局標(biāo)識(shí)符標(biāo)識(shí)的用戶界面元素相關(guān)聯(lián)的信息;將所接收的信息存儲(chǔ)在其關(guān)鍵為全局標(biāo)識(shí)符的用戶界面清單目錄(106)中,其中所述全局標(biāo)識(shí)符是跨計(jì)算機(jī)系統(tǒng)相同的,其中所述存儲(chǔ)在用戶界面清單目錄(106)中的信息包括用于用戶界面元素的元數(shù)據(jù)、在特定時(shí)間點(diǎn)處用戶界面元素的狀態(tài)、在場(chǎng)景內(nèi)特定時(shí)間點(diǎn)處與用戶界面元素的狀態(tài)相關(guān)聯(lián)的信息、與用戶元素中的變化相關(guān)聯(lián)的事件、或者一系列與包含用戶界面元素在內(nèi)的用戶界面元素的連續(xù)進(jìn)展的用戶交互。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括被配置為使處理器使用由一模塊收集的信息來更新用戶界面清單目錄的模塊,所述模塊將從正在執(zhí)行的應(yīng)用程序收集的信息存儲(chǔ)在日志文件中,所收集的信息與用戶界面元素相關(guān)聯(lián)。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括一模塊,所述模塊被配置為使處理器分析與由全局標(biāo)識(shí)符標(biāo)識(shí)的并且存儲(chǔ)在用戶界面清單目錄中的用戶界面元素相關(guān)聯(lián)的的 fn息ο
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括一模塊,所述模塊被配置為使處理器報(bào)告由全局標(biāo)識(shí)符標(biāo)識(shí)的并且存儲(chǔ)在用戶界面清單目錄中的用戶界面元素的測(cè)試程度。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述用于用戶界面元素的全局標(biāo)識(shí)符來源于響應(yīng)用戶界面元素的激活而返回的可訪問性信息。
6.一種方法,包括接收與軟件開發(fā)計(jì)算機(jī)上的用戶界面元素相關(guān)聯(lián)的信息,所述用戶界面元素由全局標(biāo)識(shí)符標(biāo)識(shí),其中所述全局標(biāo)識(shí)符來源于與用戶界面元素相關(guān)聯(lián)的可訪問性信息O04);將所接收的信息存儲(chǔ)在用戶界面清單數(shù)據(jù)庫中,所接收的信息是響應(yīng)于用戶界面元素的激活從正在執(zhí)行的應(yīng)用程序處被收集的O06);分析所存儲(chǔ)的信息以量化用戶界面元素的測(cè)試和使用的程度(208)。
7.如權(quán)利要求6所述的方法,其特征在于,所存儲(chǔ)的信息包括在特定時(shí)間點(diǎn)處用戶界面元素的狀態(tài)、在場(chǎng)景內(nèi)特定時(shí)間點(diǎn)處與用戶界面元素的狀態(tài)相關(guān)聯(lián)的信息、一系列與包含用戶界面元素在內(nèi)的用戶界面元素的連續(xù)進(jìn)展的用戶交互、用戶界面元素全局標(biāo)識(shí)符、 或者用于用戶界面元素的元數(shù)據(jù)。
8.如權(quán)利要求6所述的方法,其特征在于,還包括用來自用戶界面清單數(shù)據(jù)庫的信息覆蓋所存儲(chǔ)的信息以將包含有用戶界面元素的所記錄的場(chǎng)景的結(jié)果外插至多個(gè)不同的計(jì)算機(jī)系統(tǒng)設(shè)置。
9.如權(quán)利要求6所述的方法,其特征在于,還包括基于所分析的信息以生成關(guān)于用戶界面元素的使用和測(cè)試程度的報(bào)告。
10.如權(quán)利要求8所述的方法,其特征在于,還包括用從多個(gè)計(jì)算機(jī)上的多個(gè)正在執(zhí)行的應(yīng)用程序處收集的信息來更新用戶界面清單目錄,在所述計(jì)算機(jī)中用戶界面元素被激活。
11.一種包括計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在執(zhí)行時(shí)使至少一個(gè)處理器接收與由全局標(biāo)識(shí)符標(biāo)識(shí)的用戶界面元素相關(guān)聯(lián)的信息,其中所述全局標(biāo)識(shí)符來源于與用戶界面元素相關(guān)聯(lián)的可訪問性信息O04);將所接收的信息存儲(chǔ)在其關(guān)鍵為全局標(biāo)識(shí)符的用戶界面清單數(shù)目錄中,其中所述全局標(biāo)識(shí)符是跨系統(tǒng)相同的,其中所述存儲(chǔ)在用戶界面清單目錄中的信息包括在特定時(shí)間點(diǎn)處用戶界面元素的狀態(tài)和元數(shù)據(jù)、在場(chǎng)景內(nèi)特定時(shí)間點(diǎn)處與用戶界面元素的狀態(tài)相關(guān)聯(lián)的信息、與用戶元素中的變化相關(guān)聯(lián)的事件、或者一系列與包含用戶界面元素在內(nèi)的用戶界面元素的連續(xù)進(jìn)展的用戶交互006)。
12.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令在執(zhí)行時(shí)使至少一個(gè)處理器分析與由全局標(biāo)識(shí)符標(biāo)識(shí)的并且存儲(chǔ)在用戶界面清單目錄中的用戶界面元素相關(guān)聯(lián)的信息,以報(bào)告用戶界面元素的測(cè)試或使用的程度。
13.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令在執(zhí)行時(shí)使至少一個(gè)處理器用由一模塊從正在執(zhí)行的應(yīng)用程序收集的信息來更新用戶界面清單目錄,所述模塊將與用戶界面元素相關(guān)聯(lián)的所收集的信息存儲(chǔ)在日志文件中。
14.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令在執(zhí)行時(shí)使至少一個(gè)處理器通過分析存儲(chǔ)在用戶界面清單目錄中的信息來量化用戶界面元素的測(cè)試或使用的程度。
15.如權(quán)利要求11所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括計(jì)算機(jī)可執(zhí)行指令,所述計(jì)算機(jī)可執(zhí)行指令在執(zhí)行時(shí)使至少一個(gè)處理器通過用來自用戶界面清單數(shù)據(jù)庫的信息覆蓋所存儲(chǔ)的信息,并且通過回放場(chǎng)景,來外插包含有用戶界面元素的所記錄場(chǎng)景的結(jié)果。
全文摘要
本發(fā)明涉及用戶界面清單。標(biāo)識(shí)用戶界面元素并且將其編目到其關(guān)鍵為全局用戶界面元素標(biāo)識(shí)符的用戶界面清單數(shù)據(jù)庫中。收集用于正在執(zhí)行的一個(gè)或多個(gè)應(yīng)用程序中被激活的用戶界面元素的信息。收集場(chǎng)景信息并且將其用于更新用戶界面清單數(shù)據(jù)庫。場(chǎng)景信息包括有關(guān)用戶界面元素的使用、狀態(tài)變化等的及時(shí)的信息??梢钥缫欢螘r(shí)間以及從多個(gè)不同的計(jì)算機(jī)系統(tǒng)處收集所述信息??梢苑治鲈撔畔⒁源_定和量化用戶界面元素的使用和測(cè)試。所分析的信息可以被用于確定有多徹底地測(cè)試了用戶界面元素,用戶界面元素有多經(jīng)常地如預(yù)期工作的,最常用的用戶界面元素以及其它信息。所收集的信息可以被用于跟蹤、量化以及標(biāo)識(shí)用戶界面元素的所有權(quán)。
文檔編號(hào)G06F11/36GK102279791SQ20111016830
公開日2011年12月14日 申請(qǐng)日期2011年6月10日 優(yōu)先權(quán)日2010年6月11日
發(fā)明者B·D·漢弗萊, D·G·芬克, D·克萊門提夫, G·E·墨菲三世, J·A·格里夫斯, P·J·里德, V·斯里拉姆 申請(qǐng)人:微軟公司