袁瑞銘,巨漢基,汪萍萍,宋錫強(qiáng),丁恒春,劉巖
(1. 國網(wǎng)冀北電力有限公司電力科學(xué)研究院,北京 100045; 2. 華立科技股份有限公司,杭州 310023)
智能電網(wǎng)的發(fā)展對智能電能表功能設(shè)計(jì)提出越來越多的要求,軟件的規(guī)模及復(fù)雜性隨之增加[1],因而軟件引起的設(shè)備故障率逐步攀升。因?yàn)檐浖l(fā)的故障都是批量故障,所以研究智能電能表軟件可靠的測試方法已經(jīng)成為當(dāng)務(wù)之急[2]。目前智能電能表軟件測試主要集中在常規(guī)功能符合性測試和通信規(guī)約一致性測試,也有研究機(jī)構(gòu)開展了針對電能表軟件特定功能的白盒測試或灰盒測試[3]。上述方法一般以手工測試為主,測試效率低,對于軟件深層次缺陷點(diǎn)難以觸及,測試的覆蓋率、深度不夠,不能有效控制智能電能表軟件質(zhì)量。
分析了智能電能表典型軟件故障模式,在此基礎(chǔ)上提出了基于黑盒技術(shù)的電能表軟件測試方法,設(shè)計(jì)了針對各種故障模式的測試用例,提高了測試的深度和測試覆蓋率。在此基礎(chǔ)上,研制了智能電能表軟件黑盒測試平臺,開展了大量的試驗(yàn),驗(yàn)證了該方法的可行性和合理性。
通過對105例電能表軟件故障案例進(jìn)行分析(現(xiàn)場運(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ù)類故障含通信數(shù)據(jù)類故障、輸入型數(shù)據(jù)故障、輸出型數(shù)據(jù)故障、數(shù)據(jù)存儲類故障,程序故障含異常復(fù)位、邏輯控制故障、功能缺失、功能設(shè)計(jì)與需求不符[4-5]。
結(jié)合對電能表軟件故障模式的分析,綜合利用各種方法設(shè)計(jì)測試用例[6-10]。
使用功能分析法將電能表的主要功能進(jìn)行逐層分解,細(xì)化到每一個(gè)具體的小功能點(diǎn),對每個(gè)測試點(diǎn)設(shè)計(jì)測試用例。主要功能點(diǎn)包括計(jì)量、結(jié)算日、時(shí)鐘、需量、時(shí)段、費(fèi)率、凍結(jié)、通信等。
使用有效等價(jià)類劃分法將每個(gè)功能點(diǎn)的全部輸入數(shù)據(jù)劃分為若干等價(jià)類,在每一個(gè)等價(jià)類中取一個(gè)數(shù)據(jù)作為測試的輸入條件。使用少量代表性的測試數(shù)據(jù)取得較好的測試結(jié)果[11]。
針對特殊數(shù)據(jù)(邊界、容錯(cuò)、極限等)和特殊處理場景(正異常停上電),使用無效等價(jià)類法、邊界值法、極限法設(shè)計(jì)深度測試用例,設(shè)計(jì)方法如下:
(1)使用無效等價(jià)類法,選擇電能表計(jì)量、結(jié)算日、時(shí)鐘、時(shí)段費(fèi)率、凍結(jié)等模塊功能點(diǎn)的無效數(shù)據(jù)作為輸入,驗(yàn)證非合理輸入情況下軟件的容錯(cuò)性能;
(2)使用邊界值法,對電能表各模塊程序選取在輸入域、輸出域、狀態(tài)轉(zhuǎn)換、功能界限的等于、剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù);
(3)使用極限法,分析電能表各模塊程序可能存在的極限狀態(tài)下的錯(cuò)誤,列出可能有錯(cuò)誤或容易發(fā)生故障的情況,驗(yàn)證在并發(fā)和極限輸入狀態(tài)下是否還能正常工作。
根據(jù)105例軟件故障案例分析,通信故障、計(jì)量故障、結(jié)算日故障是故障率較高的三大功能模塊,占比20%、25%、15%。所以文中以通信波特率邊界測試、結(jié)算日容錯(cuò)及干擾轉(zhuǎn)存測試、極限負(fù)荷及全費(fèi)率切換計(jì)量測試為例,介紹如何采用無效等價(jià)類法、邊界值法、極限法、場景法進(jìn)行電能表軟件測試用例設(shè)計(jì)。
正常通信波特率值為2 400 bps、4 800 bps、9 600 bps,由于現(xiàn)場環(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)象。測試流程如圖1所示。
應(yīng)用無效等價(jià)類設(shè)計(jì)結(jié)算日參數(shù)容錯(cuò)測試用例。
(1)參數(shù)設(shè)置與容錯(cuò)
應(yīng)用有效等價(jià)類設(shè)計(jì)1日~28日、0~23點(diǎn)的測試用例,電能表軟件應(yīng)返回正確應(yīng)答幀,回抄參數(shù)與設(shè)置參數(shù)一致。應(yīng)用無效等價(jià)類設(shè)計(jì)月份、日、整點(diǎn)、進(jìn)制容錯(cuò)測試用例,例如設(shè)置為13月、29日、24點(diǎn)、0A、0B等數(shù)值,電能表軟件應(yīng)返回錯(cuò)誤應(yīng)答幀,回抄參數(shù)不變。

