張冉 高雪蓮 馮曦 馮文楠 胡毅 唐曉柯
摘要:實時數(shù)據(jù)庫是DCS系統(tǒng)的關(guān)鍵組成部分,實時數(shù)據(jù)庫內(nèi)核相當于一個數(shù)據(jù)處理中心,起到數(shù)據(jù)交換區(qū)的作用。實時數(shù)據(jù)庫內(nèi)核維護系統(tǒng)調(diào)用時產(chǎn)生的動態(tài)數(shù)據(jù)和系統(tǒng)所需的各種內(nèi)部信息,保證實時數(shù)據(jù)的完整性、實時性以及時間一致性;集成測試是測試過程中的一個重要環(huán)節(jié),集成測試方法主要分為基于調(diào)用圖的集成測試、基于分解的集成測試以及基于類間繼承關(guān)系的集成測試,通過分析實時數(shù)據(jù)庫內(nèi)核的特性,最終選用基于調(diào)用圖的集成測試和基于類間繼承關(guān)系集成測試相結(jié)合的方式完成數(shù)據(jù)庫內(nèi)核的集成測試,通過實際應(yīng)用證明了采用組合的測試方法強化了兩種測試方法的,可以縮短測試周期,降低測試難度,提高測試準確度,該方法在其他項目中具有實際指導(dǎo)意義。
關(guān)鍵詞:實時數(shù)據(jù)庫;集成測試;DCS
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)29-0005-03
1概述
在電廠DCS系統(tǒng)中實時數(shù)據(jù)庫是數(shù)據(jù)處理和數(shù)據(jù)管理的核心,實時數(shù)據(jù)庫內(nèi)核負責(zé)處理從控制器采集的數(shù)據(jù)、發(fā)送數(shù)據(jù)到組態(tài)軟件及實現(xiàn)數(shù)據(jù)庫軟件所有功能,數(shù)據(jù)庫內(nèi)核對數(shù)據(jù)庫軟件的可用性有重要的影響。
集成測試作為測試活動的重要環(huán)節(jié)之一,是保證軟件的質(zhì)量必不可少的一步。為了提高數(shù)據(jù)庫的集成測試的測試效率,不在采用原來單一的集成測試方法,而是選用多種測試方法相結(jié)合的形式,有效縮短了測試周期,將電廠DCS實時數(shù)據(jù)庫軟件用于實例研究,驗證所提出方法的有效性。
2集成測試方法
常用的集成測試方法主要有基于調(diào)用圖的集成測試、基于分解的集成測試以及基于類間繼承關(guān)系的集成測試,下面具體介紹這三種集成測試方法。
2.1基于調(diào)用圖的集成測試
根據(jù)模塊或者函數(shù)之間的調(diào)用關(guān)系,采用調(diào)用圖的方式可以使測試更趨向于結(jié)構(gòu)性,同時免除了樁/驅(qū)動器的開發(fā)工作量?;谡{(diào)用圖的集成測試包括成對集成測試和相鄰集成測試。成對集成測試是為了免除樁驅(qū)動器的開發(fā),對調(diào)用圖中的每條邊進行一個集成測試;相鄰集成測試是將一個節(jié)點的所有鄰居集成在一起,包括所有直接前驅(qū)節(jié)點和直接后繼節(jié)點。
基于調(diào)用圖的集成測試的優(yōu)點是可以降低集成測試的會話數(shù)量,所需測試時間短;其缺點是調(diào)用分析的過程比較復(fù)雜,對于出現(xiàn)問題的部分很難定位。該方法適合存在多調(diào)用的模塊或軟件。
2.2基于分解的集成測試
基于分解的集成測試是基于軟件功能分解的測試,包括非漸增式集成測試和漸增式集成測試兩種方法。非漸增式集成測試是采取一步到位的方式來構(gòu)造函數(shù),按照程序功能結(jié)構(gòu)圖將各個模塊連接起來作為一個整體進行測試;漸增式集成測試是從一個模塊開始,邊組裝邊測試,同時又分為自頂向下集成、自底向上集成和混合集成。
基于分解的集成測試優(yōu)點是測試結(jié)構(gòu)清晰,能夠方便測試人員定位異常;其缺點是測試過程中需要開發(fā)樁或驅(qū)動,工作量較大并增加了測試的難度。該方法適合系統(tǒng)結(jié)構(gòu)層次清晰具有交互復(fù)雜的模塊或軟件。
2.3基于類間繼承關(guān)系的集成測試
基于類間繼承關(guān)系的測試首先通過測試獨立類(即非系統(tǒng)中已經(jīng)測試正確的祖先類的子類)來開始構(gòu)造系統(tǒng),在完成獨立類測試后,下一層繼承獨立類的類(依賴類)繼續(xù)被測試,這個依賴類層次的測試序列一直持續(xù)到構(gòu)造完整的系統(tǒng)。
基于類間繼承關(guān)系的集成測試的優(yōu)點是測試分析過程簡單,測試全面;其缺點是被測試集合較多,測試周期長,與單元測試有重復(fù)。該方法適用于使用面向?qū)ο缶幊烧Z言編寫的程序軟件。
3具體應(yīng)用
上述討論的通用集成測試方法,根據(jù)電廠DCS實時數(shù)據(jù)庫特性,進行集成測試方法的選用,并將調(diào)用圖和基于類間繼承關(guān)系相結(jié)合的方法應(yīng)用在電廠DCS實時數(shù)據(jù)庫的集成測試中,證明相結(jié)合方法能夠有效提高測試準確度,下面選用實時數(shù)據(jù)庫內(nèi)核部分進行集成測試方法的應(yīng)用。
3.1實時數(shù)據(jù)庫內(nèi)核
實時數(shù)據(jù)庫內(nèi)核作為一個數(shù)據(jù)處理中心,提供了對外接口,這些接口函數(shù)是其他軟件(如HMI、控制器)對實時數(shù)據(jù)庫內(nèi)核的調(diào)用方式。即這些接口函數(shù),是由具有調(diào)用關(guān)系的一些函數(shù)組成的;實時數(shù)據(jù)庫內(nèi)核是采用C++語言編寫,其程序編程的方式是采用了面向?qū)ο蟮木幊?,主要進行類的編寫;實時數(shù)據(jù)庫內(nèi)核是采用類間獨立的函數(shù)組成的,這些函數(shù)本身結(jié)構(gòu)關(guān)系獨立、交互關(guān)系較弱。
所以,根據(jù)實時數(shù)據(jù)庫內(nèi)核本身的特點,基于調(diào)用圖的集成測試方法和基于類間繼承的集成測試方法更適合對實時數(shù)據(jù)庫內(nèi)核進行集成測試。
3.2采用調(diào)用圖集成測試方法
在實時庫內(nèi)核模塊體系結(jié)構(gòu)中存在實時數(shù)據(jù)庫內(nèi)核對外接口,分析接口函數(shù)的調(diào)用圖,接口函數(shù)本身是將流程圖上所有相鄰的函數(shù)集成在一起。在實時數(shù)據(jù)庫內(nèi)核中共有35個接口函數(shù),下面以添加標簽點函數(shù)(AddTag)為列,具體執(zhí)行調(diào)用圖集成測試方法:
3.2.1AddTag調(diào)用圖分析
圖1是AddTag接口函數(shù)實現(xiàn)過程調(diào)用的所有函數(shù)流程圖。
函數(shù)說明:添加一個標簽點,并為其賦予基本屬性。如下表所示:
3.2.3AddTag具體測試及結(jié)果
通過分析AddTag接口調(diào)用流程圖和AddTag函數(shù),給出具體的測試思路和方法并執(zhí)行測試,得出最后的測試結(jié)果:
測試思路為:給出函數(shù)的輸人值,查看函數(shù)的返回值。具體設(shè)計為下表所示:
測試方法:按照上述測試思路編制測試代碼,在測試環(huán)境下執(zhí)行測試代碼。具體測試偽代碼編制如下圖:
測試結(jié)果:在輸入中配置正確的屬性,標簽名合法正確,測試執(zhí)行測試代碼后,發(fā)現(xiàn)返回值是34587;這條測試代碼是不通過的。
根據(jù)測試返回值發(fā)現(xiàn)異常是添加標簽點屬性值違法。但是無法確認是添加基本屬性值違法,還是添加模擬量屬性值違法。