袁瑞銘,巨漢基,汪萍萍,宋錫強(qiáng),丁恒春,劉巖
(1. 國(guó)網(wǎng)冀北電力有限公司電力科學(xué)研究院,北京 100045; 2. 華立科技股份有限公司,杭州 310023)
智能電網(wǎng)的發(fā)展對(duì)智能電能表功能設(shè)計(jì)提出越來(lái)越多的要求,軟件的規(guī)模及復(fù)雜性隨之增加[1],因而軟件引起的設(shè)備故障率逐步攀升。因?yàn)檐浖l(fā)的故障都是批量故障,所以研究智能電能表軟件可靠的測(cè)試方法已經(jīng)成為當(dāng)務(wù)之急[2]。目前智能電能表軟件測(cè)試主要集中在常規(guī)功能符合性測(cè)試和通信規(guī)約一致性測(cè)試,也有研究機(jī)構(gòu)開(kāi)展了針對(duì)電能表軟件特定功能的白盒測(cè)試或灰盒測(cè)試[3]。上述方法一般以手工測(cè)試為主,測(cè)試效率低,對(duì)于軟件深層次缺陷點(diǎn)難以觸及,測(cè)試的覆蓋率、深度不夠,不能有效控制智能電能表軟件質(zhì)量。
分析了智能電能表典型軟件故障模式,在此基礎(chǔ)上提出了基于黑盒技術(shù)的電能表軟件測(cè)試方法,設(shè)計(jì)了針對(duì)各種故障模式的測(cè)試用例,提高了測(cè)試的深度和測(cè)試覆蓋率。在此基礎(chǔ)上,研制了智能電能表軟件黑盒測(cè)試平臺(tái),開(kāi)展了大量的試驗(yàn),驗(yàn)證了該方法的可行性和合理性。
通過(guò)對(duì)105例電能表軟件故障案例進(jìn)行分析(現(xiàn)場(chǎng)運(yùn)行故障50例,實(shí)驗(yàn)室激發(fā)故障55例),電能表功能故障主要為通信、電量、顯示、費(fèi)控、時(shí)鐘、時(shí)段費(fèi)率故障,占總故障概率的70%以上。軟件故障模式主要包括數(shù)據(jù)故障、程序故障、產(chǎn)品特性影響的停電、上下電故障和硬件或外界環(huán)境干擾所導(dǎo)致的軟件故障。其中數(shù)據(jù)類(lèi)故障含通信數(shù)據(jù)類(lèi)故障、輸入型數(shù)據(jù)故障、輸出型數(shù)據(jù)故障、數(shù)據(jù)存儲(chǔ)類(lèi)故障,程序故障含異常復(fù)位、邏輯控制故障、功能缺失、功能設(shè)計(jì)與需求不符[4-5]。
結(jié)合對(duì)電能表軟件故障模式的分析,綜合利用各種方法設(shè)計(jì)測(cè)試用例[6-10]。
使用功能分析法將電能表的主要功能進(jìn)行逐層分解,細(xì)化到每一個(gè)具體的小功能點(diǎn),對(duì)每個(gè)測(cè)試點(diǎn)設(shè)計(jì)測(cè)試用例。主要功能點(diǎn)包括計(jì)量、結(jié)算日、時(shí)鐘、需量、時(shí)段、費(fèi)率、凍結(jié)、通信等。
使用有效等價(jià)類(lèi)劃分法將每個(gè)功能點(diǎn)的全部輸入數(shù)據(jù)劃分為若干等價(jià)類(lèi),在每一個(gè)等價(jià)類(lèi)中取一個(gè)數(shù)據(jù)作為測(cè)試的輸入條件。使用少量代表性的測(cè)試數(shù)據(jù)取得較好的測(cè)試結(jié)果[11]。
針對(duì)特殊數(shù)據(jù)(邊界、容錯(cuò)、極限等)和特殊處理場(chǎng)景(正異常停上電),使用無(wú)效等價(jià)類(lèi)法、邊界值法、極限法設(shè)計(jì)深度測(cè)試用例,設(shè)計(jì)方法如下:
(1)使用無(wú)效等價(jià)類(lèi)法,選擇電能表計(jì)量、結(jié)算日、時(shí)鐘、時(shí)段費(fèi)率、凍結(jié)等模塊功能點(diǎn)的無(wú)效數(shù)據(jù)作為輸入,驗(yàn)證非合理輸入情況下軟件的容錯(cuò)性能;
(2)使用邊界值法,對(duì)電能表各模塊程序選取在輸入域、輸出域、狀態(tài)轉(zhuǎn)換、功能界限的等于、剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù);
(3)使用極限法,分析電能表各模塊程序可能存在的極限狀態(tài)下的錯(cuò)誤,列出可能有錯(cuò)誤或容易發(fā)生故障的情況,驗(yàn)證在并發(fā)和極限輸入狀態(tài)下是否還能正常工作。
根據(jù)105例軟件故障案例分析,通信故障、計(jì)量故障、結(jié)算日故障是故障率較高的三大功能模塊,占比20%、25%、15%。所以文中以通信波特率邊界測(cè)試、結(jié)算日容錯(cuò)及干擾轉(zhuǎn)存測(cè)試、極限負(fù)荷及全費(fèi)率切換計(jì)量測(cè)試為例,介紹如何采用無(wú)效等價(jià)類(lèi)法、邊界值法、極限法、場(chǎng)景法進(jìn)行電能表軟件測(cè)試用例設(shè)計(jì)。
正常通信波特率值為2 400 bps、4 800 bps、9 600 bps,由于現(xiàn)場(chǎng)環(huán)境及電磁干擾,導(dǎo)致默認(rèn)波特率值發(fā)生改變,造成通信失敗。
應(yīng)用邊界值分析法,設(shè)計(jì)波特率邊界數(shù)據(jù):2 400 bps±3%、4 800 bps±3%、9 600 bps±3%,驗(yàn)證不同波特率情況下通信成功率,試驗(yàn)中觀察終端是否出現(xiàn)復(fù)位、通信口死掉等現(xiàn)象。測(cè)試流程如圖1所示。
應(yīng)用無(wú)效等價(jià)類(lèi)設(shè)計(jì)結(jié)算日參數(shù)容錯(cuò)測(cè)試用例。
(1)參數(shù)設(shè)置與容錯(cuò)
應(yīng)用有效等價(jià)類(lèi)設(shè)計(jì)1日~28日、0~23點(diǎn)的測(cè)試用例,電能表軟件應(yīng)返回正確應(yīng)答幀,回抄參數(shù)與設(shè)置參數(shù)一致。應(yīng)用無(wú)效等價(jià)類(lèi)設(shè)計(jì)月份、日、整點(diǎn)、進(jìn)制容錯(cuò)測(cè)試用例,例如設(shè)置為13月、29日、24點(diǎn)、0A、0B等數(shù)值,電能表軟件應(yīng)返回錯(cuò)誤應(yīng)答幀,回抄參數(shù)不變。
圖1 波特率邊界值測(cè)試流程圖
(2)極限或特殊場(chǎng)景下的轉(zhuǎn)存驗(yàn)證
應(yīng)用極限法設(shè)計(jì)極限電壓、極限負(fù)載及大數(shù)據(jù)處理情況下測(cè)試用例。利用場(chǎng)景設(shè)計(jì)上電、下電特殊場(chǎng)景下的測(cè)試用例,驗(yàn)證轉(zhuǎn)存可靠性。
測(cè)試用例包括:
(1)連續(xù)施加485或載波等通訊干擾;
(2)設(shè)置定時(shí)凍結(jié)、日凍結(jié)、整點(diǎn)凍結(jié)與結(jié)算日轉(zhuǎn)存為同一時(shí)刻;
(3)施加極限電壓(如0.7Un、1.2Un);
(4)施加不同負(fù)載;
(5)在轉(zhuǎn)存前停電,跨過(guò)結(jié)算日后上電。
測(cè)試流程如圖2所示。
圖2 極限場(chǎng)景下的轉(zhuǎn)存驗(yàn)證流程圖
應(yīng)用極限法和邊界值分析法設(shè)計(jì)測(cè)試用例,驗(yàn)證極限負(fù)載及全費(fèi)率切換條件下分時(shí)、分相計(jì)量和存儲(chǔ)的準(zhǔn)確度。
測(cè)試用例包括電量進(jìn)位、全費(fèi)率切換、上下電、極限負(fù)載長(zhǎng)時(shí)間運(yùn)行等情況下的計(jì)量準(zhǔn)確度。
詳細(xì)測(cè)試方案設(shè)計(jì)如下:
根據(jù)設(shè)定的走字時(shí)間(如:4小時(shí)),預(yù)置時(shí)段費(fèi)率參數(shù)(如:9點(diǎn)00分-尖、9點(diǎn)15分-峰、9點(diǎn)30分-平、9點(diǎn)45分-谷),配置極限負(fù)載點(diǎn)(如:Imin及Imax),在功率因數(shù)1.0條件下進(jìn)行正向有功走字試驗(yàn)。在走字期間:
(1)根據(jù)設(shè)定的間隔(如1分鐘)自動(dòng)讀取標(biāo)準(zhǔn)表的功率,并按平均功率計(jì)算理論電量;
(2)根據(jù)設(shè)定的間隔(如:1小時(shí)),通過(guò)RS485、載波等通訊方式自動(dòng)讀取被測(cè)表當(dāng)前電量,驗(yàn)證能量遞增情況;
(3)通過(guò)修改時(shí)間確保每個(gè)費(fèi)率進(jìn)行走字測(cè)試;
(4)自動(dòng)控制臺(tái)體改變負(fù)載點(diǎn),驗(yàn)證每個(gè)負(fù)載點(diǎn)的準(zhǔn)確度。
走字時(shí)間到后自動(dòng)切換為無(wú)負(fù)載運(yùn)行:
(1)比對(duì)理論電量與電能表記錄電量的誤差;
(2)比較總電量與分時(shí)電量之和的一致性;
(3)比較總電量與分相電量之和的一致性。
正向有功走字試驗(yàn)完成后自動(dòng)切換到反向有功走字試驗(yàn),測(cè)試方案同正向有功走字試驗(yàn)。測(cè)試流程如圖3所示。
圖3 計(jì)量準(zhǔn)確度測(cè)試流程圖
軟件黑盒測(cè)試平臺(tái)能夠完成測(cè)試方案管理、自動(dòng)測(cè)試、協(xié)議配置、檔案管理、設(shè)備調(diào)試、報(bào)告生成、故障信息錄入。平臺(tái)采用基于.NET平臺(tái)的多層技術(shù)架構(gòu),提高系統(tǒng)的靈活性、可擴(kuò)展性、安全可靠性,軟件開(kāi)發(fā)使用C#語(yǔ)言,數(shù)據(jù)庫(kù)為MySQL,業(yè)務(wù)架構(gòu)設(shè)計(jì)主要包括支持層、數(shù)據(jù)層和應(yīng)用層,如圖4所示。
圖4 軟件黑盒測(cè)試平臺(tái)業(yè)務(wù)架構(gòu)
測(cè)試平臺(tái)由測(cè)試軟件和測(cè)試臺(tái)體、服務(wù)器及加密機(jī)組成。測(cè)試臺(tái)體包括電能表檢驗(yàn)臺(tái)體、自動(dòng)機(jī)械手、大功率無(wú)線電近場(chǎng)輻射模塊、多通道通信檢測(cè)及信號(hào)干擾注入模塊、負(fù)載紋波檢測(cè)模塊等。測(cè)試軟件基于腳本技術(shù),實(shí)現(xiàn)黑盒測(cè)試用例的方案編寫(xiě),根據(jù)面向?qū)ο蟛煌贫ㄎ宕箢?lèi)基礎(chǔ)操作規(guī)范,包括表計(jì)操作、臺(tái)體操作、加密機(jī)操作、函數(shù)運(yùn)算、信息提示,從而使測(cè)試方案編制結(jié)構(gòu)化、標(biāo)準(zhǔn)化。首先根據(jù)測(cè)試方案設(shè)計(jì)每個(gè)測(cè)試用例的測(cè)試步驟,每個(gè)測(cè)試步驟會(huì)對(duì)應(yīng)一個(gè)最小單元的基礎(chǔ)操作,將所有測(cè)試步驟按照基礎(chǔ)操作編制,即形成可實(shí)施的動(dòng)測(cè)試方案。加密機(jī)提供智能電能表費(fèi)控功能加密服務(wù),服務(wù)器提供數(shù)據(jù)訪問(wèn)存儲(chǔ)服務(wù)。
測(cè)試流程如圖5所示,測(cè)試軟件首先根據(jù)對(duì)被測(cè)的電表測(cè)試需求、信息進(jìn)行項(xiàng)目配置,定義測(cè)試項(xiàng)、測(cè)試步驟、測(cè)試計(jì)劃,建立測(cè)試項(xiàng)目,然后軟件下達(dá)測(cè)試項(xiàng)目及命令,根據(jù)對(duì)應(yīng)項(xiàng)目的測(cè)試方案對(duì)測(cè)試臺(tái)體和電能表進(jìn)行控制和數(shù)據(jù)通信,協(xié)同各設(shè)備逐個(gè)完成一系列測(cè)試用例的自動(dòng)化測(cè)試,并記錄測(cè)試數(shù)據(jù)和結(jié)果,上傳給測(cè)試軟件,測(cè)試軟件進(jìn)行測(cè)試結(jié)果分析及產(chǎn)生測(cè)試報(bào)告,報(bào)告為word和excel格式。
測(cè)試平臺(tái)可兼容不同廠家的單、三相電能表,方案可編輯、組合和配置,通信協(xié)議可擴(kuò)展。
圖5 自動(dòng)化測(cè)試流程
按照以上黑盒測(cè)試用例設(shè)計(jì)思路,重點(diǎn)采用無(wú)效等價(jià)類(lèi)、邊界值、極限法等方法設(shè)計(jì)18項(xiàng)測(cè)試用例,主要包括計(jì)量、結(jié)算日、時(shí)鐘、需量、時(shí)段費(fèi)率、凍結(jié)、拉合閘、通信、規(guī)約遍歷、負(fù)荷記錄、事件記錄、存儲(chǔ)等功能模塊的容錯(cuò)、邊界及極限、上下電類(lèi)測(cè)試用例。測(cè)試項(xiàng)目如表1所示。
表1 電能表軟件測(cè)試項(xiàng)目
選取實(shí)驗(yàn)室常規(guī)檢測(cè)已合格的24個(gè)廠家的電能表進(jìn)行以上18個(gè)項(xiàng)目的深度測(cè)試,發(fā)現(xiàn)各廠家的電能表軟件均存在缺陷。表3列舉了部分較嚴(yán)重的不合格項(xiàng),包括極限情況下電量少計(jì)、停上電時(shí)電量未轉(zhuǎn)存或記錄錯(cuò)亂、時(shí)段費(fèi)率優(yōu)先級(jí)設(shè)置錯(cuò)誤、掉電事件記錄出錯(cuò)、波特率邊界值時(shí)通信失敗、上電時(shí)日凍結(jié)不補(bǔ)凍、廣播校時(shí)容錯(cuò)性差、需量周期設(shè)置錯(cuò)誤等。
表2 部分嚴(yán)重不合格項(xiàng)記錄
測(cè)試結(jié)果充分驗(yàn)證了測(cè)試平臺(tái)可有效檢測(cè)出電能表軟件的錯(cuò)誤,提高軟件質(zhì)量可靠性。并且以上測(cè)試項(xiàng)目可以自動(dòng)執(zhí)行,1天時(shí)間即可完成,測(cè)試效率高。
首先對(duì)電能表軟件故障模式進(jìn)行分析,在此基礎(chǔ)上研究軟件黑盒測(cè)試方法,采用無(wú)效等價(jià)類(lèi)法、邊界值分析法、極限法等方法設(shè)計(jì)測(cè)試用例,覆蓋電能表軟件的各種典型故障模式。開(kāi)發(fā)了軟件黑盒測(cè)試平臺(tái),實(shí)現(xiàn)了測(cè)試的自動(dòng)化。測(cè)試結(jié)果表明,該測(cè)試平臺(tái)達(dá)到了設(shè)計(jì)目的,驗(yàn)證了方法的可行性和合理性,可有效觸發(fā)電能表軟件的各類(lèi)深層次缺陷,顯著提升電能表軟件質(zhì)量。