本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種軟件測試的方法及軟件測試裝置。
背景技術(shù):
軟件測試是軟件開發(fā)過程中不可缺少的,由測試工具按照一定的測試方案和流程進行測試操作,其目的是發(fā)現(xiàn)潛伏在軟件中的缺陷,減少軟件開發(fā)和維護成本,促進軟件質(zhì)量提升。在各類型的自動化軟件測試中,最接近用戶需求的軟件測試是與用戶交互相關(guān)的,即用戶界面(英文全稱:User Interface,英文縮寫:UI)自動化測試。
當(dāng)前互聯(lián)網(wǎng)測試中,針對軟件功能的測試已開始使用UI執(zhí)行腳本模擬用戶行為??梢愿鶕?jù)不同的需求,選擇一種適合軟件自身需要的UI執(zhí)行框架來實現(xiàn)UI自動化測試,每種執(zhí)行框架均對應(yīng)有自身的執(zhí)行腳本。
由于被測試的UI經(jīng)常會發(fā)生變更,然而每一套UI執(zhí)行框架都對應(yīng)自身的執(zhí)行腳本,不同執(zhí)行腳本的編寫語言和規(guī)范各不相同。當(dāng)選擇不同的UI執(zhí)行框架進行UI自動化測試時,也就需要預(yù)先編寫多個執(zhí)行腳本。而且隨著技術(shù)日新月異,新的UI執(zhí)行框架層出不窮,許多積累的執(zhí)行腳本可能會遭到丟棄,而開發(fā)人員又需要為新的UI執(zhí)行框架從頭開始編寫新的執(zhí)行腳本。為了編寫多個執(zhí)行腳本,不但浪費了執(zhí)行腳本開發(fā)開銷,同時也增加了執(zhí)行腳本維護難度。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種軟件測試的方法及軟件測試裝置,可以將UI元素模塊化處理,可以實現(xiàn)在UI元素發(fā)生變更時,只需要更改該UI元素所在的用例即可,無需對整個執(zhí)行腳本,以此降低了執(zhí)行腳本的開發(fā)開銷,緩解了執(zhí)行腳本維護難度。
有鑒于此,本發(fā)明第一方面提供一種軟件測試的方法,包括:
獲取待檢測軟件的用戶界面UI元素;
將所述UI元素封裝為至少一個用例,所述至少一個用例用于生成第一用例腳本;
當(dāng)檢測到所述至少一個用例中的目標(biāo)用例更新時,修改所述目標(biāo)用例,并生成第二用例腳本;
通過所述第二用例腳本對所述待檢測軟件進行UI自動化測試。
結(jié)合本發(fā)明實施例的第一方面,在第一種可能的實現(xiàn)方式中,所述獲取待檢測軟件的用戶界面UI元素之后,所述方法還包括:
根據(jù)所述UI元素,確定所述UI元素對應(yīng)的元素類型;
所述將所述UI元素封裝為至少一個用例,包括:
按照所述UI元素對應(yīng)的元素類型,將所述UI元素封裝為所述至少一個用例。
結(jié)合本發(fā)明實施例的第一方面第一種可能實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述元素類型包括業(yè)務(wù)關(guān)鍵字;
所述按照所述UI元素對應(yīng)的元素類型,將所述UI元素封裝為所述至少一個用例,包括:
檢測所述UI元素中的所述業(yè)務(wù)關(guān)鍵字,所述業(yè)務(wù)關(guān)鍵字用于指示執(zhí)行目標(biāo)業(yè)務(wù)的操作;
將所述業(yè)務(wù)關(guān)鍵字相同的所述UI封裝為第一用例。
結(jié)合本發(fā)明實施例的第一方面第一種可能實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述元素類型包括業(yè)務(wù)場景;
所述按照所述UI元素對應(yīng)的元素類型,將所述UI元素封裝為所述至少一個用例,包括:
檢測所述UI元素中的所述業(yè)務(wù)場景,所述業(yè)務(wù)場景用于指示所述目標(biāo)業(yè)務(wù)的執(zhí)行環(huán)境;
將所述業(yè)務(wù)場景相同的所述UI封裝為第二用例。
結(jié)合本發(fā)明實施例的第一方面第一種可能實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述元素類型包括業(yè)務(wù)斷言;
所述按照所述UI元素對應(yīng)的元素類型,將所述UI元素封裝為所述至少一個用例,包括:
檢測所述UI元素中的所述業(yè)務(wù)斷言,所述業(yè)務(wù)斷言用于指示執(zhí)行所述目標(biāo)業(yè)務(wù)的預(yù)設(shè)條件;
將所述業(yè)務(wù)斷言相同的所述UI封裝為第三用例。
本發(fā)明第二方面提供一種軟件測試裝置,包括:
獲取模塊,用于獲取待檢測軟件的用戶界面UI元素;
封裝模塊,用于將所述獲取模塊獲取的所述UI元素封裝為至少一個用例,所述至少一個用例用于生成第一用例腳本;
生成模塊,用于當(dāng)檢測到所述封裝模塊封裝的所述至少一個用例中的目標(biāo)用例更新時,修改所述目標(biāo)用例,并生成第二用例腳本;
測試模塊,用于通過所述生成模塊生成的所述第二用例腳本對所述待檢測軟件進行UI自動化測試。
結(jié)合本發(fā)明實施例的第二方面,在第一種可能的實現(xiàn)方式中,所述軟件測試裝置還包括:
確定模塊,用于所述獲取模塊獲取待檢測軟件的用戶界面UI元素之后,根據(jù)所述UI元素,確定所述UI元素對應(yīng)的元素類型;
所述封裝模塊,包括:
封裝單元,用于按照所述確定模塊確定的所述UI元素對應(yīng)的元素類型,將所述UI元素封裝為所述至少一個用例。
結(jié)合本發(fā)明實施例的第二方面第一種可能實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述元素類型包括業(yè)務(wù)關(guān)鍵字;
所述封裝單元包括:
第一檢測子單元,用于檢測所述UI元素中的所述業(yè)務(wù)關(guān)鍵字,所述業(yè)務(wù)關(guān)鍵字用于指示執(zhí)行目標(biāo)業(yè)務(wù)的操作;
第一封裝子單元,用于將所述第一檢測子單元檢測的所述業(yè)務(wù)關(guān)鍵字相同的所述UI封裝為第一用例。
結(jié)合本發(fā)明實施例的第二方面第一種可能實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述元素類型包括業(yè)務(wù)場景;
所述封裝單元包括:
第二檢測子單元,用于檢測所述UI元素中的所述業(yè)務(wù)場景,所述業(yè)務(wù)場景用于指示所述目標(biāo)業(yè)務(wù)的執(zhí)行環(huán)境;
第二封裝子單元,用于將所述第二檢測子單元檢測到所述業(yè)務(wù)場景相同的所述UI封裝為第二用例。
結(jié)合本發(fā)明實施例的第二方面第一種可能實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述元素類型包括業(yè)務(wù)斷言;
所述封裝單元包括:
第三檢測子單元,用于檢測所述UI元素中的所述業(yè)務(wù)斷言,所述業(yè)務(wù)斷言用于指示執(zhí)行所述目標(biāo)業(yè)務(wù)的預(yù)設(shè)條件;
第三封裝子單元,用于將所述第三檢測子單元檢測到所述業(yè)務(wù)斷言相同的所述UI封裝為第三用例。
從以上技術(shù)方案可以看出,本發(fā)明實施例具有以下優(yōu)點:
本發(fā)明實施例中,提供了一種軟件測試的方法,首先由軟件測試裝置獲取待檢測軟件的用戶界面UI元素,然后將UI元素封裝為至少一個用例,至少一個用例用于生成第一用例腳本,當(dāng)軟件測試裝置檢測到至少一個用例中的目標(biāo)用例更新時,修改目標(biāo)用例,并生成第二用例腳本,最后通過第二用例腳本對待檢測軟件進行UI自動化測試。通過上述方式將UI元素模塊化處理,可以實現(xiàn)在UI元素發(fā)生變更時,只需要更改該UI元素所在的用例即可,無需對整個執(zhí)行腳本,以此降低了執(zhí)行腳本的開發(fā)開銷,緩解了執(zhí)行腳本維護難度。
附圖說明
圖1為本發(fā)明實施例中軟件測試的方法一個實施例示意圖;
圖2為本發(fā)明實施例中軟件測試裝置一個實施例示意圖;
圖3為本發(fā)明實施例中軟件測試裝置另一個實施例示意圖;
圖4為本發(fā)明實施例中軟件測試裝置另一個實施例示意圖;
圖5為本發(fā)明實施例中軟件測試裝置另一個實施例示意圖;
圖6為本發(fā)明實施例中軟件測試裝置另一個實施例示意圖。
具體實施方式
本發(fā)明實施例提供了一種軟件測試的方法及軟件測試裝置,可以將UI元素模塊化處理,可以實現(xiàn)在UI元素發(fā)生變更時,只需要更改該UI元素所在的用例即可,無需對整個執(zhí)行腳本,以此降低了執(zhí)行腳本的開發(fā)開銷,緩解了執(zhí)行腳本維護難度。
本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”、“第三”“第四”等(如果存在)是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例例如能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
下面對本發(fā)明中軟件測試的方法進行詳細描述,請參閱圖1,本發(fā)明實施例提供的一種軟件測試的方法實施例包括:
101、獲取待檢測軟件的用戶界面UI元素;
本實施例中,軟件測試裝置先獲取待檢測軟件的UI元素。
其中,軟件是指一系列按照特定順序組織的計算機數(shù)據(jù)和指令的集合。一般來講軟件被劃分為系統(tǒng)軟件、應(yīng)用軟件和介于這兩者之間的中間件。軟件并不只是包括可以在終端上運行的應(yīng)用程序,與這些應(yīng)用程序相關(guān)的文檔一般也被認為是軟件的一部分。
UI元素為待檢測軟件在編程中的UI設(shè)計,UI即泛指用戶的操作界面,UI設(shè)計主要指界面的樣式和美觀程度。而使用上,對軟件的人機交互、操作邏輯和界面美觀的整體設(shè)計則是同樣重要的另一個門道。
102、將UI元素封裝為至少一個用例,至少一個用例用于生成第一用例腳本;
本實施例中,軟件測試裝置根據(jù)UI元素的類型將其進行封裝處理,通常情況下,一種UI元素封裝為一個用例,這樣的話,多種UI元素就可以封裝為多個用例,這一個或者多個用例都用于生成第一用例腳本。
其中,用例是統(tǒng)一建模語言或標(biāo)準(zhǔn)建模語言(英文全稱:Unified Modeling Language,英文縮寫:UML)中非常重要的概念,在使用UML的整個軟件開發(fā)過程中,用例處于一個中心地位。用例是對一組動作序列的抽象描述,系統(tǒng)執(zhí)行這些動作序列,產(chǎn)生相應(yīng)的結(jié)果。這些結(jié)果要么反饋給參與者,要么作為其他用例的參數(shù)。
用例可以生成第一用例腳本,用例腳本可以用于執(zhí)行UI自動化檢測。
103、當(dāng)檢測到至少一個用例中的目標(biāo)用例更新時,修改目標(biāo)用例,并生成第二用例腳本;
本實施例中,當(dāng)軟件測試裝置檢測到至少一個用例中存在目標(biāo)用例需要更新時,直接修改對應(yīng)的目標(biāo)用例,從而生成更新后的第二用例腳本。
104、通過第二用例腳本對待檢測軟件進行UI自動化測試。
本實施例中,軟件測試裝置利用第二用例腳本對待檢測軟件進行UI自動化測試。
本發(fā)明實施例中,提供了一種軟件測試的方法,首先由軟件測試裝置獲取待檢測軟件的用戶界面UI元素,然后將UI元素封裝為至少一個用例,至少一個用例用于生成第一用例腳本,當(dāng)軟件測試裝置檢測到至少一個用例中的目標(biāo)用例更新時,修改目標(biāo)用例,并生成第二用例腳本,最后通過第二用例腳本對待檢測軟件進行UI自動化測試。通過上述方式將UI元素模塊化處理,可以實現(xiàn)在UI元素發(fā)生變更時,只需要更改該UI元素所在的用例即可,無需對整個執(zhí)行腳本,以此降低了執(zhí)行腳本的開發(fā)開銷,緩解了執(zhí)行腳本維護難度。
可選地,在上述圖1對應(yīng)的實施例的基礎(chǔ)上,本發(fā)明實施例提供的軟件測試的方法第一個可選實施例中,獲取待檢測軟件的用戶界面UI元素之后,還可以包括:
根據(jù)UI元素,確定UI元素對應(yīng)的元素類型;
將UI元素封裝為至少一個用例,可以包括:
按照UI元素對應(yīng)的元素類型,將UI元素封裝為至少一個用例。
本實施例中,軟件測試裝置在獲取待檢測軟件的UI元素后,可以根據(jù)UI元素先確定其元素類型,然后按照UI元素的元素類型將UI元素封裝為至少一個用例。
具體地,UI元素可以分為多種元素類型,例如元素類型A、元素類型B、元素類型C和元素類型D,于是可以元素類型A封裝為用例1,將元素類型B封裝為用例2,將元素類型C封裝為用例3,而將元素類型D封裝為用例4。
其次,本發(fā)明實施例中,軟件測試裝置獲取待檢測軟件的用戶界面UI元素所對應(yīng)的元素用例之后,可以按照UI元素對應(yīng)的元素類型,將UI元素封裝為至少一個用例。通過上述方式,可以更為準(zhǔn)確地將UI元素進行模塊化處理,使得方案具有實現(xiàn)的依據(jù),從而提升方案的實用性和可行性。
可選地,在上述圖1對應(yīng)的第一個實施例的基礎(chǔ)上,本發(fā)明實施例提供的軟件測試的方法第二個可選實施例中,元素類型包括業(yè)務(wù)關(guān)鍵字;
按照UI元素對應(yīng)的元素類型,將UI元素封裝為至少一個用例,可以包括:
檢測UI元素中的業(yè)務(wù)關(guān)鍵字,業(yè)務(wù)關(guān)鍵字用于指示執(zhí)行目標(biāo)業(yè)務(wù)的操作;
將業(yè)務(wù)關(guān)鍵字相同的UI元素封裝為第一用例。
本實施例中,元素類型可以包括業(yè)務(wù)關(guān)鍵字,于是將UI元素中的業(yè)務(wù)關(guān)鍵字封裝為第一用例,其中,業(yè)務(wù)關(guān)鍵字用于指示執(zhí)行目標(biāo)業(yè)務(wù)的操作。
具體地,以采用通話軟件撥打電話的流程為例進行介紹,將采用該通話軟件撥打電話的流程可以拆解為以下三個業(yè)務(wù)步驟,即為“進入撥號盤”、“輸入號碼”以及“點擊撥號按鈕”,于是這三個業(yè)務(wù)步驟便是業(yè)務(wù)關(guān)鍵字,將這三個步驟封裝為第一用例,當(dāng)其中某個步驟需要改變時,即對第一用例進行修改即可。
其中,業(yè)務(wù)關(guān)鍵字用于指示執(zhí)行目標(biāo)業(yè)務(wù)的操作,即進行某項業(yè)務(wù)時所需要的操作步驟。
再次,本發(fā)明實施例中,軟件測試裝置檢測UI元素中的業(yè)務(wù)關(guān)鍵字,然后將業(yè)務(wù)關(guān)鍵字相同的UI元素元素封裝為第一用例。通過上述方式,將執(zhí)行某項目標(biāo)業(yè)務(wù)操作的業(yè)務(wù)關(guān)鍵字封裝在一個用例中,便于在目標(biāo)業(yè)務(wù)操作中某個操作或者某些操作發(fā)生變化時,無需更改整個用例腳本,只需要針對對應(yīng)的一個用例做修改即可,以此降低了執(zhí)行腳本的開發(fā)開銷,緩解了執(zhí)行腳本維護難度。
可選地,在上述圖1對應(yīng)的第一個實施例的基礎(chǔ)上,本發(fā)明實施例提供的軟件測試的方法第三個可選實施例中,元素類型包括業(yè)務(wù)場景;
按照UI元素對應(yīng)的元素類型,將UI元素封裝為至少一個用例,可以包括:
檢測UI元素中的所述業(yè)務(wù)場景,業(yè)務(wù)場景用于指示目標(biāo)業(yè)務(wù)的執(zhí)行環(huán)境;
將業(yè)務(wù)場景相同的UI元素封裝為第二用例。
本實施例中,元素類型可以包括業(yè)務(wù)場景,于是將UI元素中的業(yè)務(wù)場景封裝為第二用例,其中,業(yè)務(wù)場景用于指示目標(biāo)業(yè)務(wù)的執(zhí)行環(huán)境。
具體地,以目標(biāo)業(yè)務(wù)為即時通信類業(yè)務(wù)為例,那么其業(yè)務(wù)場景的類型可以為圖片傳輸業(yè)務(wù)、文字傳輸業(yè)務(wù)、視頻傳輸業(yè)務(wù)以及語音傳輸業(yè)務(wù)。于是將這些業(yè)務(wù)場景封裝在第二用例中,當(dāng)其中某個業(yè)務(wù)場景或者某些業(yè)務(wù)場景發(fā)生變化時,即對第二用例進行修改即可。
其中,業(yè)務(wù)場景用于指示目標(biāo)業(yè)務(wù)的執(zhí)行環(huán)境,即進行這項目標(biāo)業(yè)務(wù)可能會出現(xiàn)的場景。
再次,本發(fā)明實施例中,軟件測試裝置檢測UI元素中的業(yè)務(wù)場景,然后將業(yè)務(wù)場景相同的UI元素元素封裝為第二用例。通過上述方式,將執(zhí)行某項目標(biāo)業(yè)務(wù)的業(yè)務(wù)場景封裝在一個用例中,便于當(dāng)目標(biāo)業(yè)務(wù)的業(yè)務(wù)場景中某個業(yè)務(wù)場景發(fā)生變化時,無需更改整個用例腳本,只需要針對對應(yīng)的一個用例做修改即可,以此降低了執(zhí)行腳本的開發(fā)開銷,緩解了執(zhí)行腳本維護難度。
可選地,在上述圖1對應(yīng)的第一個實施例的基礎(chǔ)上,本發(fā)明實施例提供的軟件測試的方法第四個可選實施例中,元素類型包括業(yè)務(wù)斷言;
按照UI元素對應(yīng)的元素類型,將UI元素封裝為至少一個用例,可以包括:
檢測UI元素中的業(yè)務(wù)斷言,業(yè)務(wù)斷言用于指示執(zhí)行目標(biāo)業(yè)務(wù)的預(yù)設(shè)條件;
將業(yè)務(wù)斷言相同的UI元素封裝為第三用例。
本實施例中,元素類型可以包括業(yè)務(wù)斷言,于是將UI元素中的業(yè)務(wù)斷言封裝為第三用例,其中,業(yè)務(wù)斷言用于指示執(zhí)行目標(biāo)業(yè)務(wù)的預(yù)設(shè)條件。
具體地,以目標(biāo)業(yè)務(wù)為撥打電話的業(yè)務(wù)為例,而業(yè)務(wù)斷言為打電話成功的前置條件為手機里需要有客戶識別模塊(英文全稱:Subscriber Identification Module,英文縮寫:SIM),于是,存在默認的SIM便是業(yè)務(wù)斷言。將這些業(yè)務(wù)斷言封裝在第三用例中。當(dāng)其中某個業(yè)務(wù)斷言或者某些業(yè)務(wù)斷言發(fā)生變化時,即對第三用例進行修改即可。
其中,業(yè)務(wù)斷言用于指示執(zhí)行目標(biāo)業(yè)務(wù)的預(yù)設(shè)條件,即進行這項目標(biāo)業(yè)務(wù)需要的必要條件或者是可行的條件。
再次,本發(fā)明實施例中,軟件測試裝置檢測UI元素中的業(yè)務(wù)斷言,然后將業(yè)務(wù)斷言相同的UI元素封裝為第三用例。通過上述方式,將執(zhí)行某項目標(biāo)業(yè)務(wù)的業(yè)務(wù)斷言封裝在一個用例中,便于在業(yè)務(wù)斷言中某個業(yè)務(wù)條件或者某些業(yè)務(wù)條件發(fā)生變化時,無需更改整個用例腳本,只需要針對對應(yīng)的一個用例做修改即可,以此降低了執(zhí)行腳本的開發(fā)開銷,緩解了執(zhí)行腳本維護難度。
下面對本發(fā)明中軟件測試方法中的軟件測試裝置進行詳細描述,請參閱圖2,本發(fā)明實施例中的軟件測試裝置包括:
獲取模塊201,用于獲取待檢測軟件的用戶界面UI元素;
封裝模塊202,用于將所述獲取模塊201獲取的所述UI元素封裝為至少一個用例,所述至少一個用例用于生成第一用例腳本;
生成模塊203,用于當(dāng)檢測到所述封裝模塊202封裝的所述至少一個用例中的目標(biāo)用例更新時,修改所述目標(biāo)用例,并生成第二用例腳本;
測試模塊204,用于通過所述生成模塊203生成的所述第二用例腳本對所述待檢測軟件進行UI自動化測試。
本實施例中,獲取模塊201獲取待檢測軟件的用戶界面UI元素,封裝模塊202將所述獲取模塊201獲取的所述UI元素封裝為至少一個用例,所述至少一個用例用于生成第一用例腳本,當(dāng)檢測到所述封裝模塊202封裝的所述至少一個用例中的目標(biāo)用例更新時,生成模塊203修改所述目標(biāo)用例,并生成第二用例腳本,測試模塊204通過所述生成模塊203生成的所述第二用例腳本對所述待檢測軟件進行UI自動化測試。
本發(fā)明實施例中,提供了一種軟件測試裝置,首先由軟件測試裝置獲取待檢測軟件的用戶界面UI元素,然后將UI元素封裝為至少一個用例,至少一個用例用于生成第一用例腳本,當(dāng)軟件測試裝置檢測到至少一個用例中的目標(biāo)用例更新時,修改目標(biāo)用例,并生成第二用例腳本,最后通過第二用例腳本對待檢測軟件進行UI自動化測試。通過上述方式將UI元素模塊化處理,可以實現(xiàn)在UI元素發(fā)生變更時,只需要更改該UI元素所在的用例即可,無需對整個執(zhí)行腳本,以此降低了執(zhí)行腳本的開發(fā)開銷,緩解了執(zhí)行腳本維護難度。
請參閱圖3,本發(fā)明實施例中軟件測試裝置的另一個實施例包括:
獲取模塊201,用于獲取待檢測軟件的用戶界面UI元素;
確定模塊205,用于所述獲取模塊201獲取待檢測軟件的用戶界面UI元素之后,根據(jù)所述UI元素,確定所述UI元素對應(yīng)的元素類型;
封裝模塊202,用于將所述獲取模塊201獲取的所述UI元素封裝為至少一個用例,所述至少一個用例用于生成第一用例腳本;
生成模塊203,用于當(dāng)檢測到所述封裝模塊202封裝的所述至少一個用例中的目標(biāo)用例更新時,修改所述目標(biāo)用例,并生成第二用例腳本;
測試模塊204,用于通過所述生成模塊203生成的所述第二用例腳本對所述待檢測軟件進行UI自動化測試;
其中,所述封裝模塊202包括:
封裝單元2021,用于按照所述確定模塊205確定的所述UI元素對應(yīng)的元素類型,將所述UI元素封裝為所述至少一個用例。
其次,本發(fā)明實施例中,軟件測試裝置獲取待檢測軟件的用戶界面UI元素所對應(yīng)的元素用例之后,可以按照UI元素對應(yīng)的元素類型,將UI元素封裝為至少一個用例。通過上述方式,可以更為準(zhǔn)確地將UI元素進行模塊化處理,使得方案具有實現(xiàn)的依據(jù),從而提升方案的實用性和可行性。
請參閱圖4,本發(fā)明實施例中軟件測試裝置的另一個實施例包括:
獲取模塊201,用于獲取待檢測軟件的用戶界面UI元素;
確定模塊205,用于所述獲取模塊201獲取待檢測軟件的用戶界面UI元素之后,根據(jù)所述UI元素,確定所述UI元素對應(yīng)的元素類型;
封裝模塊202,用于將所述獲取模塊201獲取的所述UI元素封裝為至少一個用例,所述至少一個用例用于生成第一用例腳本;
生成模塊203,用于當(dāng)檢測到所述封裝模塊202封裝的所述至少一個用例中的目標(biāo)用例更新時,修改所述目標(biāo)用例,并生成第二用例腳本;
測試模塊204,用于通過所述生成模塊203生成的所述第二用例腳本對所述待檢測軟件進行UI自動化測試;
其中,所述封裝模塊202包括:
封裝單元2021,用于按照所述確定模塊205確定的所述UI元素對應(yīng)的元素類型,將所述UI元素封裝為所述至少一個用例;
所述封裝單元2021包括:
第一檢測子單元20211,用于檢測所述UI元素中的所述業(yè)務(wù)關(guān)鍵字,所述業(yè)務(wù)關(guān)鍵字用于指示執(zhí)行目標(biāo)業(yè)務(wù)的操作;
第一封裝子單元20212,用于將所述第一檢測子單元20211檢測的所述業(yè)務(wù)關(guān)鍵字相同的所述UI封裝為第一用例。
再次,本發(fā)明實施例中,軟件測試裝置檢測UI元素中的業(yè)務(wù)關(guān)鍵字,然后將業(yè)務(wù)關(guān)鍵字相同的UI元素元素封裝為第一用例。通過上述方式,將執(zhí)行某項目標(biāo)業(yè)務(wù)操作的業(yè)務(wù)關(guān)鍵字封裝在一個用例中,便于在目標(biāo)業(yè)務(wù)操作中某個操作或者某些操作發(fā)生變化時,無需更改整個用例腳本,只需要針對對應(yīng)的一個用例做修改即可,以此降低了執(zhí)行腳本的開發(fā)開銷,緩解了執(zhí)行腳本維護難度。
請參閱圖5,本發(fā)明實施例中軟件測試裝置的另一個實施例包括:
獲取模塊201,用于獲取待檢測軟件的用戶界面UI元素;
確定模塊205,用于所述獲取模塊201獲取待檢測軟件的用戶界面UI元素之后,根據(jù)所述UI元素,確定所述UI元素對應(yīng)的元素類型;
封裝模塊202,用于將所述獲取模塊201獲取的所述UI元素封裝為至少一個用例,所述至少一個用例用于生成第一用例腳本;
生成模塊203,用于當(dāng)檢測到所述封裝模塊202封裝的所述至少一個用例中的目標(biāo)用例更新時,修改所述目標(biāo)用例,并生成第二用例腳本;
測試模塊204,用于通過所述生成模塊203生成的所述第二用例腳本對所述待檢測軟件進行UI自動化測試;
其中,所述封裝模塊202包括:
封裝單元2021,用于按照所述確定模塊205確定的所述UI元素對應(yīng)的元素類型,將所述UI元素封裝為所述至少一個用例;
所述封裝單元2021包括:
第二檢測子單元20213,用于檢測所述UI元素中的所述業(yè)務(wù)場景,所述業(yè)務(wù)場景用于指示所述目標(biāo)業(yè)務(wù)的執(zhí)行環(huán)境;
第二封裝子單元20214,用于將所述第二檢測子單元20213檢測到所述業(yè)務(wù)場景相同的所述UI封裝為第二用例。
再次,本發(fā)明實施例中,軟件測試裝置檢測UI元素中的業(yè)務(wù)場景,然后將業(yè)務(wù)場景相同的UI元素元素封裝為第二用例。通過上述方式,將執(zhí)行某項目標(biāo)業(yè)務(wù)的業(yè)務(wù)場景封裝在一個用例中,便于當(dāng)目標(biāo)業(yè)務(wù)的業(yè)務(wù)場景中某個業(yè)務(wù)場景發(fā)生變化時,無需更改整個用例腳本,只需要針對對應(yīng)的一個用例做修改即可,以此降低了執(zhí)行腳本的開發(fā)開銷,緩解了執(zhí)行腳本維護難度。
請參閱圖6,本發(fā)明實施例中軟件測試裝置的另一個實施例包括:
獲取模塊201,用于獲取待檢測軟件的用戶界面UI元素;
確定模塊205,用于所述獲取模塊201獲取待檢測軟件的用戶界面UI元素之后,根據(jù)所述UI元素,確定所述UI元素對應(yīng)的元素類型;
封裝模塊202,用于將所述獲取模塊201獲取的所述UI元素封裝為至少一個用例,所述至少一個用例用于生成第一用例腳本;
生成模塊203,用于當(dāng)檢測到所述封裝模塊202封裝的所述至少一個用例中的目標(biāo)用例更新時,修改所述目標(biāo)用例,并生成第二用例腳本;
測試模塊204,用于通過所述生成模塊203生成的所述第二用例腳本對所述待檢測軟件進行UI自動化測試;
其中,所述封裝模塊202包括:
封裝單元2021,用于按照所述確定模塊205確定的所述UI元素對應(yīng)的元素類型,將所述UI元素封裝為所述至少一個用例;
所述封裝單元2021包括:
第三檢測子單元20215,用于檢測所述UI元素中的所述業(yè)務(wù)斷言,所述業(yè)務(wù)斷言用于指示執(zhí)行所述目標(biāo)業(yè)務(wù)的預(yù)設(shè)條件;
第三封裝子單元20216,用于將所述第三檢測子單元20215檢測到所述業(yè)務(wù)斷言相同的所述UI封裝為第三用例。
再次,本發(fā)明實施例中,軟件測試裝置檢測UI元素中的業(yè)務(wù)斷言,然后將業(yè)務(wù)斷言相同的UI元素封裝為第三用例。通過上述方式,將執(zhí)行某項目標(biāo)業(yè)務(wù)的業(yè)務(wù)斷言封裝在一個用例中,便于在業(yè)務(wù)斷言中某個業(yè)務(wù)條件或者某些業(yè)務(wù)條件發(fā)生變化時,無需更改整個用例腳本,只需要針對對應(yīng)的一個用例做修改即可,以此降低了執(zhí)行腳本的開發(fā)開銷,緩解了執(zhí)行腳本維護難度。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(英文全稱:Read-Only Memory,英文縮寫:ROM)、隨機存取存儲器(英文全稱:Random Access Memory,英文縮寫:RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。