電子計價秤軟件自動仿真測試系統的研制
為檢測市場上電子計價秤的軟件作弊行為,該文提出一套電子計價秤軟件自動仿真測試系統。 搭建了電子計價秤的軟件仿真測試系統的硬件裝置,實現機器識別系統進行電子秤字符識別、電壓源進行載荷模擬和采用繼電器進行按鍵模擬,并用VC++編寫了軟件自動仿真測試程序,對幾種不同類型的電子計價秤軟件進行了黑盒測試試驗。 試驗結果表明,該系統可用于電子計價秤的軟件測試,可檢測出電子計價秤軟件作弊問題;在對不同類型的電子計價秤試驗中,均取得了較好的測試結果,表明該測試系統穩定可靠且具有一定的通用性。
電子計價秤作為人們日常生活中最常見的民生計量器具之一,一直在百姓生活中扮演著非常重要的作用,但近些年市場上一些黑心商人利用電子計價秤軟件作弊,使出售的貨物缺斤少兩,同時關于電子計價秤作弊的投訴也越來越多,因此電子計價秤軟件測試的研究顯得非常重要。
據國家質檢總局 2012 年的數據顯示,電子計價秤質量抽樣合格率僅為 63.3%。 電子計價秤硬件裝置主要由稱重傳感器、按鍵、主板、LED 數碼管或液晶顯示屏構成。 在電子秤硬件上的作弊比較容易察覺,而軟件上的作弊隱藏較深不易發現,因此目前市場上電子計價秤多是通過修改軟件進行作弊。
2008 年 ,國際法制計量組織 (OIML)正式發布了《計量器具軟件通用要求》的法制管理文件,對計量器具的軟件檢測提出了相應的要求。 2007 年,國家質檢總局下達指示制定了計量器具軟件測評指南( 中華人民共和國國家計量技術規范 JJF1182-2007),尤其是對電子計價秤的軟件測評方法提出了新要求,接著于 2012 年實施了《數字指示秤軟件可信度測評方法 JJF 1365-2012》。 文獻提出了一種嵌入式計量器具便于欺騙性使用的黑盒檢測方法,但前期測試準備過于繁瑣。 文獻[6]對嵌入式軟件的計量器具防作弊系統進行了研究,將檢測時提取的軟件內部信息與審批前標識的軟件特征信息進行比對,來檢測計量器具的軟件作弊。 由于電子計價秤的軟件標識涉及到生產廠商利潤,該方法操作具有一定的難度。
為解決電子計價秤軟件測試遇到的難題,文中搭建了一套電子計價秤的軟件仿真測試系統,基于VC++編寫了電子計價秤仿真測試程序,對市場上普遍流通的電子計價秤軟件進行了測試,實驗結果表明該套系統能夠對密碼作弊類電子計價秤進行有效檢測,同時也驗證了文中仿真測試程序的有效性。
1.仿真測試系統硬件結構
電子計價秤主要包括稱重模塊、顯示模塊以及按鍵模塊 3 部分,本軟件仿真測試系統用軟件驅動的仿真器來代替真實的運行環境,模擬真實運行環境的各種功能。 其硬件結構主要由可編程多路繼電器、電壓源及機器視覺系統組成,繼電器用來模擬電子計價秤的按鍵功能,電壓源用來模擬電子計價秤的稱重傳感器信號輸入,機器視覺系統則是用來捕獲電子計價秤的輸出信息。 整體電子計價秤的軟件仿真測試系統硬件結構如圖 1 所示。
目前,常用電子計價秤的稱重傳感器一般是由彈性體、接成傳感橋路的電阻應變片和向橋路供電的直流穩壓電源構成。 當壓力作用在傳感器上時,微小的電流變化通過惠斯通電橋轉化成微小的電壓變化,通過 A/D 轉換,量化顯示在顯示屏上。 針對這一原理,本系統將電子計價秤電路板上與電橋壓差輸出端相連的部分斷開并重新連接至外部電壓源上,使用電壓源輸出微小壓差模擬稱重。
顯示模塊 電子計價秤顯示屏分 LED 數碼顯示和 LCD 顯示 2 種,一般可采用讀取顯示屏電路管腳高低電平來獲取數據并顯示,但是這種方法連線復雜、 不易操作、 容易出錯, 且不同電子計價秤的LED 數碼管引腳封裝不同,連線也會產生一定的變化。 針對這一現象,本系統采用機器視覺系統,通過攝像頭讀入電子計價秤的顯示屏信息,最后利用圖像識別算法進行字符識別,并將結果發送到上位機顯示。 在恒定光照條件下,對字符識別正確率進行了測試,字符識別正確率達到 98%以上,表明該系統具有良好的實用性和通用型。
按鍵模塊 主流電子計價秤使用的是矩陣式鍵盤,針對此類鍵盤的特點,本系統采用可編程控制的多路繼電器,通過串口通信協議,發出指令控制繼電器通斷,實現電子計價秤面板上所有按鍵功能。
2.仿真測試系統軟件結構
電子子計價秤的軟件自動仿真測試系統軟件流程如圖 2 所示。
程序開啟后先根據試驗人員的設置完成初始化,隨后,分別開啟稱重信號模擬軟件模塊、鍵盤模擬軟件模塊、圖像識別軟件模塊,試驗人員可進行相應的調試檢測。 調試完畢后,試驗人員可分別選擇進行包括手動測試、自動測試、綜合作弊查找測試等。 系統在自動測試結束后自動生成測試報告。
軟件開發平臺為 VS2010,采用 VC++編寫仿真測試軟件上位機手動測試界面及自動測試界面分別如圖 3、圖 4 所示。
手動測試模塊 試驗人員可對整套系統對被測電子計價秤進行初步的檢測, 包括按鍵控制、質量控制及數據的采集。
自動測試模塊 試驗人員先分別對需用到的按鍵、每次按鍵個數、用例個數及允許誤差進行設置。 完成設置后,試驗人員可選擇單價及質量的輸出模式,質量輸出模式包括固定輸出、隨機輸出和間隔輸出,其中,隨機輸出和間隔輸出均需設置載荷區間;單價輸出模式包括固定輸出和隨機輸出。
完成設置后,開始測試,試驗人員可根據實際情況分別進行暫停測試、停止測試、重新測試、保存結果等操作。
從表 1 可以看出,在 5 組連續 50 次按鍵仿真測試試驗中,試驗結果正確率接近 100%,出現 1 次正確率為 98%是由圖像識別系統字符識別錯誤造成的。
針對密碼作弊類電子計價秤的測評,需在綜合作弊查找模塊中進行,綜合作弊查找模塊界面如圖5 所示。
綜合作弊查找模塊,試驗人員先勾選相應的組合、預設計的標準稱重、按鍵時長及按鍵時間間隔,本系統最多可測試 4 位數字配 3 位功能鍵的密碼組合。 點擊開始測試,系統將自動控制電子計價秤進行按鍵,每次按鍵后,系統會控制電壓源輸入標準稱重,并附以固定單價。
若最后總價顯示誤差在 10%以內即為合格,若出現不合格情況,則將當前按鍵組合保存為可疑項在測試結果中顯示。 試驗人員將在試驗結束后使用校驗鍵盤進行校驗,以檢查作弊碼是否已找到。
3.結語
電子計價秤軟件仿真測試系統基于 VC++編寫軟件測試界面,采用機器識別系統對顯示部分進行字符識別,系統測試包含三大功能:手動測試、自動測試、綜合作弊查找測試。 測試結果表明該系統可用于不同電子計價秤軟件作弊功能測試,具有一定的實用性和通用性。 電子計價秤是關于民生計量的一種計量器具, 該套系統研制體現了計量的公正性,后期將繼續對電子計價秤軟件可靠性和評價體系進行更深入的研究。