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

通過模型驅(qū)動(dòng)技術(shù)進(jìn)行自動(dòng)用戶界面(UI)測試的方法和系統(tǒng)與流程

文檔序號(hào):11199116閱讀:348來源:國知局
通過模型驅(qū)動(dòng)技術(shù)進(jìn)行自動(dòng)用戶界面(UI)測試的方法和系統(tǒng)與流程

相關(guān)申請(qǐng)的交叉引用和優(yōu)先權(quán)

本專利申請(qǐng)要求于2016年3月22日提交的印度專利申請(qǐng)201621010029的優(yōu)先權(quán),其全部內(nèi)容通過引用并入本文。

本申請(qǐng)一般涉及用戶界面(ui)測試用例建模。特別地,本申請(qǐng)?zhí)峁┝艘环N通過利用底層的模型驅(qū)動(dòng)ui生成框架來創(chuàng)建測試用例模型的方法和系統(tǒng)。



背景技術(shù):

應(yīng)用的用戶界面(ui)包括大量元素,諸如對(duì)話框(例如彈出窗口、屏幕等),其中每一個(gè)可以包含一個(gè)或多個(gè)控件,例如文本區(qū)域或框、帶有文本的按鈕等。隨著產(chǎn)品的開發(fā),ui元素改變,并且這可能在ui中引入缺陷或故障,由此可能導(dǎo)致應(yīng)用的嚴(yán)重故障。使問題嚴(yán)重的是,應(yīng)用程序開發(fā)人員面臨不斷添加新特征、更新ui和發(fā)布新版本應(yīng)用程序的壓力。因此,很少出現(xiàn)原始測試腳本可以充分測試后續(xù)修訂的應(yīng)用程序的情況。

現(xiàn)有工作已經(jīng)認(rèn)識(shí)到,手動(dòng)測試ui應(yīng)用是單調(diào)冗長的、容易出錯(cuò)的和艱巨的。因此,大多數(shù)現(xiàn)有解決方案依賴于ui應(yīng)用的自動(dòng)化測試。為了自動(dòng)測試ui應(yīng)用,測試工程師使用腳本語言(例如javascript和vbscript)編寫程序。編寫ui自動(dòng)化測試腳本是一項(xiàng)具有挑戰(zhàn)性的活動(dòng),需要用于編寫測試用例的測試腳本語言的健全的工作知識(shí)。此外,手動(dòng)編寫ui自動(dòng)化測試用例需要大量的試錯(cuò)以及工作量消耗。此外,在測試腳本語言語法中存在任何更新或修改、或者需要以不同腳本語言編寫測試腳本的情況下,由于返工而涉及極大的工作量。

此外,常規(guī)技術(shù)需要的是,必須為每個(gè)測試用例手動(dòng)指定用于手動(dòng)自動(dòng)化測試用例的測試數(shù)據(jù),這使得使用具有不同測試數(shù)據(jù)的相同測試用例來創(chuàng)建回歸測試成為繁瑣且費(fèi)力的活動(dòng)。

由于期望同一應(yīng)用在許多不同的計(jì)算機(jī)操作系統(tǒng)上以相同方式操作,而使得上述測試問題復(fù)雜化。例如,windows應(yīng)用程序通常期望與目前由公眾使用的所有或大多數(shù)microsoft操作系統(tǒng)一起工作。

一些現(xiàn)有技術(shù)文獻(xiàn)公開了直接從用戶接口生成測試用例。直接從用戶界面生成測試用例的過程是技術(shù)或平臺(tái)驅(qū)動(dòng)的,而不是技術(shù)或平臺(tái)獨(dú)立的,這大幅增加了實(shí)現(xiàn)、維護(hù)或遷移測試用例所需的工作量。此外,在ui發(fā)生變化的情況下,實(shí)現(xiàn)、維護(hù)或遷移測試用例變得更具挑戰(zhàn)性。

另一組現(xiàn)有技術(shù)文獻(xiàn)使用用于測試腳本生成的抽象模型,即實(shí)現(xiàn)用于軟件測試的基于模型的測試代碼生成。然而,現(xiàn)有技術(shù)文獻(xiàn)實(shí)現(xiàn)了用于從現(xiàn)有和已經(jīng)運(yùn)行的應(yīng)用直接生成測試腳本的技術(shù)。直接從正在運(yùn)行的應(yīng)用生成測試腳本具有降低執(zhí)行測試腳本時(shí)的可定制性的缺點(diǎn)?,F(xiàn)有技術(shù)的另一障礙在于,使得用于在運(yùn)行期間測試ui模型的測試用例的生成自動(dòng)化。

如果可以以使得測試用例指定(specification)與實(shí)現(xiàn)相分離的方式來改變(leverage)模型驅(qū)動(dòng)生成技術(shù),則將是有利的。需要有一種機(jī)制來自動(dòng)生成測試用例,就與技術(shù)、平臺(tái)、腳本語言等的獨(dú)立性而言,其具有更好的可定制性。因此,改變用于自動(dòng)生成和驗(yàn)證測試用例的模型驅(qū)動(dòng)技術(shù)仍然被認(rèn)為是該技術(shù)領(lǐng)域最大的挑戰(zhàn)之一。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的

