電子計(jì)價(jià)秤軟件自動(dòng)仿真測(cè)試系統(tǒng)的研制
為檢測(cè)市場(chǎng)上電子計(jì)價(jià)秤的軟件作弊行為,該文提出一套電子計(jì)價(jià)秤軟件自動(dòng)仿真測(cè)試系統(tǒng)。 搭建了電子計(jì)價(jià)秤的軟件仿真測(cè)試系統(tǒng)的硬件裝置,實(shí)現(xiàn)機(jī)器識(shí)別系統(tǒng)進(jìn)行電子秤字符識(shí)別、電壓源進(jìn)行載荷模擬和采用繼電器進(jìn)行按鍵模擬,并用VC++編寫了軟件自動(dòng)仿真測(cè)試程序,對(duì)幾種不同類型的電子計(jì)價(jià)秤軟件進(jìn)行了黑盒測(cè)試試驗(yàn)。 試驗(yàn)結(jié)果表明,該系統(tǒng)可用于電子計(jì)價(jià)秤的軟件測(cè)試,可檢測(cè)出電子計(jì)價(jià)秤軟件作弊問題;在對(duì)不同類型的電子計(jì)價(jià)秤試驗(yàn)中,均取得了較好的測(cè)試結(jié)果,表明該測(cè)試系統(tǒng)穩(wěn)定可靠且具有一定的通用性。
電子計(jì)價(jià)秤作為人們?nèi)粘I钪凶畛R姷拿裆?jì)量器具之一,一直在百姓生活中扮演著非常重要的作用,但近些年市場(chǎng)上一些黑心商人利用電子計(jì)價(jià)秤軟件作弊,使出售的貨物缺斤少兩,同時(shí)關(guān)于電子計(jì)價(jià)秤作弊的投訴也越來越多,因此電子計(jì)價(jià)秤軟件測(cè)試的研究顯得非常重要。
據(jù)國(guó)家質(zhì)檢總局 2012 年的數(shù)據(jù)顯示,電子計(jì)價(jià)秤質(zhì)量抽樣合格率僅為 63.3%。 電子計(jì)價(jià)秤硬件裝置主要由稱重傳感器、按鍵、主板、LED 數(shù)碼管或液晶顯示屏構(gòu)成。 在電子秤硬件上的作弊比較容易察覺,而軟件上的作弊隱藏較深不易發(fā)現(xiàn),因此目前市場(chǎng)上電子計(jì)價(jià)秤多是通過修改軟件進(jìn)行作弊。
2008 年 ,國(guó)際法制計(jì)量組織 (OIML)正式發(fā)布了《計(jì)量器具軟件通用要求》的法制管理文件,對(duì)計(jì)量器具的軟件檢測(cè)提出了相應(yīng)的要求。 2007 年,國(guó)家質(zhì)檢總局下達(dá)指示制定了計(jì)量器具軟件測(cè)評(píng)指南( 中華人民共和國(guó)國(guó)家計(jì)量技術(shù)規(guī)范 JJF1182-2007),尤其是對(duì)電子計(jì)價(jià)秤的軟件測(cè)評(píng)方法提出了新要求,接著于 2012 年實(shí)施了《數(shù)字指示秤軟件可信度測(cè)評(píng)方法 JJF 1365-2012》。 文獻(xiàn)提出了一種嵌入式計(jì)量器具便于欺騙性使用的黑盒檢測(cè)方法,但前期測(cè)試準(zhǔn)備過于繁瑣。 文獻(xiàn)[6]對(duì)嵌入式軟件的計(jì)量器具防作弊系統(tǒng)進(jìn)行了研究,將檢測(cè)時(shí)提取的軟件內(nèi)部信息與審批前標(biāo)識(shí)的軟件特征信息進(jìn)行比對(duì),來檢測(cè)計(jì)量器具的軟件作弊。 由于電子計(jì)價(jià)秤的軟件標(biāo)識(shí)涉及到生產(chǎn)廠商利潤(rùn),該方法操作具有一定的難度。
為解決電子計(jì)價(jià)秤軟件測(cè)試遇到的難題,文中搭建了一套電子計(jì)價(jià)秤的軟件仿真測(cè)試系統(tǒng),基于VC++編寫了電子計(jì)價(jià)秤仿真測(cè)試程序,對(duì)市場(chǎng)上普遍流通的電子計(jì)價(jià)秤軟件進(jìn)行了測(cè)試,實(shí)驗(yàn)結(jié)果表明該套系統(tǒng)能夠?qū)γ艽a作弊類電子計(jì)價(jià)秤進(jìn)行有效檢測(cè),同時(shí)也驗(yàn)證了文中仿真測(cè)試程序的有效性。
1.仿真測(cè)試系統(tǒng)硬件結(jié)構(gòu)
電子計(jì)價(jià)秤主要包括稱重模塊、顯示模塊以及按鍵模塊 3 部分,本軟件仿真測(cè)試系統(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à)秤的軟件仿真測(cè)試系統(tǒng)硬件結(jié)構(gòu)如圖 1 所示。
目前,常用電子計(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)行了測(cè)試,字符識(shí)別正確率達(dá)到 98%以上,表明該系統(tǒng)具有良好的實(shí)用性和通用型。
按鍵模塊 主流電子計(jì)價(jià)秤使用的是矩陣式鍵盤,針對(duì)此類鍵盤的特點(diǎn),本系統(tǒng)采用可編程控制的多路繼電器,通過串口通信協(xié)議,發(fā)出指令控制繼電器通斷,實(shí)現(xiàn)電子計(jì)價(jià)秤面板上所有按鍵功能。
2.仿真測(cè)試系統(tǒng)軟件結(jié)構(gòu)
電子子計(jì)價(jià)秤的軟件自動(dòng)仿真測(cè)試系統(tǒng)軟件流程如圖 2 所示。
程序開啟后先根據(jù)試驗(yàn)人員的設(shè)置完成初始化,隨后,分別開啟稱重信號(hào)模擬軟件模塊、鍵盤模擬軟件模塊、圖像識(shí)別軟件模塊,試驗(yàn)人員可進(jìn)行相應(yīng)的調(diào)試檢測(cè)。 調(diào)試完畢后,試驗(yàn)人員可分別選擇進(jìn)行包括手動(dòng)測(cè)試、自動(dòng)測(cè)試、綜合作弊查找測(cè)試等。 系統(tǒng)在自動(dòng)測(cè)試結(jié)束后自動(dòng)生成測(cè)試報(bào)告。
軟件開發(fā)平臺(tái)為 VS2010,采用 VC++編寫仿真測(cè)試軟件上位機(jī)手動(dòng)測(cè)試界面及自動(dòng)測(cè)試界面分別如圖 3、圖 4 所示。
手動(dòng)測(cè)試模塊 試驗(yàn)人員可對(duì)整套系統(tǒng)對(duì)被測(cè)電子計(jì)價(jià)秤進(jìn)行初步的檢測(cè), 包括按鍵控制、質(zhì)量控制及數(shù)據(jù)的采集。
自動(dòng)測(cè)試模塊 試驗(yàn)人員先分別對(duì)需用到的按鍵、每次按鍵個(gè)數(shù)、用例個(gè)數(shù)及允許誤差進(jìn)行設(shè)置。 完成設(shè)置后,試驗(yàn)人員可選擇單價(jià)及質(zhì)量的輸出模式,質(zhì)量輸出模式包括固定輸出、隨機(jī)輸出和間隔輸出,其中,隨機(jī)輸出和間隔輸出均需設(shè)置載荷區(qū)間;單價(jià)輸出模式包括固定輸出和隨機(jī)輸出。
完成設(shè)置后,開始測(cè)試,試驗(yàn)人員可根據(jù)實(shí)際情況分別進(jìn)行暫停測(cè)試、停止測(cè)試、重新測(cè)試、保存結(jié)果等操作。
從表 1 可以看出,在 5 組連續(xù) 50 次按鍵仿真測(cè)試試驗(yàn)中,試驗(yàn)結(jié)果正確率接近 100%,出現(xiàn) 1 次正確率為 98%是由圖像識(shí)別系統(tǒng)字符識(shí)別錯(cuò)誤造成的。
針對(duì)密碼作弊類電子計(jì)價(jià)秤的測(cè)評(píng),需在綜合作弊查找模塊中進(jìn)行,綜合作弊查找模塊界面如圖5 所示。
綜合作弊查找模塊,試驗(yàn)人員先勾選相應(yīng)的組合、預(yù)設(shè)計(jì)的標(biāo)準(zhǔn)稱重、按鍵時(shí)長(zhǎng)及按鍵時(shí)間間隔,本系統(tǒng)最多可測(cè)試 4 位數(shù)字配 3 位功能鍵的密碼組合。 點(diǎn)擊開始測(cè)試,系統(tǒng)將自動(dòng)控制電子計(jì)價(jià)秤進(jìn)行按鍵,每次按鍵后,系統(tǒng)會(huì)控制電壓源輸入標(biāo)準(zhǔn)稱重,并附以固定單價(jià)。
若最后總價(jià)顯示誤差在 10%以內(nèi)即為合格,若出現(xiàn)不合格情況,則將當(dāng)前按鍵組合保存為可疑項(xiàng)在測(cè)試結(jié)果中顯示。 試驗(yàn)人員將在試驗(yàn)結(jié)束后使用校驗(yàn)鍵盤進(jìn)行校驗(yàn),以檢查作弊碼是否已找到。
3.結(jié)語
電子計(jì)價(jià)秤軟件仿真測(cè)試系統(tǒng)基于 VC++編寫軟件測(cè)試界面,采用機(jī)器識(shí)別系統(tǒng)對(duì)顯示部分進(jìn)行字符識(shí)別,系統(tǒng)測(cè)試包含三大功能:手動(dòng)測(cè)試、自動(dòng)測(cè)試、綜合作弊查找測(cè)試。 測(cè)試結(jié)果表明該系統(tǒng)可用于不同電子計(jì)價(jià)秤軟件作弊功能測(cè)試,具有一定的實(shí)用性和通用性。 電子計(jì)價(jià)秤是關(guān)于民生計(jì)量的一種計(jì)量器具, 該套系統(tǒng)研制體現(xiàn)了計(jì)量的公正性,后期將繼續(xù)對(duì)電子計(jì)價(jià)秤軟件可靠性和評(píng)價(jià)體系進(jìn)行更深入的研究。