圖1 波特率邊界值測試流程圖
(2)極限或特殊場景下的轉(zhuǎn)存驗(yàn)證
應(yīng)用極限法設(shè)計(jì)極限電壓、極限負(fù)載及大數(shù)據(jù)處理情況下測試用例。利用場景設(shè)計(jì)上電、下電特殊場景下的測試用例,驗(yàn)證轉(zhuǎn)存可靠性。
測試用例包括:
(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)存前停電,跨過結(jié)算日后上電。
測試流程如圖2所示。

圖2 極限場景下的轉(zhuǎn)存驗(yàn)證流程圖
應(yīng)用極限法和邊界值分析法設(shè)計(jì)測試用例,驗(yàn)證極限負(fù)載及全費(fèi)率切換條件下分時(shí)、分相計(jì)量和存儲的準(zhǔn)確度。
測試用例包括電量進(jìn)位、全費(fèi)率切換、上下電、極限負(fù)載長時(shí)間運(yùn)行等情況下的計(jì)量準(zhǔn)確度。
詳細(xì)測試方案設(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分鐘)自動讀取標(biāo)準(zhǔn)表的功率,并按平均功率計(jì)算理論電量;
(2)根據(jù)設(shè)定的間隔(如:1小時(shí)),通過RS485、載波等通訊方式自動讀取被測表當(dāng)前電量,驗(yàn)證能量遞增情況;
(3)通過修改時(shí)間確保每個(gè)費(fèi)率進(jìn)行走字測試;
(4)自動控制臺體改變負(fù)載點(diǎn),驗(yàn)證每個(gè)負(fù)載點(diǎn)的準(zhǔn)確度。
走字時(shí)間到后自動切換為無負(fù)載運(yùn)行:
(1)比對理論電量與電能表記錄電量的誤差;
(2)比較總電量與分時(shí)電量之和的一致性;
(3)比較總電量與分相電量之和的一致性。
正向有功走字試驗(yàn)完成后自動切換到反向有功走字試驗(yàn),測試方案同正向有功走字試驗(yàn)。測試流程如圖3所示。

圖3 計(jì)量準(zhǔn)確度測試流程圖
軟件黑盒測試平臺能夠完成測試方案管理、自動測試、協(xié)議配置、檔案管理、設(shè)備調(diào)試、報(bào)告生成、故障信息錄入。平臺采用基于.NET平臺的多層技術(shù)架構(gòu),提高系統(tǒng)的靈活性、可擴(kuò)展性、安全可靠性,軟件開發(fā)使用C#語言,數(shù)據(jù)庫為MySQL,業(yè)務(wù)架構(gòu)設(shè)計(jì)主要包括支持層、數(shù)據(jù)層和應(yīng)用層,如圖4所示。