根據(jù)本發(fā)明,主要目的是提供一種用于從ui模型內(nèi)容自動(dòng)指定測試用例模型的方法和系統(tǒng)。

本發(fā)明的一個(gè)目的是提供一種用于對(duì)應(yīng)于ui模型元素中的相關(guān)變化自動(dòng)更新測試用例模型的方法和系統(tǒng)。

本發(fā)明的另一目的是提供一種用于從測試用例模型對(duì)任何技術(shù)單擊生成自動(dòng)測試用例的方法和系統(tǒng)。

本發(fā)明的另一個(gè)目的是提供一種用于通過在模型級(jí)別上自動(dòng)同步ui模型和ui測試用例,以便于在所生成的ui屏幕上無縫執(zhí)行所生成的測試腳本的方法和系統(tǒng)。

本發(fā)明的另一目的是提供一種用于通過以技術(shù)獨(dú)立的方式指定和存儲(chǔ)測試用例模型,來以任何技術(shù)生成測試用例的方法和系統(tǒng)。

當(dāng)結(jié)合附圖閱讀時(shí),通過下面的描述,本發(fā)明的其它目的和優(yōu)點(diǎn)將更加明顯,附圖不旨在限制本公開的范圍。

本發(fā)明的內(nèi)容

在描述本公開的方法、系統(tǒng)和硬件實(shí)現(xiàn)之前,應(yīng)當(dāng)理解,本發(fā)明不限于所描述的特定系統(tǒng)和方法,因?yàn)榭梢源嬖诒景l(fā)明的多個(gè)可能的實(shí)施例,其未在本公開中明確地示出。還應(yīng)當(dāng)理解,本說明書中使用的術(shù)語僅用于描述特定版本或?qū)嵤├哪康?,并且不旨在限制本發(fā)明的范圍,本發(fā)明的范圍將僅由所附權(quán)利要求限定。

本申請(qǐng)?zhí)峁┝艘环N用于通過模型驅(qū)動(dòng)技術(shù)進(jìn)行自動(dòng)ui測試的方法和系統(tǒng)。

在一個(gè)實(shí)施例中,公開了一種用于通過模型驅(qū)動(dòng)技術(shù)進(jìn)行自動(dòng)ui測試的方法。該方法包括:處理器,被配置為選擇ui模型;所述處理器還被配置為為所選擇ui模型創(chuàng)建測試用例模型,并將創(chuàng)建的測試用例模型填充到測試用例編輯器中(222),其中所述測試用例模型基于所選擇ui模型的結(jié)構(gòu)模式被創(chuàng)建為ui動(dòng)作序列;所述處理器還被配置為驗(yàn)證用于所選擇ui模型的測試用例模型。此外,處理器被配置為從用于所選擇ui模型的測試用例模型生成測試用例腳本。

在另一實(shí)施例中,本申請(qǐng)公開了一種用于通過模型驅(qū)動(dòng)技術(shù)進(jìn)行自動(dòng)ui測試的系統(tǒng)(102)。系統(tǒng)(102)包括處理器(202)和耦接到所述處理器的存儲(chǔ)器(206),所述系統(tǒng)還包括被配置為選擇用戶界面(ui)模型的選擇模塊(210)。該系統(tǒng)還包括測試用例模型創(chuàng)建模塊(212),其被配置為為所選擇ui模型創(chuàng)建測試用例模型,并將創(chuàng)建的測試用例模型填充到測試用例編輯器(222)中,其中,測試用例模型基于所選擇ui模型的結(jié)構(gòu)模式被創(chuàng)建為ui動(dòng)作序列。該系統(tǒng)還包括驗(yàn)證模塊(214),其被配置為驗(yàn)證用于所選擇ui模型的測試用例模型。此外,該系統(tǒng)包括腳本生成模塊(216),其被配置為從用于所選擇ui模型的測試用例模型生成測試用例腳本。

附圖說明

當(dāng)結(jié)合附圖閱讀時(shí),將更好地理解前述發(fā)明內(nèi)容以及優(yōu)選實(shí)施例的以下詳細(xì)描述。為了說明本發(fā)明的目的,在附圖中示出了本發(fā)明的示例性結(jié)構(gòu);然而,本發(fā)明不限于所公開的具體方法和系統(tǒng)。在附圖中:

圖1示出了用于通過模型驅(qū)動(dòng)技術(shù)的自動(dòng)ui測試的系統(tǒng)(102)的網(wǎng)絡(luò)實(shí)現(xiàn)。

圖2示出了用于通過模型驅(qū)動(dòng)技術(shù)的自動(dòng)ui測試的系統(tǒng)(102)的框圖。

圖3示出了用于通過模型驅(qū)動(dòng)技術(shù)的自動(dòng)ui測試的方法的流程圖。

圖4示出了利用以事件為中心的方法,來創(chuàng)建對(duì)應(yīng)于所選擇的ui模型的測試用例模型的高級(jí)過程的流程圖。

圖5示出了利用以用戶交互為中心的方法,創(chuàng)建與所選擇的ui模型相對(duì)應(yīng)的測試用例模型的高級(jí)過程的流程圖。

