張?zhí)?/p>
摘 要:隨著科學(xué)技術(shù)與經(jīng)濟(jì)的同步發(fā)展,軟件產(chǎn)業(yè)也取得了質(zhì)的飛躍,但與此同時,對于軟件生產(chǎn)的質(zhì)量也提出了更高的要求。尤其是近年來,各種軟件產(chǎn)品逐漸朝著規(guī)?;?、系統(tǒng)化、專業(yè)化方向發(fā)展,而且更新速度也上升到了新的層面。因此,傳統(tǒng)的測試方法被自動化測試軟件所取代。鑒于此,為了更加深入地了解自動化測試,本文以電力系統(tǒng)為例,對其實(shí)時數(shù)據(jù)庫自動測試進(jìn)行研究。
關(guān)鍵詞:電力系統(tǒng);實(shí)時數(shù)據(jù)庫;自動化測試
隨著計算機(jī)技術(shù)的進(jìn)步,軟件在數(shù)據(jù)庫技術(shù)中的應(yīng)用極為廣泛。在20世紀(jì)中期,數(shù)據(jù)庫技術(shù)就已經(jīng)得到了飛速發(fā)展,近年來,數(shù)據(jù)庫技術(shù)逐漸成為當(dāng)前計算機(jī)系統(tǒng)中非常重要的組成部分。電力系統(tǒng)是實(shí)時數(shù)據(jù)庫應(yīng)用的重要領(lǐng)域,電力系統(tǒng)中的實(shí)時數(shù)據(jù)庫主要對電力企業(yè)的經(jīng)營與生產(chǎn)環(huán)節(jié)中的數(shù)據(jù)進(jìn)行分析、處理,因此,數(shù)據(jù)庫性能、數(shù)據(jù)庫功能、數(shù)據(jù)庫接口等測試對保障電力系統(tǒng)的高效運(yùn)作有至關(guān)重要的作用。也就是說,對電力系統(tǒng)數(shù)據(jù)庫各個內(nèi)容進(jìn)行自動化測試,對確保電力企業(yè)經(jīng)營以及生產(chǎn)活動的順利展開有比較現(xiàn)實(shí)的意義。
1 電力系統(tǒng)實(shí)時數(shù)據(jù)庫
如圖1所示,實(shí)施數(shù)據(jù)庫主要由客戶端、授權(quán)服務(wù)以及數(shù)據(jù)處理服務(wù)組成。
電力系統(tǒng)實(shí)時數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)中的一個分支,主要由實(shí)時處理技術(shù)以及數(shù)據(jù)庫技術(shù)組合而成。該數(shù)據(jù)庫是以測點(diǎn)為單位實(shí)現(xiàn)數(shù)據(jù)處理、管理以及存儲,每一個測點(diǎn)代表的物理意不同。
在電力系統(tǒng)實(shí)時數(shù)據(jù)庫中,RTDB授權(quán)服務(wù)的主要作用是約束數(shù)據(jù)處理服務(wù)的有效期以及測點(diǎn)數(shù),在進(jìn)行數(shù)據(jù)處理服務(wù)之前先應(yīng)啟動授權(quán)服務(wù)。RTDB數(shù)據(jù)處理服務(wù)作為實(shí)時數(shù)據(jù)庫進(jìn)行數(shù)據(jù)處理與存儲的功能實(shí)體,主要功能是對數(shù)據(jù)與測點(diǎn)進(jìn)行刪除、更新、增加以及查詢。客戶端可以通過調(diào)用RTDB數(shù)據(jù)對測點(diǎn)與數(shù)據(jù)進(jìn)行操作。
2 STAF軟件自動化測試框架技術(shù)
2.1 STAF軟件自動化測試框架介紹
該軟件為開源、跨平臺以及支持多種語言的自動化測試框架,STAF軟件提供了自動化測試需要的基礎(chǔ)服務(wù),同時,該軟件和編程語言以及不同的操作系統(tǒng)平臺實(shí)現(xiàn)了兼容,因此為電力系統(tǒng)實(shí)時數(shù)據(jù)庫的自動化測試提供了方案。換而言之,STAF軟件作為自動化測試框架有以下優(yōu)勢:對軟硬件環(huán)境要求較低,能夠跨平臺使用;和編程語言有較好的兼容性,包括Java、C/C++、Perl等;能夠根據(jù)請求創(chuàng)建新的服務(wù),并且迅速加入到STAF體系中。此外,用該軟件可以使測試任務(wù)更容易維護(hù),而操作人員通過文件配置就能實(shí)現(xiàn)任務(wù)管理。
2.2 工作原理
該軟件主要提供外部與內(nèi)部兩種服務(wù),其中,內(nèi)部服務(wù)主要被集成進(jìn)守護(hù)進(jìn)程STAFProc中,而外部服務(wù)則沒有被集成進(jìn)STAFProc服務(wù)中。
在測試軟件中,STAF通過請求命令的發(fā)送來調(diào)用服務(wù),其中每個服務(wù)都有自身請求命令的格式。而這些格式主要有3種參數(shù),也就是系統(tǒng)、服務(wù)以及參數(shù)。將系統(tǒng)參數(shù)發(fā)送到目標(biāo)STAF系統(tǒng)中,STAFProc對其進(jìn)行分析,然后判斷出請求命令需要調(diào)用的具體服務(wù)。
STAF服務(wù)將請求處理完畢后,返回兩種信息——特定請求信息與返回碼。特定于請求的信息主要包括服務(wù)返回的具體數(shù)據(jù),返回碼為此次服務(wù)處理的結(jié)果。
3 XML技術(shù)與Python語言
3.1 XML技術(shù)應(yīng)用
可擴(kuò)展標(biāo)記語言主要是用來標(biāo)記電子文件以及使其擁有結(jié)構(gòu)性的語言,因此可擴(kuò)展標(biāo)記語言不僅可以定義數(shù)據(jù)類型,還可以標(biāo)記數(shù)據(jù)。XML的側(cè)重點(diǎn)是關(guān)注數(shù)據(jù)的傳輸以及存儲,所以XML逐漸成為跨平臺的數(shù)據(jù)交換格式。
在電力系統(tǒng)實(shí)時數(shù)據(jù)庫測試的軟件中,需要采用大量配置信息,而如何使這些配置信息得到高效的組織是軟件應(yīng)用的重點(diǎn)內(nèi)容。所以在電力系統(tǒng)實(shí)時數(shù)據(jù)庫自動化測試中,XML允許自定義標(biāo)簽的優(yōu)勢能夠高效地實(shí)現(xiàn)配置信息的管理與組織。
3.2 Python語言應(yīng)用
在計算機(jī)編程語言中,Python為一種面向?qū)ο蟮?、開源的直譯式語言,繼承了計算機(jī)編程語言的通用性以及強(qiáng)大性。在電力系統(tǒng)實(shí)時數(shù)據(jù)庫自動化測試中,主要采用的編程語言為Python語言??偟膩碚f,是因?yàn)樵撜Z言在測試應(yīng)用中,有以下幾個優(yōu)點(diǎn)。
(1)面向?qū)ο蟆T撜Z言有較強(qiáng)的面向?qū)ο筇匦?,消除了抽象類、保護(hù)類等多種面向?qū)ο蟮闹匾?,因此,更易理解面向?qū)ο蟮母拍睢?/p>
(2)可擴(kuò)展性。主要是指Python語言支持模塊之間的相互交互使編寫擴(kuò)展更加簡便。
(3)一用性。電力系統(tǒng)實(shí)時數(shù)據(jù)庫自動測試采用該語言,可以減少代碼量,提高模塊功能。
(4)健壯性。該語言當(dāng)處理代碼運(yùn)行錯誤時,可以提供一種安全退出機(jī)制,當(dāng)代碼錯誤或崩潰時,程序就會轉(zhuǎn)出語法錯誤與程序崩塌的原因。而Python語言會及時采取應(yīng)對措施來處理異常情況,提高代碼的開發(fā)效率。
4 軟件回歸測試與用例選擇算法
本文對電力系統(tǒng)實(shí)時數(shù)據(jù)庫實(shí)施自動化測試,不僅是建立在電力系統(tǒng)需求分析的基礎(chǔ)上,而且對測試平臺進(jìn)行了主要模塊設(shè)計。鑒于此,本文借助關(guān)聯(lián)規(guī)則挖掘的回歸測試用例選擇算法,通過將其應(yīng)用在自動化測試軟件中,高效完成回歸測試任務(wù)。
關(guān)聯(lián)規(guī)則模型是由 R.Agrawal所提出,隨即又誕生了Apriori 以及SETM等算法。而其中,Apriori為關(guān)聯(lián)規(guī)則模型中最典型的算法。在運(yùn)用這一算法中,采用Apriori算法挖掘測試對象事務(wù)數(shù)據(jù)庫中所有的頻繁項(xiàng)集。然后在得到這些頻繁項(xiàng)集之后,通過條件概率計算來獲取關(guān)聯(lián)規(guī)則的置信度,而最后通過已知的最小置信度之間的比較來判斷關(guān)聯(lián)規(guī)則的強(qiáng)弱。
也就是說,假設(shè)T為一個項(xiàng)集,D是事務(wù)數(shù)據(jù)庫,為所有項(xiàng)的集合,那么用TID表示每個事務(wù)具備唯一的事務(wù)標(biāo)識。如果A與B為兩個項(xiàng)集,而其中,若,那么則稱T支持A。而他們之間的關(guān)聯(lián)規(guī)則蘊(yùn)涵式為,該函數(shù)式的含義為項(xiàng)集 B 的出現(xiàn)依賴于項(xiàng)集 A。
因此,數(shù)據(jù)庫D含有的的事務(wù)越多,那么support()就越大。
可見,Apriori 的主要性質(zhì)是頻繁項(xiàng)集的非空子集必須都是頻繁的。所以,根據(jù)定義,當(dāng),也就是項(xiàng)集 A無法滿足最小支持度s的約束,則項(xiàng)集 A不是頻繁的。如果將項(xiàng)集B添到 A,那么項(xiàng)集就不會比項(xiàng)集 A出現(xiàn)得更加頻繁。
綜上,在軟件代碼實(shí)現(xiàn)中,Apriori 算法主要由表1中所示的幾個函數(shù)組成,而實(shí)現(xiàn)電力系統(tǒng)實(shí)時數(shù)據(jù)庫自動化測試軟件中關(guān)聯(lián)規(guī)則挖掘算法函數(shù)也如下表總結(jié):
5 結(jié)束語
軟件自動化測試的過程是建立在需求分析以及測試技術(shù)的應(yīng)用之上的,鑒于此,本文主要介紹了軟件自動化測試平臺的幾種重要技術(shù),主要包含實(shí)時數(shù)據(jù)庫技術(shù)、Python 語言和 XML 技術(shù)、STAF測試框架技術(shù),并且在關(guān)聯(lián)規(guī)則挖掘理論上討論了回歸測試用例的選擇算法,并且對算法具體過程進(jìn)行了分析。總體而言,本文對于電力系統(tǒng)實(shí)時數(shù)據(jù)庫的自動化測試研究以及應(yīng)用有非常現(xiàn)實(shí)的意義。當(dāng)然,本文也存在許多不足之處,電力系統(tǒng)實(shí)時數(shù)據(jù)庫的自動測試為一個相對復(fù)雜且系統(tǒng)化的過程,本文只是對其系統(tǒng)測試中應(yīng)用的技術(shù)進(jìn)行了分析,因此,進(jìn)一步對電力系統(tǒng)實(shí)時數(shù)據(jù)庫自動化測試的實(shí)現(xiàn)進(jìn)行研究是本文需要完善的地方。
參考文獻(xiàn)
[1]郭新雷.電力系統(tǒng)實(shí)時數(shù)據(jù)庫的自動化測試研究與實(shí)現(xiàn)[D].南京郵電大學(xué),2013,8(12):23-24.
[2]葛亮.智能變電站在線監(jiān)測系統(tǒng)測試平臺的設(shè)計與實(shí)現(xiàn)[D].華北電力大學(xué),2014.
[3]張嶄.基于組態(tài)軟件的電力系統(tǒng)實(shí)時數(shù)據(jù)庫設(shè)計與實(shí)現(xiàn)[D].中國科學(xué)院大學(xué)(工程管理與信息技術(shù)學(xué)院),2014.
[4]武君勝,吳德州.面向電力系統(tǒng)的分布式實(shí)時數(shù)據(jù)庫關(guān)鍵技術(shù)及應(yīng)用[J].中國科技論文在線,2008,2(11):102-107.
[5]趙磊.監(jiān)控組態(tài)軟件中實(shí)時數(shù)據(jù)庫接口的設(shè)計與實(shí)現(xiàn)[D].電子科技大學(xué),2007,9(20):41.
[6]楊友俊.城市軌道交通電力監(jiān)控系統(tǒng)實(shí)時數(shù)據(jù)庫的研究[D].西南交通大學(xué),2007,3(21):13.