董 昕 王 杰
1(成都工業(yè)學(xué)院計(jì)算機(jī)工程學(xué)院 四川 成都 611730)
2(中國電子科技集團(tuán)第29研究所系統(tǒng)工程部 四川 成都 610036)
一種自動(dòng)生成軟件測(cè)試用例的新方法
董 昕1王 杰2*
1(成都工業(yè)學(xué)院計(jì)算機(jī)工程學(xué)院 四川 成都 611730)
2(中國電子科技集團(tuán)第29研究所系統(tǒng)工程部 四川 成都 610036)
泛歐集群通信系統(tǒng)是一種為無線用戶提供語音和數(shù)據(jù)服務(wù)的公共安全的大型集群通信系統(tǒng)。作為其核心組成部分,區(qū)域控制器在廣泛區(qū)域內(nèi)提供無線通信和電話互連互通的呼叫處理服務(wù),其自身也是一個(gè)大型軟件系統(tǒng)。提出區(qū)域控制器軟件基于Python方法的軟件自動(dòng)化測(cè)試用例生成一種創(chuàng)造性方法。該方法不僅能自動(dòng)創(chuàng)建測(cè)試用例,而且支持將創(chuàng)建的測(cè)試用例批量上傳到存儲(chǔ)器及支持批量運(yùn)行。測(cè)試實(shí)踐證明,該方法可以大大減少軟件測(cè)試人員的人工干預(yù),而且較大程度地提高測(cè)試效率。設(shè)計(jì)實(shí)現(xiàn)了最大化腳本重用和最小化測(cè)試腳本維護(hù)修改成本, 值得在大型軟件系統(tǒng)的大批量自動(dòng)化測(cè)試環(huán)境中推廣和部署。
大型軟件系統(tǒng) 軟件自動(dòng)化測(cè)試 測(cè)試用例 Python方法 重用
隨著社會(huì)進(jìn)步、科技發(fā)展及軟件應(yīng)用范圍的增廣,軟件規(guī)模愈來愈大。軟件不僅僅是在規(guī)模上快速地發(fā)展擴(kuò)大,而且其復(fù)雜性也急劇地增加,規(guī)模達(dá)到千萬行的大型軟件系統(tǒng)層出不窮[1]。規(guī)模及復(fù)雜性的與日俱增使其錯(cuò)誤產(chǎn)生幾率大大增加,其中潛在的缺陷與故障所造成損失不斷發(fā)生。大型軟件系統(tǒng)中的關(guān)鍵構(gòu)件的質(zhì)量問題可能造成嚴(yán)重?fù)p失或?yàn)?zāi)難,因此質(zhì)量問題已為開發(fā)軟件和應(yīng)用軟件的關(guān)注焦點(diǎn)。軟件缺陷具有“難以看到”和“難以抓到”的特征,很有必要引入軟件測(cè)試來提高軟件質(zhì)量。而且軟件測(cè)試并非一次就能完成,通常需要多次執(zhí)行,其工作量和時(shí)間耗費(fèi)巨大。對(duì)可靠性要求更高的大型軟件系統(tǒng),其測(cè)試工作已占到整個(gè)軟件項(xiàng)目工作量的 50%~60%[2]。傳統(tǒng)的手工測(cè)試雖然仍為基本方式,但自動(dòng)化測(cè)試得到了越來越廣泛的運(yùn)用。作為軟件測(cè)試重要策略與技術(shù)手段,自動(dòng)化測(cè)試可實(shí)現(xiàn)人工測(cè)試無法實(shí)現(xiàn)或難以實(shí)現(xiàn)的測(cè)試及更高的測(cè)試質(zhì)量與效率。目前越來越多的軟件測(cè)試必須引入自動(dòng)化測(cè)試技術(shù)才能保障順利完成。在許多情況下特別是在規(guī)模較大及復(fù)雜性較高的大型軟件系統(tǒng)自動(dòng)化測(cè)試能發(fā)揮較大作用。作為自動(dòng)化測(cè)試中的重要組成部分之一的自動(dòng)化測(cè)試用例是指自動(dòng)化測(cè)試執(zhí)行中引用的具體測(cè)試用例。如何高效地實(shí)現(xiàn)大型軟件系統(tǒng)的自動(dòng)化測(cè)試一直是困擾軟件測(cè)試行業(yè)的一個(gè)課題,其中的核心問題在于如何快速并準(zhǔn)確地創(chuàng)建自動(dòng)化測(cè)試腳本。本文以數(shù)字集群通信系統(tǒng)為例,介紹一種新的方法能有效地解決這一問題并提高測(cè)試用例復(fù)用性。
在介紹自動(dòng)化測(cè)試平臺(tái)之前,先簡(jiǎn)要介紹下被測(cè)體大型軟件系統(tǒng)——數(shù)字集群通信系統(tǒng),它廣泛應(yīng)用于公共安全、交通運(yùn)輸、能源和物流等領(lǐng)域。TETRA系統(tǒng)作為一種為無線用戶提供語音和數(shù)據(jù)服務(wù)的數(shù)字集群通信系統(tǒng),在各行各業(yè)的指揮調(diào)度中發(fā)揮了重要作用, 其系統(tǒng)概述圖如圖1所示。
圖1 TETRA系統(tǒng)概述圖
圖中左上方的區(qū)域控制器ZC(zone controller)作為TETRA系統(tǒng)中的核心組成部分,提供組呼、單呼和電話互連互通的呼叫處理服務(wù)[3]。區(qū)域控制器的測(cè)試對(duì)確保整個(gè)數(shù)字集群通信系統(tǒng)正常運(yùn)行起著不可或缺的作用,其主要組件達(dá)40多個(gè),文件數(shù)量13 000多個(gè),實(shí)現(xiàn)代碼高達(dá)95多萬行。
區(qū)域控制器的自動(dòng)化測(cè)試平臺(tái)GLS(Generic Link Simulator)是通用鏈路模擬器的縮寫。 它是一個(gè)專門為了仿真基于消息協(xié)議的通信設(shè)備而設(shè)計(jì)開發(fā)的測(cè)試平臺(tái),如圖2所示。
圖2 GLS自動(dòng)化測(cè)試平臺(tái)概述圖
從圖2可以看出,GLS自動(dòng)化測(cè)試平臺(tái)由鏈接過程、消息定義文件、測(cè)試用例腳本等組成。鏈接過程仿真其他連接到區(qū)域控制器(ZC)的系統(tǒng)組件的較低協(xié)議層,維護(hù)已建立的鏈接,并作為GLS測(cè)試用例與區(qū)域控制器間的接口。其中MCAST_SC_NETCOM 是ZC與基站之間的鏈接,IZ_NETCOM 是兩個(gè)ZC之間的鏈接。鏈接過程支持手動(dòng)啟動(dòng)或終止,也支持全自動(dòng)或半自動(dòng)啟動(dòng)或終止。鏈接過程參數(shù)和特性由配置文件管理,比如IP地址、端口號(hào)、緩存和變量等。每個(gè)配置文件都可看作一個(gè)鏈接過程的可能的實(shí)例。消息定義文件包含了消息定義及消息在鏈接中發(fā)送和接收的初始值。每個(gè)鏈接過程都有一個(gè)與之相對(duì)應(yīng)的消息定義文件。
作為自動(dòng)化測(cè)試中的重要組成部分之一的自動(dòng)化測(cè)試用例,主要分為兩類:結(jié)構(gòu)化腳本和共享腳本。腳本類似于結(jié)構(gòu)化程序含有控制腳本執(zhí)行的指令。優(yōu)點(diǎn)是健壯性好,可通過循環(huán)和調(diào)用減少工作量。缺點(diǎn)是腳本較復(fù)雜且測(cè)試用例“捆綁”腳本中。共享腳本指腳本可被多測(cè)試用例使用,一個(gè)腳本可被其他腳本所調(diào)用。使用共享腳本可節(jié)省腳本生成時(shí)間和減少重復(fù)工作量,當(dāng)重復(fù)任務(wù)變化時(shí)只需少量修改。優(yōu)點(diǎn)在于較少開銷實(shí)現(xiàn)類似測(cè)試,維護(hù)開銷低于線性腳本,能刪除重復(fù)并可增加智能。缺點(diǎn)是需跟蹤更多腳本,給配置管理帶來困難,對(duì)每個(gè)測(cè)試仍需定制,測(cè)試腳本維護(hù)費(fèi)用高。
GLS測(cè)試腳本綜合了結(jié)構(gòu)化腳本和共享腳本的優(yōu)勢(shì),既支持控制腳本執(zhí)行的指令,健壯性好,可通過循環(huán)和調(diào)用減少工作量,又支持腳本間的相互調(diào)用,可節(jié)省腳本生成時(shí)間和減少重復(fù)工作量,當(dāng)重復(fù)任務(wù)變化時(shí)只需少量修改。ZC的每個(gè)測(cè)試用例對(duì)應(yīng)著一個(gè)用戶場(chǎng)景,每個(gè)GLS測(cè)試腳本對(duì)應(yīng)著相應(yīng)的消息序列。測(cè)試腳本可以調(diào)用其他的腳本文件,并支持并行調(diào)用,而且GLS腳本可以用來配置及測(cè)試被測(cè)體,還可以組成測(cè)試集。測(cè)試集一般由測(cè)試相同或相近功能的測(cè)試腳本組合而成。
大型軟件系統(tǒng)有大量的較復(fù)雜的功能點(diǎn)需要測(cè)試,單純采用傳統(tǒng)的手動(dòng)測(cè)試已變的不合時(shí)宜。必須引入自動(dòng)化測(cè)試,并且需要大量的測(cè)試用例來檢驗(yàn)被測(cè)體的有效性,例如區(qū)域控制器測(cè)試項(xiàng)目就有4 000余個(gè)測(cè)試用例。測(cè)試用例的有效創(chuàng)建、重用和維護(hù)是自動(dòng)化測(cè)試中最關(guān)鍵的環(huán)節(jié)之一。本文給出了一種基于Python的自動(dòng)創(chuàng)建測(cè)試用例的新方法并在集群通信系統(tǒng)中得到了驗(yàn)證。
區(qū)域控制器主要處理和生成與呼叫(如單呼、電話互聯(lián)互通和組呼等)的相關(guān)信令。由于要在區(qū)域控制器引入新的呼叫架構(gòu)[4](即端到端的呼叫架構(gòu)),該重構(gòu)會(huì)引入大量接口改變,比如區(qū)域控制器與基站BTS(base transceiver station)的接口。接口改變會(huì)引起大量自動(dòng)化測(cè)試用例的變動(dòng)。所以選擇高效的創(chuàng)建測(cè)試用例的方法顯得至關(guān)重要。區(qū)域控制器-基站間的接口因?yàn)槎说蕉说暮艚屑軜?gòu)(P2P架構(gòu))而有較大的改動(dòng)。新架構(gòu)將使用新的P2P消息的原語。在區(qū)域控制器-基站間的接口,單呼和電話互聯(lián)互通消息被合并成一個(gè)單一的新的消息,并定義為P2P消息。作為一般規(guī)則,一個(gè)“P2P”消息將代替對(duì)應(yīng)的兩個(gè)單呼(U2U)和電話互聯(lián)互通(INTerconnect)消息[5],如表1所示。
表1 區(qū)域控制器-基站間的接口改動(dòng)
由于P2P功能將合并U2U和INT呼叫類型到一個(gè)共同的P2P類型,現(xiàn)有的U2U和INT消息將由新的P2P的消息取代[6],這對(duì)現(xiàn)有的單呼和電話呼叫的測(cè)試用例有相當(dāng)大的影響?,F(xiàn)有測(cè)試用例的功能及場(chǎng)景將保持不變,變化主要是改動(dòng)現(xiàn)有測(cè)試用例的接口,基于已有的測(cè)試場(chǎng)景創(chuàng)建新的測(cè)試用例。消息的變化將被劃分為三類:刪除現(xiàn)有域/消息、添加新的域/新消息和更改現(xiàn)有的域/消息。在項(xiàng)目調(diào)研階段,作者發(fā)現(xiàn)大概有1 400多個(gè)自動(dòng)化測(cè)試用例需要做接口的改動(dòng),如果純手工改動(dòng)工作量大,項(xiàng)目進(jìn)度要求緊迫,現(xiàn)有項(xiàng)目不可行。所以決定開發(fā)Python方法來完成自動(dòng)化測(cè)試用例創(chuàng)建[7]。刪除舊的域/消息、替換舊的域/消息和增加新的域或消息都可以通過自動(dòng)Python方法,如表2所示。
表2 消息變動(dòng)類型
現(xiàn)有U2U消息和INT的消息轉(zhuǎn)換為P2P的消息,將相應(yīng)創(chuàng)建新的測(cè)試用例。為了減少手工改動(dòng)繁重的工作量,本文開發(fā)一個(gè)基于Python語言的方法實(shí)現(xiàn)自動(dòng)化創(chuàng)建測(cè)試用例。其主要目的是最大限度實(shí)現(xiàn)無需人工參與,完成測(cè)試用例自動(dòng)創(chuàng)建。Python語言是一種面向?qū)ο笾弊g式計(jì)算機(jī)程序設(shè)計(jì)語言,也是一種功能強(qiáng)大的通用型語言,近幾年已成為最受歡迎的動(dòng)態(tài)編程語言之一。Python語言清晰、簡(jiǎn)潔、易讀以及可擴(kuò)展性,使得使用者從語法細(xì)節(jié)中擺脫出來,專注于解決問題的方法、分析程序本身的邏輯和算法[8]。經(jīng)過20多年的發(fā)展,Python語言已成為一門重要的程序設(shè)計(jì)語言,在軟件開發(fā)領(lǐng)域有著廣泛的應(yīng)用。基于上述這些特點(diǎn),本文選擇Python語言來自動(dòng)創(chuàng)建和更新測(cè)試用例,實(shí)現(xiàn)測(cè)試用例的重用。
這項(xiàng)工作覆蓋了78個(gè)消息的變化,新的P2P消息取代U2U消息和INT的信息。每一個(gè)新消息的變化可分為三種類型:修改現(xiàn)有消息/域、添加新的消息/域、刪除現(xiàn)有的消息/域。以手持呼叫設(shè)備主動(dòng)發(fā)起和建立呼叫過程的消息U2U_CALL_RQST_TYPE為例,在新P2P構(gòu)架中將變?yōu)镻2P_CALL_RQST_SVC_TYPE。如下所示:
Send P2P_CALL_RQST_SVC_TYPE
{
# NETCOM_HEADER_SECTION 不變的域
to_device_type : 8 =$DEV_TYPE_CONTROLLER
to_device_num : 8 = 0x00
from_device_type : 8 =$DEV_TYPE_SITE
from_device_num : 8 = 0x00
pkt_type : 8 = ALSLIP_TYPE_SITE_TO_CTRLR
version_num : 8 =$VERSION_NUMBER
# NETCOM_HEADER_SECTION 域名保持不變,而值變化
pkt_sub_type: 8 =$ALSLIP_SUBTYPE_P2P
pkt_svc_type :8 =$ALSLIP_SVC_P2P_CALL_REQ
# OFFSET_SECTION 域名保持不變,而值變化
id_section_offset : 8 = 0x0C
svc_info_section_offset : 8 = 0x18
msg_info_section_offset : 8 = 0x1E
next_offset : 8 = 0x00
# ID_SECTION 域名將改變
source_id : 24 = 0x00 → calling_id : 24 = 0x00
target_id : 24 = 0x00 → called_id_issi : 24 = 0x00
# 新增的域
called_id_issi : 24 = 0x00
called_id_wacn_id : 24 = 0x00
called_id_system_id : 16 = 0x00
calling_id : 24 = 0x00
…}
其中有部分域的域名保持不變,而值變化; 有部分域的域名將改變; 還有部分域是新加的域。由此可見每個(gè)消息都包含幾種不同的變化,說明采用人工地更新大量測(cè)試用例是不可行的,一是客觀上工作量巨大,二是手動(dòng)操作效率較低,三是可能引入一些不易察覺的錯(cuò)誤。因此采用Python方法勢(shì)在必行。
該軟件框架如圖3所示。此框架可分為兩部分:核心和變量部分。其核心部分包括解析器和公用部分; 變量部分包括消息部分和配置元素。其中具體分為以下四個(gè)部分:通用部分,包括一些通用的常量和函數(shù);解析器,該自動(dòng)創(chuàng)建框架的核心部分,其主要職責(zé)是創(chuàng)建測(cè)試用例,比如找到需要?jiǎng)?chuàng)建的域和消息,修改域值等[9];配置部分,存儲(chǔ)一些配置文件,例如新接口定義文件;消息部分,包含所有78個(gè)消息變化,是非常重要的組成部分,描述消息改變的具體信息。
圖3 Python方法軟件構(gòu)架
為了實(shí)現(xiàn)消息自動(dòng)更新的需求,Python方法將在測(cè)試用例首先搜索現(xiàn)有的消息及其域。匹配消息內(nèi)容后,將執(zhí)行文本匹配及替換等操作,并寫回測(cè)試用例[10]。該方法的輸入為一個(gè)現(xiàn)有的測(cè)試用例文件或測(cè)試用例所在的文件夾。輸出為創(chuàng)建后的測(cè)試用例文件和記錄變化的filechanged.txt文件。具體解釋的流程如圖4所示。
圖4 Python方法工作流程
該方法不僅支持對(duì)單個(gè)測(cè)試用例進(jìn)行更新,也支持對(duì)多個(gè)測(cè)試用例進(jìn)行批量操作。圖5是經(jīng)過自動(dòng)化Python方法創(chuàng)建前后的測(cè)試用例例子。左側(cè)為創(chuàng)建前的測(cè)試用例,右側(cè)為創(chuàng)建后的測(cè)試用例。圖中深色區(qū)域是更新前后發(fā)生變化的部分。
圖5 Python方法創(chuàng)建前后的測(cè)試用例
在實(shí)際項(xiàng)目應(yīng)用中,創(chuàng)建測(cè)試用例后還需要考慮后繼的軟件配置管理工作,其主要目的在于通過在軟件生命周期的不同時(shí)間點(diǎn)上對(duì)軟件配置進(jìn)行標(biāo)識(shí),并對(duì)這些標(biāo)識(shí)的軟件配置項(xiàng)的更改進(jìn)行系統(tǒng)性控制,達(dá)到保證軟件產(chǎn)品完整性和可溯性。軟件配置管理作為軟件工程的關(guān)鍵元素,提供了結(jié)構(gòu)化、有序化、產(chǎn)品化的管理軟件工程的方法,并應(yīng)用于整個(gè)軟件工程的過程。 軟件配置管理工具已出現(xiàn)商業(yè)化及開源產(chǎn)品,如IBM Rational ClearCase、開源產(chǎn)品CVS、入門級(jí)的Microsoft-VSS等。這些產(chǎn)品能夠幫助開發(fā)人員和測(cè)試人員有效地進(jìn)行軟件配置的管理。其中IBM Rational ClearCase是業(yè)界廣泛應(yīng)用的軟件配置管理工具。 其功能包括版本控制、工作空間管理、建立管理和過程控制。其特點(diǎn)是能推進(jìn)并行開發(fā),提供強(qiáng)有力的版本控制,透明的工作區(qū)管理,有效的構(gòu)件管理,有彈性的流程管理[11]。
因此該方法還提供了基于版本管理工具Rational ClearCase的自動(dòng)批量上傳測(cè)試用例到存儲(chǔ)服務(wù)器的功能,能高效完成測(cè)試用例版本控制工作,如圖6所示。這大大節(jié)約了測(cè)試人員手動(dòng)上傳的時(shí)間,而且避免了無意義的重復(fù)勞動(dòng)和人工操作可能出現(xiàn)的錯(cuò)誤。
圖6 Python方法自動(dòng)上傳測(cè)試用例
通過項(xiàng)目實(shí)踐,自動(dòng)化Python方法能夠處理80%~90%的域的變化。由以前的100%手動(dòng)創(chuàng)建降為只有10%~20%需要手工創(chuàng)建,極大地提高了測(cè)試用例的創(chuàng)建效率。圖7為創(chuàng)建測(cè)試用例耗時(shí)與測(cè)試用例數(shù)量的關(guān)系圖,橫坐標(biāo)為測(cè)試用例數(shù)量,單位為個(gè),縱坐標(biāo)為創(chuàng)建測(cè)試用例所需時(shí)間,單位為人月。從圖中可以看出,當(dāng)測(cè)試用例的數(shù)量小于臨界點(diǎn)(本文測(cè)試用例數(shù)量的臨界點(diǎn)為500)時(shí),由于開發(fā)Python方法需要一定的時(shí)間,采用手工方法創(chuàng)建測(cè)試用例耗時(shí)更少;當(dāng)測(cè)試用例的數(shù)量恰恰等于臨界點(diǎn)時(shí),采用手工方法創(chuàng)建測(cè)試用例與采用Python方法耗時(shí)相當(dāng);當(dāng)測(cè)試用例數(shù)量大于臨界點(diǎn)時(shí),采用Python方法可以大大提高工作效率,而且測(cè)試用例的數(shù)量越大節(jié)約的時(shí)間越多。
圖7 耗時(shí)與測(cè)試用例數(shù)量關(guān)系圖
并且由于引入了自動(dòng)化Python方法,由之前手動(dòng)創(chuàng)建測(cè)試用例預(yù)計(jì)需要17.8個(gè)人月,最終縮短到7.5個(gè)人月就順利完成,減少了10.3個(gè)人月的工作量,極大提高了現(xiàn)有測(cè)試用例的創(chuàng)建效率,縮短了測(cè)試時(shí)間,加快了產(chǎn)品開發(fā)周期,使軟件產(chǎn)品更快面向市場(chǎng)。該方式不僅本身具有較高的復(fù)用性,只需少量的改動(dòng)就可在不同的測(cè)試過程中使用,可推廣到性能測(cè)試中的內(nèi)存測(cè)試[12]運(yùn)用,還大大提高了測(cè)試用例的可重用性。使用該方法能更好地利用了項(xiàng)目的人力資源,將瑣碎的任務(wù)賦予自動(dòng)化方式,可以提高測(cè)試工作的準(zhǔn)確性和測(cè)試人員的積極性,將測(cè)試人員解脫出來,更多精力投入到創(chuàng)造性工作中,比如設(shè)計(jì)探索性的測(cè)試用例、分析缺陷的原因和進(jìn)行軟件質(zhì)量的持續(xù)改進(jìn)等。
綜上所述,在軟件測(cè)試項(xiàng)目實(shí)踐中特別是大型軟件系統(tǒng)項(xiàng)目中建議采用Python方法來創(chuàng)建和更新大批量的測(cè)試用例。該新方法可以大大減少測(cè)試人員的人工干預(yù)程度,而且較大程度地提高測(cè)試效率,增強(qiáng)測(cè)試用例的重用性,值得在大型軟件系統(tǒng)或擁有大量自動(dòng)化測(cè)試用例的測(cè)試環(huán)境中推廣和部署,能起到事半功倍的作用。在今后的工作中,將繼續(xù)運(yùn)用和提升該方法,比如不僅支持命令行界面,還要支持更友好、更人性化的圖形界面;與現(xiàn)有的GLS自動(dòng)化測(cè)試平臺(tái)融合,該方法嵌入到測(cè)試平臺(tái)中;與Jenkins等持續(xù)集成平臺(tái)協(xié)作[13],提供持續(xù)的軟件版本發(fā)布和測(cè)試功能等。
[1] 張友生.軟件體系結(jié)構(gòu)[M]. 2版.北京:清華大學(xué)出版社,2015.
[2] 賀平.軟件測(cè)試教程[M]. 3版.北京:電子工業(yè)出版社,2014.
[3] European Telecommunications Standards Institute. TETRA Voice plus Data Air Interface Part 2 [R].2013.
[4] European Telecommunications Standards Institute. Call Hold [R]. 2003.
[5] European Telecommunications Standards Institute. General requirements for supplementary services [R].2012.
[6] TETRA and Critical Communications Association. TETRA Interoperability Profile (TIP), Part 1: Core [R].2012.
[7] Derezinska A, Halas K. Experimental Evaluation of Mutation Testing Approaches to Python Programs[C]//IEEE International Conference on Software Testing, Verification, and Validation Workshops. IEEE Computer Society, 2014:156-164.
[8] 劉衛(wèi)國.Python語言程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2016.
[9] Jiang C, Liu B, Yin Y, et al. Study on Real-Time Test Script in Automated Test Equipment[C]//2009 8th international conference on reliability,maintainability and safety. 2009:738-742.
[10] Marinescu R, Saadatmand M, Bucaioni A, et al. A Model-Based Testing Framework for Automotive Embedded Systems[C]//Software Engineering and Advanced Applications. IEEE, 2014:38-47.
[11] 趙池龍,程努華.實(shí)用軟件工程[M]. 4版.北京:電子工業(yè)出版社,2015.
[12] 董昕.一種新的數(shù)字集群通信系統(tǒng)網(wǎng)關(guān)內(nèi)存測(cè)試方法[J].現(xiàn)代電子技術(shù),2015,38(7):34-38.
[13] 蘭洋,溫迎福.持續(xù)集成實(shí)踐 [M].北京:電子工業(yè)出版社,2016.
ANEWMETHODFORAUTOMATICALLYGENERATINGSOFTWARETESTCASE
Dong Xin1Wang Jie2*
1(CollegeofComputerEngineering,ChengduTechnologicalUniversity,Chengdu611730,Sichuan,China)2(DepartmentofSystemEngineering,The29thResearchInstituteofChinaElectronicsTechnologyGroupCorporation,Chengdu610036,Sichuan,China)
TETRA communication system is a public security large-scale cluster communication system that provides voice and data services for wireless users. As a core component, the zone controller provides call processing services for wide area radio communications and telephone interconnect calls in a wide area, which is itself a large software system. This paper presents a creative method to the generation of software automated test cases based on the Python of the zone controller software. This method can not only automatically create test cases, but also support the batch of test cases uploaded to memory and support batch operation. Test practice has proved that the new method can greatly reduce the human intervention of software testers and improve the testing efficiency to a great extent. The design achieves maximum scripting reuse and minimizes maintenance and modification costs of test scripts. It is worth popularizing and deploying in large automated testing environments for large software systems.
Large software system Software automated testing Test case Python method Reuse
TP311.56
A
10.3969/j.issn.1000-386x.2017.10.008
2016-12-12。董昕,副教授,主研領(lǐng)域:大型軟件系統(tǒng)設(shè)計(jì)與體系結(jié)構(gòu)及自動(dòng)化測(cè)試。王杰,高工。