本發(fā)明涉及工程測試領域,特別涉及一種測試時間優(yōu)化方法。
背景技術:
隨著社會進入信息時代,IT行業(yè)的發(fā)展越來越快,軟件的種類和功能也從最開始的幾種,變?yōu)榱爽F(xiàn)在覆蓋各式各樣的領域和功能齊全的軟件,而在制作這些軟件的過程中容易出現(xiàn)編程錯誤、輸出結果不符合預期等問題,而這些問題在最初的編寫過程中是很難被發(fā)現(xiàn)的,需要在后續(xù)的測試過程中才能體現(xiàn)。
軟件測試是在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。這一過程通常由一些專業(yè)的測試軟件執(zhí)行,Robot Framework就是其中之一?,F(xiàn)有技術中測試人員使用Robot Framework對目標軟件進行測試,但由于Robot Framework只能串行的執(zhí)行測試用例,所以測試用例的長度與測試時間成正比,當面臨測試用例過長時時,將耗費大量的測試時間,使得測試效率極低。
綜上所述可以看出,如何能夠快速的對軟件進行測試,提高測試軟件效率是一個重要的問題。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種測試時間優(yōu)化方法,減少了測試時間,提高了測試效率。其具體方案如下:
一種測試時間優(yōu)化方法,包括:
將測試用例分割為N個子測試用例,N為正整數(shù);
將所述N個子測試用例分配給M個從屬節(jié)點,以使從屬節(jié)點對子測試用例進行測試,M為正整數(shù)。
優(yōu)選的,所述M個從屬節(jié)點的獲得過程,包括:
從所有從屬節(jié)點中篩選出處于非繁忙狀態(tài)的從屬節(jié)點,得到所述M個從屬節(jié)點。
優(yōu)選的,還包括:預先對子測試用例優(yōu)先級進行設定,對同一個從屬節(jié)點內的子測試用例,利用預先設定的優(yōu)先級進行排序,以使高優(yōu)先級的子測試用例能夠先于低優(yōu)先級的子測試用例進行測試。
優(yōu)選的,還包括:測試前將與子測試用例相對應的測試環(huán)境搭建文件分配給所述M個從屬節(jié)點,以使從屬節(jié)點利用測試環(huán)境搭建文件自動搭建測試環(huán)境。
優(yōu)選的,還包括:接收從屬節(jié)點生成的測試結果,以利用測試結果生成測試報告。
優(yōu)選的,還包括:相對應的從屬節(jié)點生成測試結果后,清理測試環(huán)境。
優(yōu)選的,所述將N個子測試用例分配給M個從屬節(jié)點包括:
將所述N個子測試用例平均分配給所述M個從屬節(jié)點。
本發(fā)明還公開了一種測試時間優(yōu)化系統(tǒng),包括:
測試用例分割模塊,用于將測試用例分割為N個子測試用例,N為正整數(shù);
子測試用例分配模塊,用于將所述N個子測試用例分配給M個從屬節(jié)點,以使從屬節(jié)點對子測試用例進行測試,M為正整數(shù)。
優(yōu)選的,所述子測試用例分配模塊包括:
從屬節(jié)點篩選單元,用于從所有從屬節(jié)點中篩選出處于非繁忙狀態(tài)的從屬節(jié)點,得到所述M個從屬節(jié)點;
子測試用例發(fā)送單元,用于將所述N個子測試用例分配給所述M個從屬節(jié)點。
優(yōu)選的,所述子測試用例分配模塊具體用于將所述N個子測試用例平均分配給所述M個從屬節(jié)點。
本發(fā)明所提供的測試時間優(yōu)化方法,包括:將測試用例分割為N個子測試用例,N為正整數(shù);將所述N個子測試用例分配給M個從屬節(jié)點,以使從屬節(jié)點對子測試用例進行測試,M為正整數(shù)。可見,本發(fā)明在面對超長的測試用例時,不再是用單一的測試機對測試用例進行簡單的串行測試,而是將測試用例進行切割,分為數(shù)個小的子測試用例,并派發(fā)給多個測試機,形成并列處理的形式,同時減少了測試時間,極大的提高了測試效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施提供的一種測試時間優(yōu)化方法流程圖;
圖2為本發(fā)明實施提供的另一種測試時間優(yōu)化方法流程圖;
圖3為本發(fā)明實施提供的另一種測試時間優(yōu)化方法流程圖;
圖4為本發(fā)明實施提供的一種測試時間優(yōu)化系統(tǒng)結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例公開了一種測試時間優(yōu)化方法,參見圖1所示,該方法包括:
步驟S11:將測試用例分割為N個子測試用例,N為正整數(shù)。
在實際應用中,通常一個測試用例的長度會包含多個測試內容,使得測試用例會有很長的長度,如果在單一的測試機上對長度過大的測試用例進行測試,因為只能串行執(zhí)行測試用例,所以導致測試時間過長,為此,將測試用例進行分割,化為多個子測試用例,為并行測試做預先準備。
具體的,主控節(jié)點接收用戶提供的測試用例,主控節(jié)點對測試用例進行分割,得到N個子測試用例。
需要說明的是,測試用例的分割標準,可以根據(jù)每個單獨的測試點進行分割,即每個子測試用例為對一個測試點進行測試,也可以根據(jù)測試時間進行分割,因為有的測試點可能測試時間長于其他測試點,因此可以將數(shù)個測試時間較短的測試點分為一個子測試用例,將一個測試時間長的測試用例分為另一個子測試用例,使兩個子測試用例的耗時一樣。
步驟S12:將N個子測試用例分配給M個從屬節(jié)點,以使從屬節(jié)點對子測試用例進行測試,M為正整數(shù)。
可以理解的是,將多個測試機統(tǒng)一到一個主測試機下,形成網(wǎng)絡,便可對多個子測試用例進行并行測試,減少測試時間。
主控節(jié)點將N個子測試用例分配給從屬節(jié)點,從而避免單個節(jié)點串行測試一個過長的測試用例,起到并行測試的效果,加快測試速度。
可以理解的是,為了將多節(jié)點并行處理測試用例的優(yōu)勢發(fā)揮到更好的效果,主控節(jié)點可以平均分配子測試用例給從屬節(jié)點,主控節(jié)點可以首先計算當前有多少個從屬節(jié)點,得到從屬節(jié)點總數(shù)后,將子測試用例總數(shù)除以從屬節(jié)點總數(shù),得出平均每個從屬節(jié)點應該分配到多少個子測試用例,主控節(jié)點利用得出的平均任務分配數(shù)分配子測試用例,從而最大程度的發(fā)揮每個從屬節(jié)點的效用,縮短測試時間。
例如,基于Robot Framework的測試系統(tǒng),主控節(jié)點將測試用例分為了20個子測試用例,主控節(jié)點統(tǒng)計當前有多少個從屬節(jié)點,得到從屬節(jié)點總數(shù)為10個,將子測試用例總數(shù)除以從屬節(jié)點總數(shù),得出平均每個從屬節(jié)點分配到2個子測試用例,主控節(jié)點為向每個從屬節(jié)點發(fā)送2個子測試用例。
可見,本發(fā)明實施例在面對超長的測試用例時,不再是用單一的測試機對測試用例進行簡單的串行測試,而是將測試用例進行切割,分為數(shù)個小的子測試用例,并派發(fā)給多個測試機,形成并列處理的形式,同時減少了測試時間,極大的提高了測試效率。
其中,從屬節(jié)點測試完成后,會生成測試結果,如果不對從屬節(jié)點生成的測試結果進行收集,將不便于對整個測試用例進行分析,因此,增加收集從屬節(jié)點測試結果,以便主控節(jié)點進行進一步分析和總結。
具體的,從屬節(jié)點測試完畢后,生成測試結果,將測試結果發(fā)送給主控節(jié)點,主控節(jié)點接收從屬節(jié)點發(fā)送的測試結果,利用測試結果生成測試報告。
可以理解的是,主控節(jié)點接收到從屬節(jié)點發(fā)送的測試報告后還可以進一步的進行處理,例如將執(zhí)行失敗的測試用例與執(zhí)行成功的測試用例進行分類和顯示,還可以對測試報告進行重命名等操作,以提高用戶的使用體驗。
在實際應用中,一個從屬節(jié)點可能要對多種類型的子測試用例進行測試,為此可能需要用戶提前為從屬節(jié)點搭建多種測試環(huán)境,而從屬節(jié)點數(shù)量可能很多,無形中會增加大量的工作量,且在此過程中很有可能出現(xiàn)預先搭建的測試環(huán)境不能覆蓋從屬節(jié)點所需要執(zhí)行的子測試用例類型,從而造成從屬節(jié)點無法對完成對子測試用例的測試,因此為避免此種情況,主控節(jié)點還包括向從屬節(jié)點發(fā)送測試環(huán)境搭建文件。
具體過程為,從屬節(jié)點接收測試環(huán)境搭建文件,利用測試環(huán)境搭建文件中攜帶的測試環(huán)境搭建信息,從屬節(jié)點自行搭建測試環(huán)境,從屬節(jié)點利用搭建完成后的測試環(huán)境對子測試用例進行測試,生成測試結果,并發(fā)送回主控節(jié)點。
其中,從屬節(jié)點自行搭建測試環(huán)境前,可以判斷是否已經(jīng)預設測試環(huán)境搭建文件所提供的測試環(huán)境,如果是,則無需再自行搭建,可以直接調用已經(jīng)預設的測試環(huán)境對測試用例進行測試,如果否,則自行搭建。
由于測試完成后,測試環(huán)境內會保留上一個子測試用例的信息,如果繼續(xù)使用該測試環(huán)境對下一個子測試用例進行測試,可能在數(shù)據(jù)導入過程中出現(xiàn)錯誤,使得上一個子測試用例的信息影響下一個子測試用例,造成測試失敗,所以需要適時的刪除測試環(huán)境,為此增加自動清理測試環(huán)境過程。
具體過程為,從屬節(jié)點生成測試報告后,自動清除測試環(huán)境搭建文件和子測試用例,同時清除測試環(huán)境,將測試報告發(fā)送給主控節(jié)點,清除過程和發(fā)送測試報告給主控節(jié)點可以同時進行,也可以分別進行。
本發(fā)明實施例公開了一種具體的測試時間優(yōu)化方法,相對于上一實施例,本實施例對技術方案作了進一步的說明和優(yōu)化。參見圖2所示,具體的:
在實際應用中,主控節(jié)點可能會連續(xù)接收大量的測試用例,并準備分配,從屬節(jié)點可能仍在處理之前分配的子測試用例,如果主控節(jié)點繼續(xù)沒有計劃的分配子測試用例,很可能會導致部分從屬節(jié)點的子測試用例積壓,從而降低效率,因此在本實施例中增加對于從屬節(jié)點工作狀態(tài)的判定。
步驟S21:主控節(jié)點從所有從屬節(jié)點中篩選出處于非繁忙狀態(tài)的從屬節(jié)點,得到M個從屬節(jié)點。
具體的,主控節(jié)點接收到用戶提供的多個測試用例,主控節(jié)點向從屬節(jié)點發(fā)送工作狀態(tài)確認信息,從屬節(jié)點根據(jù)主控節(jié)點發(fā)送的工作狀態(tài)確認信息,確認自身工作狀態(tài),并將工作狀態(tài)信息反饋給主控節(jié)點,主控節(jié)點根據(jù)從屬節(jié)點發(fā)送的工作狀態(tài)信息判斷從屬節(jié)點的工作狀態(tài),進入步驟S22。
可以理解的是,對于從屬節(jié)點的工作狀態(tài)是否繁忙可以預先設定繁忙狀態(tài)判斷標準,利用該標準判斷從屬節(jié)點是否繁忙,例如,可以根據(jù)從屬節(jié)點擁有的子測試用例數(shù)作為基準,當從屬節(jié)點子測試用例數(shù)為大于等于10個子測試用例時,判定處于繁忙狀態(tài),當從屬節(jié)點子測試用例數(shù)為小于10個子測試用例時,判定處于非繁忙狀態(tài)。
步驟S22:將N個子測試用例分配給M個從屬節(jié)點。
具體的,主控節(jié)點根據(jù)從屬節(jié)點發(fā)送的工作狀態(tài)信息判定從屬節(jié)點的工作狀態(tài),篩選出非繁忙狀態(tài)的從屬節(jié)點,向處于非繁忙狀態(tài)的從屬節(jié)點發(fā)送子測試用例,以此避免從屬節(jié)點子測試用例積壓,從而造成的測試效率降低。
可見,本發(fā)明實施例中,通過判斷從屬節(jié)點的工作狀態(tài),避免了從屬節(jié)點子測試用例積壓,防止了系統(tǒng)長時間運行過程中出現(xiàn)測試效率降低的情況。
需要說明的是,還可以對每個從屬節(jié)點的子測試用例數(shù)進行統(tǒng)計,這樣主控節(jié)點可以利用統(tǒng)計的子測試用例數(shù),將子測試用例均衡的分配給每個從屬節(jié)點,例如,主控節(jié)點對相應的5個從屬節(jié)點的子測試用例進行統(tǒng)計,得到5個從屬節(jié)點當前子測試用例數(shù)分別為3、5、2、8和6,此時主控節(jié)點分割出12個子測試用例,主控節(jié)點利用統(tǒng)計的5個從屬節(jié)點的子測試用例數(shù)進行分配,得到的分配結果為7、7、7、8和7,主控節(jié)點分別向第一從屬節(jié)點至第三從屬節(jié)點和第五從屬節(jié)點分配了4、2、5和1個子測試用例,因為第四從屬節(jié)點擁有8個子測試用例,而向其他4個節(jié)點分配子測試用例能夠均衡的分配主控節(jié)點分割出的12個子測試用例,所以不再向第四從屬節(jié)點分配新的子測試用例,進一步的避免了從屬節(jié)點的子測試用例積壓。
另外,本發(fā)明實施例還公開了一種具體的測試時間優(yōu)化方法,相對于上一實施例,本實施例對技術方案作了進一步的說明和優(yōu)化。參見圖3所示,具體的:
可以理解的是,上述發(fā)明實施例中雖然采用多個從屬節(jié)點來起到并行處理測試用例的效果,但對于單個從屬節(jié)點中仍是串行處理任務,因此,當主控節(jié)點分割出新的高優(yōu)先級的子測試用例時,該子測試用例分配到從屬節(jié)點后,可能處于隊列末尾,無法優(yōu)先測試,因此,本發(fā)明實施例增加對子測試用例的分類,以使從屬節(jié)點能夠積極響應高優(yōu)先級子測試用例。
步驟S31:預先對子測試用例優(yōu)先級進行設定。
具體的,主控節(jié)點利用用戶輸入的子測試用例優(yōu)先級信息,對子測試用例優(yōu)先級進行設定。
可以理解的是,優(yōu)先級可以分為多個級別,例如,高、中和低,高優(yōu)先級的子測試用例在重要性和處理順序上要高于中優(yōu)先級和低優(yōu)先級,中優(yōu)先級又高于低優(yōu)先級,可以默認所有子測試用例為中優(yōu)先級,以節(jié)省用戶操作,并且在用戶設置時更能顯現(xiàn)層次性。
步驟S32:對同一個從屬節(jié)點內的子測試用例,利用預先設定的優(yōu)先級進行排序,以使高優(yōu)先級的子測試用例能夠先于低優(yōu)先級的子測試用例進行測試。
具體的,使從屬節(jié)點接收到高優(yōu)先級的子測試用例時,將高優(yōu)先級的子測試用例提升到處理子測試用例序列的前排,也即將高優(yōu)先級的子測試用例排列到當前執(zhí)行的子測試用例之后,或立即開始執(zhí)行高優(yōu)先級的子測試用例。在此基礎上,還可以優(yōu)先發(fā)送高優(yōu)先級的子測試用例,以使子測試用例在從屬節(jié)點隊列中處于前置位置,以減少出現(xiàn)從屬節(jié)點處于繁忙狀態(tài),無法接收子測試用例的情況,并使從屬節(jié)點能夠盡早的處理高優(yōu)先級的子測試用例。
其中,在分配高優(yōu)先級的子測試用例時,可以優(yōu)先選擇任務數(shù)相對較少的從屬節(jié)點進行分配,還可以單獨備用一個專門處理高優(yōu)先級任務的從屬節(jié)點,進一步的加強對于高優(yōu)先級的子測試用例的處理速度。
可見,本發(fā)明實施例通過預先對子測試用例進行優(yōu)先級設定,保證了緊急任務的處理速度,進一步的完善和提高對于測試用例的處理效率。
此外,本發(fā)明實施例還公開了一種測試時間優(yōu)化系統(tǒng),參見圖4所示,該系統(tǒng)包括:
測試用例分割模塊11,用于將測試用例分割為N個子測試用例,N為正整數(shù);
子測試用例分配模塊12,用于將N個子測試用例分配給M個從屬節(jié)點,以使從屬節(jié)點對子測試用例進行測試,M為正整數(shù)。
測試用例分割模塊11具體用于將N個子測試用例平均分配給M個從屬節(jié)點。
本發(fā)明實施例中,子測試用例分配模塊12具體包括,從屬節(jié)點篩選單元,其中,
從屬節(jié)點篩選單元,用于從所有從屬節(jié)點中篩選出處于非繁忙狀態(tài)的從屬節(jié)點,得到M個從屬節(jié)點;
本發(fā)明實施例中,還包括:
優(yōu)先級設定模塊,用于預先對子測試用例優(yōu)先級進行設定,對同一個從屬節(jié)點內的子測試用例,利用預先設定的優(yōu)先級進行排序,以使高優(yōu)先級的子測試用例能夠先于低優(yōu)先級的子測試用例進行測試。
測試環(huán)境搭建文件發(fā)送模塊,用于測試前將與子測試用例相對應的測試環(huán)境搭建文件分配給M個從屬節(jié)點。
測試環(huán)境自搭建模塊,用于利用測試環(huán)境搭建文件,從屬節(jié)點自動搭建測試環(huán)境。
測試環(huán)境清理模塊,用于相對應的從屬節(jié)點生成測試結果后,清理測試環(huán)境。
測試報告生成模塊,用于接收從屬節(jié)點生成的測試結果,以利用測試結果生成測試報告。
可見,本發(fā)明實施例在面對超長的測試用例時,不再是用單一的測試機對測試用例進行簡單的串行測試,而是利用測試用例分割模塊11將測試用例進行切割,分為數(shù)個小的子測試用例,并利用子測試用例分配模塊12派發(fā)給多個測試機,形成并列處理的形式,同時減少了測試時間,極大的提高了測試效率。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
以上對本發(fā)明所提供的一種測試時間優(yōu)化方法及系統(tǒng)進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。