侯高雷+李志鵬+孫強(qiáng)+李志華
摘 要: 為滿足電能表系列產(chǎn)品的測(cè)試需要,減少功能測(cè)試軟件的開發(fā)周期,提升公司產(chǎn)品功能測(cè)試能力,特提出電能表功能測(cè)試軟件開發(fā)平臺(tái)的設(shè)計(jì)概念。本設(shè)計(jì)旨在建立一套統(tǒng)一的功能測(cè)試軟件開發(fā)平臺(tái),通過分層、模塊化、高度抽象的設(shè)計(jì)理念,逐步將介質(zhì)庫、協(xié)議庫、功能庫、語言庫、界面庫等成熟技術(shù)集成到該平臺(tái)上,并通過預(yù)留接口的方式保留對(duì)平臺(tái)的二次開發(fā)功能,從而實(shí)現(xiàn)測(cè)試軟件的快速設(shè)計(jì)能力,保證功能測(cè)試的開發(fā)需求。
關(guān)鍵詞: 功能測(cè)試; 測(cè)試軟件開發(fā)平臺(tái); 智能電能表; 開發(fā)平臺(tái)
中圖分類號(hào): TN964?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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ì)及測(cè)試工作帶來了極大的挑戰(zhàn)。目前國內(nèi)電能計(jì)量行業(yè)產(chǎn)品的可靠性設(shè)計(jì)[2]和管理工作剛剛起步,因此產(chǎn)品的質(zhì)量保證工作大部分就落到了測(cè)試環(huán)節(jié),即研發(fā)測(cè)試和生產(chǎn)測(cè)試,極大地增加了測(cè)試部門的工作壓力和工作強(qiáng)度,同時(shí)對(duì)測(cè)試人員的需求也大大提高。為了改變這一現(xiàn)象,河南許繼儀表有限公司一直致力于自動(dòng)化測(cè)試裝置和測(cè)試系統(tǒng)的研發(fā)設(shè)計(jì)工作,在保證測(cè)試質(zhì)量的同時(shí),逐步減少對(duì)測(cè)試人員的依賴。功能測(cè)試系統(tǒng)開發(fā)平臺(tái)正是為了解決功能測(cè)試軟件開發(fā)過程周期長(zhǎng)、效率低、質(zhì)量差、人員依賴度高的問題而提出來的。該平臺(tái)通過分層、模塊化、高度抽象的設(shè)計(jì)理念[3],逐步將介質(zhì)庫、協(xié)議庫、功能庫、語言庫、界面庫等成熟技術(shù)集成在一起,并通過預(yù)留接口的方式保留對(duì)平臺(tái)的二次開發(fā)功能,從而實(shí)現(xiàn)測(cè)試軟件的快速設(shè)計(jì)能力。
1 開發(fā)平臺(tái)系統(tǒng)分析
1.1 需求分析
為了更好地滿足各種功能測(cè)試系統(tǒng)軟件開發(fā)的需要,通過對(duì)近年來各種產(chǎn)品功能測(cè)試過程中的功能測(cè)試需求、測(cè)試人員的使用要求、測(cè)試管理要求、測(cè)試軟件的使用范圍、軟件應(yīng)用經(jīng)驗(yàn)、軟件功能開發(fā)經(jīng)驗(yàn)等信息進(jìn)行收集整理,經(jīng)過長(zhǎng)時(shí)間地分析討論總結(jié),并最終形成了初步的需求方案。首先開發(fā)平臺(tái)必須是一個(gè)大而全的函數(shù)庫,必須能滿足常用的開發(fā)功能函數(shù)級(jí)的需要,如支持多種通信方式,多種通信協(xié)議,多種語言,多種文件操作,多種數(shù)據(jù)庫操作,多線程操作,線程池管理[4]等,其次開發(fā)平臺(tái)必須是一個(gè)應(yīng)用功能集合,要能支持常用的功能模塊,如報(bào)表打印、數(shù)據(jù)導(dǎo)入、數(shù)據(jù)導(dǎo)出、用戶權(quán)限管理、系統(tǒng)日志管理、系統(tǒng)自動(dòng)升級(jí)等;最后開發(fā)平臺(tái)還必須是一個(gè)開發(fā)工具包[5],能被其他人很方便地利用起來進(jìn)行二次開發(fā)工作。
1.2 平臺(tái)邏輯框圖
基于以上需求分析,形成了開發(fā)平臺(tái)的邏輯框架圖,如圖1所示,下面針對(duì)開發(fā)平臺(tái)的邏輯架構(gòu)框圖進(jìn)行簡(jiǎn)要說明:
(1) 應(yīng)用模塊層:該層主要提供了成熟的基于用戶常用的功能模塊集合,主要包括系統(tǒng)管理,用戶權(quán)限管理,數(shù)據(jù)報(bào)表管理,功能擴(kuò)展管理等成熟的功能應(yīng)用,為測(cè)試系統(tǒng)應(yīng)用級(jí)功能的二次開發(fā)提供應(yīng)用基礎(chǔ);
(2) 業(yè)務(wù)驅(qū)動(dòng)層:業(yè)務(wù)驅(qū)動(dòng)顧名思義就是驅(qū)動(dòng)業(yè)務(wù)功能實(shí)現(xiàn),該層和應(yīng)用層不同的是他集成的對(duì)象是功能實(shí)現(xiàn)函數(shù)級(jí)集合,而應(yīng)用層主要是功能實(shí)現(xiàn)的應(yīng)用模塊集合,他主要為二次開發(fā)提供成熟穩(wěn)定的功能實(shí)現(xiàn)函數(shù);
(3) 介質(zhì)驅(qū)動(dòng)層:介質(zhì)驅(qū)動(dòng)層封裝了驅(qū)動(dòng)物理介質(zhì)需要的底層驅(qū)動(dòng)庫,保證物理介質(zhì)能正常的工作;
(4) 介質(zhì)層[6]:介質(zhì)層主要包含本平臺(tái)封裝的各種介質(zhì),主要包括存儲(chǔ)介質(zhì)和通信介質(zhì),該層封裝介質(zhì)的多少直接決定了平臺(tái)對(duì)通信、存儲(chǔ)等功能實(shí)現(xiàn)的支持能力。
圖1 系統(tǒng)邏輯框圖
1.3 主要業(yè)務(wù)功能模塊
由于該開發(fā)平臺(tái)主要是為了減少測(cè)試軟件二次開發(fā)的時(shí)間周期的,因此他的主要亮點(diǎn)就在于二次開發(fā)人員能在該平臺(tái)基礎(chǔ)上,利用應(yīng)用模塊層成熟的應(yīng)用模塊功能和業(yè)務(wù)驅(qū)動(dòng)層量多而成熟的功能函數(shù)經(jīng)過各種自由組合后能快速開發(fā)出各種滿足業(yè)務(wù)需要的系統(tǒng)軟件來,因此要想利用好該平臺(tái),就必須對(duì)應(yīng)用模塊層和業(yè)務(wù)驅(qū)動(dòng)層進(jìn)行詳細(xì)的學(xué)習(xí)和了解。下面就針對(duì)這兩個(gè)層主要的業(yè)務(wù)模塊進(jìn)行簡(jiǎn)單的介紹。
(1) 系統(tǒng)管理:該功能主要是常用的系統(tǒng)管理功能模塊,主要功能包括系統(tǒng)權(quán)限管理、系統(tǒng)數(shù)據(jù)庫配置管理、系統(tǒng)通信配置管理、系統(tǒng)日志操作管理等。
(2) 檔案管理:該功能主要是公司產(chǎn)品測(cè)試時(shí)需要的檔案管理和維護(hù)功能,主要功能包括測(cè)試項(xiàng)目檔案管理、被測(cè)產(chǎn)品檔案管理、測(cè)試設(shè)備檔案管理等。
(3) 報(bào)表管理:該功能主要是常用的報(bào)表管理模塊,主要功能包括測(cè)試報(bào)告管理、測(cè)試數(shù)據(jù)管理、測(cè)試記錄管理等。
(4) 數(shù)據(jù)接口:該功能主要是數(shù)據(jù)導(dǎo)入/導(dǎo)出功能管理模塊,主要功能包括數(shù)據(jù)導(dǎo)入管理、數(shù)據(jù)導(dǎo)出管理、數(shù)據(jù)實(shí)時(shí)交互接口管理等。
(5) 升級(jí)管理:該功能主要是對(duì)應(yīng)用程序的自動(dòng)升級(jí)功能管理模塊,主要功能包括軟件更新配置管理、更新服務(wù)管理等。
(6) 擴(kuò)展管理:該功能主要是為了以后擴(kuò)展該平臺(tái)功能實(shí)現(xiàn)模塊使用的,主要功能包括功能模塊導(dǎo)入管理,功能模塊維護(hù)管理等。
(7) 數(shù)據(jù)庫功能操作庫:為了使二次開發(fā)人員在開發(fā)測(cè)試系統(tǒng)的時(shí)候能靈活方便地進(jìn)行數(shù)據(jù)庫操作設(shè)計(jì),故專門制作了數(shù)據(jù)庫功能操作庫,他主要是將常用的可靠的數(shù)據(jù)庫操作函數(shù)集合整理在一起,方便開發(fā)人員靈活使用。
(8) 語言庫功能操作庫:該功能主要是將操作語言類的功能函數(shù)結(jié)合到一起,方便開發(fā)人員在設(shè)計(jì)支持多國語言測(cè)試系統(tǒng)時(shí)直接調(diào)用。目前該語言庫已經(jīng)封裝了全球最常用的語言包,能支持全球絕大部分語言應(yīng)用。
(9) 規(guī)約庫功能操作庫:該功能主要是將公司所有使用到的通信規(guī)約操作函數(shù)進(jìn)行了封裝,方便開發(fā)人員在兼容各種通信規(guī)約時(shí)直接使用,提高模塊的重用性,減少了系統(tǒng)開發(fā)周期。
(10) 通信功能操作庫:該功能主要是將公司所有使用到的通信類型的操作函數(shù)進(jìn)行了封裝,比如TCP通信操作、串口操作、UDP操作、FTP操作等,方便開發(fā)人員在使用各種通信方式操作時(shí)可以直接調(diào)用該類函數(shù),提高開發(fā)效率和質(zhì)量。
1.4 平臺(tái)開發(fā)環(huán)境
為了使開發(fā)平臺(tái)具有高效、易用及面向組件的特點(diǎn),同時(shí)結(jié)合公司測(cè)試軟件開發(fā)的實(shí)際情況,最終將C#最為開發(fā)平臺(tái)的編程語言。C#是一種安全的、穩(wěn)定的、簡(jiǎn)單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性(例如沒有宏以及不允許多重繼承)。C#綜合了VB簡(jiǎn)單的可視化操作和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ā)平臺(tái)中功能模塊部分能夠靈活地進(jìn)行功能擴(kuò)展,而不需要對(duì)平臺(tái)主程序進(jìn)行重新編譯和發(fā)布,因此在開發(fā)平臺(tái)上就專門應(yīng)用了插件管理技術(shù)。我們將常用的成熟的功能模塊(如用戶權(quán)限管理模塊、數(shù)據(jù)報(bào)表模塊等)按照約定的協(xié)議接口做成動(dòng)態(tài)庫的形式封裝起來,然后通過將這些動(dòng)態(tài)庫調(diào)用到程序框架中來完成功能模塊的加載,這樣就完成了功能模塊的靈活集成,從而保證平臺(tái)功能集合的可管理性和可擴(kuò)展性。
2.2 非可視化功能管理技術(shù)
平臺(tái)中集成了很多成熟的功能模塊,但是由于這些功能模塊有的具有可視化界面,有點(diǎn)沒有可視化界面,沒有統(tǒng)一的格式,因此如何將這些功能模塊靈活的管理起來將是該平臺(tái)急需解決的一個(gè)問題。Windows操作系統(tǒng)的消息處理機(jī)制[9]可以解決系統(tǒng)級(jí)消息或者用戶自定義的消息處理,但是對(duì)于無窗體句柄[10]的非可視化功能則無法通過消息處理來進(jìn)行管理,因此為了解決這個(gè)問題,平臺(tái)在功能設(shè)計(jì)的時(shí)候,首先將各種非可視化功能集合到一起,然后通過對(duì)這個(gè)功能增加設(shè)置隱藏窗口的方式,使這些功能同時(shí)都具備了窗體句柄,從而通過消息處理的機(jī)制來完成對(duì)這些非可視化功能模塊的管理。
2.3 消息處理機(jī)制
由于該平臺(tái)封裝了較多的功能和函數(shù)集,為了保證平臺(tái)在二次開發(fā)過程中能更好地被開發(fā)者統(tǒng)一管理起來,在平臺(tái)框架設(shè)計(jì)過程中,就集成了便于開發(fā)者進(jìn)行協(xié)調(diào)管理的消息處理機(jī)制,該消息機(jī)制在Windows消息處理機(jī)制的基礎(chǔ)上進(jìn)行了擴(kuò)展,將自定義消息處理模式通過平臺(tái)消息配置文件來對(duì)平臺(tái)內(nèi)部自定義消息進(jìn)行管理和維護(hù),保證他們?cè)谄脚_(tái)開發(fā)應(yīng)用過程中能對(duì)各種集成功能進(jìn)行準(zhǔn)確的管理和靈活的操控。
3 結(jié) 論
功能測(cè)試系統(tǒng)開發(fā)平臺(tái)自開發(fā)成功之后已陸續(xù)應(yīng)用于公司多款功能自動(dòng)化測(cè)試系統(tǒng)的應(yīng)用開發(fā)中,在開發(fā)過程中節(jié)省了大量的人員和開發(fā)時(shí)間,極大提高了開發(fā)效率,目前這些測(cè)試系統(tǒng)運(yùn)行穩(wěn)定,且仍在近期送樣測(cè)試過程中發(fā)揮著重大作用。隨著行業(yè)技術(shù)的發(fā)展,一些新的需求也在不斷增加,從標(biāo)準(zhǔn)、規(guī)約、實(shí)現(xiàn)手段等方面都在不要增加新的需求,因此開發(fā)平臺(tái)仍需要在現(xiàn)在的基礎(chǔ)上通過不斷的優(yōu)化和完善,才能更好地服務(wù)于公司產(chǎn)品的測(cè)試工作。
參考文獻(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動(dòng)力模型[J].智能計(jì)算機(jī)與應(yīng)用,2013(4):42?46.
[4] 程瀾,羅建.基于優(yōu)先級(jí)區(qū)間連接策略的搶占式線程池模型[J].航空計(jì)算技術(shù),2013(1):131?134.
[5] 胡龍躍,史崢,劉得金,等.高效率集成電路測(cè)試芯片設(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句柄表來檢測(cè)進(jìn)程[J].黑客防線,2010(7):274?276.
(3) 介質(zhì)驅(qū)動(dòng)層:介質(zhì)驅(qū)動(dòng)層封裝了驅(qū)動(dòng)物理介質(zhì)需要的底層驅(qū)動(dòng)庫,保證物理介質(zhì)能正常的工作;
(4) 介質(zhì)層[6]:介質(zhì)層主要包含本平臺(tái)封裝的各種介質(zhì),主要包括存儲(chǔ)介質(zhì)和通信介質(zhì),該層封裝介質(zhì)的多少直接決定了平臺(tái)對(duì)通信、存儲(chǔ)等功能實(shí)現(xiàn)的支持能力。
圖1 系統(tǒng)邏輯框圖
1.3 主要業(yè)務(wù)功能模塊
由于該開發(fā)平臺(tái)主要是為了減少測(cè)試軟件二次開發(fā)的時(shí)間周期的,因此他的主要亮點(diǎn)就在于二次開發(fā)人員能在該平臺(tái)基礎(chǔ)上,利用應(yīng)用模塊層成熟的應(yīng)用模塊功能和業(yè)務(wù)驅(qū)動(dòng)層量多而成熟的功能函數(shù)經(jīng)過各種自由組合后能快速開發(fā)出各種滿足業(yè)務(wù)需要的系統(tǒng)軟件來,因此要想利用好該平臺(tái),就必須對(duì)應(yīng)用模塊層和業(yè)務(wù)驅(qū)動(dòng)層進(jìn)行詳細(xì)的學(xué)習(xí)和了解。下面就針對(duì)這兩個(gè)層主要的業(yè)務(wù)模塊進(jìn)行簡(jiǎn)單的介紹。
(1) 系統(tǒng)管理:該功能主要是常用的系統(tǒng)管理功能模塊,主要功能包括系統(tǒng)權(quán)限管理、系統(tǒng)數(shù)據(jù)庫配置管理、系統(tǒng)通信配置管理、系統(tǒng)日志操作管理等。
(2) 檔案管理:該功能主要是公司產(chǎn)品測(cè)試時(shí)需要的檔案管理和維護(hù)功能,主要功能包括測(cè)試項(xiàng)目檔案管理、被測(cè)產(chǎn)品檔案管理、測(cè)試設(shè)備檔案管理等。
(3) 報(bào)表管理:該功能主要是常用的報(bào)表管理模塊,主要功能包括測(cè)試報(bào)告管理、測(cè)試數(shù)據(jù)管理、測(cè)試記錄管理等。
(4) 數(shù)據(jù)接口:該功能主要是數(shù)據(jù)導(dǎo)入/導(dǎo)出功能管理模塊,主要功能包括數(shù)據(jù)導(dǎo)入管理、數(shù)據(jù)導(dǎo)出管理、數(shù)據(jù)實(shí)時(shí)交互接口管理等。
(5) 升級(jí)管理:該功能主要是對(duì)應(yīng)用程序的自動(dòng)升級(jí)功能管理模塊,主要功能包括軟件更新配置管理、更新服務(wù)管理等。
(6) 擴(kuò)展管理:該功能主要是為了以后擴(kuò)展該平臺(tái)功能實(shí)現(xiàn)模塊使用的,主要功能包括功能模塊導(dǎo)入管理,功能模塊維護(hù)管理等。
(7) 數(shù)據(jù)庫功能操作庫:為了使二次開發(fā)人員在開發(fā)測(cè)試系統(tǒng)的時(shí)候能靈活方便地進(jìn)行數(shù)據(jù)庫操作設(shè)計(jì),故專門制作了數(shù)據(jù)庫功能操作庫,他主要是將常用的可靠的數(shù)據(jù)庫操作函數(shù)集合整理在一起,方便開發(fā)人員靈活使用。
(8) 語言庫功能操作庫:該功能主要是將操作語言類的功能函數(shù)結(jié)合到一起,方便開發(fā)人員在設(shè)計(jì)支持多國語言測(cè)試系統(tǒng)時(shí)直接調(diào)用。目前該語言庫已經(jīng)封裝了全球最常用的語言包,能支持全球絕大部分語言應(yīng)用。
(9) 規(guī)約庫功能操作庫:該功能主要是將公司所有使用到的通信規(guī)約操作函數(shù)進(jìn)行了封裝,方便開發(fā)人員在兼容各種通信規(guī)約時(shí)直接使用,提高模塊的重用性,減少了系統(tǒng)開發(fā)周期。
(10) 通信功能操作庫:該功能主要是將公司所有使用到的通信類型的操作函數(shù)進(jìn)行了封裝,比如TCP通信操作、串口操作、UDP操作、FTP操作等,方便開發(fā)人員在使用各種通信方式操作時(shí)可以直接調(diào)用該類函數(shù),提高開發(fā)效率和質(zhì)量。
1.4 平臺(tái)開發(fā)環(huán)境
為了使開發(fā)平臺(tái)具有高效、易用及面向組件的特點(diǎn),同時(shí)結(jié)合公司測(cè)試軟件開發(fā)的實(shí)際情況,最終將C#最為開發(fā)平臺(tái)的編程語言。C#是一種安全的、穩(wěn)定的、簡(jiǎn)單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性(例如沒有宏以及不允許多重繼承)。C#綜合了VB簡(jiǎn)單的可視化操作和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ā)平臺(tái)中功能模塊部分能夠靈活地進(jìn)行功能擴(kuò)展,而不需要對(duì)平臺(tái)主程序進(jìn)行重新編譯和發(fā)布,因此在開發(fā)平臺(tái)上就專門應(yīng)用了插件管理技術(shù)。我們將常用的成熟的功能模塊(如用戶權(quán)限管理模塊、數(shù)據(jù)報(bào)表模塊等)按照約定的協(xié)議接口做成動(dòng)態(tài)庫的形式封裝起來,然后通過將這些動(dòng)態(tài)庫調(diào)用到程序框架中來完成功能模塊的加載,這樣就完成了功能模塊的靈活集成,從而保證平臺(tái)功能集合的可管理性和可擴(kuò)展性。
2.2 非可視化功能管理技術(shù)
平臺(tái)中集成了很多成熟的功能模塊,但是由于這些功能模塊有的具有可視化界面,有點(diǎn)沒有可視化界面,沒有統(tǒng)一的格式,因此如何將這些功能模塊靈活的管理起來將是該平臺(tái)急需解決的一個(gè)問題。Windows操作系統(tǒng)的消息處理機(jī)制[9]可以解決系統(tǒng)級(jí)消息或者用戶自定義的消息處理,但是對(duì)于無窗體句柄[10]的非可視化功能則無法通過消息處理來進(jìn)行管理,因此為了解決這個(gè)問題,平臺(tái)在功能設(shè)計(jì)的時(shí)候,首先將各種非可視化功能集合到一起,然后通過對(duì)這個(gè)功能增加設(shè)置隱藏窗口的方式,使這些功能同時(shí)都具備了窗體句柄,從而通過消息處理的機(jī)制來完成對(duì)這些非可視化功能模塊的管理。
2.3 消息處理機(jī)制
由于該平臺(tái)封裝了較多的功能和函數(shù)集,為了保證平臺(tái)在二次開發(fā)過程中能更好地被開發(fā)者統(tǒng)一管理起來,在平臺(tái)框架設(shè)計(jì)過程中,就集成了便于開發(fā)者進(jìn)行協(xié)調(diào)管理的消息處理機(jī)制,該消息機(jī)制在Windows消息處理機(jī)制的基礎(chǔ)上進(jìn)行了擴(kuò)展,將自定義消息處理模式通過平臺(tái)消息配置文件來對(duì)平臺(tái)內(nèi)部自定義消息進(jìn)行管理和維護(hù),保證他們?cè)谄脚_(tái)開發(fā)應(yīng)用過程中能對(duì)各種集成功能進(jìn)行準(zhǔn)確的管理和靈活的操控。
3 結(jié) 論
功能測(cè)試系統(tǒng)開發(fā)平臺(tái)自開發(fā)成功之后已陸續(xù)應(yīng)用于公司多款功能自動(dòng)化測(cè)試系統(tǒng)的應(yīng)用開發(fā)中,在開發(fā)過程中節(jié)省了大量的人員和開發(fā)時(shí)間,極大提高了開發(fā)效率,目前這些測(cè)試系統(tǒng)運(yùn)行穩(wěn)定,且仍在近期送樣測(cè)試過程中發(fā)揮著重大作用。隨著行業(yè)技術(shù)的發(fā)展,一些新的需求也在不斷增加,從標(biāo)準(zhǔn)、規(guī)約、實(shí)現(xiàn)手段等方面都在不要增加新的需求,因此開發(fā)平臺(tái)仍需要在現(xiàn)在的基礎(chǔ)上通過不斷的優(yōu)化和完善,才能更好地服務(wù)于公司產(chǎn)品的測(cè)試工作。
參考文獻(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動(dòng)力模型[J].智能計(jì)算機(jī)與應(yīng)用,2013(4):42?46.
[4] 程瀾,羅建.基于優(yōu)先級(jí)區(qū)間連接策略的搶占式線程池模型[J].航空計(jì)算技術(shù),2013(1):131?134.
[5] 胡龍躍,史崢,劉得金,等.高效率集成電路測(cè)試芯片設(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句柄表來檢測(cè)進(jìn)程[J].黑客防線,2010(7):274?276.
(3) 介質(zhì)驅(qū)動(dòng)層:介質(zhì)驅(qū)動(dòng)層封裝了驅(qū)動(dòng)物理介質(zhì)需要的底層驅(qū)動(dòng)庫,保證物理介質(zhì)能正常的工作;
(4) 介質(zhì)層[6]:介質(zhì)層主要包含本平臺(tái)封裝的各種介質(zhì),主要包括存儲(chǔ)介質(zhì)和通信介質(zhì),該層封裝介質(zhì)的多少直接決定了平臺(tái)對(duì)通信、存儲(chǔ)等功能實(shí)現(xiàn)的支持能力。
圖1 系統(tǒng)邏輯框圖
1.3 主要業(yè)務(wù)功能模塊
由于該開發(fā)平臺(tái)主要是為了減少測(cè)試軟件二次開發(fā)的時(shí)間周期的,因此他的主要亮點(diǎn)就在于二次開發(fā)人員能在該平臺(tái)基礎(chǔ)上,利用應(yīng)用模塊層成熟的應(yīng)用模塊功能和業(yè)務(wù)驅(qū)動(dòng)層量多而成熟的功能函數(shù)經(jīng)過各種自由組合后能快速開發(fā)出各種滿足業(yè)務(wù)需要的系統(tǒng)軟件來,因此要想利用好該平臺(tái),就必須對(duì)應(yīng)用模塊層和業(yè)務(wù)驅(qū)動(dòng)層進(jìn)行詳細(xì)的學(xué)習(xí)和了解。下面就針對(duì)這兩個(gè)層主要的業(yè)務(wù)模塊進(jìn)行簡(jiǎn)單的介紹。
(1) 系統(tǒng)管理:該功能主要是常用的系統(tǒng)管理功能模塊,主要功能包括系統(tǒng)權(quán)限管理、系統(tǒng)數(shù)據(jù)庫配置管理、系統(tǒng)通信配置管理、系統(tǒng)日志操作管理等。
(2) 檔案管理:該功能主要是公司產(chǎn)品測(cè)試時(shí)需要的檔案管理和維護(hù)功能,主要功能包括測(cè)試項(xiàng)目檔案管理、被測(cè)產(chǎn)品檔案管理、測(cè)試設(shè)備檔案管理等。
(3) 報(bào)表管理:該功能主要是常用的報(bào)表管理模塊,主要功能包括測(cè)試報(bào)告管理、測(cè)試數(shù)據(jù)管理、測(cè)試記錄管理等。
(4) 數(shù)據(jù)接口:該功能主要是數(shù)據(jù)導(dǎo)入/導(dǎo)出功能管理模塊,主要功能包括數(shù)據(jù)導(dǎo)入管理、數(shù)據(jù)導(dǎo)出管理、數(shù)據(jù)實(shí)時(shí)交互接口管理等。
(5) 升級(jí)管理:該功能主要是對(duì)應(yīng)用程序的自動(dòng)升級(jí)功能管理模塊,主要功能包括軟件更新配置管理、更新服務(wù)管理等。
(6) 擴(kuò)展管理:該功能主要是為了以后擴(kuò)展該平臺(tái)功能實(shí)現(xiàn)模塊使用的,主要功能包括功能模塊導(dǎo)入管理,功能模塊維護(hù)管理等。
(7) 數(shù)據(jù)庫功能操作庫:為了使二次開發(fā)人員在開發(fā)測(cè)試系統(tǒng)的時(shí)候能靈活方便地進(jìn)行數(shù)據(jù)庫操作設(shè)計(jì),故專門制作了數(shù)據(jù)庫功能操作庫,他主要是將常用的可靠的數(shù)據(jù)庫操作函數(shù)集合整理在一起,方便開發(fā)人員靈活使用。
(8) 語言庫功能操作庫:該功能主要是將操作語言類的功能函數(shù)結(jié)合到一起,方便開發(fā)人員在設(shè)計(jì)支持多國語言測(cè)試系統(tǒng)時(shí)直接調(diào)用。目前該語言庫已經(jīng)封裝了全球最常用的語言包,能支持全球絕大部分語言應(yīng)用。
(9) 規(guī)約庫功能操作庫:該功能主要是將公司所有使用到的通信規(guī)約操作函數(shù)進(jìn)行了封裝,方便開發(fā)人員在兼容各種通信規(guī)約時(shí)直接使用,提高模塊的重用性,減少了系統(tǒng)開發(fā)周期。
(10) 通信功能操作庫:該功能主要是將公司所有使用到的通信類型的操作函數(shù)進(jìn)行了封裝,比如TCP通信操作、串口操作、UDP操作、FTP操作等,方便開發(fā)人員在使用各種通信方式操作時(shí)可以直接調(diào)用該類函數(shù),提高開發(fā)效率和質(zhì)量。
1.4 平臺(tái)開發(fā)環(huán)境
為了使開發(fā)平臺(tái)具有高效、易用及面向組件的特點(diǎn),同時(shí)結(jié)合公司測(cè)試軟件開發(fā)的實(shí)際情況,最終將C#最為開發(fā)平臺(tái)的編程語言。C#是一種安全的、穩(wěn)定的、簡(jiǎn)單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性(例如沒有宏以及不允許多重繼承)。C#綜合了VB簡(jiǎn)單的可視化操作和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ā)平臺(tái)中功能模塊部分能夠靈活地進(jìn)行功能擴(kuò)展,而不需要對(duì)平臺(tái)主程序進(jìn)行重新編譯和發(fā)布,因此在開發(fā)平臺(tái)上就專門應(yīng)用了插件管理技術(shù)。我們將常用的成熟的功能模塊(如用戶權(quán)限管理模塊、數(shù)據(jù)報(bào)表模塊等)按照約定的協(xié)議接口做成動(dòng)態(tài)庫的形式封裝起來,然后通過將這些動(dòng)態(tài)庫調(diào)用到程序框架中來完成功能模塊的加載,這樣就完成了功能模塊的靈活集成,從而保證平臺(tái)功能集合的可管理性和可擴(kuò)展性。
2.2 非可視化功能管理技術(shù)
平臺(tái)中集成了很多成熟的功能模塊,但是由于這些功能模塊有的具有可視化界面,有點(diǎn)沒有可視化界面,沒有統(tǒng)一的格式,因此如何將這些功能模塊靈活的管理起來將是該平臺(tái)急需解決的一個(gè)問題。Windows操作系統(tǒng)的消息處理機(jī)制[9]可以解決系統(tǒng)級(jí)消息或者用戶自定義的消息處理,但是對(duì)于無窗體句柄[10]的非可視化功能則無法通過消息處理來進(jìn)行管理,因此為了解決這個(gè)問題,平臺(tái)在功能設(shè)計(jì)的時(shí)候,首先將各種非可視化功能集合到一起,然后通過對(duì)這個(gè)功能增加設(shè)置隱藏窗口的方式,使這些功能同時(shí)都具備了窗體句柄,從而通過消息處理的機(jī)制來完成對(duì)這些非可視化功能模塊的管理。
2.3 消息處理機(jī)制
由于該平臺(tái)封裝了較多的功能和函數(shù)集,為了保證平臺(tái)在二次開發(fā)過程中能更好地被開發(fā)者統(tǒng)一管理起來,在平臺(tái)框架設(shè)計(jì)過程中,就集成了便于開發(fā)者進(jìn)行協(xié)調(diào)管理的消息處理機(jī)制,該消息機(jī)制在Windows消息處理機(jī)制的基礎(chǔ)上進(jìn)行了擴(kuò)展,將自定義消息處理模式通過平臺(tái)消息配置文件來對(duì)平臺(tái)內(nèi)部自定義消息進(jìn)行管理和維護(hù),保證他們?cè)谄脚_(tái)開發(fā)應(yīng)用過程中能對(duì)各種集成功能進(jìn)行準(zhǔn)確的管理和靈活的操控。
3 結(jié) 論
功能測(cè)試系統(tǒng)開發(fā)平臺(tái)自開發(fā)成功之后已陸續(xù)應(yīng)用于公司多款功能自動(dòng)化測(cè)試系統(tǒng)的應(yīng)用開發(fā)中,在開發(fā)過程中節(jié)省了大量的人員和開發(fā)時(shí)間,極大提高了開發(fā)效率,目前這些測(cè)試系統(tǒng)運(yùn)行穩(wěn)定,且仍在近期送樣測(cè)試過程中發(fā)揮著重大作用。隨著行業(yè)技術(shù)的發(fā)展,一些新的需求也在不斷增加,從標(biāo)準(zhǔn)、規(guī)約、實(shí)現(xiàn)手段等方面都在不要增加新的需求,因此開發(fā)平臺(tái)仍需要在現(xiàn)在的基礎(chǔ)上通過不斷的優(yōu)化和完善,才能更好地服務(wù)于公司產(chǎn)品的測(cè)試工作。
參考文獻(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動(dòng)力模型[J].智能計(jì)算機(jī)與應(yīng)用,2013(4):42?46.
[4] 程瀾,羅建.基于優(yōu)先級(jí)區(qū)間連接策略的搶占式線程池模型[J].航空計(jì)算技術(shù),2013(1):131?134.
[5] 胡龍躍,史崢,劉得金,等.高效率集成電路測(cè)試芯片設(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句柄表來檢測(cè)進(jìn)程[J].黑客防線,2010(7):274?276.