具體實(shí)施方式

以下詳細(xì)討論了示出本發(fā)明全部特征的一些實(shí)施例。

詞語“包括”、“具有”、“含有”和“包括”及其其它形式在意義上被認(rèn)為是等同的,并且是開放式的,因?yàn)榫o隨這些詞語中任何一個(gè)詞語之后的一個(gè)或多個(gè)細(xì)項(xiàng)并不意味著這個(gè)細(xì)項(xiàng)或這些細(xì)項(xiàng)已經(jīng)被詳盡的羅列出來,或者,并不意味著僅限于所列的這個(gè)細(xì)項(xiàng)或多個(gè)細(xì)項(xiàng)。

還應(yīng)當(dāng)注意到的是,如本文和所附權(quán)利要求中所使用的,單數(shù)形式“一”、“一個(gè)”和“該”包括復(fù)數(shù)指代,除非上下文另有明確指示。雖然與本文所描述的系統(tǒng)和方法類似或等同的任何系統(tǒng)和方法可以用于本發(fā)明實(shí)施例的實(shí)踐或測試中,但優(yōu)選的是當(dāng)前描述的系統(tǒng)和方法。

所公開的實(shí)施例僅僅是本發(fā)明的示例,本發(fā)明可以以多種形式實(shí)現(xiàn)。

附圖中所示的元件將如下文更加詳細(xì)解釋地那樣進(jìn)行交互操作。但是,在闡述詳細(xì)的說明之前,應(yīng)當(dāng)注意,不管所描述的具體實(shí)施方案,以下的所有討論本質(zhì)上都是示例性的,而不是限制性的。例如,雖然實(shí)施方案的所選方案、特征或組件被描述為存儲(chǔ)在儲(chǔ)存器中,但是與摩擦預(yù)警系統(tǒng)和方法一致的系統(tǒng)和方法的全部或部分可以存儲(chǔ)在其它機(jī)器可讀介質(zhì)上、分布在其它機(jī)器可讀介質(zhì)之間、或從其它機(jī)器可讀介質(zhì)中讀取。

可以用在可編程計(jì)算機(jī)上執(zhí)行的(或可由可編程計(jì)算機(jī)執(zhí)行的)一個(gè)或多個(gè)計(jì)算機(jī)程序來實(shí)現(xiàn)上述技術(shù),所述可編程計(jì)算機(jī)包括任意數(shù)量的下述器件的任意組合:處理器、處理器可讀和/或可寫的存儲(chǔ)介質(zhì)(包括例如易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元件)、多個(gè)輸入單元、以及多個(gè)輸出裝置??梢岳盟龆鄠€(gè)輸入單元中的任何一個(gè)將程序代碼應(yīng)用于所錄入的輸入,以便執(zhí)行所描述的功能,并且生成顯示在所述多個(gè)輸出裝置中的任意一個(gè)上的輸出。

下述權(quán)利要求范圍內(nèi)的各個(gè)計(jì)算機(jī)程序可以以任何編程語言來實(shí)現(xiàn),諸如匯編語言、機(jī)器語言、高級(jí)過程編程語言或面向?qū)ο蟮木幊陶Z言。編程語言可以例如是編譯或解譯的編程語言。每個(gè)這樣的計(jì)算機(jī)程序可以用計(jì)算機(jī)程序產(chǎn)品來實(shí)現(xiàn),所述計(jì)算機(jī)程序產(chǎn)品被有形地實(shí)現(xiàn)在機(jī)器可讀存儲(chǔ)設(shè)備中,以便由計(jì)算機(jī)處理器來執(zhí)行。

本發(fā)明的方法步驟可以由執(zhí)行了程序的一個(gè)或多個(gè)計(jì)算機(jī)處理器來執(zhí)行,所述程序被有形地實(shí)現(xiàn)在計(jì)算機(jī)可讀介質(zhì)上,以便通過運(yùn)行輸入并生成輸出來執(zhí)行本發(fā)明的功能。舉例來說,適當(dāng)?shù)奶幚砥靼ǎ和ㄓ煤蛯S梦⑻幚砥?。通常,處理器從存?chǔ)器(例如只讀存儲(chǔ)器和/或隨機(jī)存取存儲(chǔ)器)接收(讀取)指令和數(shù)據(jù),并且向存儲(chǔ)器寫入(存儲(chǔ))指令和數(shù)據(jù)。適用于有形地實(shí)現(xiàn)計(jì)算機(jī)程序指令和數(shù)據(jù)的存儲(chǔ)裝置包括例如,所有形式的非易失性存儲(chǔ)器,例如半導(dǎo)體存儲(chǔ)器裝置(包括eprom、eeprom、和快閃存儲(chǔ)器裝置)、磁盤(例如內(nèi)置硬磁盤和可移動(dòng)磁盤)、磁光盤以及cd-rom。前述任意一個(gè)可以由專門設(shè)計(jì)的asic(專用集成電路)或fpga(現(xiàn)場可編程門陣列)補(bǔ)充或被并入專門設(shè)計(jì)的asic或fpga中。計(jì)算機(jī)通常還可以從非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)接收(讀取)程序和數(shù)據(jù),并且可以向非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)寫入(存儲(chǔ))程序和數(shù)據(jù),其中非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)為例如內(nèi)置磁盤(未示出)或可移動(dòng)磁盤。

