姜文 劉立康
摘 ?要:在軟件維護(hù)階段,需要處理軟件存在的各種問題,其中軟件補(bǔ)丁是軟件維護(hù)的核心環(huán)節(jié)。首先介紹了軟件補(bǔ)丁的相關(guān)概念與分類。詳細(xì)敘述了軟件補(bǔ)丁測試,內(nèi)容包括補(bǔ)丁程序開發(fā)與測試、補(bǔ)丁包制作、補(bǔ)丁包測試;介紹了補(bǔ)丁包測試過程中遇到的幾個(gè)典型問題;最后介紹了一個(gè)補(bǔ)丁測試案例,敘述了軟件補(bǔ)丁測試的完整過程。工作實(shí)踐表明軟件補(bǔ)丁測試是保證軟件補(bǔ)丁質(zhì)量的重要步驟。做好補(bǔ)丁測試有助于的保證與提升軟件產(chǎn)品質(zhì)量。
關(guān)鍵詞:軟件維護(hù);熱補(bǔ)丁;補(bǔ)丁測試
中圖分類號:TP311.5 ? ? 文獻(xiàn)標(biāo)識碼:A
1 ? 引言(Introduction)
軟件維護(hù)[1-4]是軟件生命周期的最后一個(gè)環(huán)節(jié),是持續(xù)時(shí)間最長的環(huán)節(jié)。應(yīng)用軟件維護(hù)的成本是開發(fā)成本的四倍左右。在軟件交付用戶使用后,需要做好軟件維護(hù)工作,不斷處理和解決用戶在軟件使用過程中提出的各種問題,從而延長軟件產(chǎn)品的使用壽命。
軟件補(bǔ)丁是軟件維護(hù)的核心環(huán)節(jié),補(bǔ)丁測試是保證軟件補(bǔ)丁質(zhì)量的重要環(huán)節(jié)。文中介紹了軟件補(bǔ)丁的相關(guān)概念與分類、軟件補(bǔ)丁測試過程,最后介紹了一個(gè)軟件產(chǎn)品熱補(bǔ)丁測試的工作案例。
2 ?軟件補(bǔ)丁的相關(guān)概念和分類(Related concepts and classification of software patch)
2.1 ? 軟件補(bǔ)丁的相關(guān)概念
(1)補(bǔ)丁問題
補(bǔ)丁問題是軟件在客戶局點(diǎn)使用過程中發(fā)現(xiàn)的軟件缺陷問題,或者軟件產(chǎn)品研發(fā)部門自行對軟件產(chǎn)品進(jìn)行的自主改進(jìn)問題,這些問題需要修改軟件代碼才能解決。
(2)補(bǔ)丁程序
補(bǔ)丁程序是為了修復(fù)補(bǔ)丁問題開發(fā)的軟件代碼,每個(gè)補(bǔ)丁問題都有對應(yīng)的補(bǔ)丁程序,這種小程序俗稱“補(bǔ)丁”。過補(bǔ)丁程序修改或者更新軟件,處理補(bǔ)丁問題稱為“打補(bǔ)丁”。
(3)補(bǔ)丁包
軟件企業(yè)會(huì)定時(shí)發(fā)布補(bǔ)丁包解決客戶局點(diǎn)存在的軟件缺陷,通常一個(gè)補(bǔ)丁包中包含處理多個(gè)補(bǔ)丁問題的補(bǔ)丁。對于需要客戶局點(diǎn)緊急處理的補(bǔ)丁問題,也可以發(fā)布由單個(gè)補(bǔ)丁組成的應(yīng)急補(bǔ)丁包。
2.2 ? 補(bǔ)丁問題來源
軟件補(bǔ)丁問題來源主要有客戶局點(diǎn)使用過程中發(fā)現(xiàn)的問題、研發(fā)部門內(nèi)部測試發(fā)現(xiàn)的問題、軟件產(chǎn)品自主改進(jìn)、客戶定制需求、軟件安全性加固、在研版本同步改進(jìn)等方面的問題。
2.3 ? 軟件補(bǔ)丁分類
根據(jù)軟件補(bǔ)丁實(shí)施方式,軟件補(bǔ)丁可以分為冷補(bǔ)丁、熱補(bǔ)丁。
(1)冷補(bǔ)丁
開發(fā)工程師編寫補(bǔ)丁程序,提交版本庫,對軟件產(chǎn)品的整個(gè)工程文件進(jìn)行重新編譯,生成軟件補(bǔ)丁版本。在需要在設(shè)備上停掉原有的軟件版本,重新安裝軟件補(bǔ)丁版本。
軟件冷補(bǔ)丁包實(shí)際上是指打了補(bǔ)丁之后的軟件補(bǔ)丁版本,通過替換原有的軟件版本來處理補(bǔ)丁問題。
(2)熱補(bǔ)丁
熱補(bǔ)丁[5-8]安裝的過程中,并不需要停止軟件系統(tǒng)運(yùn)行。通常熱補(bǔ)丁適用的軟件系統(tǒng)是廣泛使用的實(shí)時(shí)操作系統(tǒng),虛擬機(jī)化軟件Openstack上也支持實(shí)施熱補(bǔ)丁。
熱補(bǔ)丁能夠在不停止應(yīng)用軟件運(yùn)行的情況下實(shí)施補(bǔ)丁安裝,同時(shí)也支持在軟件產(chǎn)品版本升級過程中以靜默安裝方式實(shí)施補(bǔ)丁安裝。靜默安裝方式是指軟件在模擬環(huán)境中加載熱補(bǔ)丁包,然后在實(shí)際的使用環(huán)境中替換原來的軟件版本。
軟件熱補(bǔ)丁包通常由多個(gè)補(bǔ)丁程序(函數(shù))組成,通過加載熱補(bǔ)丁包替換當(dāng)前軟件中的對應(yīng)函數(shù)來處理補(bǔ)丁問題。
3 ? 軟件補(bǔ)丁測試(Software patch testing)
軟件補(bǔ)丁測試主要包括補(bǔ)丁程序開發(fā)與測試、補(bǔ)丁包制作、補(bǔ)丁包測試。
3.1 ? 補(bǔ)丁程序開發(fā)與測試
(1)提交補(bǔ)丁問題單
通常由軟件客戶或者軟件售后工程師提交補(bǔ)丁問題單。
(2)補(bǔ)丁問題復(fù)現(xiàn)
測試工程師根據(jù)補(bǔ)丁問題根因、發(fā)生的問題軟件版本。搭建補(bǔ)丁測試環(huán)境,復(fù)現(xiàn)補(bǔ)丁問題。問題復(fù)現(xiàn)之后,由系統(tǒng)工程師與開發(fā)工程師確認(rèn)補(bǔ)丁問題已正確復(fù)現(xiàn)。
(3)補(bǔ)丁問題澄清
開發(fā)工程師分析補(bǔ)丁問題發(fā)生的原因,并給出問題解決方案。由系統(tǒng)工程師負(fù)責(zé)補(bǔ)丁問題澄清,向開發(fā)工程師、測試架構(gòu)師、測試工程師,以及資料工程師講解補(bǔ)丁問題的現(xiàn)象與解決方案。資料工程師完成補(bǔ)丁資料編寫。
(4)補(bǔ)丁程序開發(fā)
開發(fā)工程師編寫補(bǔ)丁程序代碼編寫,對代碼進(jìn)行靜態(tài)測試和單元測試,代碼評審?fù)瓿珊筇峤话姹編臁?/p>
(5)補(bǔ)丁問題測試用例設(shè)計(jì)
測試架構(gòu)師完成補(bǔ)丁問題測試用例設(shè)計(jì),測試工程師編寫自動(dòng)化測試腳本。進(jìn)行補(bǔ)丁測試用例和自動(dòng)化腳本評審,系統(tǒng)工程師、開發(fā)工程師、測試架構(gòu)師和測試工程師參與評審工作。
(6)補(bǔ)丁程序測試
測試工程師搭建測試環(huán)境,下載包含補(bǔ)丁程序的版本包,測試補(bǔ)丁程序的功能。然后連跑自動(dòng)化腳本,對版本包進(jìn)行回歸測試,檢測新增加的補(bǔ)丁程序不會(huì)影響版本包中其他代碼的功能。若發(fā)現(xiàn)問題,與開發(fā)工程師共同定位處理。
3.2 ? 補(bǔ)丁包制作
(1)制定補(bǔ)丁計(jì)劃
應(yīng)用軟件補(bǔ)丁包是定期發(fā)布的,確定補(bǔ)丁包的版本號之后。補(bǔ)丁版本經(jīng)理收集需要合入補(bǔ)丁包的補(bǔ)丁問題;主持制定補(bǔ)丁計(jì)劃,補(bǔ)丁計(jì)劃主要包括補(bǔ)丁包需要合入的補(bǔ)丁問題列表、每個(gè)補(bǔ)丁程序的開發(fā)和測試工作安排。
(2)設(shè)計(jì)開發(fā)補(bǔ)丁程序
系統(tǒng)工程師負(fù)責(zé)軟件補(bǔ)丁技術(shù)設(shè)計(jì),完成需求設(shè)計(jì)、架構(gòu)設(shè)計(jì)和軟件代碼詳細(xì)設(shè)計(jì)。將設(shè)計(jì)方案以規(guī)格文檔形式提供給開發(fā)工程師。開發(fā)工程師負(fù)責(zé)開發(fā)補(bǔ)丁程序。
(3)補(bǔ)丁程序測試
測試經(jīng)理根據(jù)補(bǔ)丁計(jì)劃,準(zhǔn)備測試環(huán)境,將補(bǔ)丁問題單分配給測試工程師處理,完成補(bǔ)丁程序的測試工作。
(4)制作補(bǔ)丁包
單個(gè)軟件補(bǔ)丁程序的開發(fā)完成后,軟件補(bǔ)丁程序合入版本庫,對更新后軟件源代碼編譯生成新版本軟件產(chǎn)品的進(jìn)程文件。將該進(jìn)程文件與修改后的相關(guān)配置文件一起打包生成補(bǔ)丁包。通常在Linux操作系統(tǒng)下使用的補(bǔ)丁包制作成*.tar包,Windows操作系統(tǒng)下使用的補(bǔ)丁包制作成*.rar包。
可以通過持續(xù)集成工具完成更新代碼、軟件進(jìn)程文件編譯和補(bǔ)丁包出包。持續(xù)集成工具可以執(zhí)行冒煙測試初步驗(yàn)證補(bǔ)丁包的基本功能,提高補(bǔ)丁包測試的效率。
3.3 ? 補(bǔ)丁包測試
補(bǔ)丁包制作完成后,補(bǔ)丁包由版本經(jīng)理內(nèi)部發(fā)布。補(bǔ)丁問題單提交測試經(jīng)理,補(bǔ)丁包測試不僅包含功能測試,還要完成補(bǔ)丁包性能和升級測試。
(1)功能測試
測試工程師從補(bǔ)丁包歸檔路徑下,取出補(bǔ)丁包,將補(bǔ)丁包安裝到執(zhí)行補(bǔ)丁問題復(fù)現(xiàn)的環(huán)境上,首先觀測補(bǔ)丁版本號是否正確,根據(jù)測試架構(gòu)師給出的補(bǔ)丁測試用例進(jìn)行測試,確保存在的問題已被解決,并沒與引入新問題。如果發(fā)現(xiàn)新問題,知會(huì)該問題的軟件開發(fā)工程師,問題定位郵件抄送版本經(jīng)理、補(bǔ)丁測試組長、補(bǔ)丁開發(fā)組長、系統(tǒng)工程師與測試架構(gòu)師。開發(fā)工程師負(fù)責(zé)定位發(fā)生的問題是否是軟件缺陷。
(2)性能測試
測試環(huán)境安裝補(bǔ)丁包,測試架構(gòu)師制定性能測試用例,測試工程師執(zhí)行補(bǔ)丁性能測試;將重點(diǎn)的性能指標(biāo)(如性能背景下的性能規(guī)格、CPU占用率、資源占用率等)與基線版本比較是否保持一致,如果與基線版本的指標(biāo)有差異則需要開發(fā)工程師定位處理軟件性能問題。
(3)升級測試
補(bǔ)丁升級測試,測試軟件產(chǎn)品可以正常的安裝補(bǔ)丁,也可以正常的回退補(bǔ)丁,安裝與回退之后業(yè)務(wù)功能正常。基線版本安裝之后執(zhí)行基本功能測試,基本功能測試運(yùn)行正常。上傳補(bǔ)丁包,進(jìn)行升級前檢查(如環(huán)境狀態(tài)、補(bǔ)丁包是否正確上傳、是否有異常告警等)檢查通過之后,進(jìn)行軟件補(bǔ)丁安裝,安裝之后驗(yàn)證軟件基本功能。執(zhí)行回退測試,正常回退之后需要驗(yàn)證基本功能是否正常。升級測試過程中的升級前檢查報(bào)告、升級報(bào)告與回退報(bào)告均需要作為補(bǔ)丁測試的交付件存留。
(4)自動(dòng)化連跑驗(yàn)證
補(bǔ)丁包功能、性能、升級測試完成之后,自動(dòng)化工廠測試工程師負(fù)責(zé)搭建補(bǔ)丁測試環(huán)境,下發(fā)全量軟件功能的特性腳本,完成自動(dòng)化功能驗(yàn)證。連跑完成之后,收集自動(dòng)化連跑結(jié)果,將運(yùn)行失敗的腳本推送給測試工程師進(jìn)行失敗分析,失敗分析結(jié)果有疑似軟件缺陷導(dǎo)致的腳本失敗,需要發(fā)給軟件開發(fā)工程師進(jìn)行定位,確保補(bǔ)丁包沒有引入新問題。
3.4 ? 測試回顧與驗(yàn)收
補(bǔ)丁包測試工作完成之后,測試組長組織進(jìn)行補(bǔ)丁包測試回歸與驗(yàn)收。版本經(jīng)理、開發(fā)組長、系統(tǒng)工程師、開發(fā)工程師、測試架構(gòu)師和測試工程師參與回顧與驗(yàn)收工作??偨Y(jié)補(bǔ)丁包開發(fā)測試過程中的優(yōu)缺點(diǎn)。確認(rèn)補(bǔ)丁包測試結(jié)果的準(zhǔn)確性。驗(yàn)收工作完成之后,可以正式發(fā)布補(bǔ)丁包。
4 ?補(bǔ)丁包測試過程中的幾個(gè)典型問題(Several typical problems during patches package testing)
在補(bǔ)丁包測試過程中遇到如下一些典型問題。
4.1 ? 熱補(bǔ)丁靜默升級和軟件升級工具不適配問題
測試工程師N對云化通信軟件熱補(bǔ)丁包5.19.0版本的熱補(bǔ)丁SPH203進(jìn)行靜默升級驗(yàn)證,當(dāng)軟件版本部署完成,并完成升級前的產(chǎn)品功能驗(yàn)證,打開軟件升級—補(bǔ)丁安裝工具準(zhǔn)備啟動(dòng)軟件升級時(shí),發(fā)現(xiàn)軟件升級工具頁面上不能正常勾選待升級的軟件。經(jīng)過軟件開發(fā)工程師確認(rèn),發(fā)現(xiàn)該軟件版本沒有對軟件升級—補(bǔ)丁安裝工具進(jìn)行適配處理。如果該軟件版本進(jìn)行升級,必須在軟件升級—補(bǔ)丁安裝工具上進(jìn)行規(guī)避處理。經(jīng)過規(guī)避處理之后,測試工程師順利完成補(bǔ)丁包靜默升級驗(yàn)證。
4.2 ? 媒體消息環(huán)路時(shí)延閾值指標(biāo)未上報(bào)問題
測試工程師J對云化通信軟件熱補(bǔ)丁包5.19.1版本的熱補(bǔ)丁SPH205進(jìn)行媒體消息環(huán)路時(shí)延閾值指標(biāo)測試,該問題屬于性能測試問題。通過NTE工具運(yùn)行性能測試套來模擬同時(shí)進(jìn)行多路呼叫的場景,并通過MML命令將環(huán)路時(shí)延閾值設(shè)置為250ms、500ms、1000ms及閾值不設(shè)限的場景。測試工程師在進(jìn)行測試過程中發(fā)現(xiàn)這四個(gè)場景下呼叫正常,但是均沒有任何閾值上報(bào),聯(lián)系該補(bǔ)丁問題的開發(fā)工程師定位之后,發(fā)現(xiàn)通過NTE工具模擬呼叫建立之后的媒體流使用的是默認(rèn)的RTP流,而需要統(tǒng)計(jì)的媒體流為RTCP流。發(fā)送的媒體流修改為RTCP流之后,環(huán)路時(shí)延閾值指標(biāo)可以正常上報(bào)。
4.3 ? 第三方軟件導(dǎo)致的安全漏洞問題
客戶局點(diǎn)Q對某大型硬件通信軟件冷補(bǔ)丁包V2R009C10SPC126采用綠盟掃描工具掃描,發(fā)現(xiàn)第三方軟件OpenSSL 0.9.8w存在安全漏洞。測試工程師W負(fù)責(zé)問題重現(xiàn)和處理,搭建測試環(huán)境之后,測試過程中先在產(chǎn)品的WEB頁面通過網(wǎng)頁抓包工具確認(rèn)目前使用的OpenSSL 1.0.1c版本是已經(jīng)解決安全漏洞的新版本,接下來進(jìn)行產(chǎn)品基本業(yè)務(wù)測試與性能基本場景驗(yàn)證;最后針對產(chǎn)品進(jìn)行綠盟安全掃描,并對綠盟掃描結(jié)果進(jìn)行分析,確認(rèn)軟件使用的低版本OpenSSL 0.9.8w相關(guān)漏洞問題已經(jīng)被解決。但是軟件使用高版本OpenSSL 1.0.1c之后,掃描出了新的安全漏洞,將新增漏洞反饋給開發(fā)工程師之后,開發(fā)工程師經(jīng)過排查產(chǎn)品源碼確認(rèn)該漏洞所描述的場景,軟件產(chǎn)品未使用,可以看作掃描誤報(bào)。測試工程W將該分析結(jié)論歸納到產(chǎn)品安全分析結(jié)果庫中。
5 ? 補(bǔ)丁測試案例(Case study of software patching)
以下介紹一個(gè)熱補(bǔ)丁案例,案例中只介紹軟件補(bǔ)丁測試的相關(guān)內(nèi)容。
5.1 ? 制定補(bǔ)丁計(jì)劃
某通信軟件產(chǎn)品S,SPH206補(bǔ)丁版本計(jì)劃合入10個(gè)補(bǔ)丁問題,如表1所述。
5.2 ? 補(bǔ)丁問題復(fù)現(xiàn)與補(bǔ)丁程序測試
(1)補(bǔ)丁問題復(fù)現(xiàn)
補(bǔ)丁開發(fā)工程師向測試工程師講解該補(bǔ)丁問題觸發(fā)的背景、問題原因。測試工程師在測試環(huán)境上分別完成10個(gè)補(bǔ)丁問題的復(fù)現(xiàn),問題復(fù)現(xiàn)完成之后與每個(gè)問題的開發(fā)工程師確認(rèn)補(bǔ)丁問題,補(bǔ)丁問題成功復(fù)現(xiàn)之后,將問題復(fù)現(xiàn)場景如實(shí)記錄到測試交付件中。
(2)補(bǔ)丁程序測試
在測試環(huán)境安裝基線軟件版本之后加載SPH206補(bǔ)丁,執(zhí)行測試用例,如果測試結(jié)果與用例預(yù)期相符,則表示補(bǔ)丁問題已經(jīng)被解決;如果測試結(jié)果與用例預(yù)期不相符,則需要聯(lián)系補(bǔ)丁問題對應(yīng)開發(fā)工程師定位處理。并將補(bǔ)丁測試過程記錄下來,作為補(bǔ)丁測試的交付件。
5.3 ? 補(bǔ)丁包測試
(1)制作補(bǔ)丁包
將10個(gè)補(bǔ)丁程序合入補(bǔ)丁包,在模擬的軟件環(huán)境中安裝軟件版本,在線運(yùn)行。加載補(bǔ)丁包,開始補(bǔ)丁包測試。
(2)性能測試
軟件產(chǎn)品的性能測試使用華為自研的性能測試工具NTE,性能自動(dòng)化腳本連跑過程中spider工具會(huì)自動(dòng)調(diào)用NTE工具執(zhí)行自動(dòng)化性能測試,并將統(tǒng)計(jì)指定模塊的CPU占用率、資源占用,以及丟包率統(tǒng)計(jì)結(jié)果自動(dòng)寫入excel文件。
性能自動(dòng)化腳本連跑之后,需要分析CPU占用率、資源占用,以及丟包率是否符合要求;是否出現(xiàn)模塊復(fù)位,以及不應(yīng)該出現(xiàn)的告警等。一旦有異常告警、CPU占用率、資源占用,以及丟包率不正確的情況,需要及時(shí)聯(lián)系開發(fā)工程師進(jìn)行定位處理。
(3)升級、回退與配套測試
補(bǔ)丁配套測試是指在升級前、升級后,以及回退之后完成基本功能測試。
補(bǔ)丁升級方式分為補(bǔ)丁包升級與靜默升級。補(bǔ)丁包升級方式是在客戶局點(diǎn)的軟件版本上通過升級工具加載補(bǔ)丁包實(shí)現(xiàn)補(bǔ)丁版本升級。靜默升級方式是將補(bǔ)丁包與待升級的軟件版本包一起上傳之后,通過升級工具完成軟件版本補(bǔ)丁包安裝升級。
升級驗(yàn)證,完成升級之后,查看環(huán)境上是否有新增的告警信息,完成升級之后的基本業(yè)務(wù)驗(yàn)證?;赝蓑?yàn)證,完成補(bǔ)丁回退,也要完成基本業(yè)務(wù)驗(yàn)證。
(4)自動(dòng)化腳本連跑測試
通過自動(dòng)化功能腳本連跑來完成對安裝SPH206補(bǔ)丁包的軟件版本進(jìn)行功能驗(yàn)證。自動(dòng)化工廠的測試工程師搭建測試環(huán)境、自動(dòng)化腳本連跑測試。
工作實(shí)踐表明軟件做好補(bǔ)丁測試工作,對于保證軟件補(bǔ)丁質(zhì)量是非常重要的。
6 ? 結(jié)論(Conclusion)
軟件補(bǔ)丁的開發(fā)與測試是軟件維護(hù)的重要組成部分,在軟件維護(hù)中占有很重要的一席之地。工作實(shí)踐表明軟件補(bǔ)丁測試是保證軟件補(bǔ)丁質(zhì)量的重要方法。軟件補(bǔ)丁的測試過程是不斷發(fā)現(xiàn)和解決客戶局點(diǎn)各種問題的過程,不斷擴(kuò)展功能和提升軟件性能的過程。做好軟件補(bǔ)丁測試工作不僅有助于的保證與提升軟件補(bǔ)丁版本的質(zhì)量,同時(shí)也為開發(fā)軟件產(chǎn)品新版本提供了良好的基礎(chǔ)。
參考文獻(xiàn) (References)
[1] Qi Z,Long F,Achour S,Rinard M.An analysis of patch plausibility and correctness for generate-and-Validate patch generation systems[C].In:Proc. of the 2015 Int' l Symp. on Software Testing and Analysis.ACM Press,2015:24-36.
[2] Long F,Rinard M.An analysis of the search spaces for generates and validates patch generation systems[C].In:Proc. of the IEEE/ACM 38th Int' l Conf. on Software Engineering(ICSE).IEEE,2016:702-713.
[3] Tan SH,Yi J,MechtaeV S,Roychoudhury A.Codenaws:A programming competition benchmark for evaluating automated program repair tools[C].In:Proc. of the 39th Int' l Conf. on Software Engineering Companion.IEEE,2017:180-182.
[4] 李斌,賀也平,馬恒太.程序自動(dòng)修復(fù):關(guān)鍵問題及技術(shù)[J].軟件學(xué)報(bào),2019,30(2):244-265.
[5] 姜文,劉立康.基于VXWORKS系統(tǒng)的熱補(bǔ)丁技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2017,27(3):18-22.
[6] 姜文,劉立康.Oracle數(shù)據(jù)庫補(bǔ)丁問題研究[J].電子設(shè)計(jì)工程,2014,22(20):10-13.
[7] 姜文,劉立康.應(yīng)用軟件維護(hù)中的補(bǔ)丁開發(fā)與管理[J].計(jì)算機(jī)技術(shù)與發(fā)展,2015,25(11):11-16.
[8] 姜文,劉立康.軟件產(chǎn)品維護(hù)階段的缺陷問題管理[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016,26(12):35-44.
作者簡介:
姜 ?文(1986-),女,碩士,高級工程師.研究領(lǐng)域:圖像處理,軟件工程和網(wǎng)絡(luò)通信.
劉立康(1962-),男,碩士,副教授.研究領(lǐng)域:數(shù)字通信,圖像處理和軟件工程.