姜文,劉立康
(西安電子科技大學(xué) 通信工程學(xué)院,陜西 西安 710071)
隨著計算機技術(shù)的不斷發(fā)展,軟件企業(yè)需要不斷更新已經(jīng)推向市場的軟件產(chǎn)品,以便更好地滿足用戶需求,Windows操作系統(tǒng)軟件,Oracle數(shù)據(jù)庫軟件等知名軟件都在不斷地推出新的軟件版本。隨著計算機硬件技術(shù)的發(fā)展,計算機的內(nèi)存、硬盤容量、運算速度獲得相當(dāng)大的提升,為單機版應(yīng)用軟件功能和性能的提升提供了硬件環(huán)境,需要不斷更新軟件產(chǎn)品版本。近年來計算機網(wǎng)絡(luò)技術(shù)和云計算技術(shù)獲得廣泛應(yīng)用,應(yīng)用軟件需要及時推出網(wǎng)絡(luò)版和云化版軟件,以滿足市場需求,更好為廣大客戶服務(wù)。
采用新的軟件版本替換原來低版本軟件產(chǎn)品稱為軟件升級[1-4],升級是軟件從低版本向高版本的更新。高版本通常會修復(fù)低版本的部分缺陷,同時擴展新的功能。經(jīng)歷了軟件升級,一般都會比原版本的性能更好,得到優(yōu)化的效果,用戶也能有更好的體驗。為了能夠順利進(jìn)行軟件升級,需要軟件企業(yè)做好軟件升級的測試工作。
軟件升級從變更涉及面大小可以分為補丁級別升級和版本級別升級。
軟件產(chǎn)品進(jìn)入維護(hù)階段,為了解決客戶方在軟件使用過程中的缺陷問題需要軟件維護(hù)組不斷推出補丁版本。補丁級別升級主要是對某個軟件本的局部問題進(jìn)行修復(fù)。在軟件新版本推出之前通常會有多個補丁版本解決客戶反映的各種問題。補丁版本有助于延長軟件版本的使用壽命。
通常經(jīng)過多個補丁版本后,根據(jù)技術(shù)的發(fā)展,客戶方的功能擴展的要求,結(jié)合補丁版本改進(jìn)的技術(shù)問題推出軟件產(chǎn)品新版本。
二者之間的區(qū)別如同“一件舊衣服打補丁”和“換一件新衣服”,如表1所示。
表1 正式的軟件版本和補丁版本之間的區(qū)別
從表1中的比較可以看出補丁版本的升級相對來說更為簡單。
軟件升級前需要做好一系列軟件測試工作,測試工作是軟件版本升級[5-8]技術(shù)環(huán)節(jié)。
軟件正式版本立項之后,由研發(fā)部門的測試組負(fù)責(zé)軟件功能、性能、可靠性和安全性測試工作,研發(fā)工作結(jié)束之后,內(nèi)部發(fā)布軟件版本進(jìn)入試用階段。根據(jù)以往的經(jīng)驗,在試用階段暴露的軟件缺陷較多,需要開發(fā)工程師和測試工程師不斷定位解決、反復(fù)測試這些問題,不斷完善該軟件版本,一直到該軟件在使用過程中進(jìn)入穩(wěn)定狀態(tài),組織相關(guān)人員評審之后,正式發(fā)布對外的軟件版本,投放市場推廣應(yīng)用。
軟件投放市場應(yīng)用之后,轉(zhuǎn)由軟件維護(hù)組進(jìn)行軟件維護(hù)工作,處理客戶在軟件使用過程遇到的各種問題。對于需要修改軟件代碼的缺陷問題,通常通過定期發(fā)布補丁包來處理。補丁包通常包含多個需要處理的補丁問題。完成補丁包的測試和驗收工作后,正式發(fā)布軟件補丁版本。
客戶局點實施軟件版本升級之前,客戶局點可以向軟件研發(fā)部門申請鏡像測試。測試工程師需要對客戶環(huán)境進(jìn)行模擬仿真測試,這種測試稱為“鏡像測試”。鏡像測試的目的是為了在客戶局點軟件升級之前,提前發(fā)現(xiàn)局點升級過程中的問題,保證客戶局點順利完成版本升級和升級之后順利恢復(fù)業(yè)務(wù)。
軟件鏡像測試主要包括如下內(nèi)容。
2.3.1 搭建測試環(huán)境
根據(jù)客戶的環(huán)境類型、組網(wǎng)、業(yè)務(wù)特性、環(huán)境配置、軟件版本等信息搭建測試環(huán)境。該測試環(huán)境通常稱為“鏡像環(huán)境”。
2.3.2 升級前軟件版本業(yè)務(wù)測試
在測試環(huán)境上安裝客戶當(dāng)前使用的軟件版本,進(jìn)行客戶局點使用的軟件業(yè)務(wù)測試,表明對客戶軟件使用狀況的模擬是成功的。
2.3.3 軟件升級前檢查與軟件升級測試
完成軟件升級前業(yè)務(wù)測試后,通過軟件的升級工具對鏡像測試環(huán)境進(jìn)行升級前檢查,排除外部導(dǎo)致升級失敗的因素。
升級前檢查結(jié)果若符合升級要求,就可以啟動升級測試,升級測試的過程是鏡像測試中最關(guān)鍵的步驟。升級檢查結(jié)果是否成功,決定下一步測試如何進(jìn)行。
2.3.4 升級后的軟件新版本業(yè)務(wù)測試
在測試環(huán)境中用軟件新版本替換原來的軟件版本,測試軟件新版本的業(yè)務(wù)功能,驗證軟件新版本業(yè)務(wù)功能是否正常。
2.3.5 回退到原來的軟件版本的業(yè)務(wù)測試
在測試環(huán)境中用原來的軟件版本替換軟件新版本,進(jìn)行業(yè)務(wù)測試和驗證,測試結(jié)果和升級前的測試結(jié)果比較,若二者結(jié)果相同,表明軟件升級可以正?;赝?。這樣做的好處在于當(dāng)升級出現(xiàn)問題時可以及時回退到原來的狀態(tài),保證客戶的日常業(yè)務(wù)正常運行。
軟件升級流程如圖1所示。
圖1 軟件升級流程
軟件新版本發(fā)布之后,客戶對目前使用的軟件版本提出升級需求。售后工程師對該局點的環(huán)境組網(wǎng)、環(huán)境以及特性進(jìn)行升級評估,確認(rèn)現(xiàn)網(wǎng)局點需要使用的目標(biāo)版本。確認(rèn)該局點可以升級后,售后工程師協(xié)助申請新版本的許可證書,確定局點的軟件版本升級的時間點。
現(xiàn)場工程師獲取客戶局點的環(huán)境信息和環(huán)境配置信息,將這些信息反饋給研發(fā)部門的局點接口人。接口人協(xié)調(diào)測試部門,安排測試人員啟動鏡像測試,將現(xiàn)網(wǎng)收集到的現(xiàn)網(wǎng)環(huán)境信息與配置提供給測試工程師。
測試工程師根據(jù)局點目前的軟件版本和待升級的目標(biāo)版本,準(zhǔn)備好版本包、升級包和升級工具。
a.根據(jù)客戶方的環(huán)境信息,搭建測試環(huán)境,完成環(huán)境的配置工作。根據(jù)現(xiàn)網(wǎng)環(huán)境支持的特性,進(jìn)行特性功能測試。
b.上傳現(xiàn)網(wǎng)局點待升級的版本包、升級包以及升級工具包。
c.安裝待升級的版本包,啟動升級前測試工作,收集測試報告。
d.通過升級包與升級工具,啟動軟件升級。升級過程中,如果遇到發(fā)生錯誤導(dǎo)致升級失敗,聯(lián)系開發(fā)工程師定位升級失敗的原因,給出避免升級失敗的規(guī)避手段。如果升級成功,收集升級報告;收集環(huán)境的配置,版本信息與告警信息等。測試驗證新版本的業(yè)務(wù)功能。
e.啟動已升級版本的回退,回退成功之后,收集回退報告,收集環(huán)境配置信息、版本信息與告警信息等。再次進(jìn)行特性功能測試驗證。
鏡像測試完成后,測試工程師要根據(jù)測試結(jié)果,完成鏡像測試報告。鏡像測試報告的內(nèi)容包含鏡像測試內(nèi)容、測試結(jié)果、測試過程中發(fā)現(xiàn)的問題與問題解決方案。鏡像測試報告和鏡像測試結(jié)果,發(fā)送給研發(fā)部的客戶局點接口人,抄送版本經(jīng)理、測試組長和相關(guān)人員。
鏡像測試完成后,客戶局點接口人與版本經(jīng)理安排客戶局點升級時間,售后工程師在客戶局點進(jìn)行軟件版本升級;同時安排開發(fā)工程師與測試工程師以辦公室現(xiàn)場值守或電話值守的方式為客戶局點軟件升級提供技術(shù)保障??蛻艟贮c升級過程中與升級后發(fā)現(xiàn)的問題,立刻組成軟件升級問題小組開展問題復(fù)現(xiàn)與定位,盡快找到問題發(fā)生的原因,提出規(guī)避方案,完成規(guī)避方案驗證之后,將規(guī)避方案提供給客戶局點,處理軟件升級過程中出現(xiàn)的問題。
應(yīng)用軟件升級過程中遇到的一些技術(shù)問題。
V局點鏡像過程中需要將云化軟件5.18.1版本升級為云化軟件5.19.1版本。搭建云化的網(wǎng)絡(luò)環(huán)境,環(huán)境中部署5.18.1版本,部署到43%時,出現(xiàn)創(chuàng)建軟件虛擬機失敗的問題。經(jīng)定位確認(rèn),有一個軟件虛擬機所在的主機出現(xiàn)網(wǎng)絡(luò)故障,導(dǎo)致部署到這個主機上的軟件虛擬機與其他軟件虛擬機之間的網(wǎng)絡(luò)不通,因此出現(xiàn)部署失敗。將故障主機隔離之后,重新部署5.18.1版本軟件,部署成功。
I局點在云化環(huán)境中,需要將軟件從軟件5.2.3版本升級到5.20.0版本。鏡像環(huán)境搭建完成之后,驗證軟件5.2.3版本基本業(yè)務(wù)功能;上傳5.20.0版本的版本包與升級包,打開軟件升級工具的WEBUI頁面,進(jìn)行升級前檢查,檢查的結(jié)果存在失敗項,檢查結(jié)果顯示一個新虛擬機類型的鏡像包未上傳。該問題處理之后,重新上傳5.20.0版本的版本包與升級包,再次運行升級前檢查,該失敗項檢查通過,可以繼續(xù)進(jìn)行升級測試。
H局點將基于硬件環(huán)境的軟件3.18.1版本升級到基于云化環(huán)境的軟件3.19.1版本。搭建鏡像環(huán)境,完成軟件3.18.1版本升級前基本業(yè)務(wù)功能驗證;完成3.19.1版本的軟件包和升級包上傳、升級前檢查確認(rèn)沒有失敗項;啟動軟件升級,升級到40%時,在鏡像環(huán)境上發(fā)現(xiàn)了軟件進(jìn)程復(fù)位現(xiàn)象。將該問題反饋給軟件開發(fā)工程師,確認(rèn)出現(xiàn)軟件進(jìn)程復(fù)位是軟件缺陷導(dǎo)致的。該問題由測試工程師提單,通過后續(xù)3.19.1的SPH203補丁包來解決該問題。
H局點將基于硬件環(huán)境的軟件3.18.1版本升級到基于云化環(huán)境的軟件3.19.1版本。升級成功之后,發(fā)現(xiàn)負(fù)責(zé)軟件產(chǎn)品音頻編解碼的單板出現(xiàn)概率性重啟,將該問題反饋給軟件開發(fā)工程師,對該問題提單跟蹤,定位確認(rèn)音頻編解碼單板在燒制過程中存在缺失,可以更換單板處理該問題。發(fā)給B局點的單板在使用前經(jīng)過嚴(yán)格的驗證,不會出現(xiàn)該問題。
C局點在云化環(huán)境中將軟件5.18.1版本+SHP116補丁包升級到5.19.1版本。完成升級后業(yè)務(wù)驗證,進(jìn)行軟件回退驗證時,在回退至30%之后,出現(xiàn)一個軟件虛擬機無法正常啟動,導(dǎo)致回退失敗。軟件開發(fā)工程師定位確認(rèn),由于故障虛擬機的主機出現(xiàn)部分服務(wù)異常導(dǎo)致軟件虛擬機異常。遷移該虛擬機之后,完成云化測試環(huán)境中的虛擬機恢復(fù)重建,問題虛擬機能夠正常啟動,測試工程師繼續(xù)完成回退驗證。隔離故障主機,再次進(jìn)行鏡像升級驗證時,升級回退均可以正常進(jìn)行。
J局點軟件成功升級到3.19.1版本之后,客戶在使用過程中發(fā)現(xiàn)每天凌晨3點,負(fù)責(zé)編解碼轉(zhuǎn)換的P單板,會出現(xiàn)復(fù)位問題。該問題經(jīng)過開發(fā)工程師緊急攻關(guān)定位確認(rèn),問題根因是P單板硬件軟件中有個到凌晨3點左右定時啟動的檢測工具,工具定時啟動檢測時涉及的進(jìn)程較多,工具啟動之后,會大量持續(xù)占用IO資源,導(dǎo)致單板的CPU瞬時飆高,導(dǎo)致單板復(fù)位。開發(fā)工程師經(jīng)過反復(fù)對J局點問題進(jìn)行復(fù)現(xiàn),細(xì)致地分析了檢測工具代碼,發(fā)現(xiàn)檢測工具定時啟動檢測時,不必全量檢測所有進(jìn)程,因此在工具檢測腳本中去掉部分不需要加入檢測的進(jìn)程這樣就在很大程度上降低了對單板IO資源的占用,避免出現(xiàn)單板的CPU出現(xiàn)瞬時飆高。經(jīng)過售后部門與J局點協(xié)商,由軟件研發(fā)部門提供緊急補丁給J局點解決該問題。該問題提單跟蹤并規(guī)劃到3.19.1的SPH203補丁解決。
以下介紹2個軟件升級案例,一個是基于硬件環(huán)境的,一個是基于云化環(huán)境的,通過案例詳細(xì)介紹了軟件升級過程。
某通信軟件產(chǎn)品C,最新發(fā)布了3.19.1的云化版本與硬件版本,分別適配云化平臺和原有的硬件平臺。許多局點要求申請升級3.19.1版本。其中B局點申請3.19.1的硬件版本。以下詳細(xì)介紹基于硬件的軟件版本升級過程。
5.1.1 提交升級申請
B局點目前安裝的是基于硬件版本軟件,版本是3.18.1+SPH111補??;通過負(fù)責(zé)該局點的售后工程師向研發(fā)部門的局點接口人提交升級到3.19.1版本的升級需求。
5.1.2 獲取B局點環(huán)境信息
現(xiàn)場工程師獲取B局點的組網(wǎng)信息、環(huán)境信息、環(huán)境配置信息,將這些信息發(fā)給研發(fā)部門的局點接口人、版本經(jīng)理以及相關(guān)人員。
5.1.3 安排鏡像測試
B局點的升級計劃確定之后,局點接口人安排測試工程師進(jìn)行鏡像測試。
5.1.4 搭建測試環(huán)境
B局點的環(huán)境組網(wǎng)是由兩個機框與幾種業(yè)務(wù)單板組成的級聯(lián)環(huán)境,一個機框內(nèi)可放置6個不同的業(yè)務(wù)單板。搭建測試環(huán)境時,需要準(zhǔn)備2個機框以及若干塊業(yè)務(wù)單板,將機框安裝在機架上,業(yè)務(wù)單板安裝到機框里,完成硬件環(huán)境的部署。硬件環(huán)境準(zhǔn)備完成后,在該環(huán)境上安裝軟件版本3.18.1版本,加載SPH111補丁包。
5.1.5 升級之前的測試驗證
分析B局點目前的現(xiàn)網(wǎng)配置,確認(rèn)B局點主要使用的軟件特性是GX特性,部分環(huán)境上的IP地址的格式為IPV6格式。根據(jù)B局點的現(xiàn)網(wǎng)配置在鏡像環(huán)境上進(jìn)行業(yè)務(wù)配置。記錄鏡像環(huán)境上的告警,并執(zhí)行MML命令EXP MML導(dǎo)出鏡像環(huán)境上的配置。
在軟件的WEBUI頁面上打開話統(tǒng)頁面,在話統(tǒng)頁面上打開需要度量的指標(biāo)項。驗證IPV4與IPV6格式下的軟件特性的功能、性能以及話統(tǒng)數(shù)據(jù)。功能驗證使用華為自主研發(fā)的SPIDER工具,性能驗證使用華為自主研發(fā)的NTE工具。
觀測GX特性的功能(包括IPV4與IPV6兩種場景下的功能驗證)與性能(包括業(yè)務(wù)單板的CPU占用率、丟包率等指標(biāo))是否正常。話統(tǒng)指標(biāo)統(tǒng)計到的數(shù)據(jù)是否正確等。
5.1.6 鏡像升級測試驗證
上傳升級版本3.19.1的版本包、升級包以及升級工具。在升級工具頁面上執(zhí)行升級前檢查,查看檢查結(jié)果,如果沒有發(fā)現(xiàn)問題,在升級工具頁面上執(zhí)行軟件版本鏡像升級。升級過程中需要觀測是否有報告錯誤信息,導(dǎo)致升級中斷的;如果遇到這種情況需要聯(lián)系開發(fā)工程師定位處理,記錄下升級失敗的問題現(xiàn)象,跟蹤問題的定位解決情況。
升級成功之后,首先查看升級版本號是否正確,執(zhí)行MML命令EXP MML導(dǎo)出鏡像測試環(huán)境上的業(yè)務(wù)配置信息并與升級前的環(huán)境配置進(jìn)行比對。查看鏡像環(huán)境升級之后是否有新增告警,如有新增告警需要分析告警產(chǎn)生的原因,部分異常告警需要開發(fā)工程師協(xié)助分析。
鏡像升級結(jié)束之后,驗證升級之后軟件的GX特性的功能與性能是否正常,觀測話統(tǒng)指標(biāo)是否正常。
5.1.7 鏡像升級后回退測試驗證
在升級工具上執(zhí)行回退驗證,從3.19.1版本回退至3.18.1+SPH111補丁版本?;赝诉^程中如果發(fā)生報錯導(dǎo)致回退終止,需要聯(lián)系開發(fā)工程師定位回退失敗的原因,并跟蹤問題定位過程?;赝顺晒χ髮X特性鏡像功能、性能驗證。與升級前的MML與告警信息進(jìn)行比較,確認(rèn)回退之后無新增告警生成。
5.1.8 編寫鏡像測試報告
鏡像測試完成之后,測試工程師需要將鏡像測試的環(huán)境組網(wǎng)、測試場景、測試發(fā)現(xiàn)問題、定位結(jié)論與問題規(guī)避措施編寫成鏡像測試報告,鏡像測試報告與相關(guān)的測試結(jié)果以郵件形式發(fā)送給局點接口人和相關(guān)人員,報告由局點接口人審核之后轉(zhuǎn)發(fā)給B局點的售后工程師。
5.1.9 B局點軟件升級和提供技術(shù)保障
局點接口人安排B局點的升級時間。升級需要停掉軟件上的所有業(yè)務(wù),必須按時完成升級工作,B局點的售后工程師現(xiàn)場進(jìn)行軟件升級。同時軟件開發(fā)工程師與測試工程師組成技術(shù)保障小組,提供B局點升級技術(shù)保障工作。保障小組在辦公室現(xiàn)場緊密關(guān)注B局點升級過程與升級之后業(yè)務(wù)恢復(fù)情況。由于鏡像測試工作做得比較好,B局點升級工作順利完成,業(yè)務(wù)逐漸恢復(fù)正常。
云化網(wǎng)絡(luò)環(huán)境的搭建和管理通常比較復(fù)雜,這是在云化環(huán)境中軟件升級需要特別關(guān)注的地方。
Q局點使用的是云化軟件版本為5.18.1+SPH118補丁,需要升級到云化的5.19.1版本。Q局點的底層硬件是華為自研的E9000機框、刀片服務(wù)器以及外接磁陣,安裝的是Fusion Sphere虛擬化軟件,軟件版本6.3.1。
目前云化測試環(huán)境上安裝的Fusion Sphere軟件版本為6.5.1,需要重新安裝6.3.1版本的Fusion Sphere軟件。軟件安裝之后啟動環(huán)境部署,環(huán)境上一共需要配置27個虛擬機。分析Q局點業(yè)務(wù)配置,確認(rèn)Q局點使用的軟件特性是XF特性。測試工程師在測試環(huán)境上添加了軟件特性的配置,分別在升級前、升級后以及回退后完成軟件特性的功能、性能、話統(tǒng)驗證;版本信息查詢;告警比較;配置比較等均正常。Q局點管理現(xiàn)網(wǎng)環(huán)境時,通過網(wǎng)管系統(tǒng)軟件完成現(xiàn)網(wǎng)配置添加、告警信息觀測等,鏡像測試需要驗證網(wǎng)管系統(tǒng)軟件對接測試環(huán)境。
測試驗證完成之后由測試工程師提供鏡像測試報告與鏡像測試結(jié)果。局點接口人安排Q局點的軟件升級工作和軟件升級技術(shù)保障工作,Q局點順利按期完成了5.19.1版本的升級工作。
計算機技術(shù)的發(fā)展需要軟件企業(yè)不斷推出新的軟件版本,軟件升級是軟件生命周期中一個重要的環(huán)節(jié)。在軟件升級過程中做好測試工作,能夠順利高效地完成軟件升級與迅速恢復(fù)客戶業(yè)務(wù)。長期的工作實踐表明,軟件升級過程,測試工作是不斷發(fā)現(xiàn)和解決客戶局點版本升級過程中與升級之后各種問題的過程,不斷提高軟件的質(zhì)量過程。做好測試工作有助于提高軟件的安全性與穩(wěn)定性,平穩(wěn)保證客戶局點軟件升級之后的業(yè)務(wù)恢復(fù)與正常使用。同時充分的軟件升級測試也為開發(fā)軟件新版本和擴大軟件市場占用率提供了良好的基礎(chǔ)。