本文公開的任何數(shù)據(jù)可以例如以有形地存儲(chǔ)在非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)上的一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)。本發(fā)明的實(shí)施例可以將此類數(shù)據(jù)存儲(chǔ)在此類數(shù)據(jù)結(jié)構(gòu)中,并且從此類數(shù)據(jù)結(jié)構(gòu)讀取此類數(shù)據(jù)。

本申請(qǐng)?zhí)峁┝艘环N用于通過模型驅(qū)動(dòng)技術(shù)進(jìn)行自動(dòng)ui測試的計(jì)算機(jī)實(shí)現(xiàn)的方法和系統(tǒng)。

圖1示出了根據(jù)本發(fā)明主題的實(shí)施例的用于通過模型驅(qū)動(dòng)技術(shù)進(jìn)行自動(dòng)ui測試的系統(tǒng)的網(wǎng)絡(luò)實(shí)現(xiàn)。盡管考慮到系統(tǒng)102在服務(wù)器上實(shí)現(xiàn)來說明本發(fā)明主題,但是可以理解,系統(tǒng)102還可以在各種計(jì)算系統(tǒng)中實(shí)現(xiàn),諸如膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、筆記本、工作站、大型計(jì)算機(jī)、服務(wù)器、網(wǎng)絡(luò)服務(wù)器等。在一個(gè)實(shí)現(xiàn)方式中,系統(tǒng)102可以在基于云的環(huán)境中實(shí)現(xiàn)。應(yīng)當(dāng)理解,系統(tǒng)102可以由多個(gè)用戶通過一個(gè)或多個(gè)用戶設(shè)備104-1、104-2...104-n(下文中統(tǒng)稱為用戶設(shè)備104)或駐留在用戶設(shè)備104上的應(yīng)用來訪問。用戶設(shè)備104的示例可以包括但不限于便攜式計(jì)算機(jī)、個(gè)人數(shù)字助理、手持設(shè)備和工作站。用戶設(shè)備104通過網(wǎng)絡(luò)106通信地耦接到系統(tǒng)102。

在一個(gè)實(shí)現(xiàn)方式中,網(wǎng)絡(luò)106可以是無線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)或其組合。網(wǎng)絡(luò)106可以被實(shí)現(xiàn)為不同類型的網(wǎng)絡(luò)之一,諸如內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(lan)、廣域網(wǎng)(wan)、因特網(wǎng)等。網(wǎng)絡(luò)106可以是專用網(wǎng)絡(luò)或共享網(wǎng)絡(luò)。共享網(wǎng)絡(luò)表示使用各種協(xié)議(例如,超文本傳輸協(xié)議(http)、傳輸控制協(xié)議/因特網(wǎng)協(xié)議(tcp/ip)、無線應(yīng)用協(xié)議(wap)等)的不同類型的網(wǎng)絡(luò)的關(guān)聯(lián),以便彼此通信。此外,網(wǎng)絡(luò)106可以包括各種網(wǎng)絡(luò)設(shè)備,包括路由器、網(wǎng)橋、服務(wù)器、計(jì)算設(shè)備、存儲(chǔ)設(shè)備等。

參考圖2,描述了根據(jù)所公開主題的實(shí)施例的系統(tǒng)102的各種部件的詳細(xì)工作。

在本發(fā)明的一個(gè)實(shí)施例中,參考圖2,公開了用于通過模型驅(qū)動(dòng)技術(shù)進(jìn)行自動(dòng)ui測試的系統(tǒng)。在一個(gè)實(shí)施例中,系統(tǒng)(102)包括處理器(202)和通信地耦接到所述處理器的存儲(chǔ)器(206),以通過執(zhí)行存儲(chǔ)在所述存儲(chǔ)器中的指令來執(zhí)行功能。在另一實(shí)施例中,系統(tǒng)包括選擇模塊(210),其被配置為從需要ui測試的應(yīng)用中選擇對(duì)應(yīng)于ui的ui模型。在另一實(shí)施例中,與一個(gè)或多個(gè)應(yīng)用相對(duì)應(yīng)的ui模型存儲(chǔ)在存儲(chǔ)模塊(224)中。此外,測試用例模型創(chuàng)建模塊(212)可以被配置為為所選擇的ui模型創(chuàng)建測試用例模型,并將創(chuàng)建的測試模型填充到測試用例編輯器(222)中。在一個(gè)方面中,可以基于所選擇的ui模型的結(jié)構(gòu)模式將測試用例模型創(chuàng)建為ui動(dòng)作序列。在另一方面,測試用例編輯器(222)可以被配置為顯示測試用例模型并編輯測試用例模型。在另一方面,測試用例編輯器(222)可以被配置為通過添加新步驟、修改現(xiàn)有步驟、記錄現(xiàn)有步驟并刪除測試用例模型的現(xiàn)有步驟,來編輯測試用例模型。

