吳 鍵,張志凱,邵建文
(浙江省計量科學研究院,杭州 310013)
電子計價秤作為人們?nèi)粘I钪凶畛R姷拿裆嬃科骶咧唬恢痹诎傩丈钪邪缪葜浅V匾淖饔?,但近些年市場上一些黑心商人利用電子計價秤軟件作弊,使出售的貨物缺斤少兩,同時關于電子計價秤作弊的投訴也越來越多,因此電子計價秤軟件測試的研究顯得非常重要。
據(jù)國家質(zhì)檢總局2012年的數(shù)據(jù)顯示,電子計價秤質(zhì)量抽樣合格率僅為63.3%。電子計價秤硬件裝置主要由稱重傳感器、按鍵、主板、LED數(shù)碼管或液晶顯示屏構(gòu)成。在電子秤硬件上的作弊比較容易察覺,而軟件上的作弊隱藏較深不易發(fā)現(xiàn),因此目前市場上電子計價秤多是通過修改軟件進行作弊[1]。
2008年,國際法制計量組織(OIML)正式發(fā)布了《計量器具軟件通用要求》的法制管理文件,對計量器具的軟件檢測提出了相應的要求。2007年,國家質(zhì)檢總局下達指示制定了計量器具軟件測評指南(中華人民共和國國家計量技術規(guī)范JJF1182-2007[2]),尤其是對電子計價秤的軟件測評方法提出了新要求,接著于2012年實施了《數(shù)字指示秤軟件可信度測評方法JJF 1365-2012》[3]。文獻[4-5]提出了一種嵌入式計量器具便于欺騙性使用的黑盒檢測方法,但前期測試準備過于繁瑣。文獻[6]對嵌入式軟件的計量器具防作弊系統(tǒng)進行了研究,將檢測時提取的軟件內(nèi)部信息與審批前標識的軟件特征信息進行比對,來檢測計量器具的軟件作弊。由于電子計價秤的軟件標識涉及到生產(chǎn)廠商利潤,該方法操作具有一定的難度。
為解決電子計價秤軟件測試遇到的難題,文中搭建了一套電子計價秤的軟件仿真測試系統(tǒng),基于VC++編寫了電子計價秤仿真測試程序,對市場上普遍流通的電子計價秤軟件進行了測試,實驗結(jié)果表明該套系統(tǒng)能夠?qū)γ艽a作弊類電子計價秤進行有效檢測,同時也驗證了文中仿真測試程序的有效性。
電子計價秤主要包括稱重模塊、顯示模塊以及按鍵模塊3部分,本軟件仿真測試系統(tǒng)用軟件驅(qū)動的仿真器來代替真實的運行環(huán)境,模擬真實運行環(huán)境的各種功能。其硬件結(jié)構(gòu)主要由可編程多路繼電器、電壓源及機器視覺系統(tǒng)組成,繼電器用來模擬電子計價秤的按鍵功能,電壓源用來模擬電子計價秤的稱重傳感器信號輸入,機器視覺系統(tǒng)則是用來捕獲電子計價秤的輸出信息。整體電子計價秤的軟件仿真測試系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)Fig.1 Hardware structure of system
目前,常用電子計價秤的稱重傳感器一般是由彈性體、接成傳感橋路的電阻應變片和向橋路供電的直流穩(wěn)壓電源構(gòu)成。當壓力作用在傳感器上時,微小的電流變化通過惠斯通電橋轉(zhuǎn)化成微小的電壓變化,通過A/D轉(zhuǎn)換,量化顯示在顯示屏上。針對這一原理,本系統(tǒng)將電子計價秤電路板上與電橋壓差輸出端相連的部分斷開并重新連接至外部電壓源上,使用電壓源輸出微小壓差模擬稱重。
顯示模塊電子計價秤顯示屏分LED數(shù)碼顯示和LCD顯示2種,一般可采用讀取顯示屏電路管腳高低電平來獲取數(shù)據(jù)并顯示,但是這種方法連線復雜、不易操作、容易出錯,且不同電子計價秤的LED數(shù)碼管引腳封裝不同,連線也會產(chǎn)生一定的變化。針對這一現(xiàn)象,本系統(tǒng)采用機器視覺系統(tǒng),通過攝像頭讀入電子計價秤的顯示屏信息,最后利用圖像識別算法進行字符識別,并將結(jié)果發(fā)送到上位機顯示。在恒定光照條件下,對字符識別正確率進行了測試,字符識別正確率達到98%以上,表明該系統(tǒng)具有良好的實用性和通用型。
按鍵模塊主流電子計價秤使用的是矩陣式鍵盤,針對此類鍵盤的特點,本系統(tǒng)采用可編程控制的多路繼電器,通過串口通信協(xié)議,發(fā)出指令控制繼電器通斷,實現(xiàn)電子計價秤面板上所有按鍵功能。
電子計價秤的軟件自動仿真測試系統(tǒng)軟件流程如圖2所示。
圖2 測試流程Fig.2 Flow chart of testing
程序開啟后先根據(jù)試驗人員的設置完成初始化,隨后,分別開啟稱重信號模擬軟件模塊、鍵盤模擬軟件模塊、圖像識別軟件模塊,試驗人員可進行相應的調(diào)試檢測。調(diào)試完畢后,試驗人員可分別選擇進行包括手動測試、自動測試、綜合作弊查找測試等。系統(tǒng)在自動測試結(jié)束后自動生成測試報告。
軟件開發(fā)平臺為VS2010[7],采用VC++編寫仿真測試軟件上位機手動測試界面及自動測試界面分別如圖3、圖4所示。
圖3 仿真軟件手動測試界面Fig.3 Manual test interface of simulation testing system
圖4 仿真軟件自動測試界面Fig.4 Automatic test interface of simulation testing system
手動測試模塊試驗人員可對整套系統(tǒng)對被測電子計價秤進行初步的檢測,包括按鍵控制、質(zhì)量控制及數(shù)據(jù)的采集。
自動測試模塊試驗人員先分別對需用到的按鍵、每次按鍵個數(shù)、用例個數(shù)及允許誤差進行設置。完成設置后,試驗人員可選擇單價及質(zhì)量的輸出模式,質(zhì)量輸出模式包括固定輸出、隨機輸出和間隔輸出,其中,隨機輸出和間隔輸出均需設置載荷區(qū)間;單價輸出模式包括固定輸出和隨機輸出。
完成設置后,開始測試,試驗人員可根據(jù)實際情況分別進行暫停測試、停止測試、重新測試、保存結(jié)果等操作。
從表1可以看出,在5組連續(xù)50次按鍵仿真測試試驗中,試驗結(jié)果正確率接近100%,出現(xiàn)1次正確率為98%是由圖像識別系統(tǒng)字符識別錯誤造成的。
表1 連續(xù)50次按鍵仿真測試結(jié)果正確率Tab.1 Accuracy of 50 consecutive times key-press simulation
針對密碼作弊類電子計價秤的測評,需在綜合作弊查找模塊中進行,綜合作弊查找模塊界面如圖5所示。
綜合作弊查找模塊,試驗人員先勾選相應的組合、預設計的標準稱重、按鍵時長及按鍵時間間隔,本系統(tǒng)最多可測試4位數(shù)字配3位功能鍵的密碼組合。點擊開始測試,系統(tǒng)將自動控制電子計價秤進行按鍵,每次按鍵后,系統(tǒng)會控制電壓源輸入標準稱重,并附以固定單價。
圖5 綜合作弊查找模塊界面Fig.5 Interface of comprehensive cheating search
若最后總價顯示誤差在10%以內(nèi)即為合格,若出現(xiàn)不合格情況,則將當前按鍵組合保存為可疑項在測試結(jié)果中顯示。試驗人員將在試驗結(jié)束后使用校驗鍵盤進行校驗,以檢查作弊碼是否已找到。
電子計價秤軟件仿真測試系統(tǒng)基于VC++編寫軟件測試界面,采用機器識別系統(tǒng)對顯示部分進行字符識別,系統(tǒng)測試包含三大功能:手動測試、自動測試、綜合作弊查找測試。測試結(jié)果表明該系統(tǒng)可用于不同電子計價秤軟件作弊功能測試,具有一定的實用性和通用性。電子計價秤是關于民生計量的一種計量器具,該套系統(tǒng)研制體現(xiàn)了計量的公正性,后期將繼續(xù)對電子計價秤軟件可靠性和評價體系進行更深入的研究。
[1]黃松濤.電子計價秤軟件作弊功能分析及對策[J].上海計量測試,2009(9):35-37.
[2]國家質(zhì)量監(jiān)督檢驗檢疫總局.JJF1182-2007計量器具軟件測評指南[S].北京:中國質(zhì)檢出版社,2007.
[3]國家質(zhì)量監(jiān)督檢驗檢疫總局.JJF1365-2012數(shù)字指示秤軟件可信度測評方法[S].北京:中國質(zhì)檢出版社,2007.
[4]崔偉群.電子計價秤軟件自動測試系統(tǒng)[J].現(xiàn)代測量與實驗室管理,2011(2):3-6.
[5]崔偉群.電子計價秤方便于欺騙性使用的黑盒檢測方法[J].中國計量,2011(5):98-100.
[6]陳洪軍,黃衛(wèi)祖.嵌入軟件的計量器具防弊系統(tǒng)研究[J].計算機仿真,2012,29(12):397-400.
[7]柳勝.軟件自動化測試框架設計與實踐[M].北京:人民郵電出版社,2009.