侯高雷+李志鵬+孫強(qiáng)+李志華
摘 要: 為滿足電能表系列產(chǎn)品的測試需要,減少功能測試軟件的開發(fā)周期,提升公司產(chǎn)品功能測試能力,特提出電能表功能測試軟件開發(fā)平臺的設(shè)計(jì)概念。本設(shè)計(jì)旨在建立一套統(tǒng)一的功能測試軟件開發(fā)平臺,通過分層、模塊化、高度抽象的設(shè)計(jì)理念,逐步將介質(zhì)庫、協(xié)議庫、功能庫、語言庫、界面庫等成熟技術(shù)集成到該平臺上,并通過預(yù)留接口的方式保留對平臺的二次開發(fā)功能,從而實(shí)現(xiàn)測試軟件的快速設(shè)計(jì)能力,保證功能測試的開發(fā)需求。
關(guān)鍵詞: 功能測試; 測試軟件開發(fā)平臺; 智能電能表; 開發(fā)平臺
中圖分類號: TN964?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2014)04?0090?03
Design for development platform of function testing system
HOU Gao?Lei, LI Zhi?Peng, SUN?Qiang, LI Zhi?Hua
(Xuji Metering Limited Company, Xuchang 461000, China)
Abstract: In order to meet the testing needs of electrical energy meter series products, reduce the development cycle of functional testing software and improve the functional testing capability of the product, the design concept of functional testing software development platform is proposed. This design aims to establish a development platform for unified functional testing software, and gradually integrates the media library, a protocol library, function library, interface libraryand other mature technologies into the platform according to the hierarchical, modular and high abstract design concept. In addition, the secondary development function of the platform is retained by the reserved interface, so as to realize the rapid design of the testing software and satisfy the development requirement of function testing.
Keywords: function testing;testing software development platform;intelligent electric energy meter;development platform
0 引 言
伴隨堅(jiān)強(qiáng)智能電網(wǎng)的不斷發(fā)展[1],電能計(jì)量及采集產(chǎn)品的功能需求也在不斷增加,產(chǎn)品的可靠性要求也在不斷提高,給產(chǎn)品設(shè)計(jì)及測試工作帶來了極大的挑戰(zhàn)。目前國內(nèi)電能計(jì)量行業(yè)產(chǎn)品的可靠性設(shè)計(jì)[2]和管理工作剛剛起步,因此產(chǎn)品的質(zhì)量保證工作大部分就落到了測試環(huán)節(jié),即研發(fā)測試和生產(chǎn)測試,極大地增加了測試部門的工作壓力和工作強(qiáng)度,同時對測試人員的需求也大大提高。為了改變這一現(xiàn)象,河南許繼儀表有限公司一直致力于自動化測試裝置和測試系統(tǒng)的研發(fā)設(shè)計(jì)工作,在保證測試質(zhì)量的同時,逐步減少對測試人員的依賴。功能測試系統(tǒng)開發(fā)平臺正是為了解決功能測試軟件開發(fā)過程周期長、效率低、質(zhì)量差、人員依賴度高的問題而提出來的。該平臺通過分層、模塊化、高度抽象的設(shè)計(jì)理念[3],逐步將介質(zhì)庫、協(xié)議庫、功能庫、語言庫、界面庫等成熟技術(shù)集成在一起,并通過預(yù)留接口的方式保留對平臺的二次開發(fā)功能,從而實(shí)現(xiàn)測試軟件的快速設(shè)計(jì)能力。
1 開發(fā)平臺系統(tǒng)分析
1.1 需求分析
為了更好地滿足各種功能測試系統(tǒng)軟件開發(fā)的需要,通過對近年來各種產(chǎn)品功能測試過程中的功能測試需求、測試人員的使用要求、測試管理要求、測試軟件的使用范圍、軟件應(yīng)用經(jīng)驗(yàn)、軟件功能開發(fā)經(jīng)驗(yàn)等信息進(jìn)行收集整理,經(jīng)過長時間地分析討論總結(jié),并最終形成了初步的需求方案。首先開發(fā)平臺必須是一個大而全的函數(shù)庫,必須能滿足常用的開發(fā)功能函數(shù)級的需要,如支持多種通信方式,多種通信協(xié)議,多種語言,多種文件操作,多種數(shù)據(jù)庫操作,多線程操作,線程池管理[4]等,其次開發(fā)平臺必須是一個應(yīng)用功能集合,要能支持常用的功能模塊,如報表打印、數(shù)據(jù)導(dǎo)入、數(shù)據(jù)導(dǎo)出、用戶權(quán)限管理、系統(tǒng)日志管理、系統(tǒng)自動升級等;最后開發(fā)平臺還必須是一個開發(fā)工具包[5],能被其他人很方便地利用起來進(jìn)行二次開發(fā)工作。
1.2 平臺邏輯框圖
基于以上需求分析,形成了開發(fā)平臺的邏輯框架圖,如圖1所示,下面針對開發(fā)平臺的邏輯架構(gòu)框圖進(jìn)行簡要說明:
(1) 應(yīng)用模塊層:該層主要提供了成熟的基于用戶常用的功能模塊集合,主要包括系統(tǒng)管理,用戶權(quán)限管理,數(shù)據(jù)報表管理,功能擴(kuò)展管理等成熟的功能應(yīng)用,為測試系統(tǒng)應(yīng)用級功能的二次開發(fā)提供應(yīng)用基礎(chǔ);
(2) 業(yè)務(wù)驅(qū)動層:業(yè)務(wù)驅(qū)動顧名思義就是驅(qū)動業(yè)務(wù)功能實(shí)現(xiàn),該層和應(yīng)用層不同的是他集成的對象是功能實(shí)現(xiàn)函數(shù)級集合,而應(yīng)用層主要是功能實(shí)現(xiàn)的應(yīng)用模塊集合,他主要為二次開發(fā)提供成熟穩(wěn)定的功能實(shí)現(xiàn)函數(shù);
(3) 介質(zhì)驅(qū)動層:介質(zhì)驅(qū)動層封裝了驅(qū)動物理介質(zhì)需要的底層驅(qū)動庫,保證物理介質(zhì)能正常的工作;
(4) 介質(zhì)層[6]:介質(zhì)層主要包含本平臺封裝的各種介質(zhì),主要包括存儲介質(zhì)和通信介質(zhì),該層封裝介質(zhì)的多少直接決定了平臺對通信、存儲等功能實(shí)現(xiàn)的支持能力。
圖1 系統(tǒng)邏輯框圖
1.3 主要業(yè)務(wù)功能模塊
由于該開發(fā)平臺主要是為了減少測試軟件二次開發(fā)的時間周期的,因此他的主要亮點(diǎn)就在于二次開發(fā)人員能在該平臺基礎(chǔ)上,利用應(yīng)用模塊層成熟的應(yīng)用模塊功能和業(yè)務(wù)驅(qū)動層量多而成熟的功能函數(shù)經(jīng)過各種自由組合后能快速開發(fā)出各種滿足業(yè)務(wù)需要的系統(tǒng)軟件來,因此要想利用好該平臺,就必須對應(yīng)用模塊層和業(yè)務(wù)驅(qū)動層進(jìn)行詳細(xì)的學(xué)習(xí)和了解。下面就針對這兩個層主要的業(yè)務(wù)模塊進(jìn)行簡單的介紹。
(1) 系統(tǒng)管理:該功能主要是常用的系統(tǒng)管理功能模塊,主要功能包括系統(tǒng)權(quán)限管理、系統(tǒng)數(shù)據(jù)庫配置管理、系統(tǒng)通信配置管理、系統(tǒng)日志操作管理等。
(2) 檔案管理:該功能主要是公司產(chǎn)品測試時需要的檔案管理和維護(hù)功能,主要功能包括測試項(xiàng)目檔案管理、被測產(chǎn)品檔案管理、測試設(shè)備檔案管理等。
(3) 報表管理:該功能主要是常用的報表管理模塊,主要功能包括測試報告管理、測試數(shù)據(jù)管理、測試記錄管理等。
(4) 數(shù)據(jù)接口:該功能主要是數(shù)據(jù)導(dǎo)入/導(dǎo)出功能管理模塊,主要功能包括數(shù)據(jù)導(dǎo)入管理、數(shù)據(jù)導(dǎo)出管理、數(shù)據(jù)實(shí)時交互接口管理等。
(5) 升級管理:該功能主要是對應(yīng)用程序的自動升級功能管理模塊,主要功能包括軟件更新配置管理、更新服務(wù)管理等。
(6) 擴(kuò)展管理:該功能主要是為了以后擴(kuò)展該平臺功能實(shí)現(xiàn)模塊使用的,主要功能包括功能模塊導(dǎo)入管理,功能模塊維護(hù)管理等。
(7) 數(shù)據(jù)庫功能操作庫:為了使二次開發(fā)人員在開發(fā)測試系統(tǒng)的時候能靈活方便地進(jìn)行數(shù)據(jù)庫操作設(shè)計(jì),故專門制作了數(shù)據(jù)庫功能操作庫,他主要是將常用的可靠的數(shù)據(jù)庫操作函數(shù)集合整理在一起,方便開發(fā)人員靈活使用。
(8) 語言庫功能操作庫:該功能主要是將操作語言類的功能函數(shù)結(jié)合到一起,方便開發(fā)人員在設(shè)計(jì)支持多國語言測試系統(tǒng)時直接調(diào)用。目前該語言庫已經(jīng)封裝了全球最常用的語言包,能支持全球絕大部分語言應(yīng)用。
(9) 規(guī)約庫功能操作庫:該功能主要是將公司所有使用到的通信規(guī)約操作函數(shù)進(jìn)行了封裝,方便開發(fā)人員在兼容各種通信規(guī)約時直接使用,提高模塊的重用性,減少了系統(tǒng)開發(fā)周期。
(10) 通信功能操作庫:該功能主要是將公司所有使用到的通信類型的操作函數(shù)進(jìn)行了封裝,比如TCP通信操作、串口操作、UDP操作、FTP操作等,方便開發(fā)人員在使用各種通信方式操作時可以直接調(diào)用該類函數(shù),提高開發(fā)效率和質(zhì)量。
1.4 平臺開發(fā)環(huán)境
為了使開發(fā)平臺具有高效、易用及面向組件的特點(diǎn),同時結(jié)合公司測試軟件開發(fā)的實(shí)際情況,最終將C#最為開發(fā)平臺的編程語言。C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時去掉了一些它們的復(fù)雜特性(例如沒有宏以及不允許多重繼承)。C#綜合了VB簡單的可視化操作和C++的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言[7]。
2 關(guān)鍵技術(shù)及實(shí)現(xiàn)
2.1 插件[8]管理技術(shù)
為了使開發(fā)平臺中功能模塊部分能夠靈活地進(jìn)行功能擴(kuò)展,而不需要對平臺主程序進(jìn)行重新編譯和發(fā)布,因此在開發(fā)平臺上就專門應(yīng)用了插件管理技術(shù)。我們將常用的成熟的功能模塊(如用戶權(quán)限管理模塊、數(shù)據(jù)報表模塊等)按照約定的協(xié)議接口做成動態(tài)庫的形式封裝起來,然后通過將這些動態(tài)庫調(diào)用到程序框架中來完成功能模塊的加載,這樣就完成了功能模塊的靈活集成,從而保證平臺功能集合的可管理性和可擴(kuò)展性。
2.2 非可視化功能管理技術(shù)
平臺中集成了很多成熟的功能模塊,但是由于這些功能模塊有的具有可視化界面,有點(diǎn)沒有可視化界面,沒有統(tǒng)一的格式,因此如何將這些功能模塊靈活的管理起來將是該平臺急需解決的一個問題。Windows操作系統(tǒng)的消息處理機(jī)制[9]可以解決系統(tǒng)級消息或者用戶自定義的消息處理,但是對于無窗體句柄[10]的非可視化功能則無法通過消息處理來進(jìn)行管理,因此為了解決這個問題,平臺在功能設(shè)計(jì)的時候,首先將各種非可視化功能集合到一起,然后通過對這個功能增加設(shè)置隱藏窗口的方式,使這些功能同時都具備了窗體句柄,從而通過消息處理的機(jī)制來完成對這些非可視化功能模塊的管理。
2.3 消息處理機(jī)制
由于該平臺封裝了較多的功能和函數(shù)集,為了保證平臺在二次開發(fā)過程中能更好地被開發(fā)者統(tǒng)一管理起來,在平臺框架設(shè)計(jì)過程中,就集成了便于開發(fā)者進(jìn)行協(xié)調(diào)管理的消息處理機(jī)制,該消息機(jī)制在Windows消息處理機(jī)制的基礎(chǔ)上進(jìn)行了擴(kuò)展,將自定義消息處理模式通過平臺消息配置文件來對平臺內(nèi)部自定義消息進(jìn)行管理和維護(hù),保證他們在平臺開發(fā)應(yīng)用過程中能對各種集成功能進(jìn)行準(zhǔn)確的管理和靈活的操控。
3 結(jié) 論
功能測試系統(tǒng)開發(fā)平臺自開發(fā)成功之后已陸續(xù)應(yīng)用于公司多款功能自動化測試系統(tǒng)的應(yīng)用開發(fā)中,在開發(fā)過程中節(jié)省了大量的人員和開發(fā)時間,極大提高了開發(fā)效率,目前這些測試系統(tǒng)運(yùn)行穩(wěn)定,且仍在近期送樣測試過程中發(fā)揮著重大作用。隨著行業(yè)技術(shù)的發(fā)展,一些新的需求也在不斷增加,從標(biāo)準(zhǔn)、規(guī)約、實(shí)現(xiàn)手段等方面都在不要增加新的需求,因此開發(fā)平臺仍需要在現(xiàn)在的基礎(chǔ)上通過不斷的優(yōu)化和完善,才能更好地服務(wù)于公司產(chǎn)品的測試工作。
參考文獻(xiàn)
[1] 曾平良,許曉慧.堅(jiān)強(qiáng)智能電網(wǎng)的規(guī)劃與發(fā)展[J].國家電網(wǎng),2013(1):82?85.
[2] 湯勝林.航天電子產(chǎn)品可靠性設(shè)計(jì)[J].中國科技博覽,2011(7):116?117.
[3] 宋三明,姚鴻勛.Potts網(wǎng)絡(luò)的模塊化Latching動力模型[J].智能計(jì)算機(jī)與應(yīng)用,2013(4):42?46.
[4] 程瀾,羅建.基于優(yōu)先級區(qū)間連接策略的搶占式線程池模型[J].航空計(jì)算技術(shù),2013(1):131?134.
[5] 胡龍躍,史崢,劉得金,等.高效率集成電路測試芯片設(shè)計(jì)方法 [J].計(jì)算機(jī)工程及應(yīng)用,2013(11):54?57.
[6] 王靖歐.用多樣化的通信介質(zhì)傳輸水電廠SCADA系統(tǒng)信息[J].水電能源科學(xué),2006(4):89?91.
[7] Microsoft. C# [EB/OL]. [2012?12?29]. http://wenku.baidu.com/link.
[8] 李哲青,賀倩.異構(gòu)數(shù)據(jù)集成系統(tǒng)中插件技術(shù)的應(yīng)用[J].信息系統(tǒng)工程,2013(8):90?92.
[9] 陸平,錢煜明,朱科支.一種分布式復(fù)雜消息處理引擎的設(shè)計(jì)與實(shí)現(xiàn)[J].中興通迅技術(shù),2013(4):58?62.
[10] Liuke_blue. Ring3下通過查詢GDI句柄表來檢測進(jìn)程[J].黑客防線,2010(7):274?276.
(3) 介質(zhì)驅(qū)動層:介質(zhì)驅(qū)動層封裝了驅(qū)動物理介質(zhì)需要的底層驅(qū)動庫,保證物理介質(zhì)能正常的工作;
(4) 介質(zhì)層[6]:介質(zhì)層主要包含本平臺封裝的各種介質(zhì),主要包括存儲介質(zhì)和通信介質(zhì),該層封裝介質(zhì)的多少直接決定了平臺對通信、存儲等功能實(shí)現(xiàn)的支持能力。
圖1 系統(tǒng)邏輯框圖
1.3 主要業(yè)務(wù)功能模塊
由于該開發(fā)平臺主要是為了減少測試軟件二次開發(fā)的時間周期的,因此他的主要亮點(diǎn)就在于二次開發(fā)人員能在該平臺基礎(chǔ)上,利用應(yīng)用模塊層成熟的應(yīng)用模塊功能和業(yè)務(wù)驅(qū)動層量多而成熟的功能函數(shù)經(jīng)過各種自由組合后能快速開發(fā)出各種滿足業(yè)務(wù)需要的系統(tǒng)軟件來,因此要想利用好該平臺,就必須對應(yīng)用模塊層和業(yè)務(wù)驅(qū)動層進(jìn)行詳細(xì)的學(xué)習(xí)和了解。下面就針對這兩個層主要的業(yè)務(wù)模塊進(jìn)行簡單的介紹。
(1) 系統(tǒng)管理:該功能主要是常用的系統(tǒng)管理功能模塊,主要功能包括系統(tǒng)權(quán)限管理、系統(tǒng)數(shù)據(jù)庫配置管理、系統(tǒng)通信配置管理、系統(tǒng)日志操作管理等。
(2) 檔案管理:該功能主要是公司產(chǎn)品測試時需要的檔案管理和維護(hù)功能,主要功能包括測試項(xiàng)目檔案管理、被測產(chǎn)品檔案管理、測試設(shè)備檔案管理等。
(3) 報表管理:該功能主要是常用的報表管理模塊,主要功能包括測試報告管理、測試數(shù)據(jù)管理、測試記錄管理等。
(4) 數(shù)據(jù)接口:該功能主要是數(shù)據(jù)導(dǎo)入/導(dǎo)出功能管理模塊,主要功能包括數(shù)據(jù)導(dǎo)入管理、數(shù)據(jù)導(dǎo)出管理、數(shù)據(jù)實(shí)時交互接口管理等。
(5) 升級管理:該功能主要是對應(yīng)用程序的自動升級功能管理模塊,主要功能包括軟件更新配置管理、更新服務(wù)管理等。
(6) 擴(kuò)展管理:該功能主要是為了以后擴(kuò)展該平臺功能實(shí)現(xiàn)模塊使用的,主要功能包括功能模塊導(dǎo)入管理,功能模塊維護(hù)管理等。
(7) 數(shù)據(jù)庫功能操作庫:為了使二次開發(fā)人員在開發(fā)測試系統(tǒng)的時候能靈活方便地進(jìn)行數(shù)據(jù)庫操作設(shè)計(jì),故專門制作了數(shù)據(jù)庫功能操作庫,他主要是將常用的可靠的數(shù)據(jù)庫操作函數(shù)集合整理在一起,方便開發(fā)人員靈活使用。
(8) 語言庫功能操作庫:該功能主要是將操作語言類的功能函數(shù)結(jié)合到一起,方便開發(fā)人員在設(shè)計(jì)支持多國語言測試系統(tǒng)時直接調(diào)用。目前該語言庫已經(jīng)封裝了全球最常用的語言包,能支持全球絕大部分語言應(yīng)用。
(9) 規(guī)約庫功能操作庫:該功能主要是將公司所有使用到的通信規(guī)約操作函數(shù)進(jìn)行了封裝,方便開發(fā)人員在兼容各種通信規(guī)約時直接使用,提高模塊的重用性,減少了系統(tǒng)開發(fā)周期。
(10) 通信功能操作庫:該功能主要是將公司所有使用到的通信類型的操作函數(shù)進(jìn)行了封裝,比如TCP通信操作、串口操作、UDP操作、FTP操作等,方便開發(fā)人員在使用各種通信方式操作時可以直接調(diào)用該類函數(shù),提高開發(fā)效率和質(zhì)量。
1.4 平臺開發(fā)環(huán)境
為了使開發(fā)平臺具有高效、易用及面向組件的特點(diǎn),同時結(jié)合公司測試軟件開發(fā)的實(shí)際情況,最終將C#最為開發(fā)平臺的編程語言。C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時去掉了一些它們的復(fù)雜特性(例如沒有宏以及不允許多重繼承)。C#綜合了VB簡單的可視化操作和C++的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言[7]。
2 關(guān)鍵技術(shù)及實(shí)現(xiàn)
2.1 插件[8]管理技術(shù)
為了使開發(fā)平臺中功能模塊部分能夠靈活地進(jìn)行功能擴(kuò)展,而不需要對平臺主程序進(jìn)行重新編譯和發(fā)布,因此在開發(fā)平臺上就專門應(yīng)用了插件管理技術(shù)。我們將常用的成熟的功能模塊(如用戶權(quán)限管理模塊、數(shù)據(jù)報表模塊等)按照約定的協(xié)議接口做成動態(tài)庫的形式封裝起來,然后通過將這些動態(tài)庫調(diào)用到程序框架中來完成功能模塊的加載,這樣就完成了功能模塊的靈活集成,從而保證平臺功能集合的可管理性和可擴(kuò)展性。
2.2 非可視化功能管理技術(shù)
平臺中集成了很多成熟的功能模塊,但是由于這些功能模塊有的具有可視化界面,有點(diǎn)沒有可視化界面,沒有統(tǒng)一的格式,因此如何將這些功能模塊靈活的管理起來將是該平臺急需解決的一個問題。Windows操作系統(tǒng)的消息處理機(jī)制[9]可以解決系統(tǒng)級消息或者用戶自定義的消息處理,但是對于無窗體句柄[10]的非可視化功能則無法通過消息處理來進(jìn)行管理,因此為了解決這個問題,平臺在功能設(shè)計(jì)的時候,首先將各種非可視化功能集合到一起,然后通過對這個功能增加設(shè)置隱藏窗口的方式,使這些功能同時都具備了窗體句柄,從而通過消息處理的機(jī)制來完成對這些非可視化功能模塊的管理。
2.3 消息處理機(jī)制
由于該平臺封裝了較多的功能和函數(shù)集,為了保證平臺在二次開發(fā)過程中能更好地被開發(fā)者統(tǒng)一管理起來,在平臺框架設(shè)計(jì)過程中,就集成了便于開發(fā)者進(jìn)行協(xié)調(diào)管理的消息處理機(jī)制,該消息機(jī)制在Windows消息處理機(jī)制的基礎(chǔ)上進(jìn)行了擴(kuò)展,將自定義消息處理模式通過平臺消息配置文件來對平臺內(nèi)部自定義消息進(jìn)行管理和維護(hù),保證他們在平臺開發(fā)應(yīng)用過程中能對各種集成功能進(jìn)行準(zhǔn)確的管理和靈活的操控。
3 結(jié) 論
功能測試系統(tǒng)開發(fā)平臺自開發(fā)成功之后已陸續(xù)應(yīng)用于公司多款功能自動化測試系統(tǒng)的應(yīng)用開發(fā)中,在開發(fā)過程中節(jié)省了大量的人員和開發(fā)時間,極大提高了開發(fā)效率,目前這些測試系統(tǒng)運(yùn)行穩(wěn)定,且仍在近期送樣測試過程中發(fā)揮著重大作用。隨著行業(yè)技術(shù)的發(fā)展,一些新的需求也在不斷增加,從標(biāo)準(zhǔn)、規(guī)約、實(shí)現(xiàn)手段等方面都在不要增加新的需求,因此開發(fā)平臺仍需要在現(xiàn)在的基礎(chǔ)上通過不斷的優(yōu)化和完善,才能更好地服務(wù)于公司產(chǎn)品的測試工作。
參考文獻(xiàn)
[1] 曾平良,許曉慧.堅(jiān)強(qiáng)智能電網(wǎng)的規(guī)劃與發(fā)展[J].國家電網(wǎng),2013(1):82?85.
[2] 湯勝林.航天電子產(chǎn)品可靠性設(shè)計(jì)[J].中國科技博覽,2011(7):116?117.
[3] 宋三明,姚鴻勛.Potts網(wǎng)絡(luò)的模塊化Latching動力模型[J].智能計(jì)算機(jī)與應(yīng)用,2013(4):42?46.
[4] 程瀾,羅建.基于優(yōu)先級區(qū)間連接策略的搶占式線程池模型[J].航空計(jì)算技術(shù),2013(1):131?134.
[5] 胡龍躍,史崢,劉得金,等.高效率集成電路測試芯片設(shè)計(jì)方法 [J].計(jì)算機(jī)工程及應(yīng)用,2013(11):54?57.
[6] 王靖歐.用多樣化的通信介質(zhì)傳輸水電廠SCADA系統(tǒng)信息[J].水電能源科學(xué),2006(4):89?91.
[7] Microsoft. C# [EB/OL]. [2012?12?29]. http://wenku.baidu.com/link.
[8] 李哲青,賀倩.異構(gòu)數(shù)據(jù)集成系統(tǒng)中插件技術(shù)的應(yīng)用[J].信息系統(tǒng)工程,2013(8):90?92.
[9] 陸平,錢煜明,朱科支.一種分布式復(fù)雜消息處理引擎的設(shè)計(jì)與實(shí)現(xiàn)[J].中興通迅技術(shù),2013(4):58?62.
[10] Liuke_blue. Ring3下通過查詢GDI句柄表來檢測進(jìn)程[J].黑客防線,2010(7):274?276.
(3) 介質(zhì)驅(qū)動層:介質(zhì)驅(qū)動層封裝了驅(qū)動物理介質(zhì)需要的底層驅(qū)動庫,保證物理介質(zhì)能正常的工作;
(4) 介質(zhì)層[6]:介質(zhì)層主要包含本平臺封裝的各種介質(zhì),主要包括存儲介質(zhì)和通信介質(zhì),該層封裝介質(zhì)的多少直接決定了平臺對通信、存儲等功能實(shí)現(xiàn)的支持能力。
圖1 系統(tǒng)邏輯框圖
1.3 主要業(yè)務(wù)功能模塊
由于該開發(fā)平臺主要是為了減少測試軟件二次開發(fā)的時間周期的,因此他的主要亮點(diǎn)就在于二次開發(fā)人員能在該平臺基礎(chǔ)上,利用應(yīng)用模塊層成熟的應(yīng)用模塊功能和業(yè)務(wù)驅(qū)動層量多而成熟的功能函數(shù)經(jīng)過各種自由組合后能快速開發(fā)出各種滿足業(yè)務(wù)需要的系統(tǒng)軟件來,因此要想利用好該平臺,就必須對應(yīng)用模塊層和業(yè)務(wù)驅(qū)動層進(jìn)行詳細(xì)的學(xué)習(xí)和了解。下面就針對這兩個層主要的業(yè)務(wù)模塊進(jìn)行簡單的介紹。
(1) 系統(tǒng)管理:該功能主要是常用的系統(tǒng)管理功能模塊,主要功能包括系統(tǒng)權(quán)限管理、系統(tǒng)數(shù)據(jù)庫配置管理、系統(tǒng)通信配置管理、系統(tǒng)日志操作管理等。
(2) 檔案管理:該功能主要是公司產(chǎn)品測試時需要的檔案管理和維護(hù)功能,主要功能包括測試項(xiàng)目檔案管理、被測產(chǎn)品檔案管理、測試設(shè)備檔案管理等。
(3) 報表管理:該功能主要是常用的報表管理模塊,主要功能包括測試報告管理、測試數(shù)據(jù)管理、測試記錄管理等。
(4) 數(shù)據(jù)接口:該功能主要是數(shù)據(jù)導(dǎo)入/導(dǎo)出功能管理模塊,主要功能包括數(shù)據(jù)導(dǎo)入管理、數(shù)據(jù)導(dǎo)出管理、數(shù)據(jù)實(shí)時交互接口管理等。
(5) 升級管理:該功能主要是對應(yīng)用程序的自動升級功能管理模塊,主要功能包括軟件更新配置管理、更新服務(wù)管理等。
(6) 擴(kuò)展管理:該功能主要是為了以后擴(kuò)展該平臺功能實(shí)現(xiàn)模塊使用的,主要功能包括功能模塊導(dǎo)入管理,功能模塊維護(hù)管理等。
(7) 數(shù)據(jù)庫功能操作庫:為了使二次開發(fā)人員在開發(fā)測試系統(tǒng)的時候能靈活方便地進(jìn)行數(shù)據(jù)庫操作設(shè)計(jì),故專門制作了數(shù)據(jù)庫功能操作庫,他主要是將常用的可靠的數(shù)據(jù)庫操作函數(shù)集合整理在一起,方便開發(fā)人員靈活使用。
(8) 語言庫功能操作庫:該功能主要是將操作語言類的功能函數(shù)結(jié)合到一起,方便開發(fā)人員在設(shè)計(jì)支持多國語言測試系統(tǒng)時直接調(diào)用。目前該語言庫已經(jīng)封裝了全球最常用的語言包,能支持全球絕大部分語言應(yīng)用。
(9) 規(guī)約庫功能操作庫:該功能主要是將公司所有使用到的通信規(guī)約操作函數(shù)進(jìn)行了封裝,方便開發(fā)人員在兼容各種通信規(guī)約時直接使用,提高模塊的重用性,減少了系統(tǒng)開發(fā)周期。
(10) 通信功能操作庫:該功能主要是將公司所有使用到的通信類型的操作函數(shù)進(jìn)行了封裝,比如TCP通信操作、串口操作、UDP操作、FTP操作等,方便開發(fā)人員在使用各種通信方式操作時可以直接調(diào)用該類函數(shù),提高開發(fā)效率和質(zhì)量。
1.4 平臺開發(fā)環(huán)境
為了使開發(fā)平臺具有高效、易用及面向組件的特點(diǎn),同時結(jié)合公司測試軟件開發(fā)的實(shí)際情況,最終將C#最為開發(fā)平臺的編程語言。C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時去掉了一些它們的復(fù)雜特性(例如沒有宏以及不允許多重繼承)。C#綜合了VB簡單的可視化操作和C++的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言[7]。
2 關(guān)鍵技術(shù)及實(shí)現(xiàn)
2.1 插件[8]管理技術(shù)
為了使開發(fā)平臺中功能模塊部分能夠靈活地進(jìn)行功能擴(kuò)展,而不需要對平臺主程序進(jìn)行重新編譯和發(fā)布,因此在開發(fā)平臺上就專門應(yīng)用了插件管理技術(shù)。我們將常用的成熟的功能模塊(如用戶權(quán)限管理模塊、數(shù)據(jù)報表模塊等)按照約定的協(xié)議接口做成動態(tài)庫的形式封裝起來,然后通過將這些動態(tài)庫調(diào)用到程序框架中來完成功能模塊的加載,這樣就完成了功能模塊的靈活集成,從而保證平臺功能集合的可管理性和可擴(kuò)展性。
2.2 非可視化功能管理技術(shù)
平臺中集成了很多成熟的功能模塊,但是由于這些功能模塊有的具有可視化界面,有點(diǎn)沒有可視化界面,沒有統(tǒng)一的格式,因此如何將這些功能模塊靈活的管理起來將是該平臺急需解決的一個問題。Windows操作系統(tǒng)的消息處理機(jī)制[9]可以解決系統(tǒng)級消息或者用戶自定義的消息處理,但是對于無窗體句柄[10]的非可視化功能則無法通過消息處理來進(jìn)行管理,因此為了解決這個問題,平臺在功能設(shè)計(jì)的時候,首先將各種非可視化功能集合到一起,然后通過對這個功能增加設(shè)置隱藏窗口的方式,使這些功能同時都具備了窗體句柄,從而通過消息處理的機(jī)制來完成對這些非可視化功能模塊的管理。
2.3 消息處理機(jī)制
由于該平臺封裝了較多的功能和函數(shù)集,為了保證平臺在二次開發(fā)過程中能更好地被開發(fā)者統(tǒng)一管理起來,在平臺框架設(shè)計(jì)過程中,就集成了便于開發(fā)者進(jìn)行協(xié)調(diào)管理的消息處理機(jī)制,該消息機(jī)制在Windows消息處理機(jī)制的基礎(chǔ)上進(jìn)行了擴(kuò)展,將自定義消息處理模式通過平臺消息配置文件來對平臺內(nèi)部自定義消息進(jìn)行管理和維護(hù),保證他們在平臺開發(fā)應(yīng)用過程中能對各種集成功能進(jìn)行準(zhǔn)確的管理和靈活的操控。
3 結(jié) 論
功能測試系統(tǒng)開發(fā)平臺自開發(fā)成功之后已陸續(xù)應(yīng)用于公司多款功能自動化測試系統(tǒng)的應(yīng)用開發(fā)中,在開發(fā)過程中節(jié)省了大量的人員和開發(fā)時間,極大提高了開發(fā)效率,目前這些測試系統(tǒng)運(yùn)行穩(wěn)定,且仍在近期送樣測試過程中發(fā)揮著重大作用。隨著行業(yè)技術(shù)的發(fā)展,一些新的需求也在不斷增加,從標(biāo)準(zhǔn)、規(guī)約、實(shí)現(xiàn)手段等方面都在不要增加新的需求,因此開發(fā)平臺仍需要在現(xiàn)在的基礎(chǔ)上通過不斷的優(yōu)化和完善,才能更好地服務(wù)于公司產(chǎn)品的測試工作。
參考文獻(xiàn)
[1] 曾平良,許曉慧.堅(jiān)強(qiáng)智能電網(wǎng)的規(guī)劃與發(fā)展[J].國家電網(wǎng),2013(1):82?85.
[2] 湯勝林.航天電子產(chǎn)品可靠性設(shè)計(jì)[J].中國科技博覽,2011(7):116?117.
[3] 宋三明,姚鴻勛.Potts網(wǎng)絡(luò)的模塊化Latching動力模型[J].智能計(jì)算機(jī)與應(yīng)用,2013(4):42?46.
[4] 程瀾,羅建.基于優(yōu)先級區(qū)間連接策略的搶占式線程池模型[J].航空計(jì)算技術(shù),2013(1):131?134.
[5] 胡龍躍,史崢,劉得金,等.高效率集成電路測試芯片設(shè)計(jì)方法 [J].計(jì)算機(jī)工程及應(yīng)用,2013(11):54?57.
[6] 王靖歐.用多樣化的通信介質(zhì)傳輸水電廠SCADA系統(tǒng)信息[J].水電能源科學(xué),2006(4):89?91.
[7] Microsoft. C# [EB/OL]. [2012?12?29]. http://wenku.baidu.com/link.
[8] 李哲青,賀倩.異構(gòu)數(shù)據(jù)集成系統(tǒng)中插件技術(shù)的應(yīng)用[J].信息系統(tǒng)工程,2013(8):90?92.
[9] 陸平,錢煜明,朱科支.一種分布式復(fù)雜消息處理引擎的設(shè)計(jì)與實(shí)現(xiàn)[J].中興通迅技術(shù),2013(4):58?62.
[10] Liuke_blue. Ring3下通過查詢GDI句柄表來檢測進(jìn)程[J].黑客防線,2010(7):274?276.