此外,所述系統(tǒng)包括配置為相對(duì)于對(duì)應(yīng)的ui模型來驗(yàn)證測試用例模型的驗(yàn)證模塊(214)。測試用例模型的驗(yàn)證可以包括基于規(guī)則引擎(220)來評(píng)估測試用例模型。規(guī)則引擎(220)可以包括一組預(yù)定義的規(guī)則和約束,其確保測試用例模型的完整性、一致性和正確性。此外,測試用例模型的驗(yàn)證可以包括但不限于針對(duì)ui模型的測試用例模型的語法和語義評(píng)估。在一個(gè)實(shí)施例中,所述規(guī)則和約束可以被編碼在腳本中,所述腳本在被執(zhí)行時(shí)評(píng)估測試用例模型是否遵守編碼在腳本中的所述規(guī)則和約束中的每一個(gè)。如果發(fā)生違規(guī),驗(yàn)證將標(biāo)記為失敗。例如,取整數(shù)值的字段不能映射到string類型服務(wù)參數(shù)。此后,腳本生成模塊(216)可以被配置為從目標(biāo)平臺(tái)的經(jīng)驗(yàn)證的測試用例模型生成測試用例腳本。此外,所生成的測試腳本用于測試相應(yīng)的ui應(yīng)用。

在一個(gè)實(shí)施例中,測試用例模型創(chuàng)建器模塊(212)可以被配置為在將所創(chuàng)建的測試用例模型填充到測試用例編輯器(222)中之前,為指定ui模型創(chuàng)建測試用例模型。為指定模型創(chuàng)建測試用例模型可以基于:(i)以事件為中心的方法,(ii)以用戶交互為中心的方法、或以事件為中心的方法和以用戶交互為中心的方法的組合。所述模型的選擇可以基于用戶界面(ui)是處于開發(fā)階段還是已經(jīng)被開發(fā)完成的考量。在優(yōu)選實(shí)施例中,當(dāng)需要在進(jìn)行中的ui屏幕中對(duì)單個(gè)事件進(jìn)行單元測試時(shí),可以使用以事件為中心的方法用于ui開發(fā)期間的測試用例的建模。在另一個(gè)優(yōu)選實(shí)施例中,當(dāng)需要從以用戶交互為中心的方法測試已經(jīng)實(shí)現(xiàn)的ui屏幕時(shí),可以使用以用戶交互為中心的方法來建模測試用例。在呈現(xiàn)本申請(qǐng)的主題時(shí),本領(lǐng)域技術(shù)人員將顯見的是,可以基于以事件為中心的步驟和以用戶交互為中心的步驟的組合來創(chuàng)建測試用例模型,這些步驟可以基于分別如圖4和圖5所闡述的以事件為中心的方法和以用戶交互為中心的方法來實(shí)現(xiàn)。

在另一實(shí)施例中,同步模塊(218)可以被配置為基于所選擇的ui模型的結(jié)構(gòu)模式,將所選擇的ui模型的測試用例模型與所選擇的ui模型同步為ui動(dòng)作序列。由于ui動(dòng)作的隨機(jī)性,所以在ui模型中發(fā)生變化。為了確保ui模型中的改變與所選擇的ui模型的測試用例模型自動(dòng)同步,系統(tǒng)實(shí)現(xiàn)有該同步模塊(218)。此外,同步模塊(218)被配置為監(jiān)視ui模型中的改變,并且使所述改變與對(duì)應(yīng)的測試用例模型自動(dòng)同步。

在又一個(gè)實(shí)施例中,測試用例編輯器(222)可以被配置為顯示測試用例模型,并且為用戶提供句柄,用于添加新步驟、修改現(xiàn)有步驟、記錄現(xiàn)有步驟和刪除現(xiàn)有步驟。此外,測試用例編輯器(222)提供句柄以觸發(fā)測試用例模型的驗(yàn)證和根據(jù)測試用例模型生成測試腳本。此外,測試用例編輯器(222)可以被配置為自動(dòng)刷新和反映與ui模型中的改變相對(duì)應(yīng)的在測試用例模型中發(fā)生的改變。

在又一實(shí)施例中,作為模型驅(qū)動(dòng)的ui建模和生成框架的一部分的存儲(chǔ)模塊(224)可以被配置為存儲(chǔ)和訪問對(duì)應(yīng)于一個(gè)或多個(gè)應(yīng)用的一個(gè)或多個(gè)ui模型。存儲(chǔ)模塊(224)還可以被配置為存儲(chǔ)和訪問測試用例模型和經(jīng)編輯的測試用例模型以及ui模型。

在一個(gè)實(shí)施例中,使用腳本生成模塊(216)根據(jù)驗(yàn)證的測試用例模型生成的測試腳本可以在使用測試執(zhí)行引擎的自動(dòng)執(zhí)行系統(tǒng)中執(zhí)行。自動(dòng)執(zhí)行系統(tǒng)被配置為適合于測試腳本以及測試數(shù)據(jù)將被執(zhí)行的環(huán)境。測試腳本的執(zhí)行進(jìn)一步產(chǎn)生測試結(jié)果,以驗(yàn)證ui應(yīng)用程序如預(yù)期地執(zhí)行。

