姜 文,劉立康
(西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安 710071)
軟件調(diào)試[1-8]泛指重現(xiàn)軟件缺陷問(wèn)題,定位和查找問(wèn)題根源,最終解決軟件問(wèn)題的過(guò)程。對(duì)于多個(gè)開(kāi)發(fā)部門(mén)一起進(jìn)行開(kāi)發(fā)的大型軟件系統(tǒng),需要在各個(gè)部門(mén)分別完成自己相關(guān)的軟件源代碼開(kāi)發(fā)與功能調(diào)試之后,進(jìn)行軟件聯(lián)調(diào)。
隨著計(jì)算機(jī)技術(shù)的發(fā)展以及云計(jì)算技術(shù)[9-10]在各行各業(yè)的應(yīng)用普及,基于云計(jì)算的應(yīng)用軟件的種類(lèi)也越來(lái)越多。許多傳統(tǒng)環(huán)境下運(yùn)行的應(yīng)用軟件需要升級(jí)推出在網(wǎng)絡(luò)上運(yùn)行的版本?;谠朴?jì)算的大型應(yīng)用軟件需要多個(gè)開(kāi)發(fā)部門(mén)協(xié)調(diào)開(kāi)發(fā)才能完成全套軟件的開(kāi)發(fā),需要在云環(huán)境[11-13]下進(jìn)行軟件聯(lián)調(diào)。軟件聯(lián)調(diào)是指軟件通用開(kāi)發(fā)平臺(tái)和軟件產(chǎn)品上線后進(jìn)行相關(guān)功能點(diǎn)和性能集成聯(lián)合調(diào)試,以確保新開(kāi)發(fā)的軟件上線后能夠正常運(yùn)行。
結(jié)合工作實(shí)踐,敘述了軟件聯(lián)調(diào)過(guò)程中基于云環(huán)境的軟件聯(lián)調(diào)層級(jí)結(jié)構(gòu)和軟件聯(lián)調(diào)內(nèi)容;敘述了基于云環(huán)境的大型應(yīng)用軟件聯(lián)調(diào)的詳細(xì)過(guò)程以及各個(gè)角色在軟件聯(lián)調(diào)過(guò)程中的職責(zé)和任務(wù)。之后依據(jù)一個(gè)典型案例,詳細(xì)敘述了軟件聯(lián)調(diào)工程的實(shí)現(xiàn)過(guò)程和聯(lián)調(diào)過(guò)程中一些典型問(wèn)題的處理方法。
軟件聯(lián)調(diào)過(guò)程中,基于云環(huán)境的軟件聯(lián)調(diào)層級(jí)結(jié)構(gòu)如表1所示。
表1 基于云環(huán)境的軟件聯(lián)調(diào)環(huán)境層級(jí)結(jié)構(gòu)
(1)產(chǎn)品業(yè)務(wù):提供給用戶(hù)的多個(gè)應(yīng)用軟件產(chǎn)品。
(2)業(yè)務(wù)開(kāi)發(fā)平臺(tái):提供軟件產(chǎn)品業(yè)務(wù)功能開(kāi)發(fā)的公共服務(wù),在平臺(tái)上可以開(kāi)發(fā)多個(gè)軟件產(chǎn)品。
(3)網(wǎng)絡(luò)管理平臺(tái):網(wǎng)絡(luò)管理軟件和客戶(hù)端工具,提供人機(jī)接口,管理虛擬網(wǎng)絡(luò)的各種事務(wù)管理,提供軟件調(diào)試工具。
(4)基礎(chǔ)軟件:在虛擬機(jī)上安裝操作系統(tǒng)、數(shù)據(jù)庫(kù)和其他常用軟件工具。
(5)虛擬計(jì)算節(jié)點(diǎn):云環(huán)境中的虛擬機(jī),虛擬機(jī)是一種嚴(yán)密隔離的軟件容器,包含自己的虛擬CPU、RAM、硬盤(pán)和網(wǎng)卡(NIC)。它可以運(yùn)行自己的操作系統(tǒng)和應(yīng)用程序,行為完全類(lèi)似于一臺(tái)物理計(jì)算機(jī)。
(6)虛擬網(wǎng)絡(luò)設(shè)備:私有云(VPC)網(wǎng)絡(luò),私有云是用戶(hù)申請(qǐng)企業(yè)云賬戶(hù)后獲得的虛擬網(wǎng)絡(luò)。它在邏輯上與企業(yè)云中的其他虛擬網(wǎng)絡(luò)隔絕??梢栽赩PC內(nèi)部進(jìn)行各種配置,選擇IP地址范圍、創(chuàng)建子網(wǎng)以及配置路由表、網(wǎng)絡(luò)網(wǎng)關(guān)和安全設(shè)置。這個(gè)虛擬網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)運(yùn)行方式極其相似。
(7)企業(yè)云:是企業(yè)自行運(yùn)營(yíng)的一種典型的私有云,為企業(yè)內(nèi)各部門(mén)提供各種IT服務(wù)。
其中,(1)-(3)為聯(lián)調(diào)軟件,(4)-(7)為云環(huán)境。
(1)軟件開(kāi)發(fā)平臺(tái)和軟件產(chǎn)品集成構(gòu)建、聯(lián)調(diào);
(2)軟件產(chǎn)品功能點(diǎn)調(diào)試,軟件開(kāi)發(fā)平臺(tái)功能點(diǎn)調(diào)試;
(3)聯(lián)調(diào)軟件與云環(huán)境的兼容性和適應(yīng)性磨合調(diào)試。
軟件聯(lián)調(diào)角色包括云環(huán)境運(yùn)維工程師、軟件平臺(tái)開(kāi)發(fā)組、軟件產(chǎn)品開(kāi)發(fā)組、配置管理員、持續(xù)集成工程師和軟件測(cè)試組。各角色各司其職,分工協(xié)作共同完成應(yīng)用軟件聯(lián)調(diào),如圖1所示。
圖1 軟件聯(lián)調(diào)用例圖
各角色的職責(zé)和任務(wù)如下:
(1)軟件產(chǎn)品開(kāi)發(fā)組:負(fù)責(zé)軟件產(chǎn)品調(diào)試和聯(lián)調(diào)。
(2)軟件平臺(tái)開(kāi)發(fā)組:負(fù)責(zé)通用軟件平臺(tái)的調(diào)試和聯(lián)調(diào)。
(3)配置管理員:負(fù)責(zé)調(diào)試過(guò)程中平臺(tái)軟件和軟件產(chǎn)品版本的更新管理工作。
(4)持續(xù)集成工程師:負(fù)責(zé)平臺(tái)軟件和軟件產(chǎn)品的集成構(gòu)建工作,提供平臺(tái)軟件和軟件產(chǎn)品在線調(diào)試的安裝包[14-16]。
(5)軟件測(cè)試工程師:完成聯(lián)調(diào)環(huán)境搭建,平臺(tái)軟件和軟件產(chǎn)品軟件包的安裝,根據(jù)設(shè)計(jì)文檔完成測(cè)試場(chǎng)景的分析,設(shè)計(jì)相關(guān)的測(cè)試用例,在聯(lián)調(diào)環(huán)境下開(kāi)展測(cè)試工作。
(6)云環(huán)境運(yùn)維工程師:保證云環(huán)境的正常運(yùn)行,包括底層基礎(chǔ)網(wǎng)絡(luò)、私有云網(wǎng)絡(luò)和虛擬機(jī)。在測(cè)試工程師搭建聯(lián)調(diào)環(huán)境的過(guò)程中,協(xié)助處理各種問(wèn)題。
軟件聯(lián)調(diào)過(guò)程如圖2所示。
2.2.1 制定聯(lián)調(diào)計(jì)劃
產(chǎn)品與平臺(tái)的版本經(jīng)理共同制定聯(lián)調(diào)計(jì)劃和協(xié)調(diào)聯(lián)調(diào)環(huán)境。
(1)協(xié)調(diào)規(guī)劃聯(lián)調(diào)云環(huán)境,確定虛擬機(jī)數(shù)量、配置規(guī)格。
(2)確定平臺(tái)軟件和軟件產(chǎn)品聯(lián)調(diào)功能點(diǎn)。
(3)確定聯(lián)調(diào)人員和聯(lián)調(diào)工作進(jìn)度安排。
2.2.2 構(gòu)建平臺(tái)軟件與軟件產(chǎn)品的聯(lián)調(diào)安裝包
(1)版本庫(kù)代碼更新:平臺(tái)軟件開(kāi)發(fā)工程師將經(jīng)過(guò)測(cè)試、結(jié)構(gòu)優(yōu)化和評(píng)審合格的代碼合入配置庫(kù)合入版本庫(kù)。軟件產(chǎn)品開(kāi)發(fā)工程師將經(jīng)過(guò)測(cè)試、結(jié)構(gòu)優(yōu)化和評(píng)審合格的代碼合入版本庫(kù)。
圖2 軟件調(diào)試流程
(2)集成構(gòu)建聯(lián)調(diào)安裝包:持續(xù)集成工程師從版本庫(kù)下載新版本代碼,分別完成平臺(tái)軟件和軟件產(chǎn)品聯(lián)調(diào)安裝包的編譯出包。
2.2.3 搭建私有云網(wǎng)絡(luò)環(huán)境
根據(jù)軟件聯(lián)調(diào)計(jì)劃測(cè)試工程師搭建聯(lián)調(diào)云環(huán)境:
(1)私有云網(wǎng)絡(luò)環(huán)境申請(qǐng)。
在企業(yè)云的網(wǎng)站上注冊(cè)賬號(hào)之后,登錄網(wǎng)站申請(qǐng)私有云網(wǎng)絡(luò),并根據(jù)所需的虛擬機(jī)規(guī)格和數(shù)量申請(qǐng)?zhí)摂M機(jī)。
(2)安裝網(wǎng)絡(luò)管理軟件和軟件調(diào)試工具。
在私有云網(wǎng)絡(luò)中選定的虛擬機(jī)上安裝網(wǎng)絡(luò)管理軟件,安裝軟件調(diào)試工具,同時(shí)根據(jù)工作需要安裝其他常用的軟件工具。完成虛擬機(jī),網(wǎng)卡,網(wǎng)元進(jìn)程和信令I(lǐng)P地址的添加配置。
2.2.4 安裝聯(lián)調(diào)軟件
(1)登錄私有云的虛擬機(jī),安裝平臺(tái)軟件和軟件產(chǎn)品安裝包,完成配置工作。
(2)安裝相關(guān)的數(shù)據(jù)資源文件,完成配置工作。
2.2.5 功能點(diǎn)測(cè)試
在聯(lián)調(diào)過(guò)程中,測(cè)試工程師需要協(xié)調(diào)和管理聯(lián)調(diào)環(huán)境,根據(jù)工作需要設(shè)計(jì)測(cè)試用例,開(kāi)展測(cè)試工作,重點(diǎn)關(guān)注新開(kāi)發(fā)的特性,不斷完善新特性的測(cè)試用例。
2.2.6 聯(lián)調(diào)過(guò)程中的問(wèn)題處理
在聯(lián)調(diào)過(guò)程中發(fā)現(xiàn)的問(wèn)題需要及時(shí)記錄;定位分析、查找原因、提出解決問(wèn)題方案、修改存在問(wèn)題的代碼;經(jīng)過(guò)反復(fù)調(diào)試之后,驗(yàn)證和確認(rèn)缺陷問(wèn)題已經(jīng)被解決。
2.2.7 聯(lián)調(diào)工作結(jié)束
經(jīng)過(guò)2.2.5和2.2.6的反復(fù)處理,最后調(diào)試工作結(jié)束。平臺(tái)與產(chǎn)品的軟件開(kāi)發(fā)工程師將聯(lián)調(diào)過(guò)程中出現(xiàn)的問(wèn)題進(jìn)行整理,提供給測(cè)試工程師。測(cè)試工程師結(jié)合測(cè)試用例驗(yàn)證的結(jié)果提供聯(lián)調(diào)報(bào)告,反饋給平臺(tái)和產(chǎn)品的版本經(jīng)理。
通過(guò)典型案例敘述基于云環(huán)境的軟件聯(lián)調(diào)過(guò)程。在這個(gè)案例中平臺(tái)軟件為A(簡(jiǎn)稱(chēng)A平臺(tái)),軟件產(chǎn)品為Y(簡(jiǎn)稱(chēng)Y產(chǎn)品)。
平臺(tái)軟件A與軟件產(chǎn)品Y在啟動(dòng)聯(lián)調(diào)之前,雙方的項(xiàng)目經(jīng)理共同制定聯(lián)調(diào)計(jì)劃。聯(lián)調(diào)計(jì)劃包括聯(lián)調(diào)工作內(nèi)容和進(jìn)度安排,確定聯(lián)調(diào)人員和工作任務(wù)分配,聯(lián)調(diào)環(huán)境的規(guī)劃和部署。
3.2.1 創(chuàng)建私有云網(wǎng)絡(luò)
(1)申請(qǐng)私有云網(wǎng)段。
登錄企業(yè)云網(wǎng)站,申請(qǐng)私有云網(wǎng)段,以便和其他客戶(hù)的私有云環(huán)境隔離,自主配置與管理私有云網(wǎng)絡(luò)環(huán)境。本次私有云選用的網(wǎng)段是10.0.0.0/8。
(2)創(chuàng)建子網(wǎng)。
完成私有云創(chuàng)建后,根據(jù)軟件產(chǎn)品的需要?jiǎng)?chuàng)建子網(wǎng),完成每個(gè)子網(wǎng)的子網(wǎng)網(wǎng)段、子網(wǎng)網(wǎng)關(guān)、DHCP功能的配置工作。在創(chuàng)建的私有云上創(chuàng)建了10個(gè)子網(wǎng),子網(wǎng)網(wǎng)段分別是10.16.X.X-10.21.X.X以及10.1.X.X-10.4.X.X.網(wǎng)段。
(3)創(chuàng)建安全組。
安全組是一組虛擬機(jī)的訪問(wèn)規(guī)則的集合??蛻?hù)可以通過(guò)創(chuàng)建安全組,將虛擬私有云(VPC)中的彈性云服務(wù)器劃分成不同的安全域,以提升彈性云服務(wù)器訪問(wèn)的安全性。
3.2.2 申請(qǐng)?jiān)铺摂M機(jī)
在企業(yè)云的網(wǎng)站上為私有云申請(qǐng)?zhí)摂M機(jī),虛擬機(jī)的規(guī)格與數(shù)量如表2所示。
表2 軟件聯(lián)調(diào)虛擬機(jī)規(guī)格
虛擬機(jī)的規(guī)格數(shù)據(jù)包括操作系統(tǒng)、CPU、內(nèi)存、系統(tǒng)盤(pán)、數(shù)據(jù)盤(pán)以及網(wǎng)絡(luò)配置等。在申請(qǐng)到的虛擬機(jī)上配置網(wǎng)卡,在網(wǎng)卡上配置私有云子網(wǎng)網(wǎng)段分配的IP地址。
3.3.1 OMU管理單元和LMT客戶(hù)端工具
OMU(operation and maintenance unit)是基于Client/Server結(jié)構(gòu)管理的網(wǎng)絡(luò),由OMU服務(wù)器和OMU客戶(hù)端組成。OMU是一個(gè)管理單元,提供人機(jī)接口,負(fù)責(zé)管理虛擬機(jī)上的軟件運(yùn)行狀態(tài)。OMU的客戶(hù)端工具為L(zhǎng)MT(local maintenance terminal)。
LMT工具通過(guò)MML(man-machine language)命令,對(duì)網(wǎng)元進(jìn)行操作和維護(hù)。LMT通過(guò)基于MML的圖形終端,多窗口操作界面;提供了拓?fù)涔芾?、故障管理、配置管理、告警管理、跟蹤管理、資源管理、TFTP服務(wù)器管理、日志管理等網(wǎng)管功能,提供了各種功能的窗口操作界面。
在軟件聯(lián)調(diào)過(guò)程中,用到的MML命令分為四類(lèi):
(1)軟件遠(yuǎn)程登錄設(shè)置命令:軟件產(chǎn)品數(shù)字簽名,遠(yuǎn)程登錄SSH服務(wù)等。
(2)網(wǎng)絡(luò)操作命令:包括各種網(wǎng)絡(luò)元素的添加、鏈接和查詢(xún)等。
(3)數(shù)據(jù)資源配置命令:包括各種數(shù)據(jù)資源IP地址的添加、鏈接、綁定和查詢(xún)等。
(4)網(wǎng)元調(diào)試命令:提供參數(shù)設(shè)置和各種狀態(tài)查詢(xún)命令。
3.3.2 安裝OMU虛擬機(jī)
OMU安裝采用雙機(jī)模式,在2號(hào)虛擬機(jī)和3號(hào)虛擬機(jī)上分別添加5個(gè)網(wǎng)卡與浮動(dòng)IP地址之后,分別安裝主、備OMU虛擬機(jī)。OMU安裝完成后,組成基于Client/Server結(jié)構(gòu)的網(wǎng)絡(luò)系統(tǒng)。網(wǎng)絡(luò)系統(tǒng)有一個(gè)管理用戶(hù)(用戶(hù)名admin),負(fù)責(zé)網(wǎng)絡(luò)系統(tǒng)管理。
3.3.3 安裝業(yè)務(wù)虛擬機(jī)
在4-6號(hào)虛擬機(jī)上根據(jù)需求情況配置相應(yīng)數(shù)量的網(wǎng)卡以及對(duì)應(yīng)網(wǎng)段的IP地址,將平臺(tái)軟件提供的業(yè)務(wù)開(kāi)發(fā)平臺(tái)壓縮包解壓之后,進(jìn)入開(kāi)發(fā)平臺(tái)的文件夾中,進(jìn)行產(chǎn)品業(yè)務(wù)虛擬機(jī)的安裝。3個(gè)業(yè)務(wù)虛擬機(jī)都在同一組主、備OMU環(huán)境下安裝,因此,除了網(wǎng)絡(luò)配置信息VINC_INFO不同之外,3個(gè)虛擬機(jī)安裝時(shí)使用的OMU虛擬機(jī)的浮動(dòng)IP地址相同。3個(gè)虛擬機(jī)的編號(hào)、名稱(chēng)和功能見(jiàn)表3。
3.3.4 安裝LMT客戶(hù)端工具軟件包
在1號(hào)虛擬機(jī)上,使用Y平臺(tái)提供的LMT安裝包,執(zhí)行LMT客戶(hù)端安裝。安裝完成后以管理用戶(hù)admin的身份登錄LMT客戶(hù)端,修改LMT客戶(hù)端的初始密碼。在LMT客戶(hù)端界面上MEID=0的網(wǎng)元下執(zhí)行ADD VMINFO(添加網(wǎng)元虛擬機(jī))命令添加主、備2個(gè)OMU虛擬機(jī),查看設(shè)備管理界面確認(rèn)已添加的主、備OMU虛擬機(jī)處于正常啟動(dòng)狀態(tài)。
3.4.1 軟件產(chǎn)品的安裝
登錄LMT客戶(hù)端,在MEID=0的網(wǎng)元下上傳軟件產(chǎn)品安裝包,上傳成功后,在MEID=0的平臺(tái)網(wǎng)元的命令執(zhí)行窗口上執(zhí)行ADD ME命令完成軟件產(chǎn)品網(wǎng)元添加,網(wǎng)元Y添加成功后,在LMT頁(yè)面上可以看到Y(jié)網(wǎng)元的LMT頁(yè)面。將Y產(chǎn)品軟件的安裝包上傳后部署到4-6號(hào)產(chǎn)品業(yè)務(wù)虛擬機(jī)上。在LMT客戶(hù)端的下拉列表中選擇產(chǎn)品網(wǎng)元Y對(duì)應(yīng)的LMT頁(yè)面,在產(chǎn)品網(wǎng)元上執(zhí)行ADD VMINFO命令分別添加3個(gè)業(yè)務(wù)虛擬機(jī)。添加成功后,在LMT的設(shè)備面板上可以看到3個(gè)虛擬機(jī)都處于正常啟動(dòng)狀態(tài),在MEID=0的網(wǎng)元下對(duì)3個(gè)虛擬機(jī)分別執(zhí)行開(kāi)啟SSH服務(wù)的MML命令。在聯(lián)調(diào)時(shí)可以使用PUTTY工具登錄這3個(gè)業(yè)務(wù)虛擬機(jī)。接下來(lái)在LMT的產(chǎn)品網(wǎng)元頁(yè)面上執(zhí)行MML命令,在不同的業(yè)務(wù)虛擬機(jī)上執(zhí)行網(wǎng)元進(jìn)程添加以及網(wǎng)元產(chǎn)品相應(yīng)的進(jìn)程上的數(shù)據(jù)配置。
表3 業(yè)務(wù)虛擬機(jī)
3.4.2 安裝數(shù)據(jù)資源文件
在7號(hào)虛擬機(jī)(NFS SERVER虛擬機(jī))上存放數(shù)據(jù)資源文件,本案例中需要存放轉(zhuǎn)碼片源與轉(zhuǎn)碼結(jié)果文件。安裝Suse Linux操作系統(tǒng)時(shí)默認(rèn)安裝NFS SERVER文件系統(tǒng),需要手動(dòng)執(zhí)行數(shù)據(jù)盤(pán)掛載。使用LMT工具完成7號(hào)虛擬機(jī)網(wǎng)元配置。
3.5.1 軟件調(diào)試功能點(diǎn)
軟件聯(lián)調(diào)涉及到的聯(lián)調(diào)特性主要是A平臺(tái)與Y產(chǎn)品接入適配,Y產(chǎn)品在A平臺(tái)下的業(yè)務(wù)運(yùn)行。
(1)接入適配聯(lián)調(diào)。
接入適配聯(lián)調(diào)的功能點(diǎn)包括在OMU虛擬機(jī)上A平臺(tái)的安裝包正常安裝;Y產(chǎn)品的代碼使用A平臺(tái)提供的接口代碼能夠通過(guò)持續(xù)集成工具的進(jìn)程編譯、Y產(chǎn)品版本包出包;在A平臺(tái)安裝后,通過(guò)LMT工具能夠完成Y產(chǎn)品版本包加載、業(yè)務(wù)虛擬機(jī)添加以及Y產(chǎn)品的進(jìn)程文件添加與數(shù)據(jù)配置。
(2)Y產(chǎn)品在A平臺(tái)下的業(yè)務(wù)運(yùn)行。
業(yè)務(wù)運(yùn)行功能點(diǎn)包括完成安裝配置之后Y產(chǎn)品在A平臺(tái)下能正常運(yùn)行視頻轉(zhuǎn)碼的業(yè)務(wù);在視頻轉(zhuǎn)碼過(guò)程中,A平臺(tái)與Y產(chǎn)品保持性能穩(wěn)定。聯(lián)調(diào)雙方需要在Y產(chǎn)品的轉(zhuǎn)碼業(yè)務(wù)運(yùn)行過(guò)程中提取各類(lèi)性能數(shù)據(jù),分析確認(rèn)產(chǎn)品的性能狀況,并為以后性能的提升優(yōu)化提供相關(guān)數(shù)據(jù)。
3.5.2 聯(lián)調(diào)工作
準(zhǔn)備工作完成之后開(kāi)始聯(lián)調(diào)工作。
(1)采用LMT網(wǎng)元調(diào)試命令進(jìn)行聯(lián)調(diào)。LMT提供了兩類(lèi)網(wǎng)元調(diào)試命令:
參數(shù)設(shè)置類(lèi)命令:可以設(shè)置Y產(chǎn)品進(jìn)程運(yùn)行的各種參數(shù)。
查詢(xún)類(lèi)命令:查詢(xún)所有轉(zhuǎn)碼任務(wù)狀態(tài),根據(jù)任務(wù)ID查詢(xún)具體轉(zhuǎn)碼任務(wù)的狀態(tài),根據(jù)任務(wù)ID查詢(xún)轉(zhuǎn)碼任務(wù)各個(gè)運(yùn)行階段的處理時(shí)長(zhǎng),輸出全局統(tǒng)計(jì)信息以及運(yùn)行異常的轉(zhuǎn)碼任務(wù)的斷點(diǎn)信息,等等。
(2)軟件測(cè)試組編寫(xiě)測(cè)試用例,對(duì)軟件產(chǎn)品和平臺(tái)軟件開(kāi)展測(cè)試工作。總共涉及測(cè)試用例50多個(gè),采用手工執(zhí)行測(cè)試用例。
(3)軟件平臺(tái)開(kāi)發(fā)人員和軟件產(chǎn)品開(kāi)發(fā)人員開(kāi)展軟件調(diào)試和聯(lián)調(diào)工作。
3.5.3 聯(lián)調(diào)過(guò)程中的軟件缺陷問(wèn)題處理
在聯(lián)調(diào)過(guò)程中處理了許多軟件存在的問(wèn)題,下面提供兩個(gè)典型實(shí)例。
(1)在A平臺(tái)B050版本進(jìn)行聯(lián)調(diào)的過(guò)程中,發(fā)現(xiàn)轉(zhuǎn)碼業(yè)務(wù)下發(fā)之后6號(hào)虛擬機(jī)的相關(guān)進(jìn)程文件運(yùn)行不正常,導(dǎo)致轉(zhuǎn)碼任務(wù)無(wú)法運(yùn)行。定位之后發(fā)現(xiàn),平臺(tái)在針對(duì)業(yè)務(wù)虛擬機(jī)進(jìn)行開(kāi)發(fā)時(shí),虛擬機(jī)上沒(méi)有添加的相關(guān)進(jìn)程文件,確認(rèn)是A平臺(tái)的缺陷。進(jìn)行第二輪聯(lián)調(diào)時(shí),將這個(gè)問(wèn)題合入到A平臺(tái)版本中,轉(zhuǎn)碼任務(wù)可以正常運(yùn)行。
(2)Y產(chǎn)品執(zhí)行視頻轉(zhuǎn)碼任務(wù)時(shí),Socket工具無(wú)法下發(fā)轉(zhuǎn)碼任務(wù),轉(zhuǎn)碼任務(wù)下發(fā)后會(huì)報(bào)400錯(cuò)誤。定位后發(fā)現(xiàn)U進(jìn)程有缺陷,監(jiān)聽(tīng)端口6002在U進(jìn)程啟動(dòng)之后沒(méi)有自動(dòng)開(kāi)啟,確認(rèn)是Y產(chǎn)品的缺陷。軟件產(chǎn)品開(kāi)發(fā)工程師修改源代碼之后,解決了該問(wèn)題。第二輪聯(lián)調(diào)時(shí),該問(wèn)題合入Y產(chǎn)品的版本包,轉(zhuǎn)碼任務(wù)可以正常下發(fā)。
3.5.4 聯(lián)調(diào)工作結(jié)束
A平臺(tái)和Y產(chǎn)品經(jīng)過(guò)兩輪聯(lián)調(diào)之后,測(cè)試工程師將根據(jù)聯(lián)調(diào)結(jié)果撰寫(xiě)聯(lián)調(diào)報(bào)告。在聯(lián)調(diào)報(bào)告中的內(nèi)容包括OMU安裝、各業(yè)務(wù)虛擬機(jī)安裝、LMT安裝、LMT下執(zhí)行的Y產(chǎn)品網(wǎng)元包部署、Y產(chǎn)品業(yè)務(wù)虛擬機(jī)與業(yè)務(wù)進(jìn)程添加、Y產(chǎn)品業(yè)務(wù)數(shù)據(jù)配置、Y產(chǎn)品轉(zhuǎn)碼業(yè)務(wù)功能測(cè)試、Y產(chǎn)品在企業(yè)業(yè)務(wù)云下的性能數(shù)據(jù)統(tǒng)計(jì)等。
在聯(lián)調(diào)過(guò)程中除了軟件功能調(diào)試問(wèn)題之外,還有一些與聯(lián)調(diào)環(huán)境有關(guān)的問(wèn)題需要處理,下面敘述一些典型問(wèn)題的處理方法。
A平臺(tái)軟件安裝完成之后,發(fā)現(xiàn)配置項(xiàng)不正確,需要重新安裝。在重新安裝操作系統(tǒng)的過(guò)程中,OMU虛擬機(jī)出現(xiàn)重裝系統(tǒng)失敗導(dǎo)致無(wú)法正常開(kāi)機(jī)。云環(huán)境的運(yùn)維工程師定位之后,發(fā)現(xiàn)OMU虛擬機(jī)在重新安裝系統(tǒng)的過(guò)程中系統(tǒng)盤(pán)丟失。運(yùn)維工程師處理了該問(wèn)題,OMU虛擬機(jī)重新安裝系統(tǒng)后,完成A平臺(tái)軟件的正確安裝和配置。
在完成業(yè)務(wù)虛擬機(jī)網(wǎng)元添加后,在產(chǎn)品網(wǎng)元的業(yè)務(wù)面板上發(fā)現(xiàn),添加成功的業(yè)務(wù)虛擬機(jī)都沒(méi)有處于正常啟動(dòng)狀態(tài)。定位之后,發(fā)現(xiàn)A平臺(tái)在出聯(lián)調(diào)版本時(shí),自動(dòng)劃分Suse Linux操作系統(tǒng)根分區(qū)相關(guān)的平臺(tái)代碼沒(méi)有合入版本包,導(dǎo)致所有的業(yè)務(wù)虛擬機(jī)不能正常啟動(dòng)。平臺(tái)開(kāi)發(fā)工程師通過(guò)應(yīng)急補(bǔ)丁的方式處理該問(wèn)題。
在產(chǎn)品網(wǎng)元的業(yè)務(wù)面板上的業(yè)務(wù)虛擬機(jī)不能正常啟動(dòng)。定位之后,發(fā)現(xiàn)網(wǎng)元包中的平臺(tái)軟件相關(guān)文件版本不是平臺(tái)軟件提供的新版本,而是老版本,而且編譯生成的產(chǎn)品網(wǎng)元的進(jìn)程文件也沒(méi)有全部生成的。持續(xù)集成工程師確定Y產(chǎn)品軟件集成構(gòu)建不正確,重新出軟件產(chǎn)品的版本包,加載新的版本包之后,解決了該問(wèn)題。
加載了產(chǎn)品網(wǎng)元的版本包后,發(fā)現(xiàn)有1臺(tái)業(yè)務(wù)虛擬機(jī)不能正常啟動(dòng)。定位之后,發(fā)現(xiàn)該業(yè)務(wù)虛擬機(jī)在安裝過(guò)程中配置不正確。測(cè)試工程師重新安裝該虛擬機(jī)的操作系統(tǒng),進(jìn)行重新配置之后,該虛擬機(jī)能夠正常啟動(dòng)。
軟件聯(lián)調(diào)是軟件開(kāi)發(fā)過(guò)程中的重要環(huán)節(jié),尤其對(duì)于大型軟件顯得尤為重要。隨著云計(jì)算技術(shù)的高速發(fā)展,許多傳統(tǒng)環(huán)境下的軟件產(chǎn)品需要推出云環(huán)境下的軟件版本,需要關(guān)注和研究云環(huán)境下的軟件聯(lián)調(diào)技術(shù)。工作實(shí)踐表明,做好基于云環(huán)境的軟件聯(lián)調(diào)工作可以在軟件開(kāi)發(fā)過(guò)程中不斷解決存在的各種問(wèn)題,從而提高軟件產(chǎn)品的質(zhì)量,提高上線后軟件的安全性與穩(wěn)定
性。在網(wǎng)絡(luò)環(huán)境上更好地滿足客戶(hù)對(duì)軟件產(chǎn)品的需求。
[1] MYERS G J,BADGETT T,SANDLER C. Art of software testing[M].3rd ed.Hoboken,New Jersey,U.S:John Wiley & Sons,Inc.,2012.
[2] 林科學(xué).軟件測(cè)試/調(diào)試技術(shù)應(yīng)用研究[D].南京:南京氣象學(xué)院,2004.
[3] 張銀奎.軟件調(diào)試[M].北京:電子工業(yè)出版社,2008.
[4] METZGER R C.軟件調(diào)試思想[M].尹曉峰,馬振萍,譯.北京:電子工業(yè)出版社,2004.
[5] TELLES M, HSIEH Y. The science of debugging[M].Scottsdale,Arizona,U.S:the Coriolis Group,2001.
[6] 蔡 銘,程 勝,王 瑞.航天型號(hào)高可靠軟件系統(tǒng)調(diào)試原理與技術(shù)[M].北京:中國(guó)宇航出版社,2008.
[7] MATLOFF N,SALZMAN P J.軟件調(diào)試的藝術(shù)[M].張 云,譯.北京:人民郵電出版社,2009.
[8] 石磊玉.日臻完善-軟件調(diào)試與優(yōu)化典型應(yīng)用[M].北京:中國(guó)鐵道出版社,2010.
[9] 邢利榮,何曉龍.從虛擬化到云計(jì)算[M].北京:電子工業(yè)出版社,2013.
[10] 陳國(guó)良,明 仲,馮禹洪.云計(jì)算工程[M].北京:人民郵電出版社,2016.
[11] 魏志華,趙強(qiáng)強(qiáng).構(gòu)建企業(yè)私有云軟件測(cè)試平臺(tái)[J].電子技術(shù)與軟件工程,2015(9):63-64.
[12] WANG Jun,MENG Fanpeng. Software testing based on cloud computing[C]//Proceedings of the 2011 international conference on internet computing and information services.[s.l.]:[s.n.],2011:176-178.
[13] Amazon virtual private cloud user guide[R].Seattle,Washington,U.S:Amazon Web Services,Inc.,2013.
[14] 姜 文,劉立康.基于ClearCase的軟件配置管理與持續(xù)集成[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016,26(1):10-17.
[15] 姜 文,劉立康.基于SVN的軟件配置管理和持續(xù)集成[J].電子設(shè)計(jì)工程,2016,24(2):1-5.
[16] DUVALL P M,MATYAS S,GLOVER A.持續(xù)集成軟件質(zhì)量改進(jìn)和風(fēng)險(xiǎn)降低之道[M].北京:電子工業(yè)出版社,2012.