本申請涉及移動互聯(lián)網(wǎng)領(lǐng)域,尤其涉及一種生成測試用例的方法和終端設(shè)備。
背景技術(shù):
自動化測試是把以人為驅(qū)動的測試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過程。通常,在設(shè)計(jì)測試用例并通過評審之后,由測試人員根據(jù)測試用例中描述的規(guī)程一步一步的執(zhí)行測試,得到實(shí)際結(jié)果與期望結(jié)果的比較。在此過程中,為了節(jié)省人力、時(shí)間或硬件資源,提高測試效率,便引入了自動化測試的概念
但現(xiàn)有的自動化測試方案對測試人員的要求較高,需要較高的代碼編寫能力,測試用例編寫耗時(shí)長,并且維護(hù)困難。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請實(shí)施例提供了一種生成測試用例的方法和終端設(shè)備,用以解決現(xiàn)有技術(shù)中自動化測試用例編寫困難的技術(shù)問題。
根據(jù)本申請實(shí)施例的一個方面,提供了一種生成測試用例的方法,所述方法包括:顯示控件列表和代表控件執(zhí)行順序的列表;檢測到針對控件的指令時(shí),所述控件依據(jù)指令而發(fā)生移動;當(dāng)所述控件進(jìn)入所述列表時(shí),根據(jù)所述列表內(nèi)控件的順序確定對應(yīng)控件的執(zhí)行順序并自動生成測試用例。
所述列表可以為時(shí)間軸列表、分類并行列表或二者組合,優(yōu)選為時(shí)間軸列表。
所述指令可以為接觸或語音指令,其中接觸可以為瞬時(shí)接觸或持續(xù)接觸,當(dāng)檢測到針對控件的持續(xù)接觸時(shí),所述控件隨著所述持續(xù)接觸的移動而移動;瞬時(shí)接觸可以為單擊或雙擊,當(dāng)檢測到針對控件的瞬時(shí)接觸時(shí),所述控件跳轉(zhuǎn)到代表控件執(zhí)行順序的列表內(nèi)。
所述控件在列表中可以投射顯示為圖案、文字或二者組合。
優(yōu)選其中一個自動生成測試用例為,當(dāng)檢測到針對控件的持續(xù)接觸時(shí),顯示所述控件對應(yīng)的圖案,所述圖案隨著所述持續(xù)接觸的移動而移動;當(dāng)所述圖案移動進(jìn)入所述時(shí)間軸并且所述持續(xù)接觸結(jié)束時(shí),在所述持續(xù)接觸結(jié)束的位置顯示所述圖案;根據(jù)所述時(shí)間軸內(nèi)的圖案順序確定對應(yīng)控件的執(zhí)行順序并自動生成測試用例。
根據(jù)本申請實(shí)施例的另一方面,提供了一種終端設(shè)備,包括:處理器;用于存儲處理器可執(zhí)行指令的存儲器;其中,處理器被配置為:顯示控件列表和代表控件執(zhí)行順序的列表;檢測到針對控件的指令時(shí),所述控件依據(jù)指令而移動;當(dāng)所述控件進(jìn)入所述列表時(shí),根據(jù)所述列表內(nèi)控件的順序確定對應(yīng)控件的執(zhí)行順序并自動生成測試用例。
優(yōu)選處理器被配置為,顯示控件列表和代表控件執(zhí)行順序的時(shí)間軸;檢測到針對控件的持續(xù)接觸時(shí),顯示所述控件對應(yīng)的圖案,所述圖案隨著所述持續(xù)接觸的移動而移動;當(dāng)所述圖案移動進(jìn)入所述時(shí)間軸并且所述持續(xù)接觸結(jié)束時(shí),在所述持續(xù)接觸結(jié)束的位置顯示所述圖案;根據(jù)所述時(shí)間軸內(nèi)的圖案順序確定對應(yīng)控件的執(zhí)行順序并自動生成測試用例。
本申請實(shí)施例的有益效果包括:測試用例的編輯變得簡單快捷、容易上手,通過控件的可視化以及列表的輔助,極大程度的降低了編寫自動化測試用例的難度,不再需要較強(qiáng)的編程能力,縮短了用戶編寫自動化測試用例所需要的時(shí)間,提高測試工作效率。
附圖說明
通過以下參照附圖對本申請實(shí)施例的描述,本申請的上述以及其它目的、特征和優(yōu)點(diǎn)將更為清楚,在附圖中:
圖1是本申請實(shí)施例的一種生成測試用例的方法的流程示意圖;
圖2是本申請實(shí)施例的測試用例的編輯界面示意圖;
圖3是本申請實(shí)施例的控件轉(zhuǎn)化為腳本語句的示意圖;
圖4是本申請實(shí)施例的一種生成測試用例的方法的流程示意圖;
圖5是本申請實(shí)施例的測試用例的編輯界面示意圖;
圖6是本申請實(shí)施例的一種終端設(shè)備的框圖。
具體實(shí)施方式
以下基于實(shí)施例對本申請進(jìn)行描述,但是本申請并不僅僅限于這些實(shí)施例。在下文對本申請的細(xì)節(jié)描述中,詳盡描述了一些特定的細(xì)節(jié)部分。對本領(lǐng)域技術(shù)人員來說沒有這些細(xì)節(jié)部分的描述也可以完全理解本申請。為了避免混淆本申請的實(shí)質(zhì),公知的方法、過程、流程、元件和電路并沒有詳細(xì)敘述。
此外,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)理解,在此提供的附圖都是為了說明的目的,并且附圖不一定是按比例繪制的。
除非上下文明確要求,否則整個說明書和權(quán)利要求書中的“包括”、“包含”等類似詞語應(yīng)當(dāng)解釋為包含的含義而不是排他或窮舉的含義;也就是說,是“包括但不限于”的含義。
在本申請的描述中,需要理解的是,術(shù)語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。此外,在本申請的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
本申請實(shí)施例在測試方案的編輯界面中,顯示控件列表和代表控件執(zhí)行順序的列表,用戶(測試人員或開發(fā)人員)可以對需要使用的控件進(jìn)行拖拽操作,將控件移動到該列表內(nèi),按照控件在列表內(nèi)的順序自動生成對應(yīng)的測試用例,使測試用例的編輯變得簡單快捷、容易上手,極大程度的降低了編寫自動化測試用例的難度,縮短了編寫自動化測試用例所需要的時(shí)間,提高工作效率。
圖1是本申請實(shí)施例提供的一種生成測試用例的方法,適用于終端設(shè)備,終端設(shè)備可以是移動電話,計(jì)算機(jī),數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺,車載控制臺,平板設(shè)備,醫(yī)療設(shè)備,健身設(shè)備,個人數(shù)字助理等。如圖1所示,該方法包括以下步驟。
S10,顯示控件列表和代表控件執(zhí)行順序的列表。
控件代表著待測應(yīng)用程序中能夠進(jìn)行的各種操作,每一個控件對應(yīng)著一個或多個操作,例如,點(diǎn)擊、輸入、滾動、刪除、翻頁、滑動、解鎖、等待、雙擊、長按等操作。控件列表是指將上述操作所對應(yīng)的控件按照一定規(guī)則在界面中進(jìn)行排列的形式,控件可以根據(jù)各種規(guī)則靈活排列。代表控件執(zhí)行順序的列表是一個反應(yīng)時(shí)間先后的列表,如果控件被移動到該列表內(nèi),則根據(jù)其在列表內(nèi)的位置確定它的執(zhí)行時(shí)間,當(dāng)列表內(nèi)包括多個控件時(shí),各個控件之間便形成執(zhí)行的先后順序。該列表可以為時(shí)間軸列表、分類并行列表或二者的組合,優(yōu)選為時(shí)間軸列表。
S11,檢測到針對控件的指令時(shí),控件依據(jù)指令而發(fā)生移動。
該指令可以為接觸式指令或語音式指令,其中接觸為瞬時(shí)接觸或持續(xù)接觸,當(dāng)檢測到針對控件的持續(xù)接觸時(shí),所述控件隨著所述持續(xù)接觸的移動而移動;瞬時(shí)接觸為單擊或雙擊,當(dāng)檢測到針對控件的瞬時(shí)接觸時(shí),所述控件跳轉(zhuǎn)到代表控件執(zhí)行順序的列表內(nèi)。例如,通過鼠標(biāo)點(diǎn)擊顯示的控件,通過觸控方式(手指、觸控筆)點(diǎn)擊顯示的控件。
控件在列表中可以投射顯示為圖案、文字或二者的組合。當(dāng)針對控件持續(xù)接觸時(shí),顯示該控件對應(yīng)的圖案、文字或二者的組合,這種持續(xù)接觸在界面內(nèi)移動時(shí),該控件對象的圖案或文字也隨之移動,從而形成拖動該控件在界面內(nèi)移動的視覺效果。
S12,當(dāng)控件進(jìn)入列表時(shí),根據(jù)列表內(nèi)控件的順序確定對應(yīng)控件的執(zhí)行順序并自動生成測試用例。
控件進(jìn)入列表是指,控件與列表在界面中發(fā)生接觸,或者,控件在界面中已進(jìn)入能夠通過該列表而確定執(zhí)行時(shí)間的范圍,而非必須與該列表發(fā)生接觸。針對控件的指令結(jié)束后,控件也停止移動,從而完成將控件拖動進(jìn)入列表的操作。
移動到列表內(nèi)的控件之間的位置關(guān)系決定了控件之間的執(zhí)行順序。如圖2所示,在控件列表中顯示各個控件的名稱,時(shí)間軸列表內(nèi)的兩個控件:溝通和搜索在時(shí)間軸列表內(nèi)按照時(shí)間順序(即執(zhí)行的先后順序)排列??丶Q“溝通”對應(yīng)著點(diǎn)擊操作,“搜索”對應(yīng)著輸入操作,在時(shí)間軸列表內(nèi)顯示控件名稱的同時(shí),還顯示各個控件對應(yīng)的操作。依據(jù)這兩個控件在時(shí)間軸列表內(nèi)的順序便可以確定先執(zhí)行“溝通”控件的點(diǎn)擊操作,再執(zhí)行“搜索”控件對應(yīng)的輸入操作。按照時(shí)間軸列表內(nèi)各個控件的執(zhí)行順序自動生成測試用例,生成過程在界面的后臺自動完成且用戶無感知。這樣,測試用例的編輯變得非常簡單快捷、容易上手,通過控件的可視化以及列表的輔助,極大程度的降低了編寫自動化測試用例的難度,不再需要較強(qiáng)的編程能力,縮短了用戶編寫自動化測試用例所需要的時(shí)間,提高測試工作效率。
在自動生成測試用例時(shí),將列表內(nèi)的各個控件按照執(zhí)行順序和預(yù)設(shè)規(guī)則轉(zhuǎn)換為設(shè)備可執(zhí)行的腳本語句。例如圖3所示,時(shí)間軸列表內(nèi)包含“溝通”和“搜索”兩個控件。其中,“溝通”控件包含一個“點(diǎn)擊”操作,生成測試用例時(shí)轉(zhuǎn)換為腳本語句“element(‘溝通’).click()”;“搜索”控件包含一個“點(diǎn)擊”操作和一個“輸入”操作,輸入的文字內(nèi)容為“聶磊”,轉(zhuǎn)換成的腳本語句為“element(‘搜索’).click();element(‘搜索’).send_keys(‘聶磊’)。另外,這兩個控件之間在時(shí)間軸列表內(nèi)的時(shí)間間隔為2秒,在這個兩個控件之間生成相應(yīng)的腳本語句“sleep(2)”,作用是延時(shí)(或掛起)2秒。轉(zhuǎn)換后的所有腳本語句共同構(gòu)成一個完整的測試用例。
利用列表對測試用例完成編輯后,用戶在進(jìn)行測試時(shí)便可以運(yùn)行列表內(nèi)的測試用例。運(yùn)行時(shí),在終端設(shè)備的屏幕中顯示執(zhí)行對應(yīng)控件時(shí)的操作過程,使用戶觀看到測試用例的執(zhí)行過程,以驗(yàn)證是否能夠達(dá)到預(yù)想的交互效果。如果達(dá)到預(yù)想效果,則可以保存已編輯的測試用例,以便以后反復(fù)使用;如果沒有達(dá)到預(yù)想的效果,則可以在編輯界面中對列表內(nèi)的控件進(jìn)行調(diào)整,包括向列表內(nèi)加入新的控件,從列表內(nèi)移除現(xiàn)有的控件,改變控件在列表內(nèi)的順序或者距離等。調(diào)整完成后,運(yùn)行調(diào)整后的測試用例,直到達(dá)到預(yù)想的測試效果。
如果測試用例的控件包括輸入操作,在運(yùn)行測試用例并執(zhí)行到該控件時(shí),可以暫停運(yùn)行并彈出完成該輸入操作的輸入框,由測試人員輸入相應(yīng)的內(nèi)容,輸入完畢后,繼續(xù)運(yùn)行該測試用例。而為了進(jìn)一步提高測試效率,在一個實(shí)施例中,在將控件添加到列表時(shí),如果添加到列表的控件包含輸入操作,則在控件進(jìn)入列表內(nèi)時(shí),顯示該控件的圖案和其中輸入操作的文字輸入框,此時(shí),測試人員就可以編輯需要輸入的文字內(nèi)容。這樣,在執(zhí)行測試用例時(shí)就不需要暫停并輸入文字,可直接將測試用例執(zhí)行完畢。
在一個實(shí)施例中,在進(jìn)行測試用例編輯的界面中,顯示待測應(yīng)用程序界面和代表控件執(zhí)行順序的列表,而控件則按照其在待測應(yīng)用程序界面中的實(shí)際位置進(jìn)行分布。那么,在編輯測試用例時(shí),從待測應(yīng)用程序界面中各個控件的實(shí)際位置進(jìn)行點(diǎn)擊選取或者拖動進(jìn)入列表,點(diǎn)擊選取或者拖動的過程與前文所述相同,在此不再重復(fù)說明。圖4是本申請實(shí)施例提供的一種生成測試用例的方法的流程示意圖,包括以下步驟。
S20,顯示應(yīng)用程序界面和代表控件執(zhí)行順序的時(shí)間軸列表,控件按照在應(yīng)用程序界面中的實(shí)際位置進(jìn)行分布。
S21,檢測到針對應(yīng)用程序界面中的控件的持續(xù)接觸時(shí),顯示控件對應(yīng)的圖案,圖案隨著持續(xù)接觸的移動而移動。
S22,當(dāng)圖案移動進(jìn)入時(shí)間軸列表并且持續(xù)接觸結(jié)束時(shí),在持續(xù)接觸結(jié)束的位置顯示圖案,當(dāng)對應(yīng)的控件包含輸入操作時(shí),還同時(shí)顯示一個文本輸入框。
S23,根據(jù)時(shí)間軸列表內(nèi)的圖案順序確定對應(yīng)控件的執(zhí)行順序并自動生成用于該應(yīng)用程序界面的測試用例。
如圖5所示的測試用例的編輯界面中包括一個應(yīng)用程序界面和一個時(shí)間軸列表,該應(yīng)用程序界面包括“通訊錄、消息、必達(dá)、搜索、溝通、客戶、日程、我的”等控件并按照實(shí)際位置分布。在選取“溝通”控件時(shí),從其所在位置點(diǎn)擊或觸控該控件并移動進(jìn)入時(shí)間軸列表,再以同樣的方式選取“搜索”控件,“搜索”控件移動進(jìn)入時(shí)間軸列表時(shí)顯示該控件的圖案和文本輸入框。這樣,使得針對該待測應(yīng)用程序各項(xiàng)功能的測試變得更加直觀,既有助于快速編輯測試用例又能夠同時(shí)感受人機(jī)交互過程,有助于測試人員發(fā)現(xiàn)交互過程中的“痛點(diǎn)”。
在一個實(shí)施例中,在進(jìn)行測試用例編輯的界面中,還可以打開已保存的測試用例。打開一個測試用例后,對該測試用例內(nèi)的腳本語句進(jìn)行語義分析,確定該測試用例所包含的控件、每個控件所包含的操作、輸入的文字內(nèi)容以及各個控件之間的執(zhí)行順序和延時(shí)。根據(jù)分析結(jié)果,將該測試用例的內(nèi)容在邏輯層生成相對應(yīng)的控件圖案,將控件圖案按照執(zhí)行順序顯示在代表控件執(zhí)行順序的列表內(nèi),使測試人員能夠直觀的了解到測試用例所包含的控件、操作和內(nèi)容。如果需要對該測試用例進(jìn)行修改,還可以在代表控件執(zhí)行順序的列表內(nèi)添加或刪除控件圖案、修改輸入的文字內(nèi)容、調(diào)整圖案之間的順序和距離。
此外,本申請實(shí)施例中,終端設(shè)備可以通過硬件處理器(hardware processor)來實(shí)現(xiàn)上述各個功能步驟。如圖6所示,終端設(shè)備包括:處理器30,用于存儲處理器30可執(zhí)行指令的存儲器31;其中,處理器30被配置為:顯示控件列表和代表控件執(zhí)行順序的列表;檢測到針對控件的指令時(shí),控件依據(jù)指令而發(fā)生移動;當(dāng)控件進(jìn)入列表時(shí),根據(jù)列表內(nèi)控件的順序確定對應(yīng)控件的執(zhí)行順序并自動生成測試用例。
在一個實(shí)施例中,處理器30進(jìn)一步被配置為:
運(yùn)行測試用例并顯示執(zhí)行對應(yīng)控件時(shí)的操作過程。
在一個實(shí)施例中,處理器30進(jìn)一步被配置為:
打開已有的測試用例,根據(jù)測試用例的腳本語言確定測試用例內(nèi)存在的控件和控件執(zhí)行順序;按照控件執(zhí)行順序在列表內(nèi)顯示控件。
在一個實(shí)施例中,處理器30進(jìn)一步被配置為:調(diào)整列表內(nèi)的控件或者控件之間的順序。
在一個實(shí)施例中,處理器30進(jìn)一步被配置為:當(dāng)控件包括文字輸入操作時(shí),顯示輸入框以便填充文字內(nèi)容。
在一個實(shí)施例中,顯示控件列表和代表控件執(zhí)行順序的列表包括:
顯示應(yīng)用程序界面和代表控件執(zhí)行順序的列表,控件按照在應(yīng)用程序界面中的實(shí)際位置進(jìn)行分布。
在一個實(shí)施例中,根據(jù)列表內(nèi)控件的順序確定對應(yīng)控件的執(zhí)行順序并自動生成測試用例包括:根據(jù)列表內(nèi)控件的順序確定對應(yīng)控件的執(zhí)行順序;將控件按照預(yù)設(shè)規(guī)則轉(zhuǎn)換為設(shè)備可執(zhí)行的腳本語句,由轉(zhuǎn)換后的腳本語句構(gòu)成所述測試用例。
在一個實(shí)施例中,所述代表控件執(zhí)行順序的列表可以為時(shí)間軸列表、分類并行列表或二者組合。
在一個實(shí)施例中,所述指令可以為接觸式指令或語音式指令,其中接觸為瞬時(shí)接觸或持續(xù)接觸,當(dāng)檢測到針對控件的持續(xù)接觸時(shí),所述控件隨著所述持續(xù)接觸的移動而移動;瞬時(shí)接觸為單擊或雙擊,當(dāng)檢測到針對控件的瞬時(shí)接觸時(shí),所述控件跳轉(zhuǎn)到代表控件執(zhí)行順序的列表內(nèi)。
在一個實(shí)施例中,所述控件在列表中投射顯示為圖案、文字或二者組合。
本領(lǐng)域的技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、裝置(設(shè)備)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個或多個其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實(shí)施例的方法、裝置(設(shè)備)和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
以上所述僅為本申請的優(yōu)選實(shí)施例,并不用于限制本申請,對于本領(lǐng)域技術(shù)人員而言,本申請可以有各種改動和變化。凡在本申請的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的保護(hù)范圍之內(nèi)。