盡管已經(jīng)用對(duì)結(jié)構(gòu)特征和/或方法特定的語言描述了本發(fā)明主題的方法和系統(tǒng)的實(shí)施例,但是應(yīng)當(dāng)理解,本發(fā)明主題不一定限于所描述的特定特征或方法。相反,這些具體特征和方法作為本發(fā)明主題的示例性實(shí)施例被公開。

圖3是示出根據(jù)本文公開主題的實(shí)施例的用于通過模型驅(qū)動(dòng)技術(shù)進(jìn)行自動(dòng)ui測試的方法的流程圖。根據(jù)圖2的說明,自動(dòng)ui測試用例建模和生成框架使用底層的模型驅(qū)動(dòng)ui生成框架。

該過程開始于步驟302,其中執(zhí)行所存儲(chǔ)的用戶界面(ui)模型的選擇。由于對(duì)應(yīng)于所選擇的ui模型創(chuàng)建測試用例模型,ui模型的選擇用作創(chuàng)建測試用例模型的倒數(shù)第二步。

在步驟304,將從所選擇ui模型創(chuàng)建的測試用例模型填充到測試用例編輯器。在一個(gè)方面中,可以基于所選擇的ui模型的結(jié)構(gòu)模式,將測試用例模型自動(dòng)創(chuàng)建為ui動(dòng)作序列。在另一方面,可以從頭創(chuàng)建并編輯測試用例模型。在另一方面,可以通過添加新步驟、修改現(xiàn)有步驟、記錄現(xiàn)有步驟并刪除測試用例模型的現(xiàn)有步驟來執(zhí)行編輯所填充的測試用例模型。在一個(gè)實(shí)施例中,創(chuàng)建對(duì)應(yīng)于所選ui模型的測試用例模型,其中測試用例模型的創(chuàng)建可以基于:(i)以事件為中心的方法,(ii)以用戶交互為中心的方法、或以事件為中心的方法和以用戶交互為中心的方法的組合。所述模型的選擇可以基于用戶界面(ui)是處于開發(fā)階段還是已經(jīng)被開發(fā)完成的考量。在優(yōu)選實(shí)施例中,當(dāng)需要對(duì)正在進(jìn)行的ui屏幕中的單個(gè)事件進(jìn)行單元測試時(shí),以事件為中心的模型可以用于ui開發(fā)期間的測試用例的建模。在另一個(gè)優(yōu)選實(shí)施例中,當(dāng)需要根據(jù)以用戶交互為中心的方法測試已經(jīng)實(shí)現(xiàn)的ui屏幕時(shí),以用戶交互為中心的模型可以用于測試用例的建模。在另一實(shí)施例中,基于從所選擇的ui模型的結(jié)構(gòu)模式獲得的ui動(dòng)作序列,來執(zhí)行用于所選擇的ui模型的測試用例模型與所選擇的ui模型的同步。由于ui動(dòng)作的隨機(jī)性,ui模型中發(fā)生變化。為了確保ui模型中的改變與對(duì)應(yīng)于ui模型所選擇的測試用例模型自動(dòng)同步,監(jiān)視ui模型中的改變,并且在觀察到任何改變的情況下,將所述改變與對(duì)應(yīng)的測試用例模型自動(dòng)同步,產(chǎn)生出更新的測試用例模型。

在步驟306,針對(duì)相應(yīng)的ui模型驗(yàn)證測試用例模型。測試用例模型的驗(yàn)證可以包括基于一組預(yù)定義規(guī)則和約束來評(píng)估測試用例模型,所述預(yù)定義規(guī)則和約束確保測試用例模型的完整性。此外,測試用例模型的驗(yàn)證可以包括但不限于針對(duì)ui模型的測試用例模型的語法和語義評(píng)估。在一個(gè)實(shí)施例中,所述規(guī)則和約束可以被編碼在腳本中,所述腳本在被執(zhí)行時(shí)評(píng)估測試用例模型是否遵守編碼在腳本中的所述規(guī)則和約束中的每一個(gè)。如果發(fā)生違規(guī),驗(yàn)證將標(biāo)記為失敗。例如,取整數(shù)值的字段不能映射到string類型服務(wù)參數(shù)。

該過程在步驟308結(jié)束,其中可以從目標(biāo)平臺(tái)的經(jīng)驗(yàn)證的測試用例模型生成測試腳本。此外,所生成的測試腳本用于測試相應(yīng)的ui應(yīng)用。在一個(gè)實(shí)施例中,可以從存儲(chǔ)模塊(224)存儲(chǔ)和訪問ui模型、測試用例模型和經(jīng)編輯的測試用例模型。

本領(lǐng)域技術(shù)人員將理解,盡管圖3的方法示出了所公開主題的工作方法,然而,該方法可以以任何順序使用,省略一個(gè)或多個(gè)步驟,或者以任何順序執(zhí)行任何步驟,并且這也形成所公開主題的一部分。

參考圖4,其是示出利用以事件為中心的方法,創(chuàng)建與所選擇的ui模型相對(duì)應(yīng)的測試用例模型的高級(jí)過程的流程圖。

