汪 旺,夏 鳳,陳 哲,黃志球
(1.南京航空航天大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 210016;2.阿里巴巴(中國(guó))網(wǎng)絡(luò)技術(shù)有限公司,浙江 杭州 310099)
隨著測(cè)試流程的不斷規(guī)范以及軟件測(cè)試技術(shù)[1]的進(jìn)一步細(xì)化,軟件測(cè)試自動(dòng)化[2,18,20]已經(jīng)日益成為一種不可忽視的技術(shù)。能否借助該技術(shù)以及如何借助它規(guī)范測(cè)試流程,提高特定測(cè)試活動(dòng)的效率,是一個(gè)需要研究的重要問(wèn)題。
軟件自動(dòng)化測(cè)試使用機(jī)器自動(dòng)進(jìn)行測(cè)試執(zhí)行[3]和測(cè)試結(jié)果判斷,其特點(diǎn)是在測(cè)試中部分使用了程序或是機(jī)器的能力,目的在于減少資源消耗、擴(kuò)大測(cè)試范圍和充分利用機(jī)器與程序的能力。軟件自動(dòng)化測(cè)試技術(shù)的出現(xiàn)顯著提高了測(cè)試工作[4]的效率。
目前,軟件測(cè)試自動(dòng)化[5]的研究領(lǐng)域主要集中在軟件測(cè)試流程的自動(dòng)化管理[6]以及動(dòng)態(tài)測(cè)試[7]的自動(dòng)化(如單元測(cè)試、功能測(cè)試以及性能測(cè)試方面)。與手工測(cè)試相比,測(cè)試自動(dòng)化的優(yōu)勢(shì)明顯。首先,自動(dòng)化測(cè)試可以提高測(cè)試效率,測(cè)試人員更加專注于新的測(cè)試模塊的建立和開(kāi)發(fā),從而提高測(cè)試覆蓋率;其次,自動(dòng)化測(cè)試更便于測(cè)試資產(chǎn)的數(shù)字化管理,在整個(gè)測(cè)試生命周期內(nèi)可以復(fù)用測(cè)試資產(chǎn),這個(gè)特點(diǎn)在功能測(cè)試和回歸測(cè)試中尤其具有意義;此外,測(cè)試流程自動(dòng)化管理可以使機(jī)構(gòu)的測(cè)試活動(dòng)開(kāi)展更加過(guò)程化。
但是在服務(wù)器集群的環(huán)境下,自動(dòng)化測(cè)試[8]相對(duì)脆弱,維護(hù)比較困難。以阿里巴巴旗下網(wǎng)站的開(kāi)發(fā)測(cè)試平臺(tái)為例,目前的自動(dòng)化測(cè)試環(huán)境管理存在諸多問(wèn)題,嚴(yán)重制約了自動(dòng)化測(cè)試效率的提升。因此,如何有效地對(duì)自動(dòng)化測(cè)試進(jìn)行監(jiān)控管理,是一個(gè)重要而未被很好解決的問(wèn)題。研究面向自動(dòng)化測(cè)試的服務(wù)器管理監(jiān)控平臺(tái)能夠加強(qiáng)對(duì)大規(guī)模集群測(cè)試服務(wù)器的統(tǒng)一管理和監(jiān)控,提高發(fā)現(xiàn)測(cè)試服務(wù)器問(wèn)題的及時(shí)性和處理效率,增加出現(xiàn)問(wèn)題后的自我恢復(fù)能力,從而釋放了大量的人力資源,大幅提升了工作效率。
本文基于控制系統(tǒng)理論[19,21],結(jié)合軟件自動(dòng)化測(cè)試的需求背景和Web開(kāi)發(fā)框架[9]的原理及相關(guān)技術(shù),介紹阿里巴巴中文站的自動(dòng)化研發(fā)協(xié)作平臺(tái),在分析總結(jié)現(xiàn)有工作的基礎(chǔ)上,給出面向服務(wù)器集群的自動(dòng)化測(cè)試監(jiān)控平臺(tái)的模塊設(shè)計(jì)和實(shí)現(xiàn),最后指出該平臺(tái)目前存在的問(wèn)題,并對(duì)以后的研究工作進(jìn)行展望。
AONE是阿里巴巴自動(dòng)化研發(fā)協(xié)作平臺(tái),系統(tǒng)地管理整個(gè)研發(fā)過(guò)程中的各項(xiàng)活動(dòng)。在該平臺(tái)上,項(xiàng)目經(jīng)理創(chuàng)建項(xiàng)目并分配資源,開(kāi)發(fā)人員提交代碼、編譯審計(jì)及打包,完成后公司內(nèi)部即時(shí)聊天工具阿里旺旺會(huì)發(fā)消息提醒測(cè)試人員接手測(cè)試,測(cè)試后進(jìn)行發(fā)布。倚天測(cè)試環(huán)境平臺(tái)是測(cè)試服務(wù)器管理與申請(qǐng)平臺(tái),通過(guò)它可以申請(qǐng)需要的測(cè)試服務(wù)器。而通過(guò)守護(hù)神平臺(tái)則可以執(zhí)行自動(dòng)化腳本并生成測(cè)試質(zhì)量報(bào)告。
AONE上應(yīng)用編譯通過(guò)后會(huì)生成一個(gè)新的RPM(Red Hat Package Manager)包,是Red Hat的軟件包管理。RPM包里面包含可執(zhí)行的二進(jìn)制程序,該程序和Windows的軟件包中的.exe文件類似,是可執(zhí)行的。包中還包括程序運(yùn)行時(shí)所需要的文件,并放到FTP(File Transfer Protocol)服務(wù)器上,根據(jù)AONE發(fā)出的消息,這個(gè)消息包括應(yīng)用名稱、發(fā)布需求的ID、生成的RPM包地址等,會(huì)在倚天測(cè)試環(huán)境平臺(tái)上申請(qǐng)測(cè)試服務(wù)器,搭建和部署相應(yīng)的測(cè)試環(huán)境,搭建完成后,就可以在守護(hù)神平臺(tái)上請(qǐng)求執(zhí)行自動(dòng)化腳本,直至完成。
運(yùn)行自動(dòng)化腳本[10]之前首先要部署好服務(wù)器,即在測(cè)試機(jī)上搭建測(cè)試環(huán)境。服務(wù)器部署方法經(jīng)歷從手動(dòng)部署到一鍵部署腳本,再到watchdog監(jiān)控程序的過(guò)程。
手動(dòng)部署要求用戶手動(dòng)輸入一系列的命令。首先要獲取應(yīng)用RPM包的FTP地址,然后申請(qǐng)一套測(cè)試服務(wù)器,并登錄測(cè)試服務(wù)器,獲取RPM包和最新的配置文件antx.properties,該配置文件存儲(chǔ)了測(cè)試服務(wù)器所需的配置項(xiàng),將配置項(xiàng)注入RPM包,最后執(zhí)行啟動(dòng)操作。這種方法比較耗時(shí)費(fèi)力,效率低下。
一鍵部署腳本可以在Linux測(cè)試服務(wù)器下自動(dòng)獲取應(yīng)用的分支或RPM包,獲取最新的antx.properties(也可以選擇不更新),可以一鍵自動(dòng)化部署和重啟。但也存在一些缺點(diǎn),比如不支持中文提示,不檢查應(yīng)用名正確性,也不能夠正確處理某些異常情況。
watchdog監(jiān)控程序是一款自動(dòng)化測(cè)試服務(wù)器管理程序,通過(guò)HTTP請(qǐng)求來(lái)完成各種功能,但是目前這僅僅是一個(gè)維持基本功能的版本,有許多可以優(yōu)化的地方。它還沒(méi)有可視化的UI界面,如更新RPM包地址需要SQL語(yǔ)句來(lái)完成,除此之外,添加測(cè)試環(huán)境或更改配置都需要修改代碼,重新打包來(lái)完成,不夠方便。
目前阿里巴巴三大測(cè)試的公共環(huán)境維護(hù)狀況如下:
1)RPM包地址由watchdog監(jiān)控程序更新;
2)自動(dòng)化環(huán)境由watchdog監(jiān)控程序根據(jù)AONE發(fā)布情況部署;
3)公共環(huán)境由one-click.sh(一鍵部署腳本)定時(shí)更新,依賴watchdog監(jiān)控程序數(shù)據(jù)庫(kù);
4)性能環(huán)境手動(dòng)管理,不定期更新;
5)機(jī)器由dragoon監(jiān)控,它是阿里巴巴自主研發(fā)的高性能、大并發(fā)的通用監(jiān)控系統(tǒng),主要是系統(tǒng)監(jiān)控,包括各種操作系統(tǒng),如 Linux、Solaris、Aix、Windows。它由運(yùn)維中心進(jìn)行運(yùn)營(yíng)管理,只能監(jiān)控環(huán)境的性能指標(biāo)和系統(tǒng)關(guān)鍵信息。
分析目前的測(cè)試環(huán)境,發(fā)現(xiàn)存在性能測(cè)試環(huán)境不能實(shí)現(xiàn)自動(dòng)更新,主干RPM包管理機(jī)制不夠透明等問(wèn)題。今后AONE實(shí)施自主發(fā)布,自動(dòng)化環(huán)境需要實(shí)現(xiàn)大規(guī)模測(cè)試服務(wù)器群的部署,watchdog監(jiān)控程序在測(cè)試機(jī)上搭建測(cè)試環(huán)境已經(jīng)不能滿足需求,因此亟待對(duì)已有的服務(wù)器部署功能進(jìn)行擴(kuò)展,引入面向服務(wù)器集群的自動(dòng)化測(cè)試監(jiān)控平臺(tái),對(duì)自動(dòng)化環(huán)境、公共環(huán)境、性能環(huán)境進(jìn)行統(tǒng)一的管理和監(jiān)控,并實(shí)現(xiàn)一定的環(huán)境自我恢復(fù)能力。
面向服務(wù)器集群的自動(dòng)化測(cè)試[11]監(jiān)控平臺(tái)主要有2方面的功能,即部署測(cè)試環(huán)境和監(jiān)控測(cè)試服務(wù)器。開(kāi)發(fā)人員提交測(cè)試后,測(cè)試人員需要在大規(guī)模測(cè)試服務(wù)器群上安裝開(kāi)發(fā)提供的RPM包,即部署測(cè)試環(huán)境,然后才能驗(yàn)證所提交代碼的正確性。用戶在自己的計(jì)算機(jī)上通過(guò)瀏覽器訪問(wèn)該測(cè)試監(jiān)控平臺(tái),進(jìn)行申請(qǐng)測(cè)試服務(wù)器和部署環(huán)境等一系列操作。平臺(tái)服務(wù)器收到命令后會(huì)在相應(yīng)的測(cè)試服務(wù)器上部署環(huán)境,并返回部署狀態(tài)等監(jiān)控信息,從而使用戶通過(guò)瀏覽器就可以監(jiān)控和查看測(cè)試服務(wù)器的狀態(tài),系統(tǒng)功能如圖1所示。
圖1 系統(tǒng)功能示意圖
AONE上應(yīng)用編譯通過(guò)后會(huì)生成一個(gè)新的RPM包并放到FTP服務(wù)器上,然后AONE會(huì)觸發(fā)部署操作。部署控制模塊在相應(yīng)的測(cè)試服務(wù)器傳送和安裝Agent軟件。Agent的信號(hào)處理器收到部署環(huán)境的信號(hào),就會(huì)調(diào)用one-click.sh腳本進(jìn)行環(huán)境部署。該腳本在每個(gè)執(zhí)行模塊運(yùn)行到最后(成功或失敗)時(shí),返回部署狀態(tài)和相關(guān)消息。部署狀態(tài)(成功、失敗或超時(shí))會(huì)通過(guò)Agent的狀態(tài)提取器存儲(chǔ)在緩存中。環(huán)境監(jiān)控模塊則會(huì)獲取該狀態(tài),傳達(dá)給告警中心。如果部署失敗,監(jiān)控模塊會(huì)告訴部署控制模塊進(jìn)行重置。其中部署控制模塊是通過(guò)部署分發(fā)模塊來(lái)分配部署工作,該模塊包括一個(gè)應(yīng)用部署信息查詢列表,會(huì)周期性進(jìn)行刷新。
部署測(cè)試環(huán)境時(shí),首先會(huì)有調(diào)度中心按序?qū)γ恳粋€(gè)環(huán)境生成部署線程,其次通過(guò)部署計(jì)劃表查詢依賴順序,監(jiān)聽(tīng)前置依賴的就緒狀態(tài),然后線程會(huì)給Agent下達(dá)部署命令,Agent會(huì)及時(shí)將部署狀態(tài)和消息反饋到調(diào)度中心,從而更新部署計(jì)劃列表中的環(huán)境部署狀態(tài)。環(huán)境部署模塊設(shè)計(jì)包括分發(fā)環(huán)境部署計(jì)劃、生成臨時(shí)部署計(jì)劃、應(yīng)用依賴關(guān)系管理、部署計(jì)劃列表和配置部署計(jì)劃設(shè)置。
環(huán)境監(jiān)控模塊有查看環(huán)境監(jiān)控信息、配置環(huán)境監(jiān)控設(shè)置、環(huán)境監(jiān)控調(diào)度和環(huán)境監(jiān)控查詢遠(yuǎn)程服務(wù)4個(gè)部分。
2.2.1 環(huán)境監(jiān)控調(diào)度
環(huán)境監(jiān)控調(diào)度是環(huán)境監(jiān)控模塊在獲取部署狀態(tài)后傳達(dá)給告警中心,如果部署失敗,監(jiān)控模塊會(huì)告訴部署控制模塊進(jìn)行重置的過(guò)程。
在環(huán)境監(jiān)控調(diào)度中,新建或修改環(huán)境的健康度檢查配置并確認(rèn)保存時(shí),監(jiān)聽(tīng)服務(wù)立即被觸發(fā)。觸發(fā)監(jiān)聽(tīng)服務(wù)的過(guò)程如圖2所示。
圖2 激發(fā)監(jiān)聽(tīng)服務(wù)的過(guò)程圖
圖2中部署狀態(tài)是指環(huán)境部署計(jì)劃中的部署狀態(tài)正處于大于等于“安裝進(jìn)行中”,小于“啟動(dòng)失敗”、“啟動(dòng)成功”或“啟動(dòng)超時(shí)”的中間狀態(tài)。
觸發(fā)以后,監(jiān)聽(tīng)器會(huì)給Agent發(fā)送健康檢查命令。Agent首先解析JSON(JavaScript Object Notation,一種輕量級(jí)的數(shù)據(jù)交換格式),解析檢查內(nèi)容,逐個(gè)執(zhí)行檢查內(nèi)容中的command內(nèi)容。然后,如果是進(jìn)程檢查,直接組裝檢查結(jié)果,并發(fā)送到Redis(一個(gè)key-value存儲(chǔ)系統(tǒng));如果是URL檢查,請(qǐng)求URL并對(duì)返回內(nèi)容進(jìn)行校驗(yàn),將校驗(yàn)結(jié)果發(fā)送到Redis;如果是Service檢查,則直接執(zhí)行檢查命令啟動(dòng)Service檢查程序,但要將監(jiān)控系統(tǒng)中心發(fā)送過(guò)來(lái)的JSON參數(shù)追加在命令后面,由Service檢查程序組裝檢查結(jié)果并發(fā)送到Redis。這里假設(shè)是Service檢查。
接下來(lái),Agent會(huì)周期性地調(diào)用Service檢查。對(duì)于用戶自定義的Service檢查,只要繼承AbstractServiceHealthChecker類,然后實(shí)現(xiàn)setRedisHost和check方法。打包成jar包后連二方庫(kù)(即所引用的公司內(nèi)部其他項(xiàng)目的代碼包)一起上傳到SVN(Subversion,是一個(gè)免費(fèi)的、開(kāi)放源碼的版本控制系統(tǒng))。圖3是Service檢查定制框類類圖[7]。
圖3 Service檢查定制框類
Service檢查完,將檢查結(jié)果存入Redis。監(jiān)聽(tīng)器維護(hù)一個(gè)定時(shí)器,它會(huì)啟動(dòng)一個(gè)定時(shí)任務(wù)用于周期性提取存儲(chǔ)在Redis中的環(huán)境檢查結(jié)果數(shù)據(jù),并將結(jié)果存入數(shù)據(jù)庫(kù),如果部署失敗,會(huì)觸發(fā)失敗重新部署,環(huán)境監(jiān)控調(diào)度如圖4所示。
圖4 環(huán)境監(jiān)控調(diào)度總體示意圖
2.2.2 應(yīng)用搭建算法
應(yīng)用搭建是指部署一套環(huán)境時(shí)可能需要搭建幾個(gè)應(yīng)用,而應(yīng)用之間存在一定的依賴關(guān)系,一旦一個(gè)應(yīng)用搭建不成功,就會(huì)影響到對(duì)它依賴的其他應(yīng)用。
應(yīng)用依賴搭建算法描述如圖5所示。
圖5 應(yīng)用依賴搭建方案
該算法采用的是并行搭建,運(yùn)用按層級(jí)關(guān)系搭建應(yīng)用的思想,避免了絕對(duì)的串行搭建會(huì)影響環(huán)境部署效率的問(wèn)題。
每個(gè)應(yīng)用搭建完成后發(fā)送觸發(fā)信息。總的搭建時(shí)間為有向圖中最長(zhǎng)路徑上每個(gè)應(yīng)用的搭建時(shí)間之和。每一組搭建應(yīng)用過(guò)程采用設(shè)定超時(shí)時(shí)間方式。
應(yīng)用依賴搭建算法中,會(huì)對(duì)一個(gè)有向無(wú)環(huán)圖(Directed Acyclic Graph,DAG)進(jìn)行拓?fù)渑判颍?](Topological Sort)。拓?fù)渑判蚴菍⒂邢驘o(wú)環(huán)圖G中所有頂點(diǎn)排成一個(gè)線性序列,使得對(duì)圖中任意一對(duì)頂點(diǎn)u和v,若<u,v>∈E(G),則u在線性序列中出現(xiàn)在v之前。
拓?fù)渑判蛩惴ǖ拿恳徊骄禽敵霎?dāng)前無(wú)后繼(即出度為0)的結(jié)點(diǎn)。對(duì)于一個(gè)DAG,按此方法輸出的序列是逆拓?fù)浯涡颉R虼嗽O(shè)置一個(gè)棧(或向量)T來(lái)保存輸出的結(jié)點(diǎn)序列,即可得到拓?fù)湫蛄?。若T是棧,則每當(dāng)輸出結(jié)點(diǎn)時(shí),只需做入棧操作,排序完成時(shí)將棧中結(jié)點(diǎn)依次出棧即可得拓?fù)湫蛄?。若T是向量,則將輸出的結(jié)點(diǎn)從T[n-1]開(kāi)始依次從后往前存放,即可保證T中存儲(chǔ)的結(jié)點(diǎn)是拓?fù)湫蛄小?/p>
拓?fù)渑判蛑饕a如下:
函數(shù)topo()調(diào)用函數(shù)noSuccessors(),如果返回值為-1,表明該有向圖有環(huán),給出錯(cuò)誤提示;否則,把返回的沒(méi)有后繼的結(jié)點(diǎn)保存到數(shù)組sortedArray中,并調(diào)用函數(shù)deleteVertex(int delVert)刪去該結(jié)點(diǎn),并刪去從該結(jié)點(diǎn)發(fā)出的全部有向邊。
重復(fù)以上步驟,直到有向圖中不存在沒(méi)有后繼的結(jié)點(diǎn)為止。最后輸出拓?fù)湫蛄小?/p>
其中,函數(shù) noSuccessors()和函數(shù) deleteVertex(int delVert)代碼如下:
函數(shù)noSuccessors()用于返回沒(méi)有后繼的結(jié)點(diǎn)。對(duì)有向圖中的每個(gè)結(jié)點(diǎn)檢查從該結(jié)點(diǎn)出發(fā)是否有邊,如果從某結(jié)點(diǎn)出發(fā)沒(méi)有邊,表明該結(jié)點(diǎn)沒(méi)有后繼,函數(shù)返回該結(jié)點(diǎn);如果檢查完有向圖發(fā)現(xiàn)圖中每個(gè)結(jié)點(diǎn)都有邊,表明該有向圖中有環(huán),函數(shù)返回-1。
函數(shù)deleteVertex(int delVert)用于刪去有向無(wú)環(huán)圖中沒(méi)有后繼的結(jié)點(diǎn),并刪去從該結(jié)點(diǎn)發(fā)出的全部有向邊。
隨著測(cè)試流程的不斷規(guī)范以及軟件測(cè)試技術(shù)的進(jìn)一步細(xì)化,軟件測(cè)試自動(dòng)化[12]日益成為一種不可忽視的技術(shù)。但目前自動(dòng)化測(cè)試相對(duì)比較脆弱,維護(hù)起來(lái)比較困難,如何有效地對(duì)自動(dòng)化測(cè)試進(jìn)行監(jiān)控管理[22-25],是一個(gè)重要問(wèn)題。
本文結(jié)合軟件自動(dòng)化測(cè)試[13]的需求背景,對(duì)自動(dòng)化測(cè)試[14]環(huán)境的服務(wù)器管理監(jiān)控進(jìn)行了初步的研究分析。筆者基于Web開(kāi)發(fā)框架,在Eclipse平臺(tái)[15]上,開(kāi)發(fā)出了一個(gè)面向自動(dòng)化環(huán)境的服務(wù)器管理監(jiān)控平臺(tái)。該平臺(tái)主要有部署和監(jiān)控測(cè)試環(huán)境2大功能,加強(qiáng)了對(duì)測(cè)試服務(wù)器的統(tǒng)一管理和監(jiān)控。
該平臺(tái)在阿里巴巴的實(shí)踐證明,它可以提高發(fā)現(xiàn)大規(guī)模集群測(cè)試服務(wù)器問(wèn)題的及時(shí)性和處理效率,增加出現(xiàn)問(wèn)題后的自我恢復(fù)能力,大幅提升測(cè)試[16]效率,并為進(jìn)一步設(shè)計(jì)有效的自動(dòng)化管理方法提供了基礎(chǔ)。
目前所做的工作中仍存在許多不足之處,在下一步的工作中,將對(duì)系統(tǒng)的高級(jí)功能,比如環(huán)境出錯(cuò)自動(dòng)重啟、按部署計(jì)劃定時(shí)搭建環(huán)境、全部重搭自化[17]環(huán)境等進(jìn)行充分的驗(yàn)證。
[1]Myers G J,Sandler C,Badgett T.The Art of Software Testing[M].John Wiley& Sons,2011.
[2]李鵬,楊永艷.基于業(yè)務(wù)數(shù)據(jù)的大型企業(yè)SOA測(cè)試方法[J].計(jì)算機(jī)工程,2012,38(4):60-62.
[3]宋波,張忠能.基于系統(tǒng)功能測(cè)試的軟件自動(dòng)化測(cè)試可行性分析[J].計(jì)算機(jī)應(yīng)用與軟件,2006,22(12):31-33.
[4]顏炯,王戟,陳火旺.基于模型的軟件測(cè)試綜述[J].計(jì)算機(jī)科學(xué),2004,31(2):184-187.
[5]單錦輝,姜瑛,孫萍.軟件測(cè)試研究進(jìn)展[J].北京大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,41(1):134-145.
[6]楊文,黃文濤.通用自動(dòng)測(cè)試系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2012(1):79-80.
[7]王先平,齊逸.面向服務(wù)計(jì)算中Web服務(wù)動(dòng)態(tài)綁定模型研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010(19):4165-4167.
[8]李瑋.軟件自動(dòng)化測(cè)試混合框架的研究與實(shí)現(xiàn)[J].北京交通大學(xué)學(xué)報(bào),2007(4):27-31.
[9]楊寧,劉丹軍.基于JFinal框架的Java Web應(yīng)用開(kāi)發(fā)研究[J].電腦知識(shí)與技術(shù),2014(7):74-76.
[10]史永莉,陳元琰,羅曉曙,等.軟件自動(dòng)化測(cè)試方案的效益分析[J].微計(jì)算機(jī)信息,2010(6):218-219.
[11]汪邦慧,徐從來(lái).軟件自動(dòng)化測(cè)試框架設(shè)計(jì)與實(shí)踐[J].衛(wèi)星電視與寬帶多媒體,2013(11):57-61.
[12]張坤.基于業(yè)務(wù)流程驅(qū)動(dòng)自動(dòng)化測(cè)試研究與實(shí)現(xiàn)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013(5):268-269.
[13]馬春燕,朱怡安,陸偉.Web服務(wù)自動(dòng)化測(cè)試技術(shù)[J].計(jì)算機(jī)科學(xué),2012,39(2):162-169.
[14]邢翠芳,杜晶,趙海冰.軟件自動(dòng)化測(cè)試技術(shù)研究[J].電腦知識(shí)與技術(shù),2013(12):61-62.
[15]Eckel B.Thinking in Java[M].3rd Edition.Prentice Hall,2013.
[16]牟永敏,姜宇,張志華.軟件自動(dòng)化測(cè)試中熱點(diǎn)路徑的研究[J].計(jì)算機(jī)工程與科學(xué),2011,33(6):79-83.
[17]聶長(zhǎng)海.關(guān)于軟件測(cè)試的幾點(diǎn)思考[J].計(jì)算機(jī)科學(xué),2011,38(2):1-3.
[18]Chen Zhe,Gu Yi,Huang Zhiqiu,et al.Model Checking Aircraft Controller Software:A Case Study[DB/OL].http://onlinelibrary.wiley.com/doi/10.1002/spe.2242/abstract,2013-11-21.
[19]Chen Zhe.Control Systems on Automata and Grammars[J/OL]. http://comjnl.oxfordjournals.org/content/early/2013/10/25/comjnl.bxt125,2013-10-25.
[20]Chen Zhe,Zhang Daqiang,Zhu Rongbo,et al.A review of automated formal verification of Ad Hoc routing protocols for wireless sensor networks[J].Sensor Letters,2013,11(5):752-764.
[21]Chen Zhe.On the generative power of ω-grammars and ωautomata[J].Fundamenta Informaticae,2011,111(2):119-145.
[22]Chen Zhe,Gilles Motet.Towards better support for the evolution of safety requirements via the model monitoring approach[C]//Proceedings of the ACM/IEEE 32nd International Conference on Software Engineering(ICSE 2010).2010:219-222.
[23]Chen Zhe,Gilles Motet.Nevertrace claims for model checking[C]//Proceedings of the 17th International SPIN Workshop on Model Checking of Software(SPIN 2010).2010:162-179.
[24]Chen Zhe,Gilles Motet.System safety requirements as control structures[C]//Proceedings of the 33rd Annual IEEE International Computer Software and Applications Conference(COMPSAC 2009).2009:324-331.
[25]Chen Zhe,Gilles Motet.A language-theoretic view on guidelines and consistency rules of UML[C]//Proceedings of the 5th European Conference on Model Driven Architecture-Foundations and Applications(ECMDA-FA 2009).2009:66-81.