圖4 軟件黑盒測試平臺業(yè)務(wù)架構(gòu)
測試平臺由測試軟件和測試臺體、服務(wù)器及加密機(jī)組成。測試臺體包括電能表檢驗(yàn)臺體、自動機(jī)械手、大功率無線電近場輻射模塊、多通道通信檢測及信號干擾注入模塊、負(fù)載紋波檢測模塊等。測試軟件基于腳本技術(shù),實(shí)現(xiàn)黑盒測試用例的方案編寫,根據(jù)面向?qū)ο蟛煌贫ㄎ宕箢惢A(chǔ)操作規(guī)范,包括表計(jì)操作、臺體操作、加密機(jī)操作、函數(shù)運(yùn)算、信息提示,從而使測試方案編制結(jié)構(gòu)化、標(biāo)準(zhǔn)化。首先根據(jù)測試方案設(shè)計(jì)每個(gè)測試用例的測試步驟,每個(gè)測試步驟會對應(yīng)一個(gè)最小單元的基礎(chǔ)操作,將所有測試步驟按照基礎(chǔ)操作編制,即形成可實(shí)施的動測試方案。加密機(jī)提供智能電能表費(fèi)控功能加密服務(wù),服務(wù)器提供數(shù)據(jù)訪問存儲服務(wù)。
測試流程如圖5所示,測試軟件首先根據(jù)對被測的電表測試需求、信息進(jìn)行項(xiàng)目配置,定義測試項(xiàng)、測試步驟、測試計(jì)劃,建立測試項(xiàng)目,然后軟件下達(dá)測試項(xiàng)目及命令,根據(jù)對應(yīng)項(xiàng)目的測試方案對測試臺體和電能表進(jìn)行控制和數(shù)據(jù)通信,協(xié)同各設(shè)備逐個(gè)完成一系列測試用例的自動化測試,并記錄測試數(shù)據(jù)和結(jié)果,上傳給測試軟件,測試軟件進(jìn)行測試結(jié)果分析及產(chǎn)生測試報(bào)告,報(bào)告為word和excel格式。
測試平臺可兼容不同廠家的單、三相電能表,方案可編輯、組合和配置,通信協(xié)議可擴(kuò)展。

圖5 自動化測試流程
按照以上黑盒測試用例設(shè)計(jì)思路,重點(diǎn)采用無效等價(jià)類、邊界值、極限法等方法設(shè)計(jì)18項(xiàng)測試用例,主要包括計(jì)量、結(jié)算日、時(shí)鐘、需量、時(shí)段費(fèi)率、凍結(jié)、拉合閘、通信、規(guī)約遍歷、負(fù)荷記錄、事件記錄、存儲等功能模塊的容錯(cuò)、邊界及極限、上下電類測試用例。測試項(xiàng)目如表1所示。

表1 電能表軟件測試項(xiàng)目
選取實(shí)驗(yàn)室常規(guī)檢測已合格的24個(gè)廠家的電能表進(jìn)行以上18個(gè)項(xiàng)目的深度測試,發(fā)現(xiàn)各廠家的電能表軟件均存在缺陷。表3列舉了部分較嚴(yán)重的不合格項(xiàng),包括極限情況下電量少計(jì)、停上電時(shí)電量未轉(zhuǎn)存或記錄錯(cuò)亂、時(shí)段費(fèi)率優(yōu)先級設(shè)置錯(cuò)誤、掉電事件記錄出錯(cuò)、波特率邊界值時(shí)通信失敗、上電時(shí)日凍結(jié)不補(bǔ)凍、廣播校時(shí)容錯(cuò)性差、需量周期設(shè)置錯(cuò)誤等。

表2 部分嚴(yán)重不合格項(xiàng)記錄
測試結(jié)果充分驗(yàn)證了測試平臺可有效檢測出電能表軟件的錯(cuò)誤,提高軟件質(zhì)量可靠性。并且以上測試項(xiàng)目可以自動執(zhí)行,1天時(shí)間即可完成,測試效率高。
首先對電能表軟件故障模式進(jìn)行分析,在此基礎(chǔ)上研究軟件黑盒測試方法,采用無效等價(jià)類法、邊界值分析法、極限法等方法設(shè)計(jì)測試用例,覆蓋電能表軟件的各種典型故障模式。開發(fā)了軟件黑盒測試平臺,實(shí)現(xiàn)了測試的自動化。測試結(jié)果表明,該測試平臺達(dá)到了設(shè)計(jì)目的,驗(yàn)證了方法的可行性和合理性,可有效觸發(fā)電能表軟件的各類深層次缺陷,顯著提升電能表軟件質(zhì)量。