在一個(gè)實(shí)施例中,圖4是用于創(chuàng)建與所選擇的ui模型相對(duì)應(yīng)的測試用例模型的以事件為中心的方法的應(yīng)用的圖示。如圖4所示,以事件為中心的方法包括創(chuàng)建測試或打開現(xiàn)有測試用例。此外,該過程包括將測試步驟添加到所創(chuàng)建的測試用例或現(xiàn)有測試用例。將測試步驟添加到測試用例中,直到測試用例的建模完成。在測試用例建模完成并且沒有更多測試步驟被添加到測試用例的情況下,ui動(dòng)作被保存。在測試用例建模未完成的情況下,可以將測試步驟添加到測試用例,以創(chuàng)建ui動(dòng)作。此外,該過程包括檢查數(shù)據(jù)規(guī)范、事件規(guī)范和ui元素規(guī)范的要求的步驟。此外,在需要數(shù)據(jù)規(guī)范、事件規(guī)范和觸發(fā)所述事件的ui元素中的任何一個(gè)的情況下,該過程基于所述要求,提示用戶指定數(shù)據(jù)規(guī)范、事件規(guī)范和觸發(fā)所述事件的ui元素。所述過程保持重復(fù),直到測試用例建模完成并且ui動(dòng)作被保存為止。

在示例性實(shí)施例中,參考圖4,示出了以事件為中心的方法闡明特定ui動(dòng)作的圖示。例如,用于創(chuàng)建在文本框(其用作對(duì)于服務(wù)的輸入之一)中設(shè)置數(shù)據(jù)的ui動(dòng)作的ui動(dòng)作包括以下步驟:(i)創(chuàng)建ui動(dòng)作;(ii)指定要在文本框中設(shè)置的數(shù)據(jù);(iii)選擇需要設(shè)置數(shù)據(jù)的所需文本框。該過程結(jié)束于在測試用例建模完成的情況下保存測試用例中保存ui動(dòng)作,否則,通過創(chuàng)建新的ui動(dòng)作/測試步驟或修改/刪除現(xiàn)有ui動(dòng)作/測試步驟來重復(fù)該過程。

在另一示例性實(shí)施例中,參考圖4,示出了以事件為中心的方法闡明特定ui動(dòng)作的圖示。例如,用于觸發(fā)按鈕的點(diǎn)擊事件進(jìn)而調(diào)用服務(wù)的ui動(dòng)作包括以下步驟:(i)創(chuàng)建ui動(dòng)作;(ii)將事件規(guī)范指定為點(diǎn)擊事件;(iii)選擇按鈕作為觸發(fā)事件的ui元素。該過程以在測試用例建模完成的情況下保存測試用例而結(jié)束,否則,通過創(chuàng)建新的ui動(dòng)作/測試步驟或修改/刪除現(xiàn)有ui動(dòng)作/測試步驟來重復(fù)該過程。

在另一示例性實(shí)施例中,參考圖4,示出了以事件為中心的方法闡明特定ui動(dòng)作的圖示。例如,用于通過服務(wù)將數(shù)據(jù)集維護(hù)(assert)于文本框中的ui動(dòng)作包括以下步驟:(i)創(chuàng)建ui動(dòng)作;(ii)根據(jù)服務(wù)指定期望數(shù)據(jù);及(iii)指定設(shè)置來自服務(wù)的數(shù)據(jù)的文本框。該過程在測試用例建模完成的情況下以保存測試用例而結(jié)束,否則,通過創(chuàng)建新的ui動(dòng)作/測試步驟或修改/刪除現(xiàn)有ui動(dòng)作/測試步驟重復(fù)該過程。

參考圖5,其是示出利用以用戶交互為中心的方法,創(chuàng)建與所選擇的ui模型相對(duì)應(yīng)的測試用例模型的高級(jí)過程的流程圖。

在一個(gè)實(shí)施例中,圖5是用于創(chuàng)建與所選擇的ui模型相對(duì)應(yīng)的測試用例模型的以用戶交互為中心的模型的應(yīng)用的圖示。如圖5所示,以用戶交互為中心的方法包括創(chuàng)建測試用例或打開現(xiàn)有測試用例。此外,該過程包括將測試步驟添加到所創(chuàng)建的測試用例或現(xiàn)有測試用例。將測試步驟添加到測試用例中,直到測試用例的建模完成為止。在測試用例建模完成并且沒有更多測試步驟被添加到測試用例的情況下,ui動(dòng)作被保存。在測試用例建模未完成的情況下,可以將測試步驟添加到測試用例,以創(chuàng)建ui動(dòng)作并指定ui動(dòng)作類型。此外,該過程包括檢查測試范圍數(shù)據(jù)的需求和動(dòng)作目標(biāo)的存在的步驟。此外,該過程涉及在需要測試范圍數(shù)據(jù)的情況下,提示用戶指定測試范圍數(shù)據(jù),以及在發(fā)現(xiàn)存在動(dòng)作目標(biāo)的情況下,提示用戶指定用于調(diào)用ui動(dòng)作的ui元素規(guī)范。所述過程保持重復(fù),直到測試用例建模完成并且ui動(dòng)作被保存為止。

