• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于環(huán)境資源自動匹配的云測試框架研究與應(yīng)用

      2018-02-27 03:06:32鞠煒剛歐林寶
      計算機應(yīng)用與軟件 2018年1期
      關(guān)鍵詞:測試環(huán)境測試用例用例

      鞠煒剛 歐林寶

      1(中興通訊南京研究所 江蘇 南京 210012) 2(中興通訊天津研究所 天津 300308)

      0 引 言

      軟件測試在軟件生命周期中占有十分重要的地位,是保障軟件質(zhì)量的重要手段,必須不斷地對軟件進行測試[1-2],首先要搭建配置測試環(huán)境,然后執(zhí)行測試用例獲取結(jié)果。傳統(tǒng)的方式是測試人員根據(jù)測試要求搭建、調(diào)整測試環(huán)境資源,隨著軟件測試環(huán)境的復(fù)雜度越來越高,這種方式越來越不能滿足需要。采用基于虛擬化技術(shù)的云測試可以有效獲取資源,生成并配置所需測試環(huán)境[3]。但也存在一定局限性,例如復(fù)雜環(huán)境自動生成時間較長,同時對不支持虛擬化需要在真實硬件組網(wǎng)環(huán)境下測試的軟件不能滿足要求,對這類情況需要采用一種新的技術(shù)和方法。本文提出一種測試環(huán)境資源云化,測試用例按需自動匹配環(huán)境、分布式調(diào)度執(zhí)行的云測試思路。在此基礎(chǔ)上設(shè)計開發(fā)了云測試框架,以更好地完成對復(fù)雜環(huán)境組網(wǎng)下的軟件產(chǎn)品的測試。

      1 測試環(huán)境資源使用方式概述

      在軟件測試中如何高效地使用測試環(huán)境資源進行測試一直是重要的課題,包括測試環(huán)境的建立、使用、釋放和管理,要求建立、釋放時間短,利用率高等[4]。

      1.1 傳統(tǒng)方式

      在傳統(tǒng)方式中,測試人員根據(jù)測試需要搭建或調(diào)整測試環(huán)境資源,修改測試用例環(huán)境參數(shù),執(zhí)行測試用例,返回結(jié)果報告[5],但存在以下問題:

      (1) 測試環(huán)境資源缺乏管理,執(zhí)行測試用例時很難快速找到合適的空閑環(huán)境,環(huán)境資源利用率低下。

      (2) 找不到合適環(huán)境的情況下,需要根據(jù)需求搭建、調(diào)整、配置環(huán)境,測試準備時間長,效率低,而且可能存在重復(fù)搭建,浪費資源。

      (3) 測試用例和環(huán)境資源數(shù)據(jù)緊耦合,移植到目標環(huán)境比較困難。

      (4) 對于批量用例執(zhí)行,只能在一套環(huán)境執(zhí)行,效率不高,采用手工分解的方式比較困難,結(jié)果也不容易合并。

      1.2 基于虛擬化的云測試

      隨著云計算技術(shù)的發(fā)展誕生了云測試,云測試是一種有效利用云計算環(huán)境資源對軟件進行測試的新方式[6-7]。其中一種方法是基于虛擬化的云測試,在測試用例執(zhí)行前獲取虛擬化的計算、存儲、網(wǎng)絡(luò)等云資源,自動創(chuàng)建配置廉價、便捷、高效的測試環(huán)境,測試完成后釋放資源,加速了整個軟件測試進程,同時測試環(huán)境資源按需動態(tài)申請和釋放,資源利用率很高,但是有兩個主要限制:

      (1) 一些軟件產(chǎn)品并沒有設(shè)計在虛擬化平臺上運行,需要改造適配,而為了測試改造產(chǎn)品是不合適的,而另一些軟件產(chǎn)品必須在真實硬件環(huán)境組網(wǎng)下測試。

      (2) 對于一些環(huán)境組網(wǎng)和配置復(fù)雜的軟件系統(tǒng),獲取虛擬資源并自動創(chuàng)建、配置環(huán)境的時間較長,不能滿足測試要求。

      針對以上傳統(tǒng)方式存在的問題和基于虛擬化技術(shù)的云測試的一些局限性,我們提出了一種測試環(huán)境資源云化,按需自動匹配環(huán)境,分布式調(diào)度執(zhí)行的云測試新思路。在此基礎(chǔ)上設(shè)計開發(fā)了云測試框架,可以有效地使用測試環(huán)境資源進行測試,提高環(huán)境利用率和執(zhí)行效率,并在通信系統(tǒng)產(chǎn)品測試中進行了有效的應(yīng)用。

      2 基于環(huán)境資源自動匹配的云測試框架

      2.1 物理架構(gòu)

      基于環(huán)境資源自動匹配的云測試框架的物理架構(gòu)如圖1所示。

      圖1 物理架構(gòu)

      云測試物理框架由一個云測試服務(wù)器master節(jié)點通過網(wǎng)絡(luò)連接多個客戶端slave節(jié)點組成,屬于典型的分布式架構(gòu)[8],可以由大量廉價的PC機組成,也可以在IAAS上基于虛機或PAAS上基于容器來部署,非常靈活[9-10]。

      云測試服務(wù)器master是云測試的調(diào)度中心,主要根據(jù)測試任務(wù)中測試用例的要求進行環(huán)境資源匹配,將用例各自分發(fā)調(diào)度到合適的測試環(huán)境執(zhí)行,并匯總結(jié)果報告輸出。云測試客戶端slave節(jié)點連接測試環(huán)境并運行測試執(zhí)行器進行測試,測試環(huán)境可以直接部署在客戶端slave節(jié)點,也可以由多個設(shè)備組成復(fù)雜的組網(wǎng)環(huán)境,由slave節(jié)點進行對接,所有的測試環(huán)境構(gòu)成測試環(huán)境資源池,實現(xiàn)了測試環(huán)境的云化。云測試框架同時支持真實環(huán)境和虛擬化環(huán)境,以滿足各種軟件的測試需要。

      2.2 工作原理

      基于環(huán)境資源自動匹配的云測試框架的基本工作原理如圖2所示。

      圖2 工作原理

      如圖所示,在云測試框架中,每個客戶端slave節(jié)點都有一個環(huán)境資源描述文件,用來描述所連接的環(huán)境資源信息,客戶端節(jié)點會定時向服務(wù)器master上報更新環(huán)境資源信息。

      測試人員通過云測試創(chuàng)建測試任務(wù),任務(wù)由一個或多個測試用例構(gòu)成,用例用文件描述對環(huán)境資源的需求,可以按單用例或一組用例來進行描述。

      當(dāng)向云測試服務(wù)器master提交測試任務(wù)時,服務(wù)器對測試任務(wù)中的每個用例根據(jù)其對環(huán)境資源的需求,調(diào)用資源匹配算法,與上報的客戶端環(huán)境資源信息進行預(yù)匹配。預(yù)匹配成功后將測試用例放到調(diào)度隊列中等待調(diào)度,同一個任務(wù)中不同的測試用例根據(jù)需要可以匹配到不同的測試環(huán)境。

      當(dāng)某個客戶端節(jié)點空閑后會向服務(wù)器請求測試用例執(zhí)行, master從調(diào)度隊列中獲取和該客戶端節(jié)點匹配的測試用例,請求客戶端slave節(jié)點調(diào)度執(zhí)行,執(zhí)行完成后將測試結(jié)果報告回送給服務(wù)器。當(dāng)一個測試任務(wù)中所有測試用例均執(zhí)行完成后,master會匯總合并整個測試任務(wù)的結(jié)果報告。

      2.3 關(guān)鍵技術(shù)

      2.3.1 測試環(huán)境云化

      基于環(huán)境資源匹配的云測試首先要將測試環(huán)境云化,建立共享環(huán)境資源池,供云測試系統(tǒng)根據(jù)用例需求進行匹配和調(diào)度。云化的基礎(chǔ)是測試環(huán)境標準化,在根據(jù)需求進行測試設(shè)計時,一方面分析測試業(yè)務(wù)流程,根據(jù)功能特性對測試用例進行分類,劃分測試集,另一方面要分析各種可能的測試組網(wǎng)環(huán)境,進行整理和歸類,形成標準化的環(huán)境集。環(huán)境標準化是建立在對本領(lǐng)域測試環(huán)境分類基礎(chǔ)上的一種對環(huán)境資源類型、數(shù)量、拓撲組網(wǎng)和配置屬性的標準化,其原則是根據(jù)測試需求對環(huán)境分類,再根據(jù)已分類環(huán)境的特征按本領(lǐng)域的標準進行部署、配置,形成滿足測試需求的環(huán)境資源池,下面給出一般的規(guī)則和方法:

      1) 根據(jù)業(yè)務(wù)場景對測試環(huán)境分類 針對需求特性中不同業(yè)務(wù)場景對測試環(huán)境進行分類,不同類別環(huán)境中需要的資源及資源的業(yè)務(wù)配置屬性有所不同,例如不同業(yè)務(wù)場景需要不同類型的服務(wù)器組合及業(yè)務(wù)配置,對于相同的可以歸為一大類環(huán)境。

      2) 根據(jù)非功能性需求對測試環(huán)境分類 針對需求特性中的非功能需求部分,包括高可用性、性能、安全等的要求對測試環(huán)境進行分類,不同類別的測試環(huán)境中資源的數(shù)量、拓撲組網(wǎng)和非功能性配置屬性有所不同,例如高可用性需要數(shù)據(jù)庫主從環(huán)境或業(yè)務(wù)服務(wù)器多活配置,對于相同的可以歸為一大類環(huán)境。

      3) 對分類的環(huán)境確定標準化的部署特性 對已劃分出的幾大類典型環(huán)境,進一步對每一類測試環(huán)境需要的資源類型、數(shù)量、組網(wǎng)方式及業(yè)務(wù)或非功能性配置屬性進行歸納,就可以形成本領(lǐng)域的部署標準,從而達成針對某需求的測試環(huán)境標準化的目標。

      環(huán)境標準化后即根據(jù)要求來搭建、配置測試環(huán)境,可以部署在真實或虛擬化平臺上,然后將測試環(huán)境掛接到云測試框架的slave節(jié)點上接入云測試,形成云化的共享環(huán)境資源池[11]。

      2.3.2 資源描述和匹配

      為了將測試用例對環(huán)境資源的需求和云化的環(huán)境資源進行匹配,必須對兩者分別進行描述,然后調(diào)用資源匹配算法進行匹配,輸出是否匹配的結(jié)果,如圖3所示。

      圖3 環(huán)境資源匹配

      云化的環(huán)境資源是通過slave節(jié)點接入云測試框架的,每個slave節(jié)點上都有一個環(huán)境資源描述文件,描述測試環(huán)境中資源節(jié)點和節(jié)點間拓撲連接關(guān)系,資源節(jié)點描述包括基本屬性和擴展屬性;測試用例對環(huán)境資源的需求用環(huán)境資源請求文件來描述,具有相同資源需求的測試用例或用例集可以共享同一個描述文件,描述對資源節(jié)點和節(jié)點間拓撲連接的要求,其中資源節(jié)點可以描述對資源類型和各種屬性的具體要求。

      測試人員提交測試任務(wù)時,將任務(wù)中用例對環(huán)境資源的請求文件和環(huán)境資源池中已具備的環(huán)境資源描述文件應(yīng)用匹配算法進行自動匹配,做到了測試用例與環(huán)境完全隔離。

      2.3.3 分布式調(diào)度

      一個測試任務(wù)包括多個測試用例,每個測試用例可以根據(jù)對環(huán)境資源的需求匹配調(diào)度到不同的測試環(huán)境分布式執(zhí)行,執(zhí)行完畢后匯總結(jié)果報告,極大提高了空閑環(huán)境利用率,同時用例分發(fā)到多個環(huán)境分布式執(zhí)行,極大地提高了測試執(zhí)行效率[12]。

      3 云測試框架的設(shè)計和實現(xiàn)

      3.1 框架設(shè)計

      云測試在框架設(shè)計上整個系統(tǒng)分為云服務(wù)器master節(jié)點、客戶端Slave節(jié)點和瀏覽器三部分,master節(jié)點和slave節(jié)點通過JSON格式的消息進行通信[13],master節(jié)點通過restful接口和瀏覽器交互,如圖4所示。

      圖4 系統(tǒng)框架

      3.1.1 云服務(wù)器master節(jié)點

      master節(jié)點是云調(diào)度中心,由一個Web Server和一個調(diào)度Server組成,其中Web Server主要處理測試任務(wù)、測試環(huán)境、用戶和日志的管理,調(diào)度Server則專門負責(zé)處理用例對環(huán)境資源的匹配、任務(wù)調(diào)度和執(zhí)行觸發(fā),Web Server和調(diào)度Server通過消息通信來相互協(xié)作。整個框架設(shè)計采用了DDD的四層架構(gòu),分為表示層、服務(wù)層、領(lǐng)域?qū)雍突A(chǔ)設(shè)施層[14],其中表示層由Web Server來提供任務(wù)、環(huán)境、用戶和日志管理的操作界面。服務(wù)層包括Web Server提供的測試任務(wù)、環(huán)境、用戶、日志操作服務(wù)和調(diào)度Server提供的匹配、調(diào)度、執(zhí)行觸發(fā)等服務(wù)。領(lǐng)域?qū)觿t由Model提供的領(lǐng)域?qū)ο蠼M成,包括任務(wù)、用例和環(huán)境等各種領(lǐng)域?qū)ο?,服?wù)層提供的服務(wù)由領(lǐng)域?qū)訉ο蠼换f(xié)作提供。基礎(chǔ)設(shè)施層則提供了對測試引擎、數(shù)據(jù)庫、SVN以及消息通信等底層的處理。

      3.1.2 客戶端slave節(jié)點

      slave節(jié)點是客戶端節(jié)點,層次相對比較簡單,分領(lǐng)域?qū)雍突A(chǔ)設(shè)施層,其中領(lǐng)域?qū)佑袦y試用例和報告等領(lǐng)域?qū)ο?,主要處理用例申請、用例?zhí)行和結(jié)果上報,基礎(chǔ)設(shè)施層則包括了對測試框架、消息通信、日志等的基礎(chǔ)處理。

      3.2 資源匹配

      3.2.1 資源描述

      在云測試框架中,資源描述包括了對資源池中已有的環(huán)境資源描述和用例對環(huán)境資源要求的描述兩大類。

      3.2.1.1 環(huán)境資源描述

      對于資源池中已存在的環(huán)境資源,描述中應(yīng)包括資源描述resources和資源間拓撲關(guān)系links這兩大部分,下面對如圖5所示的測試環(huán)境進行描述。

      圖5 環(huán)境資源結(jié)構(gòu)

      圖5環(huán)境描述如下:

      {″id″: 資源id1, ″type″:設(shè)備類型1,″attributes″:{″屬性″: ″屬性值″ }},

      {″id″: 資源id2, ″type″:設(shè)備類型1,″attributes″:{″屬性″: ″屬性值″ }},

      {″id″: 資源id3, ″type″:設(shè)備類型3,″attributes″:{″屬性″: ″屬性值″ }},

      {″id″: 資源id4, ″type″:設(shè)備類型4,″attributes″:{″屬性″: ″屬性值″ }}]

      ″links″: [

      {″id″:連接id1, ″nodes″: [″資源id1″,″資源id3″]},

      {″id″:連接id2, ″nodes″: [″資源id2″,″資源id4″]},

      {″id″:連接id3, ″nodes″: [″資源id3″,″資源id4″]}]

      其中resources部分是描述資源節(jié)點,一個環(huán)境可以包括一個或多個資源節(jié)點。對于每個資源節(jié)點包括基本屬性和擴展屬性,其中id為資源id,type為資源類型,都屬于基本屬性,可以根據(jù)實際需要擴展資源屬性,擴展屬性放在attributes中,可以有一個或多個。

      2.培養(yǎng)業(yè)務(wù)人員和財務(wù)人員稅務(wù)籌劃意識及業(yè)務(wù)能力,最大限度地節(jié)約采購成本。餐飲行業(yè)進項稅發(fā)票的取得直接關(guān)系到企業(yè)的經(jīng)營成本及利潤的多寡,營改增后在企業(yè)里應(yīng)對相關(guān)政策進行宣傳和培訓(xùn),尤其要對業(yè)務(wù)人員和財務(wù)人員加強增值稅及發(fā)票知識的培訓(xùn),讓他們清楚地知道能否取得可抵扣發(fā)票及取得發(fā)票的稅率對于經(jīng)營成本和企業(yè)利潤都產(chǎn)生直接的影響。采購人員應(yīng)減少向小規(guī)模納稅人的供應(yīng)商采購,因為小規(guī)模納稅人一般只能開具增值稅普通發(fā)票,即使到稅務(wù)局代開發(fā)票也只是3%的稅率。在和供應(yīng)商的價格談判過程中,除了要考慮采購總價還要考慮可抵扣的稅金對于成本的影響。

      links部分描述了resources中資源節(jié)點的拓撲連接關(guān)系,可以根據(jù)實際情況描述一個或多個連接關(guān)系。其中每個連接包括了連接id和nodes屬性,nodes用來描述拓撲連接的兩端,例如圖5的環(huán)境描述″links″中的{″id″:連接id1, ″nodes″: [″資源id1″,″資源id3″]},表示了資源id1連接到資源id3這樣一個連接。

      3.2.1.2 用例對環(huán)境資源需求描述

      ″resources″:

      {

      ″資源1″: {″reqType″: ″資源類型1″, ″擴展屬性1″: ″擴展屬性1值″},

      ″資源3″: {″reqType″: ″資源類型3″},

      ″資源1-資源3″: {″reqType″: ″link″, ″nodes″: [″資源1″,″資源3″]},

      }

      如上分別描述了資源節(jié)點和節(jié)點間拓撲連接關(guān)系的要求。

      對于資源節(jié)點要求的描述,可以描述一個或多個需要的資源節(jié)點,這里和已有環(huán)境資源描述不同的是,在資源節(jié)點請求中只需要描述需要匹配的屬性,可以包括基本屬性和擴展屬性。對于基本屬性 ,reqType表示需要的資源類型,對于擴展屬性,根據(jù)實際需要描述一個或多個需要匹配的擴展屬性,例如上述描述中資源1攜帶了擴展屬性1和期望值1,表示希望擴展屬性1具有期望值1,如果不需要匹配擴展屬性,則可以不描述,如資源3。

      對于節(jié)點間拓撲連接關(guān)系要求的描述,可根據(jù)需要描述一個或多個。例如上述例子描述了名為″資源1-資源3″的連接關(guān)系,其中″nodes″: [″資源1″,″資源3″]表示了需要資源節(jié)點1連接到資源節(jié)點3。

      3.2.2 資源匹配算法

      環(huán)境資源匹配算法接受兩個輸入,一是測試用例對環(huán)境資源的需求描述,二是實際存在的某個環(huán)境資源描述,通過執(zhí)行匹配算法,輸出是否匹配的結(jié)果,具體的匹配算法分兩個步驟:資源節(jié)點匹配和拓撲連接關(guān)系匹配。

      第1步資源節(jié)點匹配

      為用例的環(huán)境資源請求中每一個資源節(jié)點從待匹配的環(huán)境資源描述文件中找到所有匹配上的資源節(jié)點,具體方法如下:

      1) 遍歷用例對環(huán)境資源請求中的所有資源節(jié)點,對每個資源節(jié)點i繼續(xù)2)。

      2) 遍歷環(huán)境資源描述中已存在的所有資源節(jié)點,對每個資源節(jié)點j繼續(xù)3)。

      3) 比較請求的資源節(jié)點i和已有的資源節(jié)點j是否匹配。

      4) 如果匹配將資源節(jié)點j加入到資源節(jié)點i的匹配節(jié)點列表matched[i][]中。

      注意在3)中進行比較時,對節(jié)點的基本屬性和需要的擴展屬性進行比較匹配,當(dāng)所有請求的屬性都匹配時,節(jié)點才匹配成功。

      以3.2.1節(jié)中資源描述和資源請求為例,資源請求中資源節(jié)點1匹配到2個資源節(jié)點:[{″id″: 資源id1},{″id″: 資源id2}];資源節(jié)點3匹配到1個資源節(jié)點:[{″id″: 資源id3}]。

      第2步拓撲連接關(guān)系匹配

      在第1步資源節(jié)點匹配中,每個需要的資源節(jié)點都會匹配到一個或多個滿足要求的環(huán)境資源節(jié)點,接下來進行拓撲連接關(guān)系匹配,具體方法如下:

      1) 針對第1步環(huán)境資源請求中每個資源節(jié)點匹配到的環(huán)境資源節(jié)點(1個或多個),獲取笛卡爾積的各種組合關(guān)系。

      2) 針對環(huán)境資源請求中對資源節(jié)點間拓撲關(guān)系的要求,遍歷笛卡爾積組合關(guān)系中的每個組合,進行拓撲連接關(guān)系匹配,記錄下每個匹配上的組合關(guān)系。

      3) 如果存在一個或多個組合關(guān)系滿足匹配要求,則選擇其中一個資源節(jié)點組合作為匹配結(jié)果,否則返回?zé)o法匹配。

      以3.2.1節(jié)中資源描述和資源請求為例,在第1步資源節(jié)點匹配中,資源節(jié)點1匹配到的節(jié)點為:[{″id″: 資源id1},{″id″: 資源id2}];資源節(jié)點3匹配到的節(jié)點為:[{″id″: 資源id3}]。那么根據(jù)步驟1),笛卡爾積有兩個組合,分別為組合1:[{″id″: 資源id1},{″id″: 資源id3}]和組合2:[{″id″: 資源id2},{″id″: 資源id3}]。再根據(jù)步驟2)進行匹配,從這兩個組合關(guān)系中根據(jù)拓撲連接關(guān)系的要求,組合1中資源id1連接到資源id3,組合關(guān)系的兩個端點的類型符合3.2.1節(jié)資源請求中拓撲連接的要求,而組合2不符合要求,因此匹配到唯一符合要求的組合1并記錄下來,該環(huán)境滿足測試用例對環(huán)境資源的要求,匹配成功。

      3.3 調(diào)度匹配過程

      云測試框架的資源匹配和調(diào)度過程由master節(jié)點和slave節(jié)點協(xié)作完成[15],如圖6所示。

      圖6 匹配調(diào)度過程

      其中master節(jié)點包括任務(wù)、調(diào)度、匹配、環(huán)境管理和報告5個核心模塊,slave節(jié)點包括執(zhí)行器和環(huán)境管理2個核心模塊,它們之間交互協(xié)作完成了整個調(diào)度匹配,可以分為預(yù)匹配和正式匹配兩個過程。

      3.3.1 預(yù)匹配過程

      測試任務(wù)提交后,云服務(wù)器master根據(jù)每個測試用例對環(huán)境資源的要求和各客戶端節(jié)點slave已有的環(huán)境資源描述進行預(yù)先匹配的過程,具體步驟如下:

      (1) 測試人員向云測試master節(jié)點提交測試任務(wù),任務(wù)模塊接收到處理請求后向調(diào)度模塊發(fā)送調(diào)度請求。

      (2) 調(diào)度模塊接收到請求后向匹配模塊發(fā)送匹配請求,請求對任務(wù)中的測試用例進行環(huán)境資源匹配。

      (3) slave節(jié)點的環(huán)境管理模塊會定期將環(huán)境信息上報給master節(jié)點的環(huán)境管理模塊。匹配模塊從環(huán)境管理模塊獲取環(huán)境資源描述信息,調(diào)用匹配算法,進行預(yù)匹配,針對每個測試用例找到符合匹配要求的環(huán)境列表并返回調(diào)度模塊。

      (4) 調(diào)度模塊將匹配的環(huán)境列表記錄到用例的預(yù)匹配數(shù)據(jù)區(qū)中,然后將用例放入等待調(diào)度隊列,并向任務(wù)模塊返回應(yīng)答,預(yù)匹配過程完成。

      3.3.2 正式匹配過程

      (1) 當(dāng)測試環(huán)境空閑后,slave節(jié)點的執(zhí)行器會向master的調(diào)度模塊發(fā)送請求,請求執(zhí)行用例。

      (2) master的調(diào)度模塊從調(diào)度隊列中根據(jù)前面預(yù)匹配的結(jié)果找到一個和該slave環(huán)境匹配的可執(zhí)行用例,然后向slave發(fā)送執(zhí)行用例的請求。

      (3) slave的執(zhí)行器收到執(zhí)行請求后,再進行一次正式匹配,如果匹配將本地環(huán)境參數(shù)注入到測試用例,執(zhí)行器開始執(zhí)行用例,通過消息交互對被測環(huán)境進行實際測試。

      (4) slave的執(zhí)行器測試完成后同時向master的報告模塊和調(diào)度模塊上報測試報告和用例執(zhí)行完成的消息。

      (5) 調(diào)度模塊等待空閑的slave請求執(zhí)行用例,繼續(xù)對測試任務(wù)中的用例進行調(diào)度分發(fā)執(zhí)行,如果存在多個滿足條件的空閑slave就可以并行執(zhí)行。

      (6) 調(diào)度模塊完成任務(wù)中所有用例執(zhí)行后向報告模塊請求合并獲取完整的測試報告,報告模塊對各用例的執(zhí)行報告進行合并,形成完整的測試報告返回給調(diào)度模塊,調(diào)度模塊將測試報告保存起來供用戶查看,測試任務(wù)匹配調(diào)度執(zhí)行結(jié)束。

      4 應(yīng)用實例

      在大型復(fù)雜通信系統(tǒng)產(chǎn)品A測試中,由于其產(chǎn)品特點,整個產(chǎn)品的一大部分對處理效率的嚴格要求,目前只能在純硬件設(shè)備上運行。而另一部分雖然實現(xiàn)了虛擬化,但由于系統(tǒng)的復(fù)雜性,獲取虛擬化資源并自動創(chuàng)建、配置環(huán)境的時間較長,達到了20分鐘左右。由于產(chǎn)品A只能部分虛擬化,純硬件部分無法自動創(chuàng)建,且虛擬化部分的自動創(chuàng)建時間也很長,無法采用基于虛擬化的云測試技術(shù)來有效提升環(huán)境的部署和利用效率,為此應(yīng)用基于環(huán)境資源自動匹配的云測試框架來實施。

      對于產(chǎn)品A根據(jù)功能特性對測試用例劃分測試集,同時采用2.3.1中測試環(huán)境標準化的原則和方法對產(chǎn)品A的業(yè)務(wù)場景和非功能性要求進行分析,對各種可能的測試環(huán)境組網(wǎng)進行整理和歸納,部署標準化的環(huán)境資源池,有8種標準化環(huán)境。

      接下來對這8種標準化環(huán)境用資源描述語言進行描述,主要描述環(huán)境中資源節(jié)點關(guān)鍵屬性和資源節(jié)點間的拓撲連接關(guān)系,然后通過slave節(jié)點上報到master上。以下是其中一套環(huán)境的描述:

      ″resources″: [

      {″id″:″net″,″type″:″NETTYPE″,″attributes″:{″ip″: ″10.43.145.28″,″bureau″:″2″,″version″:″v3.20.1″}},

      {″id″:″testpc″,″type″:″TESTPC″,″attributes″:{″ip″: ″10.43.145.20″ }}]

      ″links″: [{″id″:″testpc_net″,″nodes″: [″testpc″,″net″]}

      針對云化的標準化環(huán)境資源池,在測試用例上用環(huán)境描述語言對環(huán)境資源的要求進行描述如下:

      ″resources″:

      {″testpc″: {″reqType″: ″TESTPC″},

      ″net″: {″reqType″: ″NETTYPE″ },

      ″testpc_net″:{″reqType″: ″link″, ″nodes″: [″testpc ″,″net″]}

      }

      在測試執(zhí)行時,建立了5個測試任務(wù),共1 000多條用例,其中3個測試任務(wù)用于功能測試,2個測試任務(wù)用于自動化測試。當(dāng)測試任務(wù)觸發(fā)執(zhí)行時,測試用例會自動根據(jù)對環(huán)境資源的要求匹配到合適的空閑環(huán)境執(zhí)行。當(dāng)8套標準化環(huán)境中有多套空閑且滿足用例要求時,測試任務(wù)中的用例會在這些環(huán)境中并行執(zhí)行,完成后將結(jié)果匯總上報。

      應(yīng)用基于資源匹配和調(diào)度的云測試框架在功能測試和自動化測試中均取得了較好的效果,主要有以下幾點:

      1) 產(chǎn)品A的各種典型測試環(huán)境云化,測試用例按需自動匹配到合適的空閑環(huán)境執(zhí)行,減少了環(huán)境間的沖突,提高了環(huán)境資源的利用率。

      2) 測試用例匹配到合適的環(huán)境執(zhí)行,測試用例對環(huán)境的依賴大大降低,提高了靈活性和可移植性。

      3) 產(chǎn)品A的業(yè)務(wù)場景復(fù)雜,用例多,由于云測試框架可采用分布式并行執(zhí)行,使得自動化測試的時間由8小時縮短為2小時,極大地提高了效率。

      5 結(jié) 語

      基于資源匹配和調(diào)度的云測試框架在不同的行業(yè)領(lǐng)域都可以應(yīng)用。需要充分考慮各種業(yè)務(wù)場景和非功能性要求對典型環(huán)境組網(wǎng)的要求,合理規(guī)劃云化的環(huán)境資源池,并通過環(huán)境描述語言描述后掛載到云測試上,通過環(huán)境資源匹配接受測試用例的調(diào)度執(zhí)行,極大地提高了環(huán)境資源的利用率和測試任務(wù)的執(zhí)行效率。

      未來云測試框架應(yīng)該向自動檢測目標環(huán)境并生成環(huán)境資源描述以及更豐富的匹配調(diào)度策略這兩個方向繼續(xù)探索研究,發(fā)揮更大的作用。

      [1] Patton R.軟件測試[M].北京:機械工業(yè)出版社,2002:1-50.

      [2] 吳顯光.軟件自動化測試[J].中國新通信,2012,14(14):67-69.

      [3] 周楠,舒輝,董衛(wèi)宇.基于虛擬機的網(wǎng)絡(luò)測試環(huán)境搭建與調(diào)度自動化實現(xiàn)[J].信息工程大學(xué)學(xué)報,2008,9(1):100-104.

      [4] 張媛媛.測試環(huán)境管理的研究及應(yīng)用[D].北京:北京郵電大學(xué),2010.

      [5] 龔丹.自動化測試之我見[J].計算機光盤軟件與應(yīng)用,2012(17):83-84.

      [6] 李喬,柯棟梁,王小林.云測試研究現(xiàn)狀綜述[J].計算機應(yīng)用研究,2012,29(12):4401-4406.

      [7] 李喬,鄭嘯.云計算研究現(xiàn)狀綜述[J].計算機科學(xué),2011,38(4):32-37.

      [8] Hanawa T,Banzai T,Koizumi H,et al.Large-scale software testing environment using cloud computing technology for dependable parallel and distributed systems[C]//Proc of the 3rd International Conference on Software Testing,Verification,and Validation.Washington DC:IEEE Computer Society,2010:428-433.

      [9] 徐鵬,陳思,蘇森.互聯(lián)網(wǎng)應(yīng)用PaaS平臺體系結(jié)構(gòu)[J].北京郵電大學(xué)學(xué)報,2012,35(1):120-124.

      [10] 徐風(fēng),王偉平.基于綜合形式(PAAS+IAAS)的云計算平臺的研究與構(gòu)建[J].科技資訊,2010(32):19-19.

      [11] Takayuki B,Hitoshi K,Ryo K,et al.D-cloud:design of a software testing environment for reliable distributed systems using cloud computing technology[C]//Proc of the 10th International Conference on Cluster,Cloud,and Grid Computing.Washington DC:IEEE Computer Society,2010:631-636.

      [12] 王躍科,明德祥.基于網(wǎng)絡(luò)互聯(lián)的分布式測試系統(tǒng)開放體系結(jié)構(gòu)與技術(shù)[J].計算機測量與控制,2002,10(8):496-498.

      [13] 袁棟梁,孫忠林,田剛,等.基于JSON格式的信息資源共享技術(shù)的應(yīng)用研究[J].計算機與現(xiàn)代化,2010,(9):175-178.

      [14] Evans E.領(lǐng)域驅(qū)動設(shè)計[M].北京:人民郵電出版社,2010.

      [15] 左利云,曹志波.云計算中調(diào)度問題研究綜述[J].計算機應(yīng)用研究,2012,29(11):4023-4027.

      猜你喜歡
      測試環(huán)境測試用例用例
      UML用例模型中依賴關(guān)系的比較與分析
      全數(shù)字仿真測試環(huán)境在航天軟件測試中的應(yīng)用研究
      基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
      雷達航跡處理測試環(huán)境構(gòu)建方法研究
      科技視界(2019年10期)2019-09-02 03:22:27
      聯(lián)鎖軟件詳細設(shè)計的測試需求分析和用例編寫
      從出土文獻用例看王氏父子校讀古書的得失
      網(wǎng)絡(luò)設(shè)備自動化測試設(shè)計與實現(xiàn)
      基于混合遺傳算法的回歸測試用例集最小化研究
      負離子紡織品檢測方法分析
      中國纖檢(2015年4期)2015-03-13 18:25:35
      基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
      湘乡市| 平潭县| 青河县| 南乐县| 贵州省| 彰化市| 鄂托克前旗| 彭阳县| 富蕴县| 武功县| 武宁县| 垫江县| 霸州市| 德安县| 朝阳区| 岑巩县| 出国| 石城县| 呼和浩特市| 英吉沙县| 富蕴县| 溧阳市| 赣州市| 腾冲县| 南木林县| 宽城| 河间市| 壤塘县| 施甸县| 长宁区| 措勤县| 凤阳县| 榆树市| 富阳市| 福建省| 西城区| 旌德县| 南木林县| 九江市| 疏勒县| 东莞市|