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