在示例性實(shí)施例中,參考圖5,呈現(xiàn)了以用戶交互為中心的方法闡明特定ui動(dòng)作的圖示。例如,用于在文本框(其用作對(duì)于服務(wù)的輸入之一)中設(shè)置數(shù)據(jù)的ui動(dòng)作包括以下步驟:(i)創(chuàng)建ui動(dòng)作;(ii)選擇“設(shè)置數(shù)據(jù)”作為ui動(dòng)作類型;(iii)選擇所需的文本框作為動(dòng)作目標(biāo)。該過程以在測試用例建模完成的情況下保存測試用例而結(jié)束,否則通過創(chuàng)建新的ui動(dòng)作/測試步驟或修改/刪除現(xiàn)有ui動(dòng)作/測試步驟重復(fù)該過程。

在另一示例性實(shí)施例中,參考圖5,呈現(xiàn)了以用戶交互為中心的方法闡明特定ui動(dòng)作的圖示。例如,用于點(diǎn)擊按鈕的ui動(dòng)作包括以下步驟:(i)創(chuàng)建ui動(dòng)作;(ii)選擇“點(diǎn)擊”作為ui動(dòng)作類型;(iii)選擇所述按鈕作為在其上調(diào)用所述點(diǎn)擊ui動(dòng)作類型的動(dòng)作目標(biāo)。該過程以在測試用例建模完成的情況下保存測試用例而結(jié)束,否則通過創(chuàng)建新的ui動(dòng)作/測試步驟或修改/刪除現(xiàn)有ui動(dòng)作/測試步驟重復(fù)該過程。

在又一示例性實(shí)施例中,參考圖5,呈現(xiàn)了以用戶交互為中心的方法闡明特定ui動(dòng)作的圖示。例如,用于通過服務(wù)將數(shù)據(jù)集維護(hù)于文本框中的ui動(dòng)作包括以下步驟:(i)創(chuàng)建ui動(dòng)作;(ii)選擇“維護(hù)數(shù)據(jù)”作為ui動(dòng)作類型;(iii)選擇所需的文本框作為其內(nèi)容用期望數(shù)據(jù)維護(hù)的動(dòng)作目標(biāo)。該過程以在測試用例建模完成的情況下保存測試用例而結(jié)束,否則通過創(chuàng)建新的ui動(dòng)作/測試步驟或修改/刪除現(xiàn)有ui動(dòng)作/測試步驟重復(fù)該過程。

如本申請(qǐng)中所公開的用于根據(jù)具有預(yù)定義結(jié)構(gòu)模式的ui模型生成ui測試用例模型的技術(shù),節(jié)省了手動(dòng)創(chuàng)建測試用例模型的精力和時(shí)間。此外,根據(jù)ui模型創(chuàng)建ui測試用例模型確保了ui與測試用例之間的同步。此外,根據(jù)測試用例模型生成測試用例腳本消除了在升級(jí)測試用例腳本技術(shù)或遷移到較新技術(shù)期間的返工。所公開的方法和系統(tǒng)還便于測試用例實(shí)施者專注于以技術(shù)獨(dú)立的方式實(shí)現(xiàn)測試用例,這為測試專業(yè)人員提供了選擇需要的測試用例生成技術(shù)的靈活性。

在一個(gè)實(shí)施例中,從所選擇的ui模型的結(jié)構(gòu)模式獲得的ui動(dòng)作包括本領(lǐng)域中公知的ui動(dòng)作。例如,ui動(dòng)作可以包括但不限于:點(diǎn)擊、雙擊或拖動(dòng)被測應(yīng)用程序內(nèi)的文本、樹節(jié)點(diǎn)和控件,最小化和最大化窗口,聚焦控件,在文本框中設(shè)置字符串,在下拉列表中維護(hù)數(shù)據(jù),單擊按鈕和其它標(biāo)準(zhǔn)ui動(dòng)作。

在一個(gè)實(shí)施例中,在自動(dòng)測試中使用的測試腳本語言可以包括但不限于:javascript、perl、python、ruby、tcl、unixshell腳本、vbscript、sikuli。本發(fā)明實(shí)現(xiàn)了用于根據(jù)ui模型自動(dòng)生成(ui)測試腳本生成的系統(tǒng)和方法??梢允褂萌魏紊鲜瞿_本語言以及本領(lǐng)域中公知的其它腳本語言來編寫測試腳本。

本公開和示例旨在被認(rèn)為僅僅是示例性的,所公開實(shí)施例的真實(shí)范圍和精神由所附權(quán)利要求指示。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
怀宁县| 彭阳县| 锦屏县| 宁武县| 方山县| 海丰县| 屏东市| 庆云县| 德江县| 行唐县| 东台市| 墨玉县| 南昌市| 沙坪坝区| 南投市| 陆良县| 南充市| 无极县| 宝丰县| 昭平县| 新沂市| 施甸县| 正镶白旗| 黄骅市| 郴州市| 历史| 启东市| 蒲城县| 芷江| 佛山市| 方山县| 普格县| 治县。| 南漳县| 社旗县| 荃湾区| 阿鲁科尔沁旗| 松滋市| 丹棱县| 合川市| 揭西县|